[hackers] [swk] do not handle modifier-only keycodes || pancake

From: <hg_AT_suckless.org>
Date: Tue, 20 Apr 2010 08:38:32 +0000 (UTC)

changeset: 8:680faaba0568
tag: tip
user: pancake <pancake_AT_nopcode.org>
date: Tue Apr 20 10:32:00 2010 +0200
files: gi_sdl.c swk.h
description:
do not handle modifier-only keycodes
fix key modifier enum

diff -r e5260f6c7f92 -r 680faaba0568 gi_sdl.c
--- a/gi_sdl.c Tue Apr 20 10:26:17 2010 +0200
+++ b/gi_sdl.c Tue Apr 20 10:32:00 2010 +0200
@@ -67,21 +67,23 @@
                 fprintf(stderr, "event: click %d\n", event.button.button);
                 break;
         case SDL_KEYDOWN:
- ret = &ev;
- ev.type = EKey;
- ev.data.key.keycode = event.key.keysym.unicode;
- ev.data.key.modmask = 0;
- if(event.key.keysym.mod & KMOD_LCTRL ||
- event.key.keysym.mod & KMOD_RCTRL)
- ev.data.key.modmask |= Ctrl;
- if(event.key.keysym.mod & KMOD_LSHIFT||
- event.key.keysym.mod & KMOD_RSHIFT)
- ev.data.key.modmask |= Shift;
- if(event.key.keysym.mod & KMOD_LMETA ||
- event.key.keysym.mod & KMOD_RMETA)
- ev.data.key.modmask |= Meta;
- fprintf(stderr, "event: key %d %d\n",
- ev.data.key.modmask, ev.data.key.keycode);
+ if (ev.data.key.keycode != 0 && event.key.keysym.unicode != 0) {
+ ret = &ev;
+ ev.type = EKey;
+ ev.data.key.keycode = event.key.keysym.unicode;
+ ev.data.key.modmask = 0;
+ if(event.key.keysym.mod & KMOD_LCTRL ||
+ event.key.keysym.mod & KMOD_RCTRL)
+ ev.data.key.modmask |= Ctrl;
+ if(event.key.keysym.mod & KMOD_LSHIFT||
+ event.key.keysym.mod & KMOD_RSHIFT)
+ ev.data.key.modmask |= Shift;
+ if(event.key.keysym.mod & KMOD_LMETA ||
+ event.key.keysym.mod & KMOD_RMETA)
+ ev.data.key.modmask |= Meta;
+ fprintf(stderr, "event: key %d %d\n",
+ ev.data.key.modmask, ev.data.key.keycode);
+ }
                 break;
         case SDL_QUIT:
                 fprintf(stderr, "event: quit\n");
diff -r e5260f6c7f92 -r 680faaba0568 swk.h
--- a/swk.h Tue Apr 20 10:26:17 2010 +0200
+++ b/swk.h Tue Apr 20 10:32:00 2010 +0200
@@ -2,7 +2,7 @@
 #define SWK_NEWLINE .h=-1, .w=-1
 
 typedef enum { EVoid, EClick, EMotion, EKey, EExpose, EQuit, ELast } SwkEventType;
-typedef enum { Ctrl=1, Meta=2, Shift=4 } SwkKeyMod;
+typedef enum { Shift=1, Ctrl=2, Meta=4 } SwkKeyMod;
 
 typedef struct SwkBox SwkBox;
 
Received on Tue Apr 20 2010 - 08:38:32 UTC

This archive was generated by hypermail 2.2.0 : Tue Apr 20 2010 - 08:48:04 UTC