gpointing-device-settings r83 - trunk/modules



Author: hiikezoe
Date: Sun Mar  1 23:51:10 2009
New Revision: 83
URL: http://svn.gnome.org/viewvc/gpointing-device-settings?rev=83&view=rev

Log:
support new XInput.
The previous implementation seems to be for XInput-1.3.0.

Modified:
   trunk/modules/gpds-trackpoint-definitions.h
   trunk/modules/gpds-trackpoint-ui.c
   trunk/modules/gsd-trackpoint-manager.c

Modified: trunk/modules/gpds-trackpoint-definitions.h
==============================================================================
--- trunk/modules/gpds-trackpoint-definitions.h	(original)
+++ trunk/modules/gpds-trackpoint-definitions.h	Sun Mar  1 23:51:10 2009
@@ -22,15 +22,16 @@
 
 #define GPDS_TRACK_POINT_DEVICE_NAME "TPPS/2 IBM TrackPoint"
 
-#define GPDS_TRACK_POINT_MIDDLE_BUTTON_EMULATION "Middle Button Emulation"
-#define GPDS_TRACK_POINT_MIDDLE_BUTTON_TIMEOUT   "Middle Button Timeout"
-#define GPDS_TRACK_POINT_WHEEL_EMULATION         "Wheel Emulation"
-#define GPDS_TRACK_POINT_WHEEL_EMULATION_INERTIA "Wheel Emulation Inertia"
-#define GPDS_TRACK_POINT_WHEEL_EMULATION_X_AXIS  "Wheel Emulation X Axis"
-#define GPDS_TRACK_POINT_WHEEL_EMULATION_Y_AXIS  "Wheel Emulation Y Axis"
-#define GPDS_TRACK_POINT_WHEEL_EMULATION_TIMEOUT "Wheel Emulation Timeout"
-#define GPDS_TRACK_POINT_WHEEL_EMULATION_BUTTON  "Wheel Emulation Button"
-#define GPDS_TRACK_POINT_DRAG_LOCK_BUTTONS       "Drag Lock Buttons"
+#define GPDS_TRACK_POINT_MIDDLE_BUTTON_EMULATION "Evdev Middle Button Emulation"
+#define GPDS_TRACK_POINT_MIDDLE_BUTTON_TIMEOUT   "Evdev Middle Button Timeout"
+#define GPDS_TRACK_POINT_WHEEL_EMULATION         "Evdev Wheel Emulation"
+#define GPDS_TRACK_POINT_WHEEL_EMULATION_INERTIA "Evdev Wheel Emulation Inertia"
+#define GPDS_TRACK_POINT_WHEEL_EMULATION_X_AXIS  "Evdev Wheel Emulation X Axis"
+#define GPDS_TRACK_POINT_WHEEL_EMULATION_Y_AXIS  "Evdev Wheel Emulation Y Axis"
+#define GPDS_TRACK_POINT_WHEEL_EMULATION_AXES    "Evdev Wheel Emulation Axes"
+#define GPDS_TRACK_POINT_WHEEL_EMULATION_TIMEOUT "Evdev Wheel Emulation Timeout"
+#define GPDS_TRACK_POINT_WHEEL_EMULATION_BUTTON  "Evdev Wheel Emulation Button"
+#define GPDS_TRACK_POINT_DRAG_LOCK_BUTTONS       "Evdev Drag Lock Buttons"
 
 #define GPDS_TRACK_POINT_GCONF_DIR                   "/desktop/gnome/peripherals/trackpoint"
 #define GPDS_TRACK_POINT_MIDDLE_BUTTON_EMULATION_KEY GPDS_TRACK_POINT_GCONF_DIR "/middle_button_emulation"

Modified: trunk/modules/gpds-trackpoint-ui.c
==============================================================================
--- trunk/modules/gpds-trackpoint-ui.c	(original)
+++ trunk/modules/gpds-trackpoint-ui.c	Sun Mar  1 23:51:10 2009
@@ -231,28 +231,30 @@
 }
 
 static void
-set_toggle_scroll_property (GpdsXInput *xinput, GtkToggleButton *button,
-                            const gchar *property_name,
-                            gint first_value, gint second_value)
+set_scroll_axes_property (GpdsTrackPointUI *ui)
 {
+    GtkBuilder *builder;
+    GtkToggleButton *button;
     GError *error = NULL;
-    gboolean active;
+    gboolean horizontal_scroll_active;
+    gboolean vertical_scroll_active;
 
-    active = gtk_toggle_button_get_active(button);
-    if (active) {
-        gpds_xinput_set_property(xinput,
-                                 property_name,
-                                 &error,
-                                 first_value, second_value,
-                                 NULL);
-    } else {
-        gpds_xinput_set_property(xinput,
-                                 property_name,
-                                 &error,
-                                 -1, -1,
-                                 NULL);
-    }
+    builder = gpds_ui_get_builder(GPDS_UI(ui));
+
+    button = GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "wheel_emulation_vertical"));
+    vertical_scroll_active = gtk_toggle_button_get_active(button);
 
+    button = GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "wheel_emulation_horizontal"));
+    horizontal_scroll_active = gtk_toggle_button_get_active(button);
+
+    gpds_xinput_set_property(ui->xinput,
+                             GPDS_TRACK_POINT_WHEEL_EMULATION_AXES,
+                             &error,
+                             vertical_scroll_active ? 6 : -1,
+                             vertical_scroll_active ? 7 : -1,
+                             horizontal_scroll_active ? 4 : -1,
+                             horizontal_scroll_active ? 5 : -1,
+                             NULL);
     if (error) {
         show_error(error);
         g_error_free(error);
@@ -264,7 +266,7 @@
 {
     gboolean enable;
     GpdsTrackPointUI *ui = GPDS_TRACK_POINT_UI(user_data);
-    set_toggle_scroll_property(ui->xinput, button, GPDS_TRACK_POINT_WHEEL_EMULATION_Y_AXIS, 4, 5);
+    set_scroll_axes_property(ui);
 
     enable = gtk_toggle_button_get_active(button);
     gconf_client_set_bool(ui->gconf, GPDS_TRACK_POINT_WHEEL_EMULATION_Y_AXIS_KEY, enable, NULL);
@@ -275,7 +277,7 @@
 {
     gboolean enable;
     GpdsTrackPointUI *ui = GPDS_TRACK_POINT_UI(user_data);
-    set_toggle_scroll_property(ui->xinput, button, GPDS_TRACK_POINT_WHEEL_EMULATION_X_AXIS, 6, 7);
+    set_scroll_axes_property(ui);
 
     enable = gtk_toggle_button_get_active(button);
     gconf_client_set_bool(ui->gconf, GPDS_TRACK_POINT_WHEEL_EMULATION_X_AXIS_KEY, enable, NULL);
@@ -415,16 +417,14 @@
 }
 
 static void
-set_scroll_property_from_preference (GpdsTrackPointUI *ui,
-                                     const gchar *property_name,
-                                     const gchar *gconf_key_name,
-                                     GtkBuilder *builder,
-                                     const gchar *object_name)
+set_scroll_axes_property_from_preference (GpdsTrackPointUI *ui,
+                                          const gchar *property_name,
+                                          GtkBuilder *builder)
 {
     GObject *object;
     gint *values;
     gulong n_values;
-    gboolean enable, dir_exists;
+    gboolean horizontal_enable = FALSE, vertical_enable = FALSE, dir_exists;
 
     if (!get_integer_property(ui->xinput, property_name,
                               &values, &n_values)) {
@@ -432,13 +432,25 @@
     }
 
     dir_exists = gconf_client_dir_exists(ui->gconf, GPDS_TRACK_POINT_GCONF_DIR, NULL);
-    if (dir_exists)
-        enable = gconf_client_get_bool(ui->gconf, gconf_key_name, NULL);
-    else
-        enable = (values[0] != 0 && values[1] != 0);
-        
-    object = gtk_builder_get_object(builder, object_name);
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(object), enable);
+    if (dir_exists) {
+        horizontal_enable = gconf_client_get_bool(ui->gconf,
+                                                  GPDS_TRACK_POINT_WHEEL_EMULATION_X_AXIS_KEY,
+                                                  NULL);
+        vertical_enable = gconf_client_get_bool(ui->gconf,
+                                                GPDS_TRACK_POINT_WHEEL_EMULATION_Y_AXIS_KEY,
+                                                NULL);
+    } else {
+        if (n_values >= 2)
+            horizontal_enable = (values[0] != 0 && values[1] != 0);
+        if (n_values >= 4)
+            vertical_enable = (values[2] != 0 && values[3] != 0);
+    }
+
+    object = gtk_builder_get_object(builder, "wheel_emulation_horizontal");
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(object), horizontal_enable);
+    object = gtk_builder_get_object(builder, "wheel_emulation_vertical");
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(object), vertical_enable);
+
     g_free(values);
 }
 
@@ -473,16 +485,9 @@
                                          builder,
                                          "wheel_emulation_inertia");
 
-    set_scroll_property_from_preference(track_point_ui,
-                                        GPDS_TRACK_POINT_WHEEL_EMULATION_Y_AXIS,
-                                        GPDS_TRACK_POINT_WHEEL_EMULATION_Y_AXIS_KEY,
-                                        builder,
-                                        "wheel_emulation_vertical");
-    set_scroll_property_from_preference(track_point_ui,
-                                        GPDS_TRACK_POINT_WHEEL_EMULATION_X_AXIS,
-                                        GPDS_TRACK_POINT_WHEEL_EMULATION_X_AXIS_KEY,
-                                        builder,
-                                        "wheel_emulation_horizontal");
+    set_scroll_axes_property_from_preference(track_point_ui,
+                                             GPDS_TRACK_POINT_WHEEL_EMULATION_AXES,
+                                             builder);
 }
 
 static gboolean

Modified: trunk/modules/gsd-trackpoint-manager.c
==============================================================================
--- trunk/modules/gsd-trackpoint-manager.c	(original)
+++ trunk/modules/gsd-trackpoint-manager.c	Sun Mar  1 23:51:10 2009
@@ -105,23 +105,22 @@
                                      NULL,
                                      gconf_value_get_bool(value),
                                      NULL);
-        } else  if (!strcmp(key, GPDS_TRACK_POINT_WHEEL_EMULATION_X_AXIS_KEY)) {
-            gboolean enable;
-            enable = gconf_value_get_bool(value);
+        } else  if (!strcmp(key, GPDS_TRACK_POINT_WHEEL_EMULATION_X_AXIS_KEY) ||
+                    !strcmp(key, GPDS_TRACK_POINT_WHEEL_EMULATION_Y_AXIS_KEY)) {
+            gboolean enable_vertical, enable_horizontal;
+            enable_vertical = gconf_client_get_bool(client,
+                                                    GPDS_TRACK_POINT_WHEEL_EMULATION_Y_AXIS,
+                                                    NULL);
+            enable_horizontal = gconf_client_get_bool(client,
+                                                      GPDS_TRACK_POINT_WHEEL_EMULATION_X_AXIS,
+                                                      NULL);
             gpds_xinput_set_property(xinput,
-                                     GPDS_TRACK_POINT_WHEEL_EMULATION_Y_AXIS,
+                                     GPDS_TRACK_POINT_WHEEL_EMULATION_AXES,
                                      NULL,
-                                     enable ? 6 : -1,
-                                     enable ? 7 : -1,
-                                     NULL);
-        } else if (!strcmp(key, GPDS_TRACK_POINT_WHEEL_EMULATION_Y_AXIS_KEY)) {
-            gboolean enable;
-            enable = gconf_value_get_bool(value);
-            gpds_xinput_set_property(xinput,
-                                     GPDS_TRACK_POINT_WHEEL_EMULATION_Y_AXIS,
-                                     NULL,
-                                     enable ? 4 : -1,
-                                     enable ? 5 : -1,
+                                     enable_vertical ? 6 : -1,
+                                     enable_vertical ? 7 : -1,
+                                     enable_horizontal ? 4 : -1,
+                                     enable_horizontal ? 5 : -1,
                                      NULL);
         }
         break;



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