fixed screenblt for ms client

ulab-original
jsorg71 20 years ago
parent 7ad0525527
commit 54db1e6409

@ -116,10 +116,10 @@ main(int argc, char** argv)
#endif #endif
g_threadid = g_get_threadid(); g_threadid = g_get_threadid();
g_listen = xrdp_listen_create(); g_listen = xrdp_listen_create();
g_signal(2, xrdp_shutdown); g_signal(2, xrdp_shutdown); /* SIGINT */
g_signal(9, xrdp_shutdown); g_signal(9, xrdp_shutdown); /* SIGKILL */
g_signal(13, pipe_sig); /* sig pipe */ g_signal(13, pipe_sig); /* sig pipe */
g_signal(15, xrdp_shutdown); g_signal(15, xrdp_shutdown); /* SIGTERM */
xrdp_listen_main_loop(g_listen); xrdp_listen_main_loop(g_listen);
return 0; return 0;
} }

@ -226,7 +226,7 @@ xrdp_painter_copy(struct xrdp_painter* self,
struct xrdp_bitmap* src, struct xrdp_bitmap* src,
struct xrdp_bitmap* dst, struct xrdp_bitmap* dst,
int x, int y, int cx, int cy, int x, int y, int cx, int cy,
int srcx, int srcy, int opcode); int srcx, int srcy);
/* xrdp_font.c */ /* xrdp_font.c */
struct xrdp_font* APP_CC struct xrdp_font* APP_CC

@ -130,8 +130,8 @@ server_screen_blt(struct xrdp_mod* mod, int x, int y, int cx, int cy,
wm = (struct xrdp_wm*)mod->wm; wm = (struct xrdp_wm*)mod->wm;
p = (struct xrdp_painter*)mod->painter; p = (struct xrdp_painter*)mod->painter;
xrdp_painter_copy(p, wm->screen, wm->screen, x, y, cx, cy, p->rop = 0xcc;
srcx, srcy, 12); xrdp_painter_copy(p, wm->screen, wm->screen, x, y, cx, cy, srcx, srcy);
return 0; return 0;
} }

@ -31,7 +31,7 @@ xrdp_painter_create(struct xrdp_wm* wm, struct xrdp_session* session)
self = (struct xrdp_painter*)g_malloc(sizeof(struct xrdp_painter), 1); self = (struct xrdp_painter*)g_malloc(sizeof(struct xrdp_painter), 1);
self->wm = wm; self->wm = wm;
self->session = session; self->session = session;
self->rop = 0xcc; /* copy */ self->rop = 0xcc; /* copy gota use 0xcc*/
self->clip_children = 1; self->clip_children = 1;
return self; return self;
} }
@ -621,7 +621,7 @@ xrdp_painter_copy(struct xrdp_painter* self,
struct xrdp_bitmap* src, struct xrdp_bitmap* src,
struct xrdp_bitmap* dst, struct xrdp_bitmap* dst,
int x, int y, int cx, int cy, int x, int y, int cx, int cy,
int srcx, int srcy, int opcode) int srcx, int srcy)
{ {
if (self == 0 || src == 0 || dst == 0) if (self == 0 || src == 0 || dst == 0)
{ {
@ -634,10 +634,10 @@ xrdp_painter_copy(struct xrdp_painter* self,
{ {
return 0; return 0;
} }
if (src == dst && opcode == 12 && src->wm->screen == src) if (src == dst && src->wm->screen == src)
{ {
libxrdp_orders_screen_blt(dst->wm->session, x, y, cx, cy, libxrdp_orders_screen_blt(dst->wm->session, x, y, cx, cy,
srcx, srcy, 12, 0); srcx, srcy, self->rop, 0);
} }
return 0; return 0;
} }

Loading…
Cancel
Save