summaryrefslogtreecommitdiffstats
path: root/xrdp/xrdp_painter.c
diff options
context:
space:
mode:
authorJay Sorg <jay.sorg@gmail.com>2012-12-23 14:07:37 -0800
committerJay Sorg <jay.sorg@gmail.com>2012-12-23 14:07:37 -0800
commitcce4f773d858a2b131a026fa82136743155ad12b (patch)
tree8aced4c12c538156834ab0ce6b5da7dbd0b24cf9 /xrdp/xrdp_painter.c
parent842fbc43e050960f75d941ac366a4b889b0b9ef1 (diff)
downloadxrdp-proprietary-cce4f773d858a2b131a026fa82136743155ad12b.tar.gz
xrdp-proprietary-cce4f773d858a2b131a026fa82136743155ad12b.zip
fixes, logging for off screen
Diffstat (limited to 'xrdp/xrdp_painter.c')
-rw-r--r--xrdp/xrdp_painter.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/xrdp/xrdp_painter.c b/xrdp/xrdp_painter.c
index 0b867089..8ba33825 100644
--- a/xrdp/xrdp_painter.c
+++ b/xrdp/xrdp_painter.c
@@ -708,6 +708,8 @@ xrdp_painter_copy(struct xrdp_painter *self,
int dsty;
int w;
int h;
+ int index;
+ struct list *del_list;
if (self == 0 || src == 0 || dst == 0)
{
@@ -781,6 +783,22 @@ xrdp_painter_copy(struct xrdp_painter *self,
cache_id = 255; // todo
cache_idx = src->item_index; // todo
+ if (src->tab_stop == 0)
+ {
+ g_writeln("xrdp_painter_copy: warning src not created");
+ del_list = self->wm->cache->xrdp_os_del_list;
+ index = list_index_of(del_list, cache_idx);
+ list_remove_item(del_list, index);
+ libxrdp_orders_send_create_os_surface(self->session,
+ cache_idx,
+ src->width,
+ src->height,
+ del_list);
+ src->tab_stop = 1;
+ list_clear(del_list);
+ }
+
+
k = 0;
while (xrdp_region_get_rect(region, k, &rect1) == 0)