forked from pool/xorg-x11-server
65888def45
- U_dix-window-Use-ConfigureWindow-instead-of-MoveWindow.patch * Fix abort triggered by some uses of screensaver. (bsc#1114822) OBS-URL: https://build.opensuse.org/request/show/648984 OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xorg-x11-server?expand=0&rev=722
52 lines
2.0 KiB
Diff
52 lines
2.0 KiB
Diff
Git-commit: fbdd4d679a7d020f78f7b877033b83e00f5a0f73
|
|
Patch-Mainline: Upstream
|
|
Author: Michal Srb <msrb@suse.com>
|
|
Subject: dix/window: Use ConfigureWindow instead of MoveWindow
|
|
References: bsc#1114822
|
|
|
|
The screensaver can regularly move its window to random offsets. It should
|
|
use the ConfigureWindow function instead of calling the Screen's MoveWindow
|
|
directly. Some MoveWindow implementations, such as compMoveWindow, rely on
|
|
Screen's ConfigNotify being called first as it happens in ConfigureWindow.
|
|
|
|
Reviewed-by: Adam Jackson <ajax@redhat.com>
|
|
---
|
|
dix/window.c | 14 ++++++--------
|
|
1 file changed, 6 insertions(+), 8 deletions(-)
|
|
|
|
diff --git a/dix/window.c b/dix/window.c
|
|
index 2b599e788..f4ace76c7 100644
|
|
--- a/dix/window.c
|
|
+++ b/dix/window.c
|
|
@@ -3094,6 +3094,7 @@ int
|
|
dixSaveScreens(ClientPtr client, int on, int mode)
|
|
{
|
|
int rc, i, what, type;
|
|
+ XID vlist[2];
|
|
|
|
if (on == SCREEN_SAVER_FORCER) {
|
|
if (mode == ScreenSaverReset)
|
|
@@ -3146,14 +3147,11 @@ dixSaveScreens(ClientPtr client, int on, int mode)
|
|
* for the root window, so PaintWindow works
|
|
*/
|
|
screenIsSaved = SCREEN_SAVER_OFF;
|
|
- (*pWin->drawable.pScreen->MoveWindow) (pWin,
|
|
- (short) (-
|
|
- (rand() %
|
|
- RANDOM_WIDTH)),
|
|
- (short) (-
|
|
- (rand() %
|
|
- RANDOM_WIDTH)),
|
|
- pWin->nextSib, VTMove);
|
|
+
|
|
+ vlist[0] = -(rand() % RANDOM_WIDTH);
|
|
+ vlist[1] = -(rand() % RANDOM_WIDTH);
|
|
+ ConfigureWindow(pWin, CWX | CWY, vlist, client);
|
|
+
|
|
screenIsSaved = SCREEN_SAVER_ON;
|
|
}
|
|
/*
|
|
--
|
|
2.16.4
|
|
|