summaryrefslogtreecommitdiff
path: root/src/keyboard.c
diff options
context:
space:
mode:
authorOlivier Fourdan <fourdan.olivier@wanadoo.fr>2004-05-13 21:43:52 +0000
committerOlivier Fourdan <fourdan.olivier@wanadoo.fr>2004-05-13 21:43:52 +0000
commitca7e943e7294bdb6e4c8f86ebeaf03ac19ef8b8b (patch)
treec567860239a4497b5c3810906f140c5d8790bead /src/keyboard.c
parentcfe94f82e2f1134d307ab8b1de264ef4420e450d (diff)
downloadxfwm4-ca7e943e7294bdb6e4c8f86ebeaf03ac19ef8b8b.tar.gz
Get rid of out own Xinerama impl. and use GdkScreen routines instead (that fixes at least two issues I can see ,the requirement to have Xienrama enabled in libxfcegui4 to get support for in in xfwm4, and as a side effect, xfwm4 is now compatible with SUN Xinerama which is slightly different from XFree Xinierama)
Add a new theme, from my numerous attempts to deign a default xfwm4 theme for 4.2 Remove the theme "synthetic" that sould be moved to xfwm4-themes package (Old svn revision: 11752)
Diffstat (limited to 'src/keyboard.c')
-rw-r--r--src/keyboard.c428
1 files changed, 214 insertions, 214 deletions
diff --git a/src/keyboard.c b/src/keyboard.c
index 6ef749d8a..1e809eec6 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -1,20 +1,20 @@
/*
- 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; You may only use version 2 of the License,
- you have no option to use any other version.
+ 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; You may only use version 2 of the License,
+ you have no option to use any other 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.
+ 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.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- oroborus - (c) 2001 Ken Lynch
- xfwm4 - (c) 2002-2003 Olivier Fourdan
+ oroborus - (c) 2001 Ken Lynch
+ xfwm4 - (c) 2002-2003 Olivier Fourdan
*/
@@ -23,11 +23,11 @@
#endif
#include <X11/Xlib.h>
-#include <libxfce4util/debug.h>
+#include <glib.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
-#include <glib.h>
+#include <libxfce4util/debug.h>
#include "keyboard.h"
unsigned int KeyMask;
@@ -58,48 +58,48 @@ parseKeyString (Display * dpy, MyKey * key, char *str)
if (!g_ascii_strcasecmp (str, "none"))
{
- return;
+ return;
}
k = strrchr (str, '+');
if (k)
{
- /* There is a modifier */
- gchar *tmp;
-
- tmp = g_ascii_strdown ((gchar *) str, -1);
-
- key->keycode = XKeysymToKeycode (dpy, XStringToKeysym (++k));
- if (strstr (tmp, "shift"))
- {
- key->modifier = key->modifier | ShiftMask;
- }
- if (strstr (tmp, "control"))
- {
- key->modifier = key->modifier | ControlMask;
- }
- if (strstr (tmp, "alt") || strstr (tmp, "mod1"))
- {
- key->modifier = key->modifier | AltMask;
- }
- if (strstr (tmp, "meta") || strstr (tmp, "mod2"))
- {
- key->modifier = key->modifier | MetaMask;
- }
- if (strstr (tmp, "hyper"))
- {
- key->modifier = key->modifier | HyperMask;
- }
- if (strstr (tmp, "super"))
- {
- key->modifier = key->modifier | SuperMask;
- }
- g_free (tmp);
+ /* There is a modifier */
+ gchar *tmp;
+
+ tmp = g_ascii_strdown ((gchar *) str, -1);
+
+ key->keycode = XKeysymToKeycode (dpy, XStringToKeysym (++k));
+ if (strstr (tmp, "shift"))
+ {
+ key->modifier = key->modifier | ShiftMask;
+ }
+ if (strstr (tmp, "control"))
+ {
+ key->modifier = key->modifier | ControlMask;
+ }
+ if (strstr (tmp, "alt") || strstr (tmp, "mod1"))
+ {
+ key->modifier = key->modifier | AltMask;
+ }
+ if (strstr (tmp, "meta") || strstr (tmp, "mod2"))
+ {
+ key->modifier = key->modifier | MetaMask;
+ }
+ if (strstr (tmp, "hyper"))
+ {
+ key->modifier = key->modifier | HyperMask;
+ }
+ if (strstr (tmp, "super"))
+ {
+ key->modifier = key->modifier | SuperMask;
+ }
+ g_free (tmp);
}
else
{
- key->keycode = XKeysymToKeycode (dpy, XStringToKeysym (str));
- key->modifier = 0;
+ key->keycode = XKeysymToKeycode (dpy, XStringToKeysym (str));
+ key->modifier = 0;
}
}
@@ -110,35 +110,35 @@ grabKey (Display * dpy, MyKey * key, Window w)
if (key->keycode)
{
- if (key->modifier == 0)
- {
- XGrabKey (dpy, key->keycode, AnyModifier, w, FALSE,
- GrabModeAsync, GrabModeAsync);
- }
- else
- {
- /* Here we grab all combinations of well known modifiers */
- XGrabKey (dpy, key->keycode, key->modifier, w, FALSE,
- GrabModeAsync, GrabModeAsync);
- XGrabKey (dpy, key->keycode, key->modifier | ScrollLockMask, w,
- FALSE, GrabModeAsync, GrabModeAsync);
- XGrabKey (dpy, key->keycode, key->modifier | NumLockMask, w,
- FALSE, GrabModeAsync, GrabModeAsync);
- XGrabKey (dpy, key->keycode, key->modifier | CapsLockMask, w,
- FALSE, GrabModeAsync, GrabModeAsync);
- XGrabKey (dpy, key->keycode,
- key->modifier | ScrollLockMask | NumLockMask, w, FALSE,
- GrabModeAsync, GrabModeAsync);
- XGrabKey (dpy, key->keycode,
- key->modifier | ScrollLockMask | CapsLockMask, w, FALSE,
- GrabModeAsync, GrabModeAsync);
- XGrabKey (dpy, key->keycode,
- key->modifier | CapsLockMask | NumLockMask, w, FALSE,
- GrabModeAsync, GrabModeAsync);
- XGrabKey (dpy, key->keycode,
- key->modifier | ScrollLockMask | CapsLockMask | NumLockMask,
- w, FALSE, GrabModeAsync, GrabModeAsync);
- }
+ if (key->modifier == 0)
+ {
+ XGrabKey (dpy, key->keycode, AnyModifier, w, FALSE,
+ GrabModeAsync, GrabModeAsync);
+ }
+ else
+ {
+ /* Here we grab all combinations of well known modifiers */
+ XGrabKey (dpy, key->keycode, key->modifier, w, FALSE,
+ GrabModeAsync, GrabModeAsync);
+ XGrabKey (dpy, key->keycode, key->modifier | ScrollLockMask, w,
+ FALSE, GrabModeAsync, GrabModeAsync);
+ XGrabKey (dpy, key->keycode, key->modifier | NumLockMask, w,
+ FALSE, GrabModeAsync, GrabModeAsync);
+ XGrabKey (dpy, key->keycode, key->modifier | CapsLockMask, w,
+ FALSE, GrabModeAsync, GrabModeAsync);
+ XGrabKey (dpy, key->keycode,
+ key->modifier | ScrollLockMask | NumLockMask, w, FALSE,
+ GrabModeAsync, GrabModeAsync);
+ XGrabKey (dpy, key->keycode,
+ key->modifier | ScrollLockMask | CapsLockMask, w, FALSE,
+ GrabModeAsync, GrabModeAsync);
+ XGrabKey (dpy, key->keycode,
+ key->modifier | CapsLockMask | NumLockMask, w, FALSE,
+ GrabModeAsync, GrabModeAsync);
+ XGrabKey (dpy, key->keycode,
+ key->modifier | ScrollLockMask | CapsLockMask | NumLockMask,
+ w, FALSE, GrabModeAsync, GrabModeAsync);
+ }
}
}
@@ -157,45 +157,45 @@ grabButton (Display * dpy, int button, int modifier, Window w)
if (modifier == AnyModifier)
{
- XGrabButton (dpy, button, AnyModifier, w, FALSE,
- ButtonPressMask|ButtonReleaseMask, GrabModeSync, GrabModeAsync,
- None, None);
+ XGrabButton (dpy, button, AnyModifier, w, FALSE,
+ ButtonPressMask|ButtonReleaseMask, GrabModeSync, GrabModeAsync,
+ None, None);
}
else
{
- /* Here we grab all combinations of well known modifiers */
- XGrabButton (dpy, button, modifier,
- w, FALSE,
- ButtonPressMask|ButtonReleaseMask, GrabModeSync, GrabModeAsync,
- None, None);
- XGrabButton (dpy, button, modifier | ScrollLockMask,
- w, FALSE,
- ButtonPressMask|ButtonReleaseMask, GrabModeSync, GrabModeAsync,
- None, None);
- XGrabButton (dpy, button, modifier | NumLockMask,
- w, FALSE,
- ButtonPressMask|ButtonReleaseMask, GrabModeSync, GrabModeAsync,
- None, None);
- XGrabButton (dpy, button, modifier | CapsLockMask, w, FALSE,
- ButtonPressMask|ButtonReleaseMask, GrabModeSync, GrabModeAsync,
- None, None);
- XGrabButton (dpy, button, modifier | ScrollLockMask | NumLockMask,
- w, FALSE,
- ButtonPressMask|ButtonReleaseMask, GrabModeSync, GrabModeAsync,
- None, None);
- XGrabButton (dpy, button, modifier | ScrollLockMask | CapsLockMask,
- w, FALSE,
- ButtonPressMask|ButtonReleaseMask, GrabModeSync, GrabModeAsync,
- None, None);
- XGrabButton (dpy, button, modifier | CapsLockMask | NumLockMask,
- w, FALSE,
- ButtonPressMask|ButtonReleaseMask, GrabModeSync, GrabModeAsync,
- None, None);
- XGrabButton (dpy, button,
- modifier | ScrollLockMask | CapsLockMask | NumLockMask,
- w, FALSE,
- ButtonPressMask|ButtonReleaseMask, GrabModeSync, GrabModeAsync,
- None, None);
+ /* Here we grab all combinations of well known modifiers */
+ XGrabButton (dpy, button, modifier,
+ w, FALSE,
+ ButtonPressMask|ButtonReleaseMask, GrabModeSync, GrabModeAsync,
+ None, None);
+ XGrabButton (dpy, button, modifier | ScrollLockMask,
+ w, FALSE,
+ ButtonPressMask|ButtonReleaseMask, GrabModeSync, GrabModeAsync,
+ None, None);
+ XGrabButton (dpy, button, modifier | NumLockMask,
+ w, FALSE,
+ ButtonPressMask|ButtonReleaseMask, GrabModeSync, GrabModeAsync,
+ None, None);
+ XGrabButton (dpy, button, modifier | CapsLockMask, w, FALSE,
+ ButtonPressMask|ButtonReleaseMask, GrabModeSync, GrabModeAsync,
+ None, None);
+ XGrabButton (dpy, button, modifier | ScrollLockMask | NumLockMask,
+ w, FALSE,
+ ButtonPressMask|ButtonReleaseMask, GrabModeSync, GrabModeAsync,
+ None, None);
+ XGrabButton (dpy, button, modifier | ScrollLockMask | CapsLockMask,
+ w, FALSE,
+ ButtonPressMask|ButtonReleaseMask, GrabModeSync, GrabModeAsync,
+ None, None);
+ XGrabButton (dpy, button, modifier | CapsLockMask | NumLockMask,
+ w, FALSE,
+ ButtonPressMask|ButtonReleaseMask, GrabModeSync, GrabModeAsync,
+ None, None);
+ XGrabButton (dpy, button,
+ modifier | ScrollLockMask | CapsLockMask | NumLockMask,
+ w, FALSE,
+ ButtonPressMask|ButtonReleaseMask, GrabModeSync, GrabModeAsync,
+ None, None);
}
}
@@ -208,19 +208,19 @@ ungrabButton (Display * dpy, int button, int modifier, Window w)
if (modifier == AnyModifier)
{
- XUngrabButton (dpy, button, AnyModifier, w);
+ XUngrabButton (dpy, button, AnyModifier, w);
}
else
{
- /* Here we ungrab all combinations of well known modifiers */
- XUngrabButton (dpy, button, modifier, w);
- XUngrabButton (dpy, button, modifier | ScrollLockMask, w);
- XUngrabButton (dpy, button, modifier | NumLockMask, w);
- XUngrabButton (dpy, button, modifier | CapsLockMask, w);
- XUngrabButton (dpy, button, modifier | ScrollLockMask | NumLockMask, w);
- XUngrabButton (dpy, button, modifier | ScrollLockMask | CapsLockMask, w);
- XUngrabButton (dpy, button, modifier | CapsLockMask | NumLockMask, w);
- XUngrabButton (dpy, button, modifier | ScrollLockMask | CapsLockMask | NumLockMask, w);
+ /* Here we ungrab all combinations of well known modifiers */
+ XUngrabButton (dpy, button, modifier, w);
+ XUngrabButton (dpy, button, modifier | ScrollLockMask, w);
+ XUngrabButton (dpy, button, modifier | NumLockMask, w);
+ XUngrabButton (dpy, button, modifier | CapsLockMask, w);
+ XUngrabButton (dpy, button, modifier | ScrollLockMask | NumLockMask, w);
+ XUngrabButton (dpy, button, modifier | ScrollLockMask | CapsLockMask, w);
+ XUngrabButton (dpy, button, modifier | CapsLockMask | NumLockMask, w);
+ XUngrabButton (dpy, button, modifier | ScrollLockMask | CapsLockMask | NumLockMask, w);
}
}
@@ -231,116 +231,116 @@ initModifiers (Display * dpy)
int m, k;
AltMask = MetaMask = NumLockMask = ScrollLockMask = CapsLockMask =
- SuperMask = HyperMask = 0;
+ SuperMask = HyperMask = 0;
if (xmk)
{
- KeyCode *c = xmk->modifiermap;
- KeyCode numLockKeyCode;
- KeyCode scrollLockKeyCode;
- KeyCode capsLockKeyCode;
- KeyCode altKeyCode;
- KeyCode metaKeyCode;
- KeyCode superKeyCode;
- KeyCode hyperKeyCode;
-
- numLockKeyCode = XKeysymToKeycode (dpy, XK_Num_Lock);
- scrollLockKeyCode = XKeysymToKeycode (dpy, XK_Scroll_Lock);
- capsLockKeyCode = XKeysymToKeycode (dpy, XK_Caps_Lock);
- altKeyCode = XKeysymToKeycode (dpy, XK_Alt_L);
- metaKeyCode = XKeysymToKeycode (dpy, XK_Meta_L);
- superKeyCode = XKeysymToKeycode (dpy, XK_Super_L);
- hyperKeyCode = XKeysymToKeycode (dpy, XK_Hyper_L);
-
- if (!altKeyCode)
- {
- altKeyCode = XKeysymToKeycode (dpy, XK_Alt_R);
- }
- if (!metaKeyCode)
- {
- metaKeyCode = XKeysymToKeycode (dpy, XK_Meta_R);
- }
- if (!superKeyCode)
- {
- superKeyCode = XKeysymToKeycode (dpy, XK_Super_R);
- }
- if (!hyperKeyCode)
- {
- hyperKeyCode = XKeysymToKeycode (dpy, XK_Hyper_R);
- }
-
-
- for (m = 0; m < 8; m++)
- {
- for (k = 0; k < xmk->max_keypermod; k++, c++)
- {
- if (*c == NoSymbol)
- {
- continue;
- }
- if (*c == numLockKeyCode)
- {
- NumLockMask = (1 << m);
- }
- if (*c == scrollLockKeyCode)
- {
- ScrollLockMask = (1 << m);
- }
- if (*c == capsLockKeyCode)
- {
- CapsLockMask = (1 << m);
- }
- if (*c == altKeyCode)
- {
- AltMask = (1 << m);
- }
- if (*c == metaKeyCode)
- {
- MetaMask = (1 << m);
- }
- if (*c == superKeyCode)
- {
- SuperMask = (1 << m);
- }
- if (*c == hyperKeyCode)
- {
- HyperMask = (1 << m);
- }
- }
- }
- XFreeModifiermap (xmk);
+ KeyCode *c = xmk->modifiermap;
+ KeyCode numLockKeyCode;
+ KeyCode scrollLockKeyCode;
+ KeyCode capsLockKeyCode;
+ KeyCode altKeyCode;
+ KeyCode metaKeyCode;
+ KeyCode superKeyCode;
+ KeyCode hyperKeyCode;
+
+ numLockKeyCode = XKeysymToKeycode (dpy, XK_Num_Lock);
+ scrollLockKeyCode = XKeysymToKeycode (dpy, XK_Scroll_Lock);
+ capsLockKeyCode = XKeysymToKeycode (dpy, XK_Caps_Lock);
+ altKeyCode = XKeysymToKeycode (dpy, XK_Alt_L);
+ metaKeyCode = XKeysymToKeycode (dpy, XK_Meta_L);
+ superKeyCode = XKeysymToKeycode (dpy, XK_Super_L);
+ hyperKeyCode = XKeysymToKeycode (dpy, XK_Hyper_L);
+
+ if (!altKeyCode)
+ {
+ altKeyCode = XKeysymToKeycode (dpy, XK_Alt_R);
+ }
+ if (!metaKeyCode)
+ {
+ metaKeyCode = XKeysymToKeycode (dpy, XK_Meta_R);
+ }
+ if (!superKeyCode)
+ {
+ superKeyCode = XKeysymToKeycode (dpy, XK_Super_R);
+ }
+ if (!hyperKeyCode)
+ {
+ hyperKeyCode = XKeysymToKeycode (dpy, XK_Hyper_R);
+ }
+
+
+ for (m = 0; m < 8; m++)
+ {
+ for (k = 0; k < xmk->max_keypermod; k++, c++)
+ {
+ if (*c == NoSymbol)
+ {
+ continue;
+ }
+ if (*c == numLockKeyCode)
+ {
+ NumLockMask = (1 << m);
+ }
+ if (*c == scrollLockKeyCode)
+ {
+ ScrollLockMask = (1 << m);
+ }
+ if (*c == capsLockKeyCode)
+ {
+ CapsLockMask = (1 << m);
+ }
+ if (*c == altKeyCode)
+ {
+ AltMask = (1 << m);
+ }
+ if (*c == metaKeyCode)
+ {
+ MetaMask = (1 << m);
+ }
+ if (*c == superKeyCode)
+ {
+ SuperMask = (1 << m);
+ }
+ if (*c == hyperKeyCode)
+ {
+ HyperMask = (1 << m);
+ }
+ }
+ }
+ XFreeModifiermap (xmk);
}
if (MetaMask == AltMask)
{
- MetaMask = 0;
+ MetaMask = 0;
}
if ((AltMask != 0) && (MetaMask == Mod1Mask))
{
- MetaMask = AltMask;
- AltMask = Mod1Mask;
+ MetaMask = AltMask;
+ AltMask = Mod1Mask;
}
if ((AltMask == 0) && (MetaMask != 0))
{
- if (MetaMask != Mod1Mask)
- {
- AltMask = Mod1Mask;
- }
- else
- {
- AltMask = MetaMask;
- MetaMask = 0;
- }
+ if (MetaMask != Mod1Mask)
+ {
+ AltMask = Mod1Mask;
+ }
+ else
+ {
+ AltMask = MetaMask;
+ MetaMask = 0;
+ }
}
if (AltMask == 0)
{
- AltMask = Mod1Mask;
+ AltMask = Mod1Mask;
}
KeyMask =
- ControlMask | ShiftMask | AltMask | MetaMask | SuperMask | HyperMask;
+ ControlMask | ShiftMask | AltMask | MetaMask | SuperMask | HyperMask;
ButtonMask =
- Button1Mask | Button2Mask | Button3Mask | Button4Mask | Button5Mask;
+ Button1Mask | Button2Mask | Button3Mask | Button4Mask | Button5Mask;
ButtonKeyMask = KeyMask | ButtonMask;
}