[maemo-commits] [maemo-commits] r15135 - in projects/haf/trunk/hildon-input-method: . src

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Tue Feb 5 13:46:50 EET 2008
Author: tjunnone
Date: 2008-02-05 13:46:49 +0200 (Tue, 05 Feb 2008)
New Revision: 15135

Modified:
   projects/haf/trunk/hildon-input-method/ChangeLog
   projects/haf/trunk/hildon-input-method/src/hildon-im-ui.c
   projects/haf/trunk/hildon-input-method/src/hildon-im-ui.h
Log:
2008-02-05  Tomas Junnonen  <tomas.junnonen at nokia.com>

        * src/hildon-im-ui.[c,h]: Added gconf option to treat stylus   
          as finger activation.  



Modified: projects/haf/trunk/hildon-input-method/ChangeLog
===================================================================
--- projects/haf/trunk/hildon-input-method/ChangeLog	2008-02-05 10:51:02 UTC (rev 15134)
+++ projects/haf/trunk/hildon-input-method/ChangeLog	2008-02-05 11:46:49 UTC (rev 15135)
@@ -1,3 +1,8 @@
+2008-02-05  Tomas Junnonen  <tomas.junnonen at nokia.com>
+
+	* src/hildon-im-ui.[c,h]: Added gconf option to treat stylus
+	  as finger activation.
+
 2008-01-31  Tomas Junnonen  <tomas.junnonen at nokia.com>
 
 	* src/hildon-im-ui.c: Fix rare crash on toggling the

Modified: projects/haf/trunk/hildon-input-method/src/hildon-im-ui.c
===================================================================
--- projects/haf/trunk/hildon-input-method/src/hildon-im-ui.c	2008-02-05 10:51:02 UTC (rev 15134)
+++ projects/haf/trunk/hildon-input-method/src/hildon-im-ui.c	2008-02-05 11:46:49 UTC (rev 15135)
@@ -94,6 +94,8 @@
 
 #define BUFFER_SIZE 128
 
+#define THUMB_LAUNCHES_FULLSCREEN_PLUGIN TRUE
+
 /* CURRENT_PLUGIN is the current PluginData */
 #define CURRENT_PLUGIN(self) self->priv->current_plugin
 /* CURRENT_IM_WIDGET is the current widget of PluginData */
@@ -210,7 +212,7 @@
   Window transiency;
 
   gboolean select_launches_fullscreen_plugin;
-  gboolean finger_launches_fullscreen_plugin;
+  HildonIMThumbDetection thumb_detection;
   gboolean return_key_pressed;
 
   GtkWidget *menu;
@@ -1420,13 +1422,6 @@
       self->priv->select_launches_fullscreen_plugin = gconf_value_get_bool(value);
     }
   }
-  else if (strcmp(key, HILDON_IM_GCONF_USE_FINGER_KB) == 0)
-  {
-    if (value->type == GCONF_VALUE_BOOL)
-    {
-      self->priv->finger_launches_fullscreen_plugin = gconf_value_get_bool(value);
-    }
-  }
   else if (strcmp(key, HILDON_IM_GCONF_ENABLE_STYLUS_IM) == 0)
   {
     if (value->type == GCONF_VALUE_BOOL)
@@ -1441,6 +1436,13 @@
         hildon_im_ui_hide(self);
     }
   }
+  else if (strcmp(key, HILDON_IM_GCONF_THUMB_DETECTION) == 0)
+  {
+    if (value->type == GCONF_VALUE_INT)
+    {
+      self->priv->thumb_detection = gconf_value_get_int(value);
+    }
+  }
 
   for (iter = self->priv->all_methods; iter != NULL; iter = iter->next)
   {
@@ -1496,8 +1498,8 @@
   self->priv->select_launches_fullscreen_plugin =
     gconf_client_get_bool(self->client, HILDON_IM_GCONF_LAUNCH_FINGER_KB_ON_SELECT, NULL);
 
-  self->priv->finger_launches_fullscreen_plugin =
-    gconf_client_get_bool(self->client, HILDON_IM_GCONF_USE_FINGER_KB, NULL);
+  self->priv->thumb_detection =
+    gconf_client_get_int(self->client, HILDON_IM_GCONF_THUMB_DETECTION, NULL);
 
   gvalue = gconf_client_get (self->client, HILDON_IM_GCONF_ENABLE_STYLUS_IM, NULL);
   if (gvalue == NULL)
@@ -1613,21 +1615,36 @@
 
   if (show)
   {
-    if (self->priv->trigger == HILDON_IM_TRIGGER_FINGER)
+    gboolean finger_detected = FALSE;
+
+    if (THUMB_LAUNCHES_FULLSCREEN_PLUGIN &&
+        self->priv->keyboard_available == FALSE)
     {
-      if (self->priv->finger_launches_fullscreen_plugin &&
-          self->priv->keyboard_available == FALSE)
+
+      if (self->priv->trigger == HILDON_IM_TRIGGER_FINGER &&
+          (self->priv->thumb_detection == HILDON_IM_THUMB_DETECT_FINGER_AND_STYLUS ||
+           self->priv->thumb_detection == HILDON_IM_THUMB_DETECT_FINGER))
       {
-        hildon_im_ui_play_sound(self,
-           HILDON_IM_FINGER_TRIGGER_SOUND);
+        finger_detected = TRUE;
       }
-      else
+
+      if (self->priv->trigger == HILDON_IM_TRIGGER_STYLUS &&
+          self->priv->thumb_detection == HILDON_IM_THUMB_DETECT_FINGER_AND_STYLUS)
       {
-        /* If finger launching is disabled in gconf, revert to VKB */
-        self->priv->trigger = HILDON_IM_TRIGGER_STYLUS;
+        self->priv->trigger = HILDON_IM_TRIGGER_FINGER;
+        finger_detected = TRUE;
       }
 
+      if (finger_detected)
+        hildon_im_ui_play_sound(self, HILDON_IM_FINGER_TRIGGER_SOUND);
     }
+    
+    /* If finger launching is disabled in gconf, revert to stylus method */
+    if (self->priv->trigger == HILDON_IM_TRIGGER_FINGER &&
+        self->priv->thumb_detection == HILDON_IM_THUMB_DETECT_NEVER)
+    {
+      self->priv->trigger = HILDON_IM_TRIGGER_STYLUS;
+    }
 
     hildon_im_ui_show(self);
   }

Modified: projects/haf/trunk/hildon-input-method/src/hildon-im-ui.h
===================================================================
--- projects/haf/trunk/hildon-input-method/src/hildon-im-ui.h	2008-02-05 10:51:02 UTC (rev 15134)
+++ projects/haf/trunk/hildon-input-method/src/hildon-im-ui.h	2008-02-05 11:46:49 UTC (rev 15135)
@@ -71,8 +71,8 @@
 #define _HILDON_IM_GCONF_LANGUAGE                  HILDON_IM_GCONF_LANG_DIR  "/language-"
 #define HILDON_IM_GCONF_PRIMARY_LANGUAGE           _HILDON_IM_GCONF_LANGUAGE "0"
 #define HILDON_IM_GCONF_SECONDARY_LANGUAGE         _HILDON_IM_GCONF_LANGUAGE "1"
-#define HILDON_IM_GCONF_USE_FINGER_KB              HILDON_IM_GCONF_DIR       "/use_finger_kb"
 #define HILDON_IM_GCONF_LAUNCH_FINGER_KB_ON_SELECT HILDON_IM_GCONF_DIR       "/launch_finger_kb_on_select"
+#define HILDON_IM_GCONF_THUMB_DETECTION            HILDON_IM_GCONF_DIR       "/thumb_detection"
 
 
 #define HILDON_IM_DEFAULT_LANGUAGE IM_en_GB
@@ -107,6 +107,15 @@
   HILDON_IM_FINGER_TRIGGER_SOUND
 } HildonIMUISound;
 
+typedef enum
+{
+  HILDON_IM_THUMB_DETECT_FINGER,
+  HILDON_IM_THUMB_DETECT_FINGER_AND_STYLUS,
+  HILDON_IM_THUMB_DETECT_NEVER,
+} HildonIMThumbDetection;
+
+#define HILDON_IM_DEFAULT_THUMB_DETECTION HILDON_IM_THUMB_DETECT_FINGER
+
 struct _HildonIMUI
 {
   GtkWindow parent;


More information about the maemo-commits mailing list