1
0
mirror of https://github.com/gryf/wmaker.git synced 2026-03-19 17:23:33 +01:00

Revert "Prevent unnecessary RandR wmaker restart"

This reverts commit 3579c85af1.

As pointed out by David Maciejak himself, this patch triggers
an odd behavior:

 "Now I cannot do a rectangular selection on the desktop with the left
 click of the mouse like I used to do.
 Seems the XRRQueryVersion call to get randr version is messing up with the
 X events. I tried to move up the call in src/startup.c and src/main.c
 instead to the point where the bug cannot be reproduced if I am putting the
 XRRQueryVersion code just before the call to wDefaultsInitDomain
 "WMWindowAttributes" (in src/startup.c) which is really weird."
This commit is contained in:
Carlos R. Mafra
2025-12-30 20:18:03 +00:00
parent 3d993a7323
commit e356ef8c05
2 changed files with 10 additions and 21 deletions

View File

@@ -575,18 +575,14 @@ static void handleExtensions(XEvent * event)
}
#endif /*KEEP_XKB_LOCK_STATUS */
#ifdef USE_RANDR
if (w_global.xext.randr.supported) {
int base = w_global.xext.randr.event_base;
if (event->type == base + RRScreenChangeNotify ||
(event->type == base + RRNotify && ((XRRNotifyEvent*)event)->subtype == RRNotify_CrtcChange)) {
/* From xrandr man page: "Clients must call back into Xlib using
* XRRUpdateConfiguration when screen configuration change notify
* events are generated */
XRRUpdateConfiguration(event);
WCHANGE_STATE(WSTATE_RESTARTING);
Shutdown(WSRestartPreparationMode);
Restart(NULL,True);
}
if (w_global.xext.randr.supported && event->type == (w_global.xext.randr.event_base + RRScreenChangeNotify)) {
/* From xrandr man page: "Clients must call back into Xlib using
* XRRUpdateConfiguration when screen configuration change notify
* events are generated */
XRRUpdateConfiguration(event);
WCHANGE_STATE(WSTATE_RESTARTING);
Shutdown(WSRestartPreparationMode);
Restart(NULL,True);
}
#endif
}

View File

@@ -669,15 +669,8 @@ WScreen *wScreenInit(int screen_number)
#endif /* KEEP_XKB_LOCK_STATUS */
#ifdef USE_RANDR
if (w_global.xext.randr.supported) {
int major, minor;
if (XRRQueryVersion(dpy, &major, &minor)) {
if (major >= 1 && minor >= 2)
XRRSelectInput(dpy, scr->root_win, RRCrtcChangeNotifyMask);
else
XRRSelectInput(dpy, scr->root_win, RRScreenChangeNotifyMask);
}
}
if (w_global.xext.randr.supported)
XRRSelectInput(dpy, scr->root_win, RRScreenChangeNotifyMask);
#endif
XSync(dpy, False);