fb: Check whether the window is enabled directly

... instead of its root window. Xwayland's rootless mode empties the
root window border clip since its root window has no storage, but
redirected windows (the only kind it can show) will have a non-empty
border clip anyway, cf. the #ifdef COMPOSITE in miComputeClips. With
this change, non-glamor Xwayland's GetImage actually works.

Other acceleration layers may need to change to account for this, but
this appears to be safe for the existing open source drivers. Only the
xfree86 DDX has any problem with losing its framebuffer on VT switch,
and even then only for UMS drivers (which excludes glamor, uxa, and sna
from consideration). This leaves exa, which already contains code to
evict pixmaps to host memory on VT switch. Since the xfree86 core will
still empty the root clip on VT switch, while the root window itself may
not contain a valid image we won't try to touch it, but GetImage from a
redirected window will now work even when switched away.

Acked-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
Adam Jackson 2017-09-12 16:53:24 -04:00
parent 9869dcb349
commit a49379b604
1 changed files with 1 additions and 1 deletions

View File

@ -494,7 +494,7 @@ typedef struct {
*/
#define fbWindowEnabled(pWin) \
RegionNotEmpty(&(pWin)->drawable.pScreen->root->borderClip)
RegionNotEmpty(&(pWin)->borderClip)
#define fbDrawableEnabled(pDrawable) \
((pDrawable)->type == DRAWABLE_PIXMAP ? \