xserver/hw/xfree86
Daniel Stone e957a2e5dd dix: Add hybrid full-size/empty-clip mode to SetRootClip
216bdbc735 removed the SetRootClip call in the XWayland output-hotplug
handler when running rootless (e.g. as a part of Weston/Mutter), since
the root window has no storage, so generating exposures will result in
writes to invalid memory.

Unfortunately, preventing the segfault also breaks sprite confinement.
SetRootClip updates winSize and borderSize for the root window, which
when combined with RRScreenSizeChanged calling ScreenRestructured,
generates a new sprite-confinment area to update it to the whole screen.

Removing this call results in the window geometry being reported
correctly, but winSize/borderSize never changing from their values at
startup, i.e. out of sync with the root window geometry / screen
information in the connection info / XRandR.

This patch introduces a hybrid mode, where we update winSize and
borderSize for the root window, enabling sprite confinement to work
correctly, but keep the clip emptied so exposures are never generated.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Tested-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
2016-02-22 13:26:31 -05:00
..
common dix: Add hybrid full-size/empty-clip mode to SetRootClip 2016-02-22 13:26:31 -05:00
ddc Convert hw/xfree86 to new *allocarray functions 2015-04-21 16:58:08 -07:00
dixmods Also dump passive grabs on XF86LogGrabInfo 2015-11-10 15:12:21 +10:00
doc xfree86: Remove ancient DRI build instructions 2016-01-28 09:01:03 -05:00
dri debug output format fix in DRISwapContext() 2015-08-28 12:06:51 +01:00
dri2 dri2: Use the work queue to manage client sleeps 2016-02-11 13:58:13 -05:00
drivers Fix build when XSERVER_PLATFORM_BUS is not defined. 2016-01-06 10:10:14 -05:00
exa build: Remove stale miext/cw include paths 2015-10-27 13:46:13 -04:00
fbdevhw fbdevhw: Fix a const qualifier warning 2015-09-23 15:18:24 -04:00
glamor_egl glamor: Share code for put_image handling. 2014-06-15 23:20:09 +01:00
i2c Convert hw/xfree86 to new *allocarray functions 2015-04-21 16:58:08 -07:00
int10 int10: Fix error check for pci_device_map_legacy 2015-03-13 12:31:21 +10:00
loader Replace 'sun' with '__sun' 2015-11-30 11:51:22 -05:00
man xfree86: add NoMatchFoo directives for InputClass sections 2015-12-18 11:56:46 +10:00
modes dix: Add hybrid full-size/empty-clip mode to SetRootClip 2016-02-22 13:26:31 -05:00
os-support systemd-logind.c: don't parse VT settings for non-seat0 X servers 2015-12-08 11:54:11 -05:00
parser xfree86: add NoMatchFoo directives for InputClass sections 2015-12-18 11:56:46 +10:00
ramdac debug output format fix in TI.c 2015-08-28 12:06:39 +01:00
shadowfb Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
utils Add XNFcallocarray() to allow xnfcalloc() to check for overflow 2015-04-21 16:57:07 -07:00
vbe Convert hw/xfree86 to new *allocarray functions 2015-04-21 16:58:08 -07:00
vgahw Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
x86emu x86emu: Squash a warning 2015-12-07 17:05:39 -05:00
.gitignore Xorg: Add Xorg.wrap to hw/xfree86/.gitignore 2014-04-18 11:39:16 +02:00
Makefile.am build: Remove stale miext/cw include paths 2015-10-27 13:46:13 -04:00
Xorg.sh.in xfree86: rename Xorg.bin to Xorg 2015-01-05 09:53:58 +10:00
sdksyms.sh vidmode: Hide implementation details 2015-07-08 16:40:58 -04:00
xorg-wrapper.c Xorg.wrap: activate libdrm based detection for KMS drivers 2015-12-03 11:05:37 -05:00
xorgconf.cpp xfree86: fix wrong DontZap documentation (#71113) 2014-05-24 20:02:56 +10:00