diff options
Diffstat (limited to 'xrdp/xrdp_painter.c')
| -rw-r--r-- | xrdp/xrdp_painter.c | 18 |
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) |
