diff options
| -rw-r--r-- | plugins/mouse/msd-mouse-manager.c | 166 | 
1 files changed, 84 insertions, 82 deletions
| diff --git a/plugins/mouse/msd-mouse-manager.c b/plugins/mouse/msd-mouse-manager.c index 1933dff..a9d44a5 100644 --- a/plugins/mouse/msd-mouse-manager.c +++ b/plugins/mouse/msd-mouse-manager.c @@ -127,7 +127,7 @@ supports_xinput_devices (void)  {          gint op_code, event, error; -        return XQueryExtension (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), +        return XQueryExtension (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),                                  "XInputExtension",                                  &op_code,                                  &event, @@ -225,14 +225,14 @@ touchpad_has_single_button (XDevice *device)          gboolean is_single_button = FALSE;          int rc; -        prop = XInternAtom (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), "Synaptics Capabilities", False); +        prop = XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), "Synaptics Capabilities", False);          if (!prop)                  return FALSE;          gdk_error_trap_push (); -        rc = XGetDeviceProperty (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), device, prop, 0, 1, False, -                                XA_INTEGER, &type, &format, &nitems, -                                &bytes_after, &data); +        rc = XGetDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), device, prop, 0, 1, False, +                                 XA_INTEGER, &type, &format, &nitems, +                                 &bytes_after, &data);          if (rc == Success && type == XA_INTEGER && format == 8 && nitems >= 3)                  is_single_button = (data[0] == 1 && data[1] == 0 && data[2] == 0); @@ -259,7 +259,7 @@ set_xinput_devices_left_handed (MsdMouseManager * manager, gboolean left_handed)          gint n_buttons;          gint i; -        device_info = XListInputDevices (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), &n_devices); +        device_info = XListInputDevices (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), &n_devices);          if (n_devices > 0)                  buttons = g_new (guchar, buttons_capacity); @@ -285,7 +285,7 @@ set_xinput_devices_left_handed (MsdMouseManager * manager, gboolean left_handed)                          if (tap && !single_button)                                  set_tap_to_click (manager); -                        XCloseDevice (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), device); +                        XCloseDevice (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), device);                          g_object_unref (settings);                          if (single_button) @@ -294,13 +294,13 @@ set_xinput_devices_left_handed (MsdMouseManager * manager, gboolean left_handed)                  gdk_error_trap_push (); -                device = XOpenDevice (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), device_info[i].id); +                device = XOpenDevice (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), device_info[i].id);                  if ((gdk_error_trap_pop () != 0) ||                      (device == NULL))                          continue; -                n_buttons = XGetDeviceButtonMapping (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), device, +                n_buttons = XGetDeviceButtonMapping (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), device,                                                       buttons,                                                       buttons_capacity); @@ -309,15 +309,15 @@ set_xinput_devices_left_handed (MsdMouseManager * manager, gboolean left_handed)                          buttons = (guchar *) g_realloc (buttons,                                                          buttons_capacity * sizeof (guchar)); -                        n_buttons = XGetDeviceButtonMapping (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), device, +                        n_buttons = XGetDeviceButtonMapping (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), device,                                                               buttons,                                                               buttons_capacity);                  }                  configure_button_layout (buttons, n_buttons, left_handed); -                XSetDeviceButtonMapping (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), device, buttons, n_buttons); -                XCloseDevice (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), device); +                XSetDeviceButtonMapping (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), device, buttons, n_buttons); +                XCloseDevice (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), device);          }          g_free (buttons); @@ -388,7 +388,7 @@ set_left_handed (MsdMouseManager *manager,  #endif          buttons = g_new (guchar, buttons_capacity); -        n_buttons = XGetPointerMapping (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), +        n_buttons = XGetPointerMapping (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),                                          buttons,                                          (gint) buttons_capacity);          while (n_buttons > buttons_capacity) { @@ -396,7 +396,7 @@ set_left_handed (MsdMouseManager *manager,                  buttons = (guchar *) g_realloc (buttons,                                                  buttons_capacity * sizeof (guchar)); -                n_buttons = XGetPointerMapping (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), +                n_buttons = XGetPointerMapping (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),                                                  buttons,                                                  (gint) buttons_capacity);          } @@ -407,7 +407,7 @@ set_left_handed (MsdMouseManager *manager,           * so if this is the case we'll retry a few times           */          for (i = 0; -             i < 20 && XSetPointerMapping (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), buttons, n_buttons) == MappingBusy; +             i < 20 && XSetPointerMapping (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), buttons, n_buttons) == MappingBusy;               ++i) {                  g_usleep (300);          } @@ -446,7 +446,7 @@ set_motion_acceleration (MsdMouseManager *manager,                  denominator = -1;          } -        XChangePointerControl (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), True, False, +        XChangePointerControl (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), True, False,                                 numerator, denominator,                                 0);  } @@ -455,7 +455,7 @@ static void  set_motion_threshold (MsdMouseManager *manager,                        int              motion_threshold)  { -        XChangePointerControl (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), False, True, +        XChangePointerControl (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), False, True,                                 0, 0, motion_threshold);  } @@ -582,7 +582,7 @@ set_tap_to_click (MsdMouseManager * manager)  {          int numdevices, i, format, rc;          unsigned long nitems, bytes_after; -        XDeviceInfo *devicelist = XListInputDevices (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), &numdevices); +        XDeviceInfo *devicelist = XListInputDevices (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), &numdevices);          XDevice * device;          unsigned char* data;          Atom prop, type; @@ -590,7 +590,7 @@ set_tap_to_click (MsdMouseManager * manager)          if (devicelist == NULL)                  return; -        prop = XInternAtom (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), "Synaptics Tap Action", False); +        prop = XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), "Synaptics Tap Action", False);          if (!prop)                  return; @@ -604,9 +604,9 @@ set_tap_to_click (MsdMouseManager * manager)          for (i = 0; i < numdevices; i++) {                  if ((device = device_is_touchpad (devicelist[i]))) {                          gdk_error_trap_push (); -                        rc = XGetDeviceProperty (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), device, prop, 0, 2, -                                                False, XA_INTEGER, &type, &format, &nitems, -                                                &bytes_after, &data); +                        rc = XGetDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), device, prop, 0, 2, +                                                 False, XA_INTEGER, &type, &format, &nitems, +                                                 &bytes_after, &data);                          if (one_finger_tap > 3 || one_finger_tap < 1)                                  one_finger_tap = 1; @@ -621,13 +621,13 @@ set_tap_to_click (MsdMouseManager * manager)                                  data[4] = (state) ? ((left_handed) ? (4-one_finger_tap) : one_finger_tap) : 0;                                  data[5] = (state) ? ((left_handed) ? (4-two_finger_tap) : two_finger_tap) : 0;                                  data[6] = (state) ? three_finger_tap : 0; -                                XChangeDeviceProperty (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), device, prop, XA_INTEGER, 8, -                                                        PropModeReplace, data, nitems); +                                XChangeDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), device, prop, XA_INTEGER, 8, +                                                       PropModeReplace, data, nitems);                          }                          if (rc == Success)                                  XFree (data); -                        XCloseDevice (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), device); +                        XCloseDevice (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), device);                          if (gdk_error_trap_pop ()) {                                  g_warning ("Error in setting tap to click on \"%s\"", devicelist[i].name);                                  continue; @@ -643,7 +643,7 @@ set_click_actions (MsdMouseManager * manager)  {          int numdevices, i, format, rc;          unsigned long nitems, bytes_after; -        XDeviceInfo *devicelist = XListInputDevices (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), &numdevices); +        XDeviceInfo *devicelist = XListInputDevices (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), &numdevices);          XDevice * device;          unsigned char* data;          Atom prop, type; @@ -663,14 +663,15 @@ set_click_actions (MsdMouseManager * manager)                          g_debug ("setting click action to click on %s", devicelist[i].name);                          gdk_error_trap_push ();                          rc = XGetDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), device, prop, 0, 2, -                                         False, XA_INTEGER, &type, &format, &nitems, -                                         &bytes_after, &data); +                                                 False, XA_INTEGER, &type, &format, &nitems, +                                                 &bytes_after, &data);                          if (rc == Success && type == XA_INTEGER && format == 8 && nitems >= 3) {                                  data[0] = 1;                                  data[1] = enable_two_finger_click;                                  data[2] = enable_three_finger_click; -                                XChangeDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), device, prop, XA_INTEGER, 8, PropModeReplace, data, nitems); +                                XChangeDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), device, prop, +                                                       XA_INTEGER, 8, PropModeReplace, data, nitems);                          }                          if (rc == Success) @@ -690,7 +691,7 @@ set_natural_scroll (MsdMouseManager * manager)  {          int numdevices, i, format, rc;          unsigned long nitems, bytes_after; -        XDeviceInfo *devicelist = XListInputDevices (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), &numdevices); +        XDeviceInfo *devicelist = XListInputDevices (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), &numdevices);          XDevice * device;          unsigned char* data;          glong *ptr; @@ -710,8 +711,8 @@ set_natural_scroll (MsdMouseManager * manager)                          g_debug ("Trying to set %s for \"%s\"", natural_scroll ? "natural (reverse) scroll" : "normal scroll", devicelist[i].name);                          gdk_error_trap_push ();                          rc = XGetDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), device, prop, 0, 2, -                                         False, XA_INTEGER, &type, &format, &nitems, -                                         &bytes_after, &data); +                                                 False, XA_INTEGER, &type, &format, &nitems, +                                                 &bytes_after, &data);                          if (rc == Success && type == XA_INTEGER && format == 32 && nitems >= 2) {                                  ptr = (glong *) data; @@ -723,7 +724,8 @@ set_natural_scroll (MsdMouseManager * manager)                                          ptr[1] = abs(ptr[1]);                                  } -                                XChangeDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), device, prop, XA_INTEGER, 32, PropModeReplace, data, nitems); +                                XChangeDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), device, prop, +                                                       XA_INTEGER, 32, PropModeReplace, data, nitems);                          }                          if (rc == Success) @@ -741,76 +743,76 @@ set_natural_scroll (MsdMouseManager * manager)  static void  synaptics_set_bool (const char * property_name, int property_index, gboolean enabled)  { -    int numdevices, i, rc; -    XDeviceInfo *devicelist = XListInputDevices (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), &numdevices); -    XDevice *device; -    Atom act_type, property; -    int act_format; -    unsigned long nitems, bytes_after; -    unsigned char *data; - -    if (devicelist == NULL) -        return; +        int numdevices, i, rc; +        XDeviceInfo *devicelist = XListInputDevices (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), &numdevices); +        XDevice *device; +        Atom act_type, property; +        int act_format; +        unsigned long nitems, bytes_after; +        unsigned char *data; -    property = XInternAtom (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), property_name, False); +        if (devicelist == NULL) +                return; -    if (!property) -        return; +        property = XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), property_name, False); + +        if (!property) +                return; -    int value = 0; -    if (enabled) { -    	value = 1; -    } - -    for (i = 0; i < numdevices; i++) { -        if ((device = device_is_touchpad (devicelist[i]))) { -            gdk_error_trap_push (); -            rc = XGetDeviceProperty (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), device, -                                    property, 0, 1, False, -                                    XA_INTEGER, &act_type, &act_format, &nitems, -                                    &bytes_after, &data); -            if (rc == Success && act_type == XA_INTEGER && act_format == 8 && nitems > property_index) { -                data[property_index] = value; -                XChangeDeviceProperty (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), device, -                                        property, XA_INTEGER, 8, -                                        PropModeReplace, data, nitems); -            } - -            XFree (data); - -            XCloseDevice (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), device); -            if (gdk_error_trap_pop ()) { -                g_warning ("Error while setting %s on \"%s\"", property_name, devicelist[i].name); -                continue; -            } +        int value = 0; +        if (enabled) { +                value = 1;          } -    } -    XFreeDeviceList (devicelist); +        for (i = 0; i < numdevices; i++) { +                if ((device = device_is_touchpad (devicelist[i]))) { +                        gdk_error_trap_push (); +                        rc = XGetDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), device, +                                                 property, 0, 1, False, +                                                 XA_INTEGER, &act_type, &act_format, &nitems, +                                                 &bytes_after, &data); +                        if (rc == Success && act_type == XA_INTEGER && act_format == 8 && nitems > property_index) { +                                data[property_index] = value; +                                XChangeDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), device, +                                                       property, XA_INTEGER, 8, +                                                       PropModeReplace, data, nitems); +                        } + +                        XFree (data); + +                        XCloseDevice (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), device); +                        if (gdk_error_trap_pop ()) { +                                g_warning ("Error while setting %s on \"%s\"", property_name, devicelist[i].name); +                                continue; +                        } +                } +        } + +        XFreeDeviceList (devicelist);  }  static void  set_scrolling (GSettings *settings)  { -    synaptics_set_bool ("Synaptics Edge Scrolling", 0, g_settings_get_boolean (settings, KEY_VERT_EDGE_SCROLL)); -    synaptics_set_bool ("Synaptics Edge Scrolling", 1, g_settings_get_boolean (settings, KEY_HORIZ_EDGE_SCROLL)); -    synaptics_set_bool ("Synaptics Two-Finger Scrolling", 0, g_settings_get_boolean (settings, KEY_VERT_TWO_FINGER_SCROLL)); -    synaptics_set_bool ("Synaptics Two-Finger Scrolling", 1, g_settings_get_boolean (settings, KEY_HORIZ_TWO_FINGER_SCROLL)); +        synaptics_set_bool ("Synaptics Edge Scrolling", 0, g_settings_get_boolean (settings, KEY_VERT_EDGE_SCROLL)); +        synaptics_set_bool ("Synaptics Edge Scrolling", 1, g_settings_get_boolean (settings, KEY_HORIZ_EDGE_SCROLL)); +        synaptics_set_bool ("Synaptics Two-Finger Scrolling", 0, g_settings_get_boolean (settings, KEY_VERT_TWO_FINGER_SCROLL)); +        synaptics_set_bool ("Synaptics Two-Finger Scrolling", 1, g_settings_get_boolean (settings, KEY_HORIZ_TWO_FINGER_SCROLL));  }  static void  set_touchpad_enabled (gboolean state)  {          int numdevices, i; -        XDeviceInfo *devicelist = XListInputDevices (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), &numdevices); +        XDeviceInfo *devicelist = XListInputDevices (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), &numdevices);          XDevice *device;          Atom prop_enabled;          if (devicelist == NULL)                  return; -        prop_enabled = XInternAtom (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), "Device Enabled", False); +        prop_enabled = XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), "Device Enabled", False);          if (!prop_enabled)              return; @@ -819,10 +821,10 @@ set_touchpad_enabled (gboolean state)                  if ((device = device_is_touchpad (devicelist[i]))) {                          unsigned char data = state;                          gdk_error_trap_push (); -                        XChangeDeviceProperty (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), device, +                        XChangeDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), device,                                                 prop_enabled, XA_INTEGER, 8,                                                 PropModeReplace, &data, 1); -                        XCloseDevice (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), device); +                        XCloseDevice (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), device);                          gdk_flush ();                          if (gdk_error_trap_pop ()) {                                  g_warning ("Error %s device \"%s\"", | 
