[Xfce4-commits] <thunar-volman:jannis/port-to-udev> Improve input device detection. Patch by Nick Schermer.

Jannis Pohlmann noreply at xfce.org
Sat Jul 24 21:46:01 CEST 2010


Updating branch refs/heads/jannis/port-to-udev
         to 874edb2002a2ab824441f8c838a239961b6d713d (commit)
       from 9e3cde5f2c7ad98636e89323512a888c434f4a7d (commit)

commit 874edb2002a2ab824441f8c838a239961b6d713d
Author: Jannis Pohlmann <jannis at xfce.org>
Date:   Sat Jul 24 21:45:05 2010 +0200

    Improve input device detection. Patch by Nick Schermer.

 thunar-volman/tvm-input-device.c |   17 +++++++++++++----
 1 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/thunar-volman/tvm-input-device.c b/thunar-volman/tvm-input-device.c
index ef79b15..1305374 100644
--- a/thunar-volman/tvm-input-device.c
+++ b/thunar-volman/tvm-input-device.c
@@ -37,6 +37,7 @@
 void
 tvm_input_device_added (TvmContext *context)
 {
+  const gchar *devname;
   const gchar *icon;
   const gchar *summary;
   const gchar *message;
@@ -46,6 +47,9 @@ tvm_input_device_added (TvmContext *context)
   const gchar *driver;
   const gchar *enabled_property = NULL;
   const gchar *command_property = NULL;
+  gboolean     is_keyboard;
+  gboolean     is_mouse;
+  gboolean     is_tablet;
   gboolean     enabled;
   gchar       *command;
 
@@ -56,8 +60,12 @@ tvm_input_device_added (TvmContext *context)
   id_model = g_udev_device_get_property (context->device, "ID_MODEL");
   driver = g_udev_device_get_property (context->device, "DRIVER");
   id_usb_driver = g_udev_device_get_property (context->device, "ID_USB_DRIVER");
+  is_keyboard = g_udev_device_get_property_as_boolean (context->device, "ID_INPUT_KEYBOARD");
+  is_mouse = g_udev_device_get_property_as_boolean (context->device, "ID_INPUT_MOUSE");
+  is_tablet = g_udev_device_get_property_as_boolean (context->device, "ID_INPUT_TABLET");
+  devname = g_udev_device_get_property (context->device, "DEVNAME");
 
-  if (g_strcmp0 (id_class, "kbd") == 0)
+  if (is_keyboard || g_strcmp0 (id_class, "kbd") == 0)
     {
       /* we have a keyboard */
       enabled_property = "/autokeyboard/enabled";
@@ -67,7 +75,8 @@ tvm_input_device_added (TvmContext *context)
       summary = _("Keyboard detected");
       message = _("A keyboard was detected");
     }
-  else if (g_strcmp0 (driver, "wacom") == 0 
+  else if (is_tablet
+           || g_strcmp0 (driver, "wacom") == 0
            || g_strcmp0 (id_usb_driver, "wacom") == 0)
     {
       /* we have a wacom tablet */
@@ -78,7 +87,7 @@ tvm_input_device_added (TvmContext *context)
       summary = _("Tablet detected");
       message = _("A graphics tablet was detected");
     }
-  else if (g_strcmp0 (id_class, "mouse") == 0)
+  else if (is_mouse || g_strcmp0 (id_class, "mouse") == 0)
     {
       if (g_strstr_len (id_model, -1, "Tablet") != NULL 
           || g_strstr_len (id_model, -1, "TABLET") != NULL
@@ -92,7 +101,7 @@ tvm_input_device_added (TvmContext *context)
           summary = _("Tablet detected");
           message = _("A graphics tablet was detected");
         }
-      else
+      else if (devname == NULL || !g_str_has_prefix (devname, "/dev/input/event"))
         {
           /* we have a normal mouse */
           enabled_property = "/automouse/enabled";



More information about the Xfce4-commits mailing list