3 Jul 03:07
Agar: r8211 - trunk/gui
Author: vedge
Date: 2009-07-02 22:07:15 -0300 (Thu, 02 Jul 2009)
New Revision: 8211
Modified:
trunk/gui/AG_Window.3
trunk/gui/window.c
trunk/gui/window.h
Log:
+ AG_WINDOW_MODKEYEVENTS flag
Modified: trunk/gui/AG_Window.3
===================================================================
--- trunk/gui/AG_Window.3 2009-07-01 02:18:04 UTC (rev 8210)
+++ trunk/gui/AG_Window.3 2009-07-03 01:07:15 UTC (rev 8211)
@@ -567,6 +567,9 @@
User is not allowed to move the window.
.It AG_WINDOW_NOCLIPPING
Disable the clipping rectangle over the window area (enabled by default)..
+.It AG_WINDOW_MODKEYEVENTS
+Deliver discrete events to widget when modifier keys (CTRL, ALT, SHIFT)
+are pressed.
.El
.Sh EVENTS
The
Modified: trunk/gui/window.c
===================================================================
--- trunk/gui/window.c 2009-07-01 02:18:04 UTC (rev 8210)
+++ trunk/gui/window.c 2009-07-03 01:07:15 UTC (rev 8211)
@@ -1026,18 +1026,19 @@
(int)ev->key.keysym.unicode);
break;
}
- switch (ev->key.keysym.sym) { /* XXX */
- case SDLK_LSHIFT:
- case SDLK_RSHIFT:
- case SDLK_LALT:
- case SDLK_RALT:
- case SDLK_LCTRL:
- case SDLK_RCTRL:
- /* Always ignore modifiers */
- AG_ObjectUnlock(win);
- return (0);
- default:
- break;
+ if (!(win->flags & AG_WINDOW_MODKEYEVENTS)) {
+ switch (ev->key.keysym.sym) {
+ case SDLK_LSHIFT:
+ case SDLK_RSHIFT:
+ case SDLK_LALT:
+ case SDLK_RALT:
+ case SDLK_LCTRL:
+ case SDLK_RCTRL:
+ AG_ObjectUnlock(win);
+ return (0);
+ default:
+ break;
+ }
}
tabCycle = 1;
if (AG_WindowIsFocused(win) &&
Modified: trunk/gui/window.h
===================================================================
--- trunk/gui/window.h 2009-07-01 02:18:04 UTC (rev 8210)
+++ trunk/gui/window.h 2009-07-03 01:07:15 UTC (rev 8211)
@@ -69,6 +69,8 @@
#define AG_WINDOW_VMAXIMIZE 0x080000 /* Keep maximized vertically */
#define AG_WINDOW_NOMOVE 0x100000 /* Disallow movement of window */
#define AG_WINDOW_NOCLIPPING 0x200000 /* Don't set a clipping rectangle over the window area */
+#define AG_WINDOW_MODKEYEVENTS 0x400000 /* Generate key{up,down} events for
+ keypresses on modifier keys */
#define AG_WINDOW_NORESIZE (AG_WINDOW_NOHRESIZE|AG_WINDOW_NOVRESIZE)
#define AG_WINDOW_NOBUTTONS (AG_WINDOW_NOCLOSE|AG_WINDOW_NOMINIMIZE|\
RSS Feed