diff options
author | Vito Caputo <vcaputo@pengaru.com> | 2020-06-19 03:47:43 -0700 |
---|---|---|
committer | Vito Caputo <vcaputo@pengaru.com> | 2020-06-20 15:58:17 -0700 |
commit | 2e5fdc7f842eacce7b41eab794c4bfe97761e381 (patch) | |
tree | 4f11cd5aa2196a85c531c1eeb6c75ddb4b190465 /recordmydesktop/src/rmd_shortcuts.c | |
parent | c903c20a8554bd5a56fbe95f6598662e9fc0d2b6 (diff) |
*: just some fast and nasty reformatting
If I'm going to actually be modifying this program substantially
and possibly maintaining some fork of it, it's gotta be formmatted
how I prefer.
This is by no means done or perfect, rmd_types.h in particular is
quite the mess, I will be revisiting this issue...
Diffstat (limited to 'recordmydesktop/src/rmd_shortcuts.c')
-rw-r--r-- | recordmydesktop/src/rmd_shortcuts.c | 216 |
1 files changed, 103 insertions, 113 deletions
diff --git a/recordmydesktop/src/rmd_shortcuts.c b/recordmydesktop/src/rmd_shortcuts.c index 1712b93..bdc8daa 100644 --- a/recordmydesktop/src/rmd_shortcuts.c +++ b/recordmydesktop/src/rmd_shortcuts.c @@ -37,117 +37,107 @@ #include <stdlib.h> #include <string.h> -int rmdRegisterShortcut(Display *dpy, - Window root, - const char *shortcut, - HotKey *hotkey){ - - int keycode=0, - i, j ; - KeySym key=0; - unsigned int modifier_mask=0, - numlock_mask=0; - char *keystr=NULL; - XModifierKeymap *modmap; - - if(strstr(shortcut,"Shift")) - modifier_mask = modifier_mask|ShiftMask; - if(strstr(shortcut,"Control")) - modifier_mask = modifier_mask|ControlMask; - if(strstr(shortcut,"Mod1")) - modifier_mask = modifier_mask|Mod1Mask; - if(strstr(shortcut,"Mod2")) - modifier_mask = modifier_mask|Mod2Mask; - if(strstr(shortcut,"Mod3")) - modifier_mask = modifier_mask|Mod3Mask; - if(strstr(shortcut,"Mod4")) - modifier_mask = modifier_mask|Mod4Mask; - if(strstr(shortcut,"Mod5")) - modifier_mask = modifier_mask|Mod5Mask; - - //we register the shortcut on the root - //window, which means on every keypress event, - //so I think it's neccessary to have at least one - //modifier. - if(modifier_mask == 0) - return 1; - if((keystr=rindex(shortcut,'+'))!=NULL){ - keystr++; - if((key=XStringToKeysym(keystr))==NoSymbol) - return 1; - else - keycode=XKeysymToKeycode(dpy,key); - } - else - return 1; - - - /* Key grabbing stuff taken from tilda who took it from yeahconsole - * who took it from evilwm */ - - modmap = XGetModifierMapping(dpy); - for(i=0;i<8;i++){ - for(j=0;j<modmap->max_keypermod;j++){ - if(modmap->modifiermap[i*modmap->max_keypermod+j]== - XKeysymToKeycode(dpy,XK_Num_Lock)) - numlock_mask=(1<<i); - } - } - XFreeModifiermap(modmap); - - hotkey->modnum=0; - hotkey->key=keycode; - - XGrabKey(dpy, - keycode, - modifier_mask, - root, - True, - GrabModeAsync, - GrabModeAsync); - hotkey->mask[0]=modifier_mask; - hotkey->modnum++; - - XGrabKey(dpy, - keycode, - LockMask | modifier_mask, - root, - True, - GrabModeAsync, - GrabModeAsync); - hotkey->mask[1]=LockMask | modifier_mask; - hotkey->modnum++; - - if(numlock_mask){ - - XGrabKey(dpy, - keycode, - numlock_mask | modifier_mask, - root, - True, - GrabModeAsync, - GrabModeAsync); - hotkey->mask[2]=numlock_mask | modifier_mask; - hotkey->modnum++; - - XGrabKey(dpy, - keycode, - numlock_mask | LockMask | modifier_mask, - root, - True, - GrabModeAsync, - GrabModeAsync); - hotkey->mask[3]=numlock_mask | LockMask | modifier_mask; - hotkey->modnum++; - - } - - return 0; - +int rmdRegisterShortcut( Display *dpy, + Window root, + const char *shortcut, + HotKey *hotkey) { + + int keycode=0, i, j ; + KeySym key=0; + unsigned int modifier_mask=0, numlock_mask=0; + char *keystr=NULL; + XModifierKeymap *modmap; + + if (strstr(shortcut,"Shift")) + modifier_mask = modifier_mask|ShiftMask; + if (strstr(shortcut,"Control")) + modifier_mask = modifier_mask|ControlMask; + if (strstr(shortcut,"Mod1")) + modifier_mask = modifier_mask|Mod1Mask; + if (strstr(shortcut,"Mod2")) + modifier_mask = modifier_mask|Mod2Mask; + if (strstr(shortcut,"Mod3")) + modifier_mask = modifier_mask|Mod3Mask; + if (strstr(shortcut,"Mod4")) + modifier_mask = modifier_mask|Mod4Mask; + if (strstr(shortcut,"Mod5")) + modifier_mask = modifier_mask|Mod5Mask; + + //we register the shortcut on the root + //window, which means on every keypress event, + //so I think it's neccessary to have at least one + //modifier. + if (modifier_mask == 0) + return 1; + if ((keystr=rindex(shortcut,'+'))!=NULL) { + keystr++; + if ((key=XStringToKeysym(keystr))==NoSymbol) + return 1; + else + keycode=XKeysymToKeycode(dpy,key); + } else + return 1; + + + /* Key grabbing stuff taken from tilda who took it from yeahconsole + * who took it from evilwm */ + + modmap = XGetModifierMapping(dpy); + for (i=0;i<8;i++) { + for (j=0;j<modmap->max_keypermod;j++) { + if (modmap->modifiermap[i*modmap->max_keypermod+j]== + XKeysymToKeycode(dpy,XK_Num_Lock)) + numlock_mask=(1<<i); + } + } + XFreeModifiermap(modmap); + + hotkey->modnum=0; + hotkey->key=keycode; + + XGrabKey( dpy, + keycode, + modifier_mask, + root, + True, + GrabModeAsync, + GrabModeAsync); + hotkey->mask[0]=modifier_mask; + hotkey->modnum++; + + XGrabKey( dpy, + keycode, + LockMask | modifier_mask, + root, + True, + GrabModeAsync, + GrabModeAsync); + hotkey->mask[1]=LockMask | modifier_mask; + hotkey->modnum++; + + if (numlock_mask) { + + XGrabKey( dpy, + keycode, + numlock_mask | modifier_mask, + root, + True, + GrabModeAsync, + GrabModeAsync); + hotkey->mask[2]=numlock_mask | modifier_mask; + hotkey->modnum++; + + XGrabKey( dpy, + keycode, + numlock_mask | LockMask | modifier_mask, + root, + True, + GrabModeAsync, + GrabModeAsync); + hotkey->mask[3]=numlock_mask | LockMask | modifier_mask; + hotkey->modnum++; + + } + + return 0; } - - - - - - |