From: Christophe CURIS <[email protected]>
---
src/WindowMaker.h | 7 +++++++
src/event.c | 6 +-----
src/main.c | 5 -----
src/screen.c | 6 +-----
src/startup.c | 9 ++-------
5 files changed, 11 insertions(+), 22 deletions(-)
diff --git a/src/WindowMaker.h b/src/WindowMaker.h
index da8093d..5447eb8 100644
--- a/src/WindowMaker.h
+++ b/src/WindowMaker.h
@@ -579,6 +579,13 @@ extern struct wmaker_global_variables {
} shape;
#endif
+#ifdef KEEP_XKB_LOCK_STATUS
+ struct {
+ Bool supported;
+ int event_base;
+ } xkb;
+#endif
+
/*
* If no extension were activated, we would end up with an empty
* structure, which old compilers may not appreciate, so let's
diff --git a/src/event.c b/src/event.c
index 3968639..19934cd 100644
--- a/src/event.c
+++ b/src/event.c
@@ -81,10 +81,6 @@ extern WShortKey wKeyBindings[WKBD_LAST];
#define MOD_MASK wPreferences.modifier_mask
-#ifdef KEEP_XKB_LOCK_STATUS
-extern int wXkbEventBase;
-#endif
-
/************ Local stuff ***********/
static void saveTimestamp(XEvent *event);
@@ -551,7 +547,7 @@ static void handleExtensions(XEvent * event)
}
#endif
#ifdef KEEP_XKB_LOCK_STATUS
- if (wPreferences.modelock && (xkbevent->type == wXkbEventBase)) {
+ if (wPreferences.modelock && (xkbevent->type ==
w_global.xext.xkb.event_base)) {
handleXkbIndicatorStateNotify(event);
}
#endif /*KEEP_XKB_LOCK_STATUS */
diff --git a/src/main.c b/src/main.c
index 2cf91b3..f4c6d1a 100644
--- a/src/main.c
+++ b/src/main.c
@@ -88,11 +88,6 @@ WDDomain *WDWindowMaker = NULL;
WDDomain *WDWindowAttributes = NULL;
WDDomain *WDRootMenu = NULL;
-#ifdef KEEP_XKB_LOCK_STATUS
-Bool wXkbSupported;
-int wXkbEventBase;
-#endif
-
/* special flags */
char WDelayedActionSet = 0;
diff --git a/src/screen.c b/src/screen.c
index 18c76f5..d74f7ad 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -71,10 +71,6 @@
/**** Global variables ****/
-#ifdef KEEP_XKB_LOCK_STATUS
-extern int wXkbSupported;
-#endif
-
#ifdef HAVE_XRANDR
Bool has_randr;
int randr_event_base;
@@ -548,7 +544,7 @@ WScreen *wScreenInit(int screen_number)
/* Only GroupLock doesn't work correctly in my system since right-alt
* can change mode while holding it too - ]d
*/
- if (wXkbSupported) {
+ if (w_global.xext.xkb.supported) {
XkbSelectEvents(dpy, XkbUseCoreKbd, XkbStateNotifyMask,
XkbStateNotifyMask);
}
#endif /* KEEP_XKB_LOCK_STATUS */
diff --git a/src/startup.c b/src/startup.c
index 4d6799f..3e5b70d 100644
--- a/src/startup.c
+++ b/src/startup.c
@@ -90,11 +90,6 @@ extern WDDomain *WDRootMenu;
extern WDDomain *WDWindowAttributes;
extern WShortKey wKeyBindings[WKBD_LAST];
-#ifdef KEEP_XKB_LOCK_STATUS
-extern Bool wXkbSupported;
-extern int wXkbEventBase;
-#endif
-
#ifndef HAVE_INOTIFY
/* special flags */
extern char WDelayedActionSet;
@@ -636,8 +631,8 @@ void StartUp(Bool defaultScreenOnly)
#endif
#ifdef KEEP_XKB_LOCK_STATUS
- wXkbSupported = XkbQueryExtension(dpy, NULL, &wXkbEventBase, NULL,
NULL, NULL);
- if (wPreferences.modelock && !wXkbSupported) {
+ w_global.xext.xkb.supported = XkbQueryExtension(dpy, NULL,
&w_global.xext.xkb.event_base, NULL, NULL, NULL);
+ if (wPreferences.modelock && !w_global.xext.xkb.supported) {
wwarning(_("XKB is not supported. KbdModeLock is automatically
disabled."));
wPreferences.modelock = 0;
}
--
1.8.4.rc3
--
To unsubscribe, send mail to [email protected].