X11rdp: fixes for the merge, offscreen fix
This commit is contained in:
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…
Reference in New Issue
Block a user