diff options
Diffstat (limited to 'xorg/X11R7.6/rdp/rdpdraw.c')
-rw-r--r-- | xorg/X11R7.6/rdp/rdpdraw.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/xorg/X11R7.6/rdp/rdpdraw.c b/xorg/X11R7.6/rdp/rdpdraw.c index c9dc903c..9868cc62 100644 --- a/xorg/X11R7.6/rdp/rdpdraw.c +++ b/xorg/X11R7.6/rdp/rdpdraw.c @@ -996,6 +996,7 @@ rdpCreatePixmap(ScreenPtr pScreen, int width, int height, int depth, pScreen->CreatePixmap = rdpCreatePixmap; if (org_width == 0 && height == 0) { + LLOGLN(10, ("rdpCreatePixmap: setting is_scratch")); priv->is_scratch = 1; } return rv; @@ -1042,6 +1043,10 @@ xrdp_is_os(PixmapPtr pix, rdpPixmapPtr priv) int height; struct image_data id; + if (g_wrapPixmap == 0) + { + return 0; + } if (priv->status == 0) { width = pix->drawable.width; @@ -1049,7 +1054,8 @@ xrdp_is_os(PixmapPtr pix, rdpPixmapPtr priv) if ((pix->usage_hint == 0) && (pix->drawable.depth >= g_rdpScreen.depth) && (width > 0) && (height > 0) && - (priv->use_count > XRDP_USE_COUNT_THRESHOLD)) + (priv->use_count > XRDP_USE_COUNT_THRESHOLD) && + (priv->is_scratch == 0)) { width = (width + 3) & ~3; priv->rdpindex = rdpup_add_os_bitmap(pix, priv); @@ -1082,10 +1088,18 @@ xrdp_is_os(PixmapPtr pix, rdpPixmapPtr priv) priv->use_count++; return 1; } + else + { + LLOGLN(10, ("xrdp_is_os: rdpup_add_os_bitmap failed")); + } } priv->use_count++; return 0; } + else + { + LLOGLN(10, ("xrdp_is_os: ok")); + } priv->use_count++; return 1; } @@ -1569,4 +1583,3 @@ rdpSaveScreen(ScreenPtr pScreen, int on) { return 1; } - |