X11rdp: fixes for the merge, offscreen fix

ulab-next
Jay Sorg 11 years ago committed by Jim Grandy
parent 02d550e11b
commit ac8d4bfb41

@ -297,6 +297,7 @@ struct _rdpPixmapRec
then we force remote the pixmap */ then we force remote the pixmap */
int use_count; int use_count;
int kind_width; int kind_width;
int is_scratch;
struct rdp_draw_item* draw_item_head; struct rdp_draw_item* draw_item_head;
struct rdp_draw_item* draw_item_tail; struct rdp_draw_item* draw_item_tail;
}; };

@ -487,17 +487,6 @@ check_drawables(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst,
#endif #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) if (rv == 0)
{ {
LLOGLN(10, ("check_drawables: can not remote [%s]", g_com_fail_strings[fail_reason])); LLOGLN(10, ("check_drawables: can not remote [%s]", g_com_fail_strings[fail_reason]));

@ -996,6 +996,7 @@ rdpCreatePixmap(ScreenPtr pScreen, int width, int height, int depth,
pScreen->CreatePixmap = rdpCreatePixmap; pScreen->CreatePixmap = rdpCreatePixmap;
if (org_width == 0 && height == 0) if (org_width == 0 && height == 0)
{ {
LLOGLN(10, ("rdpCreatePixmap: setting is_scratch"));
priv->is_scratch = 1; priv->is_scratch = 1;
} }
return rv; return rv;
@ -1042,6 +1043,10 @@ xrdp_is_os(PixmapPtr pix, rdpPixmapPtr priv)
int height; int height;
struct image_data id; struct image_data id;
if (g_wrapPixmap == 0)
{
return 0;
}
if (priv->status == 0) if (priv->status == 0)
{ {
width = pix->drawable.width; width = pix->drawable.width;
@ -1049,7 +1054,8 @@ xrdp_is_os(PixmapPtr pix, rdpPixmapPtr priv)
if ((pix->usage_hint == 0) && if ((pix->usage_hint == 0) &&
(pix->drawable.depth >= g_rdpScreen.depth) && (pix->drawable.depth >= g_rdpScreen.depth) &&
(width > 0) && (height > 0) && (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; width = (width + 3) & ~3;
priv->rdpindex = rdpup_add_os_bitmap(pix, priv); priv->rdpindex = rdpup_add_os_bitmap(pix, priv);
@ -1082,10 +1088,18 @@ xrdp_is_os(PixmapPtr pix, rdpPixmapPtr priv)
priv->use_count++; priv->use_count++;
return 1; return 1;
} }
else
{
LLOGLN(10, ("xrdp_is_os: rdpup_add_os_bitmap failed"));
}
} }
priv->use_count++; priv->use_count++;
return 0; return 0;
} }
else
{
LLOGLN(10, ("xrdp_is_os: ok"));
}
priv->use_count++; priv->use_count++;
return 1; return 1;
} }
@ -1569,4 +1583,3 @@ rdpSaveScreen(ScreenPtr pScreen, int on)
{ {
return 1; return 1;
} }

Loading…
Cancel
Save