[maemo-commits] [maemo-commits] r14325 - in projects/haf/branches/hildon-input-method-framework/bug71928: . src

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Fri Oct 5 10:43:42 EEST 2007
Author: tjunnone
Date: 2007-10-05 10:43:40 +0300 (Fri, 05 Oct 2007)
New Revision: 14325

Modified:
   projects/haf/branches/hildon-input-method-framework/bug71928/ChangeLog
   projects/haf/branches/hildon-input-method-framework/bug71928/src/hildon-im-context.c
Log:
2007-10-05  Tomas Junnonen  <tomas.junnonen at nokia.com>

        * src/hildon-im-context.c: Modifier should not clear sticky
          key state. Fixes NB#71928.



Modified: projects/haf/branches/hildon-input-method-framework/bug71928/ChangeLog
===================================================================
--- projects/haf/branches/hildon-input-method-framework/bug71928/ChangeLog	2007-10-05 07:35:05 UTC (rev 14324)
+++ projects/haf/branches/hildon-input-method-framework/bug71928/ChangeLog	2007-10-05 07:43:40 UTC (rev 14325)
@@ -1,3 +1,8 @@
+2007-10-05  Tomas Junnonen  <tomas.junnonen at nokia.com>
+
+	* src/hildon-im-context.c: Modifier should not clear sticky
+	  key state. Fixes NB#71928.
+
 2007-09-28  Tomas Junnonen  <tomas.junnonen at nokia.com>
 
 	* src/hildon-im-context.c: Applied patch by Mohammad Anwari:

Modified: projects/haf/branches/hildon-input-method-framework/bug71928/src/hildon-im-context.c
===================================================================
--- projects/haf/branches/hildon-input-method-framework/bug71928/src/hildon-im-context.c	2007-10-05 07:35:05 UTC (rev 14324)
+++ projects/haf/branches/hildon-input-method-framework/bug71928/src/hildon-im-context.c	2007-10-05 07:43:40 UTC (rev 14325)
@@ -1484,7 +1484,7 @@
 
     gdk_keymap_translate_keyboard_state(gdk_keymap_get_default(),
                                         event->hardware_keycode,
-                                        LEVEL_KEY_MOD_MASK,
+                                        LEVEL_KEY_MOD_MASK | event->state,
                                         event->group,
                                         &translated_keyval,
                                         NULL, NULL, NULL);
@@ -1560,7 +1560,8 @@
   /* Sticky and lock state reset */
   if (event->type == GDK_KEY_PRESS)
   {
-    if (event->keyval != GDK_Shift_L && event->keyval != GDK_Shift_R)
+    if (event->keyval != GDK_Shift_L && event->keyval != GDK_Shift_R &&
+        event->is_modifier == FALSE)
     {
       /* If not locked, pressing any character resets shift state */
       if ((self->mask & HILDON_IM_SHIFT_LOCK_MASK) == 0)
@@ -1568,7 +1569,8 @@
         self->mask &= ~HILDON_IM_SHIFT_STICKY_MASK;
       }
     }
-    if (event->keyval != LEVEL_KEY)
+    if (event->keyval != LEVEL_KEY &&
+        event->is_modifier == FALSE)
     {
       /* If not locked, pressing any character resets level state */
       if ((self->mask & HILDON_IM_LEVEL_LOCK_MASK) == 0)


More information about the maemo-commits mailing list