Use a full enum for the modifier masks
authorEmmanuele Bassi <ebassi@openedhand.com>
Mon, 11 Jun 2007 09:02:28 +0000 (09:02 +0000)
committerEmmanuele Bassi <ebassi@openedhand.com>
Mon, 11 Jun 2007 09:02:28 +0000 (09:02 +0000)
clutter/clutter-event.c
clutter/clutter-event.h

index f579927..aac9674 100644 (file)
@@ -247,15 +247,19 @@ guint32
 clutter_key_event_unicode (ClutterKeyEvent *keyev)
 {
   g_return_val_if_fail (keyev != NULL, 0);
-  
-  return clutter_keysym_to_unicode (keyev->keyval);
+  if ((keyev->modifier_state & CLUTTER_SHIFT_MASK) ||
+      (keyev->modifier_state & CLUTTER_LOCK_MASK))
+    return g_unichar_toupper (clutter_keysym_to_unicode (keyev->keyval));
+  else
+    return clutter_keysym_to_unicode (keyev->keyval);
 }
 
 /**
  * clutter_keysym_to_unicode:
  * @keyval: a clutter key symbol 
  * 
- * Convert from a GDK key symbol to the corresponding ISO10646 (Unicode)
+ * Convert from a Clutter key symbol to the corresponding ISO10646 (Unicode)
  * character.
  * 
  * Return value: the corresponding unicode character, or 0 if there
index 5282f9f..5ec8d5f 100644 (file)
 
 G_BEGIN_DECLS
 
-enum
-{
-  /* Map to xlibs masks */
-  CLUTTER_BUTTON1_MASK = (1 << 8),
-  CLUTTER_BUTTON2_MASK = (1 << 9),
-  CLUTTER_BUTTON3_MASK = (1 << 10),
-  CLUTTER_BUTTON4_MASK = (1 << 11),
-  CLUTTER_BUTTON5_MASK = (1 << 12)
-};
+typedef enum {
+  CLUTTER_SHIFT_MASK    = 1 << 0,
+  CLUTTER_LOCK_MASK     = 1 << 1,
+  CLUTTER_CONTROL_MASK  = 1 << 2,
+  CLUTTER_MOD1_MASK     = 1 << 3,
+  CLUTTER_MOD2_MASK     = 1 << 4,
+  CLUTTER_MOD3_MASK     = 1 << 5,
+  CLUTTER_MOD4_MASK     = 1 << 6,
+  CLUTTER_MOD5_MASK     = 1 << 7,
+  CLUTTER_BUTTON1_MASK  = 1 << 8,
+  CLUTTER_BUTTON2_MASK  = 1 << 9,
+  CLUTTER_BUTTON3_MASK  = 1 << 10,
+  CLUTTER_BUTTON4_MASK  = 1 << 11,
+  CLUTTER_BUTTON5_MASK  = 1 << 12
+} ClutterModifierType;
 
 typedef enum 
 {