summaryrefslogtreecommitdiffstats
path: root/xorg/X11R7.6
diff options
context:
space:
mode:
authorJay Sorg <jay.sorg@gmail.com>2013-08-09 20:07:24 -0700
committerJim Grandy <jgrandy@authentic8.com>2013-08-22 12:58:07 -0700
commitac8d4bfb41eaf4321a79ad509365aa1e61e2c18f (patch)
tree2ddba0f0795ab34263cfbe69852c0274fe2e6b97 /xorg/X11R7.6
parent02d550e11b7eda54725a0f8ea469fe6421d1b8d4 (diff)
downloadxrdp-proprietary-ac8d4bfb41eaf4321a79ad509365aa1e61e2c18f.tar.gz
xrdp-proprietary-ac8d4bfb41eaf4321a79ad509365aa1e61e2c18f.zip
X11rdp: fixes for the merge, offscreen fix
Diffstat (limited to 'xorg/X11R7.6')
-rw-r--r--xorg/X11R7.6/rdp/rdp.h1
-rw-r--r--xorg/X11R7.6/rdp/rdpComposite.c11
-rw-r--r--xorg/X11R7.6/rdp/rdpdraw.c17
3 files changed, 16 insertions, 13 deletions
diff --git a/xorg/X11R7.6/rdp/rdp.h b/xorg/X11R7.6/rdp/rdp.h
index 72440af9..b059fd65 100644
--- a/xorg/X11R7.6/rdp/rdp.h
+++ b/xorg/X11R7.6/rdp/rdp.h
@@ -297,6 +297,7 @@ struct _rdpPixmapRec
then we force remote the pixmap */
int use_count;
int kind_width;
+ int is_scratch;
struct rdp_draw_item* draw_item_head;
struct rdp_draw_item* draw_item_tail;
};
diff --git a/xorg/X11R7.6/rdp/rdpComposite.c b/xorg/X11R7.6/rdp/rdpComposite.c
index ec161994..57661520 100644
--- a/xorg/X11R7.6/rdp/rdpComposite.c
+++ b/xorg/X11R7.6/rdp/rdpComposite.c
@@ -487,17 +487,6 @@ check_drawables(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst,
#endif
}
}
- if (rv != 0)
- {
- /* TODO: figure out why source XRGB does not work
- skipping for now because they rarely happen
- happens when drawing Firefox open file dialog, the button icons */
- if (PIXMAN_FORMAT_A(pSrc->format) == 0)
- {
- rv = 0;
- LLOGLN(10, ("check_drawables: src format"));
- }
- }
if (rv == 0)
{
LLOGLN(10, ("check_drawables: can not remote [%s]", g_com_fail_strings[fail_reason]));
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;
}
-