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].

Reply via email to