summaryrefslogtreecommitdiffstats
path: root/xrdp/xrdp_painter.c
diff options
context:
space:
mode:
authorJay Sorg <jay.sorg@gmail.com>2012-05-19 19:25:08 -0700
committerJay Sorg <jay.sorg@gmail.com>2012-05-19 19:25:08 -0700
commitaa3fad894db4e9b02999b229eb7e63fd8e91bdf6 (patch)
tree409c10184c95a2305edc6b7d04e6116aaa30a936 /xrdp/xrdp_painter.c
parentcc3754a2bdd6801179751d45f1df3b5816e189fc (diff)
downloadxrdp-proprietary-aa3fad894db4e9b02999b229eb7e63fd8e91bdf6.tar.gz
xrdp-proprietary-aa3fad894db4e9b02999b229eb7e63fd8e91bdf6.zip
xorg: work on offscreen bitmaps
Diffstat (limited to 'xrdp/xrdp_painter.c')
-rw-r--r--xrdp/xrdp_painter.c29
1 files changed, 18 insertions, 11 deletions
diff --git a/xrdp/xrdp_painter.c b/xrdp/xrdp_painter.c
index 117d68a4..9cf9438d 100644
--- a/xrdp/xrdp_painter.c
+++ b/xrdp/xrdp_painter.c
@@ -49,16 +49,10 @@ xrdp_painter_delete(struct xrdp_painter* self)
/*****************************************************************************/
int APP_CC
-xrdp_painter_begin_update(struct xrdp_painter* self)
+wm_painter_set_target(struct xrdp_painter* self)
{
int surface_index;
- if (self == 0)
- {
- return 0;
- }
- libxrdp_orders_init(self->session);
-
if (self->wm->target_surface->type == WND_TYPE_SCREEN)
{
if (self->wm->current_surface_index != 0xffff)
@@ -75,8 +69,8 @@ xrdp_painter_begin_update(struct xrdp_painter* self)
if (self->wm->target_surface->tab_stop == 0) /* tab_stop is hack */
{
libxrdp_orders_send_create_os_surface(self->session, surface_index,
- self->wm->target_surface->width,
- self->wm->target_surface->height);
+ self->wm->target_surface->width,
+ self->wm->target_surface->height);
self->wm->target_surface->tab_stop = 1;
}
libxrdp_orders_send_switch_os_surface(self->session, surface_index);
@@ -92,6 +86,19 @@ xrdp_painter_begin_update(struct xrdp_painter* self)
/*****************************************************************************/
int APP_CC
+xrdp_painter_begin_update(struct xrdp_painter* self)
+{
+ if (self == 0)
+ {
+ return 0;
+ }
+ libxrdp_orders_init(self->session);
+ wm_painter_set_target(self);
+ return 0;
+}
+
+/*****************************************************************************/
+int APP_CC
xrdp_painter_end_update(struct xrdp_painter* self)
{
if (self == 0)
@@ -667,13 +674,13 @@ xrdp_painter_copy(struct xrdp_painter* self,
region = xrdp_region_create(self->wm);
if (dst->type != WND_TYPE_OFFSCREEN)
{
- g_writeln("off screen to screen");
+ //g_writeln("off screen to screen");
xrdp_wm_get_vis_region(self->wm, dst, x, y, cx, cy,
region, self->clip_children);
}
else
{
- g_writeln("off screen to off screen");
+ //g_writeln("off screen to off screen");
xrdp_region_add_rect(region, &clip_rect);
}
x += dx;