1
0
Fork 0
mutter-performance-source/src
Rui Matos 5a86286aba monitor-manager-xrandr: Set CRTC config even if it might be redundant
This optimization breaks our use of XRRScreenResources' timestamps to
detect hotplugs in case one of the outputs is disconnected and the
remaining ones don't need any mode, position or transform adjustments.

In that scenario, when applying the new configuration, we resize the X
screen but never call XRRSetCrtcConfig() and since XRRSetScreenSize()
doesn't take a timestamp and the X server doesn't update its last set
timestamp, when we next get a RRScreenChangeNotify and update
ourselves, XRRScreenResources.timestamp will still be smaller than
XRRScreenResources.configTimestamp which makes us think we're seeing a
new hotplug. We just don't enter an endless loop because the screen
size that we keep applying is always the same and the X server
short-circuits and stops sending us RRScreenChangeNotifys.

Always calling XRRSetCrtcConfig() ensures that the last set timestamp
will be bigger than configTimestamp in the next event and thus making
us trigger the monitors-changed signal properly.

Note that the X server already does basically the same checks that
we're removing here, so doing this shouldn't be a significant
efficiency loss. See

http://cgit.freedesktop.org/xorg/xserver/tree/randr/rrcrtc.c?h=server-1.16-branch#n539
2014-12-11 13:42:44 +01:00
..
backends monitor-manager-xrandr: Set CRTC config even if it might be redundant 2014-12-11 13:42:44 +01:00
compositor MetaWindowActor: don't overwrite send_frame_messages_timer 2014-12-02 11:47:13 -05:00
core display: Unknown keyboard resize ops are resizing ops 2014-12-01 08:31:49 -08:00
meta background: use GFiles instead of filenames 2014-10-14 18:54:36 -07:00
tests Add a test for stacking vs. minimization 2014-09-24 16:51:20 -04:00
ui ui: Adapt to GtkStyleContext changes 2014-10-25 18:16:49 +02:00
wayland pointer: Actually do change the focus during window ops 2014-11-26 15:32:18 -08:00
x11 window-x11: Fix windows that set empty input shapes 2014-11-26 12:51:35 -08:00
.cvsignore Install desktop files in both .../share/applications and 2008-09-12 04:05:17 +00:00
libmutter.pc.in meta: Add generated meta-version.h 2014-06-05 14:05:16 +02:00
Makefile-tests.am theme: Remove our own gradient stuff 2014-10-14 17:37:49 -07:00
Makefile.am Makefile: Use $(NULL) trick 2014-11-04 19:08:07 -08:00
mutter-enum-types.c.in Add bits missing from last commit 2009-07-04 17:14:48 +01:00
mutter-enum-types.h.in Use a META_ prefix for enum types, not MUTTER_ 2012-02-23 16:39:28 -05:00
org.freedesktop.login1.xml launcher: Replace mutter-launch with logind integration 2014-05-19 15:09:23 -04:00
org.gnome.Mutter.DisplayConfig.xml Rename the DBus interface files 2014-03-31 23:44:46 -04:00
org.gnome.Mutter.IdleMonitor.xml Rename the DBus interface files 2014-03-31 23:44:46 -04:00