diff mde/input/Input.d @ 124:a2ef6b549101

Dynamic minimal size changing is now fully supported. Support for reducing minimal size in layouts. Editing numbers as text now always converts new number back to string at end of edit. Floating point number display format changed.
author Diggory Hardy <diggory.hardy@gmail.com>
date Mon, 05 Jan 2009 12:43:27 +0000
parents 20f7d813bb0f
children 264028f4115a
line wrap: on
line diff
--- a/mde/input/Input.d	Sun Jan 04 17:35:15 2009 +0000
+++ b/mde/input/Input.d	Mon Jan 05 12:43:27 2009 +0000
@@ -217,12 +217,20 @@
     bool opCall (ref SDL_Event event) {
         /* Non-config events.
         *
-        * Mouse events don't need config for the GUI. Handle them first so that if no config exists
-        * some functionality at least is retained.
+        * Handle these first so that if no config exists some functionality at least is retained.
         *
         * Coordinates don't need adjusting (they put the top-left most pixel at 0,0).
         */
         switch (event.type) {
+            case SDL_KEYDOWN:
+                if (letterCallback) {
+                    try
+                        letterCallback (event.key.keysym.sym, Utf.toString ([cast(wchar)event.key.keysym.unicode], cast(char[])utfBuf));
+                    catch (Exception e)
+                        logger.error (CB_EXC ~ e.msg);
+                }
+                break;
+            
             case SDL_MOUSEBUTTONDOWN:
             case SDL_MOUSEBUTTONUP:
                 foreach (dg; mouseClickCallbacks) {
@@ -254,8 +262,6 @@
         switch (event.type) {
             // Keyboard events:
             case SDL_KEYDOWN:
-                if (letterCallback)
-		    letterCallback (event.key.keysym.sym, Utf.toString ([cast(wchar)event.key.keysym.unicode], cast(char[])utfBuf));
             case SDL_KEYUP:
 		if (letterCallback) break;	// text input mode; no keyboard input from mappings
                 outQueue[]* p = (Config.B.SDLKEY | event.key.keysym.sym) in config.button;