gpointing-device-settings r267 - in trunk/modules: common gnome-settings-daemon-plugins



Author: hiikezoe
Date: Wed Mar 25 06:52:32 2009
New Revision: 267
URL: http://svn.gnome.org/viewvc/gpointing-device-settings?rev=267&view=rev

Log:
palm detection dimensions support only for gnome-settings-daemon plugin.

Modified:
   trunk/modules/common/gpds-touchpad-definitions.h
   trunk/modules/gnome-settings-daemon-plugins/gsd-pointing-device-manager.h
   trunk/modules/gnome-settings-daemon-plugins/gsd-touchpad-manager.c

Modified: trunk/modules/common/gpds-touchpad-definitions.h
==============================================================================
--- trunk/modules/common/gpds-touchpad-definitions.h	(original)
+++ trunk/modules/common/gpds-touchpad-definitions.h	Wed Mar 25 06:52:32 2009
@@ -20,9 +20,8 @@
 #ifndef __GPDS_TOUCHPAD_GCONF_H__
 #define __GPDS_TOUCHPAD_GCONF_H__
 
-#define GPDS_TOUCHPAD_EDGES_KEY                           "edges"
-#define GPDS_TOUCHPAD_FINGER_KEY                          "finger"
 #define GPDS_TOUCHPAD_OFF_KEY                             "off"
+#define GPDS_TOUCHPAD_GUEST_MOUSE_KEY                     "guest_mouse"
 #define GPDS_TOUCHPAD_TAP_TIME_KEY                        "tap_time"
 #define GPDS_TOUCHPAD_TAP_MOVE_KEY                        "tap_move"
 #define GPDS_TOUCHPAD_TAP_FAST_TAP_KEY                    "tap_fast_tap"
@@ -37,6 +36,8 @@
 #define GPDS_TOUCHPAD_CIRCULAR_SCROLLING_DISTANCE_KEY     "circular_scrolling_distance"
 #define GPDS_TOUCHPAD_CIRCULAR_SCROLLING_TRIGGER_KEY      "circular_scrolling_trigger"
 #define GPDS_TOUCHPAD_PALM_DETECTION_KEY                  "palm_detection"
+#define GPDS_TOUCHPAD_PALM_DETECTION_WIDTH_KEY            "palm_detection_width"
+#define GPDS_TOUCHPAD_PALM_DETECTION_DEPTH_KEY            "palm_detection_depth"
 #define GPDS_TOUCHPAD_LOCKED_DRAGS_KEY                    "locked_drags"
 #define GPDS_TOUCHPAD_LOCKED_DRAGS_TIMEOUT_KEY            "locked_drags_timeout"
 

Modified: trunk/modules/gnome-settings-daemon-plugins/gsd-pointing-device-manager.h
==============================================================================
--- trunk/modules/gnome-settings-daemon-plugins/gsd-pointing-device-manager.h	(original)
+++ trunk/modules/gnome-settings-daemon-plugins/gsd-pointing-device-manager.h	Wed Mar 25 06:52:32 2009
@@ -106,6 +106,39 @@
 #define DEFINE_SET_INT_FUNCTION(function_name, key_name)                        \
     DEFINE_SET_VALUE_FUNCTION(function_name, key_name, int)
 
+#define DEFINE_SET_VALUE_PAIR_FUNCTION(function_name, value_type, prop_name, key_name1, key_name2)  \
+static void                                                                                         \
+set_ ## function_name (GsdPointingDeviceManager *manager,                                           \
+                       GpdsXInput *xinput,                                                          \
+                       GConfClient *gconf)                                                          \
+{                                                                                                   \
+    g ## value_type value;                                                                          \
+    gint properties[2];                                                                             \
+    if (!gsd_pointing_device_manager_get_gconf_ ## value_type (manager,                             \
+                                                               gconf,                               \
+                                                               key_name1,                           \
+                                                               &value))                             \
+        return;                                                                                     \
+    properties[0] = value;                                                                          \
+    if (!gsd_pointing_device_manager_get_gconf_ ## value_type (manager,                             \
+                                                               gconf,                               \
+                                                               key_name2,                           \
+                                                               &value))                             \
+        return;                                                                                     \
+    properties[1] = value;                                                                          \
+    gpds_xinput_set_int_properties(xinput,                                                          \
+                                   prop_name,                                                       \
+                                   NULL,                                                            \
+                                   properties,                                                      \
+                                   2);                                                              \
+}
+
+#define DEFINE_SET_BOOLEAN_PAIR_FUNCTION(function_name, prop_name, key_name1, key_name2)    \
+    DEFINE_SET_VALUE_PAIR_FUNCTION(function_name, boolean, prop_name, key_name1, key_name2)
+
+#define DEFINE_SET_INT_PAIR_FUNCTION(function_name, prop_name, key_name1, key_name2)    \
+    DEFINE_SET_VALUE_PAIR_FUNCTION(function_name, int, prop_name, key_name1, key_name2)
+
 G_END_DECLS
 
 #endif /* __GSD_POINTING_DEVICE_MANAGER_H__ */

Modified: trunk/modules/gnome-settings-daemon-plugins/gsd-touchpad-manager.c
==============================================================================
--- trunk/modules/gnome-settings-daemon-plugins/gsd-touchpad-manager.c	(original)
+++ trunk/modules/gnome-settings-daemon-plugins/gsd-touchpad-manager.c	Wed Mar 25 06:52:32 2009
@@ -65,6 +65,18 @@
 DEFINE_SET_INT_FUNCTION (tap_time, GPDS_TOUCHPAD_TAP_TIME)
 DEFINE_SET_INT_FUNCTION (tap_move, GPDS_TOUCHPAD_TAP_MOVE)
 DEFINE_SET_INT_FUNCTION (circular_scrolling_trigger, GPDS_TOUCHPAD_CIRCULAR_SCROLLING_TRIGGER)
+DEFINE_SET_BOOLEAN_PAIR_FUNCTION (two_finger_scrolling,
+                                  GPDS_TOUCHPAD_TWO_FINGER_SCROLLING,
+                                  GPDS_TOUCHPAD_TWO_FINGER_VERTICAL_SCROLLING_KEY,
+                                  GPDS_TOUCHPAD_TWO_FINGER_HORIZONTAL_SCROLLING_KEY);
+DEFINE_SET_INT_PAIR_FUNCTION (scrolling_distance,
+                              GPDS_TOUCHPAD_SCROLLING_DISTANCE,
+                              GPDS_TOUCHPAD_VERTICAL_SCROLLING_DISTANCE_KEY,
+                              GPDS_TOUCHPAD_HORIZONTAL_SCROLLING_DISTANCE_KEY);
+DEFINE_SET_INT_PAIR_FUNCTION (palm_dimensions,
+                              GPDS_TOUCHPAD_PALM_DIMENSIONS,
+                              GPDS_TOUCHPAD_PALM_DETECTION_WIDTH_KEY,
+                              GPDS_TOUCHPAD_PALM_DETECTION_DEPTH_KEY)
 
 static void
 set_edge_scrolling (GsdPointingDeviceManager *manager,
@@ -103,68 +115,6 @@
                                    3);
 }
 
-static void
-set_two_finger_scrolling (GsdPointingDeviceManager *manager,
-                          GpdsXInput *xinput,
-                          GConfClient *gconf)
-{
-    gboolean h_enable, v_enable;
-    gint properties[2];
-
-    if (!gsd_pointing_device_manager_get_gconf_boolean(manager,
-                                                       gconf,
-                                                       GPDS_TOUCHPAD_TWO_FINGER_VERTICAL_SCROLLING_KEY,
-                                                       &v_enable)) {
-        return;
-    }
-    if (!gsd_pointing_device_manager_get_gconf_boolean(manager,
-                                                       gconf,
-                                                       GPDS_TOUCHPAD_TWO_FINGER_HORIZONTAL_SCROLLING_KEY,
-                                                       &h_enable)) {
-        return;
-    }
-
-    properties[0] = v_enable ? 1 : 0;
-    properties[1] = h_enable ? 1 : 0;
-
-    gpds_xinput_set_int_properties(xinput,
-                                   GPDS_TOUCHPAD_TWO_FINGER_SCROLLING,
-                                   NULL,
-                                   properties,
-                                   2);
-}
-
-static void
-set_horizontal_and_vertical_scrolling_distance (GsdPointingDeviceManager *manager,
-                                                GpdsXInput *xinput,
-                                                GConfClient *gconf)
-{
-    gint h_distance, v_distance;
-    gint properties[2];
-
-    if (!gsd_pointing_device_manager_get_gconf_int(manager,
-                                                   gconf,
-                                                   GPDS_TOUCHPAD_VERTICAL_SCROLLING_DISTANCE_KEY,
-                                                   &v_distance)) {
-        return;
-    }
-    if (!gsd_pointing_device_manager_get_gconf_int(manager,
-                                                   gconf,
-                                                   GPDS_TOUCHPAD_HORIZONTAL_SCROLLING_DISTANCE_KEY,
-                                                   &h_distance)) {
-        return;
-    }
-
-    properties[0] = v_distance;
-    properties[1] = h_distance;
-
-    gpds_xinput_set_int_properties(xinput,
-                                   GPDS_TOUCHPAD_SCROLLING_DISTANCE,
-                                   NULL,
-                                   properties,
-                                   2);
-}
-
 static gboolean
 start_manager (GsdPointingDeviceManager *manager)
 {
@@ -191,7 +141,7 @@
     set_tap_time(manager, xinput, gconf);
     set_tap_move(manager, xinput, gconf);
     set_edge_scrolling(manager, xinput, gconf);
-    set_horizontal_and_vertical_scrolling_distance(manager, xinput, gconf);
+    set_scrolling_distance(manager, xinput, gconf);
     set_circular_scrolling(manager, xinput, gconf);
     set_circular_scrolling_trigger(manager, xinput, gconf);
     set_two_finger_scrolling(manager, xinput, gconf);
@@ -264,7 +214,10 @@
             set_tap_move(manager, xinput, client);
         } else if (!strcmp(key, GPDS_TOUCHPAD_VERTICAL_SCROLLING_DISTANCE_KEY) ||
                    !strcmp(key, GPDS_TOUCHPAD_HORIZONTAL_SCROLLING_DISTANCE_KEY)) {
-            set_horizontal_and_vertical_scrolling_distance(manager, xinput, client);
+            set_scrolling_distance(manager, xinput, client);
+        } else if (!strcmp(key, GPDS_TOUCHPAD_PALM_DETECTION_WIDTH_KEY) ||
+                   !strcmp(key, GPDS_TOUCHPAD_PALM_DETECTION_DEPTH_KEY)) {
+            set_palm_dimensions(manager, xinput, client);
         }
         break;
     default:



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]