]> Dogcows Code - chaz/openbox/commitdiff
change openbox to use the libotk's keyboard.[ch] stuff instead of the old modkeys...
authorDana Jansens <danakj@orodu.net>
Fri, 27 Jul 2007 02:05:53 +0000 (22:05 -0400)
committerDana Jansens <danakj@orodu.net>
Sun, 20 Jan 2008 06:36:55 +0000 (01:36 -0500)
Makefile.am
obt/keyboard.c
obt/keyboard.h
openbox/event.c
openbox/grab.c
openbox/modkeys.c [deleted file]
openbox/modkeys.h [deleted file]
openbox/moveresize.c
openbox/openbox.c
openbox/translate.c
openbox/translate.h

index 770f587e30dae77483abfa00d33eb2d18cd2e9ef..bf6c8c0105220dfc7c97998b278d9ef7193e0eca 100644 (file)
@@ -256,8 +256,6 @@ openbox_openbox_SOURCES = \
        openbox/menu.c \
        openbox/menu.h \
        openbox/misc.h \
-       openbox/modkeys.c \
-       openbox/modkeys.h \
        openbox/mouse.c \
        openbox/mouse.h \
        openbox/moveresize.c \
index 944296804aadeb532451164d68de2b8bf66dd611..397504fb6b4af493af2425012804b407f19715c2 100644 (file)
@@ -40,7 +40,7 @@ static XModifierKeymap *modmap;
 static KeySym *keymap;
 static gint min_keycode, max_keycode, keysyms_per_keycode;
 /* This is a bitmask of the different masks for each modifier key */
-static guchar modkeys_keys[OBT_MODKEY_NUM_KEYS];
+static guchar modkeys_keys[OBT_KEYBOARD_NUM_MODKEYS];
 
 static gboolean alt_l = FALSE;
 static gboolean meta_l = FALSE;
@@ -57,7 +57,7 @@ void obt_keyboard_reload()
     started = TRUE;
 
     /* reset the keys to not be bound to any masks */
-    for (i = 0; i < OBT_MODKEY_NUM_KEYS; ++i)
+    for (i = 0; i < OBT_KEYBOARD_NUM_MODKEYS; ++i)
         modkeys_keys[i] = 0;
 
     modmap = XGetModifierMapping(obt_display);
@@ -92,9 +92,9 @@ void obt_keyboard_reload()
     }
 
     /* CapsLock, Shift, and Control are special and hard-coded */
-    modkeys_keys[OBT_MODKEY_KEY_CAPSLOCK] = LockMask;
-    modkeys_keys[OBT_MODKEY_KEY_SHIFT] = ShiftMask;
-    modkeys_keys[OBT_MODKEY_KEY_CONTROL] = ControlMask;
+    modkeys_keys[OBT_KEYBOARD_MODKEY_CAPSLOCK] = LockMask;
+    modkeys_keys[OBT_KEYBOARD_MODKEY_SHIFT] = ShiftMask;
+    modkeys_keys[OBT_KEYBOARD_MODKEY_CONTROL] = ControlMask;
 }
 
 void obt_keyboard_shutdown()
@@ -133,8 +133,8 @@ guint obt_keyboard_only_modmasks(guint mask)
                           because you could bind it to something else and it
                           should work as that modifier then. i think capslock
                           is weird in xkb. */
-    mask &= ~obt_keyboard_modkey_to_modmask(OBT_MODKEY_KEY_NUMLOCK);
-    mask &= ~obt_keyboard_modkey_to_modmask(OBT_MODKEY_KEY_SCROLLLOCK);
+    mask &= ~obt_keyboard_modkey_to_modmask(OBT_KEYBOARD_MODKEY_NUMLOCK);
+    mask &= ~obt_keyboard_modkey_to_modmask(OBT_KEYBOARD_MODKEY_SCROLLLOCK);
     return mask;
 }
 
@@ -148,39 +148,39 @@ static void set_modkey_mask(guchar mask, KeySym sym)
     /* find what key this is, and bind it to the mask */
 
     if (sym == XK_Num_Lock)
-        modkeys_keys[OBT_MODKEY_KEY_NUMLOCK] |= mask;
+        modkeys_keys[OBT_KEYBOARD_MODKEY_NUMLOCK] |= mask;
     else if (sym == XK_Scroll_Lock)
-        modkeys_keys[OBT_MODKEY_KEY_SCROLLLOCK] |= mask;
+        modkeys_keys[OBT_KEYBOARD_MODKEY_SCROLLLOCK] |= mask;
 
     else if (sym == XK_Super_L && super_l)
-        modkeys_keys[OBT_MODKEY_KEY_SUPER] |= mask;
+        modkeys_keys[OBT_KEYBOARD_MODKEY_SUPER] |= mask;
     else if (sym == XK_Super_L && !super_l)
         /* left takes precident over right, so erase any masks the right
            key may have set */
-        modkeys_keys[OBT_MODKEY_KEY_SUPER] = mask, super_l = TRUE;
+        modkeys_keys[OBT_KEYBOARD_MODKEY_SUPER] = mask, super_l = TRUE;
     else if (sym == XK_Super_R && !super_l)
-        modkeys_keys[OBT_MODKEY_KEY_SUPER] |= mask;
+        modkeys_keys[OBT_KEYBOARD_MODKEY_SUPER] |= mask;
 
     else if (sym == XK_Hyper_L && hyper_l)
-        modkeys_keys[OBT_MODKEY_KEY_HYPER] |= mask;
+        modkeys_keys[OBT_KEYBOARD_MODKEY_HYPER] |= mask;
     else if (sym == XK_Hyper_L && !hyper_l)
-        modkeys_keys[OBT_MODKEY_KEY_HYPER] = mask, hyper_l = TRUE;
+        modkeys_keys[OBT_KEYBOARD_MODKEY_HYPER] = mask, hyper_l = TRUE;
     else if (sym == XK_Hyper_R && !hyper_l)
-        modkeys_keys[OBT_MODKEY_KEY_HYPER] |= mask;
+        modkeys_keys[OBT_KEYBOARD_MODKEY_HYPER] |= mask;
 
     else if (sym == XK_Alt_L && alt_l)
-        modkeys_keys[OBT_MODKEY_KEY_ALT] |= mask;
+        modkeys_keys[OBT_KEYBOARD_MODKEY_ALT] |= mask;
     else if (sym == XK_Alt_L && !alt_l)
-        modkeys_keys[OBT_MODKEY_KEY_ALT] = mask, alt_l = TRUE;
+        modkeys_keys[OBT_KEYBOARD_MODKEY_ALT] = mask, alt_l = TRUE;
     else if (sym == XK_Alt_R && !alt_l)
-        modkeys_keys[OBT_MODKEY_KEY_ALT] |= mask;
+        modkeys_keys[OBT_KEYBOARD_MODKEY_ALT] |= mask;
 
     else if (sym == XK_Meta_L && meta_l)
-        modkeys_keys[OBT_MODKEY_KEY_META] |= mask;
+        modkeys_keys[OBT_KEYBOARD_MODKEY_META] |= mask;
     else if (sym == XK_Meta_L && !meta_l)
-        modkeys_keys[OBT_MODKEY_KEY_META] = mask, meta_l = TRUE;
+        modkeys_keys[OBT_KEYBOARD_MODKEY_META] = mask, meta_l = TRUE;
     else if (sym == XK_Meta_R && !meta_l)
-        modkeys_keys[OBT_MODKEY_KEY_META] |= mask;
+        modkeys_keys[OBT_KEYBOARD_MODKEY_META] |= mask;
 
     /* CapsLock, Shift, and Control are special and hard-coded */
 }
@@ -220,5 +220,6 @@ gunichar obt_keyboard_keycode_to_unichar(guint keycode)
         if (unikey == (gunichar)-1 || unikey == (gunichar)-2 || unikey == 0)
             unikey = 0;
     }
+    g_free(key);
     return unikey;
 }
index 348433fbbaabd5aea9fca23b502067097497a96f..bfe0e92508b35648fd69a0c0556272db8d3db26f 100644 (file)
@@ -27,17 +27,17 @@ G_BEGIN_DECLS
 /*! These keys are bound to the modifier masks in any fashion,
   except for CapsLock, Shift, and Control. */
 typedef enum {
-    OBT_MODKEY_KEY_CAPSLOCK,
-    OBT_MODKEY_KEY_NUMLOCK,
-    OBT_MODKEY_KEY_SCROLLLOCK,
-    OBT_MODKEY_KEY_SHIFT,
-    OBT_MODKEY_KEY_CONTROL,
-    OBT_MODKEY_KEY_SUPER,
-    OBT_MODKEY_KEY_HYPER,
-    OBT_MODKEY_KEY_META,
-    OBT_MODKEY_KEY_ALT,
-
-    OBT_MODKEY_NUM_KEYS
+    OBT_KEYBOARD_MODKEY_CAPSLOCK,
+    OBT_KEYBOARD_MODKEY_NUMLOCK,
+    OBT_KEYBOARD_MODKEY_SCROLLLOCK,
+    OBT_KEYBOARD_MODKEY_SHIFT,
+    OBT_KEYBOARD_MODKEY_CONTROL,
+    OBT_KEYBOARD_MODKEY_SUPER,
+    OBT_KEYBOARD_MODKEY_HYPER,
+    OBT_KEYBOARD_MODKEY_META,
+    OBT_KEYBOARD_MODKEY_ALT,
+
+    OBT_KEYBOARD_NUM_MODKEYS
 } ObtModkeysKey;
 
 void obt_keyboard_reload();
index 83be054127aca642a890fa6693d004087b47dcce..79ead346b2c32a10b3d2aaa7562807012cf8d10a 100644 (file)
 #include "menu.h"
 #include "menuframe.h"
 #include "keyboard.h"
-#include "modkeys.h"
 #include "mouse.h"
 #include "focus.h"
 #include "focus_cycle.h"
 #include "moveresize.h"
 #include "group.h"
 #include "stacking.h"
-#include "translate.h"
 #include "ping.h"
 #include "obt/display.h"
 #include "obt/prop.h"
+#include "obt/keyboard.h"
 
 #include <X11/Xlib.h>
 #include <X11/Xatom.h>
@@ -259,10 +258,10 @@ static void event_hack_mods(XEvent *e)
     switch (e->type) {
     case ButtonPress:
     case ButtonRelease:
-        e->xbutton.state = modkeys_only_modifier_masks(e->xbutton.state);
+        e->xbutton.state = obt_keyboard_only_modmasks(e->xbutton.state);
         break;
     case KeyPress:
-        e->xkey.state = modkeys_only_modifier_masks(e->xkey.state);
+        e->xkey.state = obt_keyboard_only_modmasks(e->xkey.state);
         break;
     case KeyRelease:
 #ifdef XKB
@@ -274,14 +273,14 @@ static void event_hack_mods(XEvent *e)
         else
 #endif
         {
-            e->xkey.state = modkeys_only_modifier_masks(e->xkey.state);
+            e->xkey.state = obt_keyboard_only_modmasks(e->xkey.state);
             /* remove from the state the mask of the modifier key being
                released, if it is a modifier key being released that is */
-            e->xkey.state &= ~modkeys_keycode_to_mask(e->xkey.keycode);
+            e->xkey.state &= ~obt_keyboard_keycode_to_modmask(e->xkey.keycode);
         }
         break;
     case MotionNotify:
-        e->xmotion.state = modkeys_only_modifier_masks(e->xmotion.state);
+        e->xmotion.state = obt_keyboard_only_modmasks(e->xmotion.state);
         /* compress events */
         {
             XEvent ce;
@@ -1676,7 +1675,7 @@ static gboolean event_handle_menu_keyboard(XEvent *ev)
 
     keycode = ev->xkey.keycode;
     state = ev->xkey.state;
-    unikey = translate_unichar(keycode);
+    unikey = obt_keyboard_keycode_to_unichar(keycode);
 
     frame = find_active_or_last_menu();
     if (frame == NULL)
index bc9d4cca6cd05444c4321d39f83ec070137cd0bd..4207b37d5aee357df270d7e5e76674f18de2b976 100644 (file)
 */
 
 #include "grab.h"
-#include "modkeys.h"
 #include "openbox.h"
 #include "event.h"
 #include "screen.h"
 #include "debug.h"
 #include "obt/display.h"
+#include "obt/keyboard.h"
 
 #include <glib.h>
 #include <X11/Xlib.h>
@@ -146,9 +146,9 @@ void grab_startup(gboolean reconfig)
     guint i = 0;
     guint num, caps, scroll;
 
-    num = modkeys_key_to_mask(OB_MODKEY_KEY_NUMLOCK);
-    caps = modkeys_key_to_mask(OB_MODKEY_KEY_CAPSLOCK);
-    scroll = modkeys_key_to_mask(OB_MODKEY_KEY_SCROLLLOCK);
+    num = obt_keyboard_modkey_to_modmask(OBT_KEYBOARD_MODKEY_NUMLOCK);
+    caps = obt_keyboard_modkey_to_modmask(OBT_KEYBOARD_MODKEY_CAPSLOCK);
+    scroll = obt_keyboard_modkey_to_modmask(OBT_KEYBOARD_MODKEY_SCROLLLOCK);
 
     mask_list[i++] = 0;
     mask_list[i++] = num;
diff --git a/openbox/modkeys.c b/openbox/modkeys.c
deleted file mode 100644 (file)
index 3ac70c1..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
-
-   modkeys.c for the Openbox window manager
-   Copyright (c) 2007        Dana Jansens
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   See the COPYING file for a copy of the GNU General Public License.
-*/
-
-#include "modkeys.h"
-#include "openbox.h"
-
-#include <X11/Xlib.h>
-#include <X11/keysym.h>
-
-/* These masks are constants and the modifier keys are bound to them as
-   anyone sees fit:
-        ShiftMask (1<<0), LockMask (1<<1), ControlMask (1<<2), Mod1Mask (1<<3),
-        Mod2Mask (1<<4), Mod3Mask (1<<5), Mod4Mask (1<<6), Mod5Mask (1<<7)
-*/
-#define NUM_MASKS 8
-#define ALL_MASKS 0xff /* an or'ing of all 8 keyboard masks */
-
-/* Get the bitflag for the n'th modifier mask */
-#define nth_mask(n) (1 << n)
-
-static void set_modkey_mask(guchar mask, KeySym sym);
-
-static XModifierKeymap *modmap;
-static KeySym *keymap;
-static gint min_keycode, max_keycode, keysyms_per_keycode;
-/* This is a bitmask of the different masks for each modifier key */
-static guchar modkeys_keys[OB_MODKEY_NUM_KEYS];
-
-static gboolean alt_l = FALSE;
-static gboolean meta_l = FALSE;
-static gboolean super_l = FALSE;
-static gboolean hyper_l = FALSE;
-
-void modkeys_startup(gboolean reconfigure)
-{
-    gint i, j, k;
-
-    /* reset the keys to not be bound to any masks */
-    for (i = 0; i < OB_MODKEY_NUM_KEYS; ++i)
-        modkeys_keys[i] = 0;
-
-    modmap = XGetModifierMapping(obt_display);
-    g_assert(modmap->max_keypermod > 0);
-
-    XDisplayKeycodes(obt_display, &min_keycode, &max_keycode);
-    keymap = XGetKeyboardMapping(obt_display, min_keycode,
-                                 max_keycode - min_keycode + 1,
-                                 &keysyms_per_keycode);
-
-    alt_l = meta_l = super_l = hyper_l = FALSE;
-
-    /* go through each of the modifier masks (eg ShiftMask, CapsMask...) */
-    for (i = 0; i < NUM_MASKS; ++i) {
-        /* go through each keycode that is bound to the mask */
-        for (j = 0; j < modmap->max_keypermod; ++j) {
-            KeySym sym;
-            /* get a keycode that is bound to the mask (i) */
-            KeyCode keycode = modmap->modifiermap[i*modmap->max_keypermod + j];
-            if (keycode) {
-                /* go through each keysym bound to the given keycode */
-                for (k = 0; k < keysyms_per_keycode; ++k) {
-                    sym = keymap[(keycode-min_keycode) * keysyms_per_keycode +
-                                 k];
-                    if (sym != NoSymbol) {
-                        /* bind the key to the mask (e.g. Alt_L => Mod1Mask) */
-                        set_modkey_mask(nth_mask(i), sym);
-                    }
-                }
-            }
-        }
-    }
-
-    /* CapsLock, Shift, and Control are special and hard-coded */
-    modkeys_keys[OB_MODKEY_KEY_CAPSLOCK] = LockMask;
-    modkeys_keys[OB_MODKEY_KEY_SHIFT] = ShiftMask;
-    modkeys_keys[OB_MODKEY_KEY_CONTROL] = ControlMask;
-}
-
-void modkeys_shutdown(gboolean reconfigure)
-{
-    XFreeModifiermap(modmap);
-    XFree(keymap);
-}
-
-guint modkeys_keycode_to_mask(guint keycode)
-{
-    gint i, j;
-    guint mask = 0;
-
-    if (keycode == NoSymbol) return 0;
-
-    /* go through each of the modifier masks (eg ShiftMask, CapsMask...) */
-    for (i = 0; i < NUM_MASKS; ++i) {
-        /* go through each keycode that is bound to the mask */
-        for (j = 0; j < modmap->max_keypermod; ++j) {
-            /* compare with a keycode that is bound to the mask (i) */
-            if (modmap->modifiermap[i*modmap->max_keypermod + j] == keycode)
-                mask |= nth_mask(i);
-        }
-    }
-    return mask;
-}
-
-guint modkeys_only_modifier_masks(guint mask)
-{
-    mask &= ALL_MASKS;
-    /* strip off these lock keys. they shouldn't affect key bindings */
-    mask &= ~LockMask; /* use the LockMask, not what capslock is bound to,
-                          because you could bind it to something else and it
-                          should work as that modifier then. i think capslock
-                          is weird in xkb. */
-    mask &= ~modkeys_key_to_mask(OB_MODKEY_KEY_NUMLOCK);
-    mask &= ~modkeys_key_to_mask(OB_MODKEY_KEY_SCROLLLOCK);
-    return mask;
-}
-
-guint modkeys_key_to_mask(ObModkeysKey key)
-{
-    return modkeys_keys[key];
-}
-
-static void set_modkey_mask(guchar mask, KeySym sym)
-{
-    /* find what key this is, and bind it to the mask */
-
-    if (sym == XK_Num_Lock)
-        modkeys_keys[OB_MODKEY_KEY_NUMLOCK] |= mask;
-    else if (sym == XK_Scroll_Lock)
-        modkeys_keys[OB_MODKEY_KEY_SCROLLLOCK] |= mask;
-
-    else if (sym == XK_Super_L && super_l)
-        modkeys_keys[OB_MODKEY_KEY_SUPER] |= mask;
-    else if (sym == XK_Super_L && !super_l)
-        /* left takes precident over right, so erase any masks the right
-           key may have set */
-        modkeys_keys[OB_MODKEY_KEY_SUPER] = mask, super_l = TRUE;
-    else if (sym == XK_Super_R && !super_l)
-        modkeys_keys[OB_MODKEY_KEY_SUPER] |= mask;
-
-    else if (sym == XK_Hyper_L && hyper_l)
-        modkeys_keys[OB_MODKEY_KEY_HYPER] |= mask;
-    else if (sym == XK_Hyper_L && !hyper_l)
-        modkeys_keys[OB_MODKEY_KEY_HYPER] = mask, hyper_l = TRUE;
-    else if (sym == XK_Hyper_R && !hyper_l)
-        modkeys_keys[OB_MODKEY_KEY_HYPER] |= mask;
-
-    else if (sym == XK_Alt_L && alt_l)
-        modkeys_keys[OB_MODKEY_KEY_ALT] |= mask;
-    else if (sym == XK_Alt_L && !alt_l)
-        modkeys_keys[OB_MODKEY_KEY_ALT] = mask, alt_l = TRUE;
-    else if (sym == XK_Alt_R && !alt_l)
-        modkeys_keys[OB_MODKEY_KEY_ALT] |= mask;
-
-    else if (sym == XK_Meta_L && meta_l)
-        modkeys_keys[OB_MODKEY_KEY_META] |= mask;
-    else if (sym == XK_Meta_L && !meta_l)
-        modkeys_keys[OB_MODKEY_KEY_META] = mask, meta_l = TRUE;
-    else if (sym == XK_Meta_R && !meta_l)
-        modkeys_keys[OB_MODKEY_KEY_META] |= mask;
-
-    /* CapsLock, Shift, and Control are special and hard-coded */
-}
-
-KeyCode modkeys_sym_to_code(KeySym sym)
-{
-    gint i, j;
-
-    /* go through each keycode and look for the keysym */
-    for (i = min_keycode; i <= max_keycode; ++i)
-        for (j = 0; j < keysyms_per_keycode; ++j)
-            if (sym == keymap[(i-min_keycode) * keysyms_per_keycode + j])
-                return i;
-    return 0;
-}
-
diff --git a/openbox/modkeys.h b/openbox/modkeys.h
deleted file mode 100644 (file)
index dc72f28..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
-
-   masks.h for the Openbox window manager
-   Copyright (c) 2007        Dana Jansens
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   See the COPYING file for a copy of the GNU General Public License.
-*/
-
-#ifndef ob__modkeys_h
-#define ob__modkeys_h
-
-#include <glib.h>
-#include <X11/Xlib.h>
-
-/*! These keys are bound to the modifier masks in any fashion,
-  except for CapsLock, Shift, and Control. */
-typedef enum {
-    OB_MODKEY_KEY_CAPSLOCK,
-    OB_MODKEY_KEY_NUMLOCK,
-    OB_MODKEY_KEY_SCROLLLOCK,
-    OB_MODKEY_KEY_SHIFT,
-    OB_MODKEY_KEY_CONTROL,
-    OB_MODKEY_KEY_SUPER,
-    OB_MODKEY_KEY_HYPER,
-    OB_MODKEY_KEY_META,
-    OB_MODKEY_KEY_ALT,
-
-    OB_MODKEY_NUM_KEYS
-} ObModkeysKey;
-
-void modkeys_startup(gboolean reconfigure);
-void modkeys_shutdown(gboolean reconfigure);
-
-/*! Get the modifier masks for a keycode. (eg. a keycode bound to Alt_L could
-  return a mask of (Mod1Mask | Mask3Mask)) */
-guint modkeys_keycode_to_mask(guint keycode);
-
-/*! Strip off all modifiers except for the modifier keys. This strips stuff
-  like Button1Mask, and also LockMask, NumLockMask, and ScrollLockMask */
-guint modkeys_only_modifier_masks(guint mask);
-
-/*! Get the modifier masks for a modifier key. This includes both the left and
-  right keys when there are both. */
-guint modkeys_key_to_mask(ObModkeysKey key);
-
-/*! Convert a KeySym to a KeyCode, because the X function is terrible - says
-  valgrind. */
-KeyCode modkeys_sym_to_code(KeySym sym);
-
-#endif
index 776f37cd99a38d56664bada2f952c57583697b16..38963dfc5d8de51769193a841dea4554c8870342 100644 (file)
@@ -24,7 +24,6 @@
 #include "frame.h"
 #include "openbox.h"
 #include "resist.h"
-#include "modkeys.h"
 #include "popup.h"
 #include "moveresize.h"
 #include "config.h"
@@ -34,6 +33,7 @@
 #include "render/theme.h"
 #include "obt/display.h"
 #include "obt/prop.h"
+#include "obt/keyboard.h"
 
 #include <X11/Xlib.h>
 #include <glib.h>
@@ -603,7 +603,7 @@ static void move_with_keys(gint keycode, gint state)
     gint dist = 0;
 
     /* shift means jump to edge */
-    if (state & modkeys_key_to_mask(OB_MODKEY_KEY_SHIFT)) {
+    if (state & obt_keyboard_modkey_to_modmask(OBT_KEYBOARD_MODKEY_SHIFT)) {
         gint x, y;
         ObDirection dir;
 
@@ -621,8 +621,11 @@ static void move_with_keys(gint keycode, gint state)
         dy = y - moveresize_client->area.y;
     } else {
         /* control means fine grained */
-        if (state & modkeys_key_to_mask(OB_MODKEY_KEY_CONTROL))
+        if (state &
+            obt_keyboard_modkey_to_modmask(OBT_KEYBOARD_MODKEY_CONTROL))
+        {
             dist = 1;
+        }
         else
             dist = KEY_DIST;
 
@@ -703,7 +706,7 @@ static void resize_with_keys(gint keycode, gint state)
     }
 
     /* shift means jump to edge */
-    if (state & modkeys_key_to_mask(OB_MODKEY_KEY_SHIFT)) {
+    if (state & obt_keyboard_modkey_to_modmask(OBT_KEYBOARD_MODKEY_SHIFT)) {
         gint x, y, w, h;
 
         if (keycode == ob_keycode(OB_KEY_RIGHT))
@@ -728,7 +731,9 @@ static void resize_with_keys(gint keycode, gint state)
             distw = moveresize_client->size_inc.width;
             resist = 1;
         }
-        else if (state & modkeys_key_to_mask(OB_MODKEY_KEY_CONTROL)) {
+        else if (state &
+                 obt_keyboard_modkey_to_modmask(OBT_KEYBOARD_MODKEY_CONTROL))
+        {
             distw = 1;
             resist = 1;
         }
@@ -740,7 +745,9 @@ static void resize_with_keys(gint keycode, gint state)
             disth = moveresize_client->size_inc.height;
             resist = 1;
         }
-        else if (state & modkeys_key_to_mask(OB_MODKEY_KEY_CONTROL)) {
+        else if (state &
+                 obt_keyboard_modkey_to_modmask(OBT_KEYBOARD_MODKEY_CONTROL))
+        {
             disth = 1;
             resist = 1;
         }
index fb19cbdfe76ad9528c796aff42b8b93d3c3f8973..aefe6851dc255a31545cddab586f77c3f0f1cb47 100644 (file)
@@ -206,12 +206,12 @@ gint main(gint argc, gchar **argv)
             if (reconfigure) obt_keyboard_reload();
 
             /* get the keycodes for keys we use */
-            keys[OB_KEY_RETURN] = modkeys_sym_to_code(XK_Return);
-            keys[OB_KEY_ESCAPE] = modkeys_sym_to_code(XK_Escape);
-            keys[OB_KEY_LEFT] = modkeys_sym_to_code(XK_Left);
-            keys[OB_KEY_RIGHT] = modkeys_sym_to_code(XK_Right);
-            keys[OB_KEY_UP] = modkeys_sym_to_code(XK_Up);
-            keys[OB_KEY_DOWN] = modkeys_sym_to_code(XK_Down);
+            keys[OB_KEY_RETURN] = obt_keyboard_keysym_to_keycode(XK_Return);
+            keys[OB_KEY_ESCAPE] = obt_keyboard_keysym_to_keycode(XK_Escape);
+            keys[OB_KEY_LEFT] = obt_keyboard_keysym_to_keycode(XK_Left);
+            keys[OB_KEY_RIGHT] = obt_keyboard_keysym_to_keycode(XK_Right);
+            keys[OB_KEY_UP] = obt_keyboard_keysym_to_keycode(XK_Up);
+            keys[OB_KEY_DOWN] = obt_keyboard_keysym_to_keycode(XK_Down);
 
             {
                 ObParseInst *i;
index 263bffa4614b72ed8945dd291e9666afe659f645..7e89e32cf0cc03de34d383ce2fef6a0d0c6b961f 100644 (file)
@@ -19,9 +19,9 @@
 
 #include "openbox.h"
 #include "mouse.h"
-#include "modkeys.h"
-#include "translate.h"
 #include "gettext.h"
+#include "obt/keyboard.h"
+
 #include <glib.h>
 #include <string.h>
 #include <stdlib.h>
@@ -38,23 +38,23 @@ static guint translate_modifier(gchar *str)
 
     else if (!g_ascii_strcasecmp("Control", str) ||
              !g_ascii_strcasecmp("C", str))
-        mask = modkeys_key_to_mask(OB_MODKEY_KEY_CONTROL);
+        mask = obt_keyboard_modkey_to_modmask(OBT_KEYBOARD_MODKEY_CONTROL);
     else if (!g_ascii_strcasecmp("Alt", str) ||
              !g_ascii_strcasecmp("A", str))
-        mask = modkeys_key_to_mask(OB_MODKEY_KEY_ALT);
+        mask = obt_keyboard_modkey_to_modmask(OBT_KEYBOARD_MODKEY_ALT);
     else if (!g_ascii_strcasecmp("Meta", str) ||
              !g_ascii_strcasecmp("M", str))
-        mask = modkeys_key_to_mask(OB_MODKEY_KEY_META);
+        mask = obt_keyboard_modkey_to_modmask(OBT_KEYBOARD_MODKEY_META);
     /* W = windows key, is linked to the Super_L/R buttons */
     else if (!g_ascii_strcasecmp("Super", str) ||
              !g_ascii_strcasecmp("W", str))
-        mask = modkeys_key_to_mask(OB_MODKEY_KEY_SUPER);
+        mask = obt_keyboard_modkey_to_modmask(OBT_KEYBOARD_MODKEY_SUPER);
     else if (!g_ascii_strcasecmp("Shift", str) ||
              !g_ascii_strcasecmp("S", str))
-        mask = modkeys_key_to_mask(OB_MODKEY_KEY_SHIFT);
+        mask = obt_keyboard_modkey_to_modmask(OBT_KEYBOARD_MODKEY_SHIFT);
     else if (!g_ascii_strcasecmp("Hyper", str) ||
              !g_ascii_strcasecmp("H", str))
-        mask = modkeys_key_to_mask(OB_MODKEY_KEY_HYPER);
+        mask = obt_keyboard_modkey_to_modmask(OBT_KEYBOARD_MODKEY_HYPER);
     else
         g_message(_("Invalid modifier key '%s' in key/mouse binding"), str);
 
@@ -158,30 +158,3 @@ translation_fail:
     g_strfreev(parsed);
     return ret;
 }
-
-gchar *translate_keycode(guint keycode)
-{
-    KeySym sym;
-    const gchar *ret = NULL;
-
-    if ((sym = XKeycodeToKeysym(obt_display, keycode, 0)) != NoSymbol)
-        ret = XKeysymToString(sym);
-    return g_locale_to_utf8(ret, -1, NULL, NULL, NULL);
-}
-
-gunichar translate_unichar(guint keycode)
-{
-    gunichar unikey = 0;
-
-    char *key;
-    if ((key = translate_keycode(keycode)) != NULL &&
-        /* don't accept keys that aren't a single letter, like "space" */
-        key[1] == '\0')
-    {
-        unikey = g_utf8_get_char_validated(key, -1);
-        if (unikey == (gunichar)-1 || unikey == (gunichar)-2 || unikey == 0)
-            unikey = 0;
-    }
-    g_free(key);
-    return unikey;
-}
index 6d9e23bcb26f332305ab64734e380539371e98e7..8249514e10e5fdd47051f4abe96a1fe5f2aa6cda 100644 (file)
 gboolean translate_button(const gchar *str, guint *state, guint *keycode);
 gboolean translate_key(const gchar *str, guint *state, guint *keycode);
 
-/*! Give the string form of a keycode */
-gchar *translate_keycode(guint keycode);
-
-/*! Translate a keycode to the unicode character it represents */
-gunichar translate_unichar(guint keycode);
-
 #endif
This page took 0.052779 seconds and 4 git commands to generate.