xserver-multidpi/dix
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
..
.gitignore dix and os: gitignore dix.O and os.O 2011-09-23 17:14:47 -07:00
atom.c atom: make FreeAtom static 2015-07-08 16:41:29 -04:00
buildatoms XFree86 4.3.0.1 2003-11-14 16:49:22 +00:00
BuiltInAtoms R6.6 is the Xorg base-line 2003-11-14 15:54:54 +00:00
colormap.c configurable maximum number of clients 2015-08-24 00:00:18 -07:00
cursor.c cursor: drop ARGB_CURSOR 2015-06-30 12:17:51 +10:00
devices.c dix: fix indentation 2015-05-20 12:44:54 +10:00
dispatch.c Remove non-smart scheduler. Don't require setitimer. 2015-12-01 13:54:54 -05:00
dispatch.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
dixfonts.c dix: Move InitFonts up above screen initialization 2015-12-01 13:55:11 -05:00
dixutils.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
enterleave.c dix: Unexport various implementation details 2015-07-08 16:40:57 -04:00
enterleave.h dix: Unexport various implementation details 2015-07-08 16:40:57 -04:00
eventconvert.c dix: send the current axis value in DeviceChangedEvents (#62321) 2013-05-07 09:40:42 +10:00
events.c dix/events: Set currentTime to the given time stamp in NoticeTime 2015-05-11 15:40:04 -07:00
extension.c Convert dix/* to new *allocarray functions 2015-04-21 16:57:08 -07:00
ffs.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
gc.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
getevents.c Input: Add focus-in event source 2015-11-24 11:36:34 +10:00
globals.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
glyphcurs.c Let calloc handle multiplication 2015-04-21 16:57:07 -07:00
grabs.c Convert dix/* to new *allocarray functions 2015-04-21 16:57:08 -07:00
initatoms.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
inpututils.c Input: Add DeviceEventSource enum 2015-11-24 11:36:32 +10:00
main.c dix: Move InitFonts up above screen initialization 2015-12-01 13:55:11 -05:00
Makefile.am Allow DDX to provide a main() 2013-07-23 23:56:58 +01:00
pixmap.c prime: Damage full destination rectangle when we start dirty tracking 2015-12-07 17:05:54 -05:00
privates.c privates: Clear screen-specific keys during CloseScreen 2015-09-21 14:18:51 -04:00
property.c dix: Remove redundant ChangeWindowProperty 2015-11-30 10:24:53 -05:00
protocol.txt protocol.txt: Add MIT-SHM 1.2 requests 2015-09-25 09:46:11 -04:00
ptrveloc.c dix: allow a ConstantDeceleration between 0 and 1 (#66134) 2013-07-17 14:27:26 +10:00
region.c Convert dix/* to new *allocarray functions 2015-04-21 16:57:08 -07:00
registry.c Build required portions of registry.c automatically [v2] 2014-09-18 15:29:29 -07:00
resource.c configurable maximum number of clients 2015-08-24 00:00:18 -07:00
selection.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
stubmain.c Allow DDX to provide a main() 2013-07-23 23:56:58 +01:00
swaprep.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
swapreq.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
tables.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
touch.c debug output format fix in TouchEventHistoryPush() 2015-08-28 12:07:13 +01:00
window.c dix: Add hybrid full-size/empty-clip mode to SetRootClip 2016-02-22 13:26:31 -05:00
Xserver-dtrace.h.in dix: add dtrace probes to input API 2012-03-22 11:33:42 +10:00
Xserver.d Get rid of const warnings in XSERVER_INPUT_EVENT dtrace probe calls 2015-02-10 18:14:44 -08:00