[gnome-settings-daemon] mouse: Remove support for non-libinput mouse configurations



commit 66c211ff24bec6a938d6a6a0dd8730f4689ef383
Author: Bastien Nocera <hadess hadess net>
Date:   Thu Dec 17 15:05:28 2015 +0100

    mouse: Remove support for non-libinput mouse configurations
    
    With the configuration for mice and other pointing devices now in mutter
    for both Wayland and X11 (with libinput X11 drivers), the mouse plugin
    is only ever used to:
    - migrate old gnome-settings-daemon mouse settings to
      gsettings-desktop-schemas
    - set up a11y features, via mousetweaks and gsd-locate-pointer, which
      weren't ported to mutter/gnome-shell yet
    - handle evdev/synaptics pointing devices, usually on non-Linux systems
    
    As we want to move input device handling into the compositor, so there's
    only one code path for all their configuration, remove support for
    evdev/synaptics settings.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=759595

 plugins/mouse/gsd-mouse-manager.c | 1255 +------------------------------------
 1 files changed, 3 insertions(+), 1252 deletions(-)
---
diff --git a/plugins/mouse/gsd-mouse-manager.c b/plugins/mouse/gsd-mouse-manager.c
index da7b378..cf2c28c 100644
--- a/plugins/mouse/gsd-mouse-manager.c
+++ b/plugins/mouse/gsd-mouse-manager.c
@@ -19,39 +19,17 @@
 
 #include "config.h"
 
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-#include <math.h>
-#ifdef __linux
-#include <sys/prctl.h>
-#endif
-
 #include <locale.h>
 
 #include <glib.h>
 #include <glib/gi18n.h>
 #include <gio/gio.h>
-#include <gtk/gtk.h>
-#include <gdk/gdk.h>
-#include <gdk/gdkx.h>
-#include <gdk/gdkkeysyms.h>
-#include <X11/keysym.h>
-#include <X11/Xatom.h>
 
 #include <gdesktop-enums.h>
 
-#include <X11/extensions/XInput.h>
-#include <X11/extensions/XIproto.h>
-
 #include "gnome-settings-bus.h"
 #include "gnome-settings-profile.h"
 #include "gsd-mouse-manager.h"
-#include "gsd-input-helper.h"
 #include "gsd-enums.h"
 #include "gsd-settings-migrate.h"
 
@@ -60,42 +38,20 @@
 #define GSD_SETTINGS_MOUSE_SCHEMA  "org.gnome.settings-daemon.peripherals.mouse"
 #define GSETTINGS_MOUSE_SCHEMA     "org.gnome.desktop.peripherals.mouse"
 #define GSETTINGS_TOUCHPAD_SCHEMA  "org.gnome.desktop.peripherals.touchpad"
-#define GSETTINGS_TRACKBALL_SCHEMA "org.gnome.desktop.peripherals.trackball"
-
-/* Keys for both touchpad and mouse */
-#define KEY_LEFT_HANDED         "left-handed"                /* a boolean for mouse, an enum for touchpad */
-#define KEY_SPEED               "speed"
-
-/* Touchpad settings */
-#define KEY_EDGE_SCROLLING_ENABLED       "edge-scrolling-enabled"
-#define KEY_TAP_TO_CLICK                 "tap-to-click"
-#define KEY_SEND_EVENTS                  "send-events"
-#define KEY_NATURAL_SCROLL_ENABLED       "natural-scroll"
 
 /* Mouse settings */
 #define KEY_LOCATE_POINTER               "locate-pointer"
 #define KEY_DWELL_CLICK_ENABLED          "dwell-click-enabled"
 #define KEY_SECONDARY_CLICK_ENABLED      "secondary-click-enabled"
 
-/* Trackball settings */
-#define KEY_SCROLL_WHEEL_BUTTON          "scroll-wheel-emulation-button"
-
 struct GsdMouseManagerPrivate
 {
         guint start_idle_id;
         GSettings *touchpad_settings;
-        GSettings *mouse_settings;
         GSettings *mouse_a11y_settings;
-        GSettings *trackball_settings;
+        GSettings *mouse_settings;
         GSettings *gsd_mouse_settings;
-        GdkDeviceManager *device_manager;
-        guint device_added_id;
-        guint device_removed_id;
-        GHashTable *blacklist;
-
         gboolean mousetweaks_daemon_running;
-        gboolean syndaemon_spawned;
-        GPid syndaemon_pid;
         gboolean locate_pointer_spawned;
         GPid locate_pointer_pid;
 };
@@ -103,12 +59,6 @@ struct GsdMouseManagerPrivate
 static void     gsd_mouse_manager_class_init  (GsdMouseManagerClass *klass);
 static void     gsd_mouse_manager_init        (GsdMouseManager      *mouse_manager);
 static void     gsd_mouse_manager_finalize    (GObject             *object);
-static void     set_tap_to_click              (GdkDevice           *device,
-                                               gboolean             state,
-                                               gboolean             left_handed);
-static void     ensure_touchpad_active        (GsdMouseManager     *manager);
-static gboolean get_touchpad_enabled          (GsdMouseManager     *manager);
-
 
 G_DEFINE_TYPE (GsdMouseManager, gsd_mouse_manager, G_TYPE_OBJECT)
 
@@ -126,775 +76,6 @@ gsd_mouse_manager_class_init (GsdMouseManagerClass *klass)
         g_type_class_add_private (klass, sizeof (GsdMouseManagerPrivate));
 }
 
-static XDevice *
-open_gdk_device (GdkDevice *device)
-{
-        XDevice *xdevice;
-        int id;
-
-        g_object_get (G_OBJECT (device), "device-id", &id, NULL);
-
-        gdk_error_trap_push ();
-
-        xdevice = XOpenDevice (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), id);
-
-        if (gdk_error_trap_pop () != 0)
-                return NULL;
-
-        return xdevice;
-}
-
-static gboolean
-device_info_is_trackball (XDeviceInfo *device_info)
-{
-        gboolean retval;
-
-        retval = (device_info->type == XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), 
XI_TRACKBALL, False));
-        if (retval == FALSE &&
-            device_info->name != NULL) {
-                char *lowercase;
-
-                lowercase = g_ascii_strdown (device_info->name, -1);
-                retval = strstr (lowercase, "trackball") != NULL;
-                g_free (lowercase);
-        }
-
-        return retval;
-}
-
-static gboolean
-device_is_trackball (GdkDevice *device)
-{
-        XDeviceInfo *device_info;
-        gboolean retval = FALSE;
-        gint n_devices;
-        guint i;
-        int id;
-
-        g_object_get (G_OBJECT (device), "device-id", &id, NULL);
-
-        gdk_error_trap_push ();
-
-        device_info = XListInputDevices (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), &n_devices);
-        if (device_info == NULL)
-                return retval;
-
-        for (i = 0; i < n_devices; i++) {
-                if (device_info[i].id != id)
-                        continue;
-
-                retval = device_info_is_trackball (&device_info[i]);
-                break;
-        }
-        XFreeDeviceList (device_info);
-
-        if (gdk_error_trap_pop () != 0)
-                return FALSE;
-
-        return retval;
-}
-
-static gboolean
-device_is_blacklisted (GsdMouseManager *manager,
-                       GdkDevice       *device)
-{
-        int id;
-        g_object_get (G_OBJECT (device), "device-id", &id, NULL);
-        if (g_hash_table_lookup (manager->priv->blacklist, GINT_TO_POINTER (id)) != NULL) {
-                g_debug ("device %s (%d) is blacklisted", gdk_device_get_name (device), id);
-                return TRUE;
-        }
-        return FALSE;
-}
-
-static gboolean
-device_is_ignored (GsdMouseManager *manager,
-                  GdkDevice       *device)
-{
-       GdkInputSource source;
-       const char *name;
-
-       if (device_is_blacklisted (manager, device))
-               return TRUE;
-
-       source = gdk_device_get_source (device);
-       if (source != GDK_SOURCE_MOUSE &&
-           source != GDK_SOURCE_TOUCHPAD &&
-           source != GDK_SOURCE_CURSOR)
-               return TRUE;
-
-       name = gdk_device_get_name (device);
-       if (name != NULL && g_str_equal ("Virtual core XTEST pointer", name))
-               return TRUE;
-
-       return FALSE;
-}
-
-static void
-configure_button_layout (guchar   *buttons,
-                         gint      n_buttons,
-                         gboolean  left_handed)
-{
-        const gint left_button = 1;
-        gint right_button;
-        gint i;
-
-        /* if the button is higher than 2 (3rd button) then it's
-         * probably one direction of a scroll wheel or something else
-         * uninteresting
-         */
-        right_button = MIN (n_buttons, 3);
-
-        /* If we change things we need to make sure we only swap buttons.
-         * If we end up with multiple physical buttons assigned to the same
-         * logical button the server will complain. This code assumes physical
-         * button 0 is the physical left mouse button, and that the physical
-         * button other than 0 currently assigned left_button or right_button
-         * is the physical right mouse button.
-         */
-
-        /* check if the current mapping satisfies the above assumptions */
-        if (buttons[left_button - 1] != left_button &&
-            buttons[left_button - 1] != right_button)
-                /* The current mapping is weird. Swapping buttons is probably not a
-                 * good idea.
-                 */
-                return;
-
-        /* check if we are left_handed and currently not swapped */
-        if (left_handed && buttons[left_button - 1] == left_button) {
-                /* find the right button */
-                for (i = 0; i < n_buttons; i++) {
-                        if (buttons[i] == right_button) {
-                                buttons[i] = left_button;
-                                break;
-                        }
-                }
-                /* swap the buttons */
-                buttons[left_button - 1] = right_button;
-        }
-        /* check if we are not left_handed but are swapped */
-        else if (!left_handed && buttons[left_button - 1] == right_button) {
-                /* find the right button */
-                for (i = 0; i < n_buttons; i++) {
-                        if (buttons[i] == left_button) {
-                                buttons[i] = right_button;
-                                break;
-                        }
-                }
-                /* swap the buttons */
-                buttons[left_button - 1] = left_button;
-        }
-}
-
-static gboolean
-xinput_device_has_buttons (GdkDevice *device)
-{
-        int i;
-        XAnyClassInfo *class_info;
-
-        /* FIXME can we use the XDevice's classes here instead? */
-        XDeviceInfo *device_info, *info;
-        gint n_devices;
-        int id;
-
-        /* Find the XDeviceInfo for the GdkDevice */
-        g_object_get (G_OBJECT (device), "device-id", &id, NULL);
-
-        device_info = XListInputDevices (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), &n_devices);
-        if (device_info == NULL)
-                return FALSE;
-
-        info = NULL;
-        for (i = 0; i < n_devices; i++) {
-                if (device_info[i].id == id) {
-                        info = &device_info[i];
-                        break;
-                }
-        }
-        if (info == NULL)
-                goto bail;
-
-        class_info = info->inputclassinfo;
-        for (i = 0; i < info->num_classes; i++) {
-                if (class_info->class == ButtonClass) {
-                        XButtonInfo *button_info;
-
-                        button_info = (XButtonInfo *) class_info;
-                        if (button_info->num_buttons > 0) {
-                                XFreeDeviceList (device_info);
-                                return TRUE;
-                        }
-                }
-
-                class_info = (XAnyClassInfo *) (((guchar *) class_info) +
-                                                class_info->length);
-        }
-
-bail:
-        XFreeDeviceList (device_info);
-
-        return FALSE;
-}
-
-static gboolean
-touchpad_has_single_button (XDevice *device)
-{
-        Atom type, prop;
-        int format;
-        unsigned long nitems, bytes_after;
-        unsigned char *data;
-        gboolean is_single_button = FALSE;
-        int rc;
-
-        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);
-        if (rc == Success && type == XA_INTEGER && format == 8 && nitems >= 3)
-                is_single_button = (data[0] == 1 && data[1] == 0 && data[2] == 0);
-
-        if (rc == Success)
-                XFree (data);
-
-        gdk_error_trap_pop_ignored ();
-
-        return is_single_button;
-}
-
-static void
-set_left_handed (GsdMouseManager *manager,
-                 GdkDevice       *device,
-                 gboolean mouse_left_handed,
-                 gboolean touchpad_left_handed)
-{
-        XDevice *xdevice;
-        guchar *buttons;
-        gsize buttons_capacity = 16;
-        gboolean left_handed;
-        gint n_buttons;
-
-        if (!xinput_device_has_buttons (device))
-                return;
-
-        if (xdevice_is_libinput (gdk_x11_device_get_id (device)))
-                return;
-
-        xdevice = open_gdk_device (device);
-        if (xdevice == NULL)
-                return;
-
-       g_debug ("setting handedness on %s", gdk_device_get_name (device));
-
-        buttons = g_new (guchar, buttons_capacity);
-
-        /* If the device is a touchpad, swap tap buttons
-         * around too, otherwise a tap would be a right-click */
-        if (xdevice_is_synaptics (xdevice)) {
-                gboolean tap = g_settings_get_boolean (manager->priv->touchpad_settings, KEY_TAP_TO_CLICK);
-                gboolean single_button = touchpad_has_single_button (xdevice);
-
-                left_handed = touchpad_left_handed;
-
-                if (tap && !single_button)
-                        set_tap_to_click (device, tap, left_handed);
-
-                if (single_button)
-                        goto out;
-        } else {
-                left_handed = mouse_left_handed;
-        }
-
-        gdk_error_trap_push ();
-
-        n_buttons = XGetDeviceButtonMapping (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), xdevice,
-                                             buttons,
-                                             buttons_capacity);
-
-        while (n_buttons > buttons_capacity) {
-                buttons_capacity = n_buttons;
-                buttons = (guchar *) g_realloc (buttons,
-                                                buttons_capacity * sizeof (guchar));
-
-                n_buttons = XGetDeviceButtonMapping (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), 
xdevice,
-                                                     buttons,
-                                                     buttons_capacity);
-        }
-
-        configure_button_layout (buttons, n_buttons, left_handed);
-
-        XSetDeviceButtonMapping (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), xdevice, buttons, 
n_buttons);
-        gdk_error_trap_pop_ignored ();
-
-out:
-        xdevice_close (xdevice);
-        g_free (buttons);
-}
-
-static void
-set_motion (GsdMouseManager *manager,
-            GdkDevice       *device)
-{
-        XDevice *xdevice;
-        XPtrFeedbackControl feedback;
-        XFeedbackState *states, *state;
-        int num_feedbacks;
-        int numerator, denominator;
-        gfloat motion_acceleration;
-        int motion_threshold;
-        GSettings *settings;
-        gdouble speed;
-        guint i;
-
-        if (xdevice_is_libinput (gdk_x11_device_get_id (device)))
-                return;
-
-        xdevice = open_gdk_device (device);
-        if (xdevice == NULL)
-                return;
-
-       g_debug ("setting motion on %s", gdk_device_get_name (device));
-
-        if (xdevice_is_synaptics (xdevice))
-                settings = manager->priv->touchpad_settings;
-        else
-                settings = manager->priv->mouse_settings;
-
-        speed = g_settings_get_double (settings, KEY_SPEED);
-
-        /* Calculate acceleration and threshold */
-        motion_acceleration = (speed + 1) * 5; /* speed is [-1..1], map to [0..10] */
-        motion_threshold = CLAMP (10 - floor (motion_acceleration), 1, 10);
-
-        if (motion_acceleration >= 1.0) {
-                /* we want to get the acceleration, with a resolution of 0.5
-                 */
-                if ((motion_acceleration - floor (motion_acceleration)) < 0.25) {
-                        numerator = floor (motion_acceleration);
-                        denominator = 1;
-                } else if ((motion_acceleration - floor (motion_acceleration)) < 0.5) {
-                        numerator = ceil (2.0 * motion_acceleration);
-                        denominator = 2;
-                } else if ((motion_acceleration - floor (motion_acceleration)) < 0.75) {
-                        numerator = floor (2.0 *motion_acceleration);
-                        denominator = 2;
-                } else {
-                        numerator = ceil (motion_acceleration);
-                        denominator = 1;
-                }
-        } else if (motion_acceleration < 1.0 && motion_acceleration > 0) {
-                /* This we do to 1/10ths */
-                numerator = floor (motion_acceleration * 10) + 1;
-                denominator= 10;
-        } else {
-                numerator = -1;
-                denominator = -1;
-        }
-
-        gdk_error_trap_push ();
-
-        /* Get the list of feedbacks for the device */
-        states = XGetFeedbackControl (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), xdevice, 
&num_feedbacks);
-        if (states == NULL)
-                goto out;
-        state = (XFeedbackState *) states;
-        for (i = 0; i < num_feedbacks; i++) {
-                if (state->class == PtrFeedbackClass) {
-                        /* And tell the device */
-                        feedback.class      = PtrFeedbackClass;
-                        feedback.length     = sizeof (XPtrFeedbackControl);
-                        feedback.id         = state->id;
-                        feedback.threshold  = motion_threshold;
-                        feedback.accelNum   = numerator;
-                        feedback.accelDenom = denominator;
-
-                        g_debug ("Setting accel %d/%d, threshold %d for device '%s'",
-                                 numerator, denominator, motion_threshold, gdk_device_get_name (device));
-
-                        XChangeFeedbackControl (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
-                                                xdevice,
-                                                DvAccelNum | DvAccelDenom | DvThreshold,
-                                                (XFeedbackControl *) &feedback);
-
-                        break;
-                }
-                state = (XFeedbackState *) ((char *) state + state->length);
-        }
-
-        if (gdk_error_trap_pop ())
-                g_warning ("Error setting acceleration on \"%s\"", gdk_device_get_name (device));
-
-        XFreeFeedbackList (states);
-
-    out:
-
-        xdevice_close (xdevice);
-}
-
-/* Ensure that syndaemon dies together with us, to avoid running several of
- * them */
-static void
-setup_syndaemon (gpointer user_data)
-{
-#ifdef __linux
-        prctl (PR_SET_PDEATHSIG, SIGHUP);
-#endif
-}
-
-static gboolean
-have_program_in_path (const char *name)
-{
-        gchar *path;
-        gboolean result;
-
-        path = g_find_program_in_path (name);
-        result = (path != NULL);
-        g_free (path);
-        return result;
-}
-
-static void
-syndaemon_died (GPid pid, gint status, gpointer user_data)
-{
-        GsdMouseManager *manager = GSD_MOUSE_MANAGER (user_data);
-
-        g_debug ("syndaemon stopped with status %i", status);
-        g_spawn_close_pid (pid);
-        manager->priv->syndaemon_spawned = FALSE;
-}
-
-static int
-set_disable_w_typing (GsdMouseManager *manager, gboolean state)
-{
-        if (state && synaptics_is_present ()) {
-                GError *error = NULL;
-                GPtrArray *args;
-
-                if (manager->priv->syndaemon_spawned)
-                        return 0;
-
-                if (!have_program_in_path ("syndaemon"))
-                        return 0;
-
-                args = g_ptr_array_new ();
-
-                g_ptr_array_add (args, "syndaemon");
-                g_ptr_array_add (args, "-i");
-                g_ptr_array_add (args, "1.0");
-                g_ptr_array_add (args, "-t");
-                g_ptr_array_add (args, "-K");
-                g_ptr_array_add (args, "-R");
-                g_ptr_array_add (args, NULL);
-
-                /* we must use G_SPAWN_DO_NOT_REAP_CHILD to avoid
-                 * double-forking, otherwise syndaemon will immediately get
-                 * killed again through (PR_SET_PDEATHSIG when the intermediate
-                 * process dies */
-                g_spawn_async (g_get_home_dir (), (char **) args->pdata, NULL,
-                                G_SPAWN_SEARCH_PATH|G_SPAWN_DO_NOT_REAP_CHILD, setup_syndaemon, NULL,
-                                &manager->priv->syndaemon_pid, &error);
-
-                manager->priv->syndaemon_spawned = (error == NULL);
-                g_ptr_array_free (args, FALSE);
-
-                if (error) {
-                        g_warning ("Failed to launch syndaemon: %s", error->message);
-                        g_error_free (error);
-                } else {
-                        g_child_watch_add (manager->priv->syndaemon_pid, syndaemon_died, manager);
-                        g_debug ("Launched syndaemon");
-                }
-        } else if (manager->priv->syndaemon_spawned) {
-                kill (manager->priv->syndaemon_pid, SIGHUP);
-                g_spawn_close_pid (manager->priv->syndaemon_pid);
-                manager->priv->syndaemon_spawned = FALSE;
-                g_debug ("Killed syndaemon");
-        }
-
-        return 0;
-}
-
-static void
-set_tap_to_click (GdkDevice *device,
-                  gboolean   state,
-                  gboolean   left_handed)
-{
-        int format, rc;
-        unsigned long nitems, bytes_after;
-        XDevice *xdevice;
-        unsigned char* data;
-        Atom prop_capabilities, prop, type;
-
-        if (xdevice_is_libinput (gdk_x11_device_get_id (device)))
-                return;
-
-        prop = XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), "Synaptics Tap Action", 
False);
-        prop_capabilities = XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), "Synaptics 
Capabilities", False);
-        if (!prop || !prop_capabilities)
-                return;
-
-        xdevice = open_gdk_device (device);
-        if (xdevice == NULL)
-                return;
-
-        if (!xdevice_is_synaptics (xdevice)) {
-                xdevice_close (xdevice);
-                return;
-        }
-
-       g_debug ("setting tap to click on %s", gdk_device_get_name (device));
-
-        gdk_error_trap_push ();
-        rc = XGetDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), xdevice, 
prop_capabilities, 0, 1,
-                                 False, XA_INTEGER, &type, &format, &nitems, &bytes_after, &data);
-        if (rc == Success && type == XA_INTEGER && format == 8 && nitems >= 1) {
-                if (!(data[0])) {
-                        g_debug ("No hardware buttons, enabling tap to click on %s", gdk_device_get_name 
(device));
-                        state = TRUE;
-                }
-
-                XFree (data);
-        }
-
-        rc = XGetDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), xdevice, prop, 0, 2,
-                                 False, XA_INTEGER, &type, &format, &nitems,
-                                 &bytes_after, &data);
-
-        if (rc == Success && type == XA_INTEGER && format == 8 && nitems >= 7) {
-                /* Set RLM mapping for 1/2/3 fingers*/
-                data[4] = (state) ? ((left_handed) ? 3 : 1) : 0;
-                data[5] = (state) ? ((left_handed) ? 1 : 3) : 0;
-                data[6] = (state) ? 2 : 0;
-                XChangeDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), xdevice, prop, 
XA_INTEGER, 8,
-                                       PropModeReplace, data, nitems);
-        }
-
-        if (rc == Success)
-                XFree (data);
-
-        if (gdk_error_trap_pop ())
-                g_warning ("Error in setting tap to click on \"%s\"", gdk_device_get_name (device));
-
-        xdevice_close (xdevice);
-}
-
-static void
-set_horiz_scroll (GdkDevice *device,
-                  gboolean   state)
-{
-        int rc;
-        XDevice *xdevice;
-        Atom act_type, prop_edge, prop_twofinger;
-        int act_format;
-        unsigned long nitems, bytes_after;
-        unsigned char *data;
-
-        if (xdevice_is_libinput (gdk_x11_device_get_id (device)))
-                return;
-
-        prop_edge = XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), "Synaptics Edge 
Scrolling", False);
-        prop_twofinger = XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), "Synaptics 
Two-Finger Scrolling", False);
-
-        if (!prop_edge || !prop_twofinger)
-                return;
-
-        xdevice = open_gdk_device (device);
-        if (xdevice == NULL)
-                return;
-
-        if (!xdevice_is_synaptics (xdevice)) {
-                xdevice_close (xdevice);
-                return;
-        }
-
-       g_debug ("setting horiz scroll on %s", gdk_device_get_name (device));
-
-        gdk_error_trap_push ();
-        rc = XGetDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), xdevice,
-                                 prop_edge, 0, 1, False,
-                                 XA_INTEGER, &act_type, &act_format, &nitems,
-                                 &bytes_after, &data);
-        if (rc == Success && act_type == XA_INTEGER &&
-            act_format == 8 && nitems >= 2) {
-                data[1] = (state && data[0]);
-                XChangeDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), xdevice,
-                                       prop_edge, XA_INTEGER, 8,
-                                       PropModeReplace, data, nitems);
-        }
-
-        XFree (data);
-
-        rc = XGetDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), xdevice,
-                                 prop_twofinger, 0, 1, False,
-                                 XA_INTEGER, &act_type, &act_format, &nitems,
-                                 &bytes_after, &data);
-        if (rc == Success && act_type == XA_INTEGER &&
-            act_format == 8 && nitems >= 2) {
-                data[1] = (state && data[0]);
-                XChangeDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), xdevice,
-                                       prop_twofinger, XA_INTEGER, 8,
-                                       PropModeReplace, data, nitems);
-        }
-
-        if (gdk_error_trap_pop ())
-                g_warning ("Error in setting horiz scroll on \"%s\"", gdk_device_get_name (device));
-
-        if (rc == Success)
-                XFree (data);
-
-        xdevice_close (xdevice);
-
-}
-
-static void
-set_edge_scrolling_enabled (GsdMouseManager         *manager,
-                            GdkDevice               *device,
-                            gboolean                 enabled)
-{
-        int rc;
-        XDevice *xdevice;
-        Atom act_type, prop, prop_edge, prop_twofinger;
-        int act_format;
-        unsigned long nitems, bytes_after;
-        unsigned char *data;
-        GsdTouchpadScrollMethod method;
-
-        if (xdevice_is_libinput (gdk_x11_device_get_id (device)))
-                return;
-
-        prop = XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), "Synaptics Capabilities", 
True);
-        prop_edge = XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), "Synaptics Edge 
Scrolling", False);
-        prop_twofinger = XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), "Synaptics 
Two-Finger Scrolling", False);
-
-        if (!prop_edge || !prop_twofinger || !prop)
-                return;
-
-        xdevice = open_gdk_device (device);
-        if (xdevice == NULL)
-                return;
-
-        if (!xdevice_is_synaptics (xdevice)) {
-                xdevice_close (xdevice);
-                return;
-        }
-
-       g_debug ("setting edge scroll on %s", gdk_device_get_name (device));
-
-        gdk_error_trap_push ();
-        rc = XGetDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), xdevice,
-                                 prop, 0, 2, False,
-                                 XA_INTEGER, &act_type, &act_format, &nitems,
-                                 &bytes_after, &data);
-        if (rc == Success && act_type != None) {
-                /* Two-finger scrolling is supported, so enable it */
-                if (data[3])
-                        method = GSD_TOUCHPAD_SCROLL_METHOD_TWO_FINGER_SCROLLING;
-
-                XFree (data);
-        }
-
-        if (enabled && method != GSD_TOUCHPAD_SCROLL_METHOD_TWO_FINGER_SCROLLING)
-                method = GSD_TOUCHPAD_SCROLL_METHOD_EDGE_SCROLLING;
-        else
-                method = GSD_TOUCHPAD_SCROLL_METHOD_DISABLED;
-
-        rc = XGetDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), xdevice,
-                                 prop_edge, 0, 1, False,
-                                 XA_INTEGER, &act_type, &act_format, &nitems,
-                                 &bytes_after, &data);
-        if (rc == Success && act_type == XA_INTEGER &&
-            act_format == 8 && nitems >= 2) {
-                data[0] = (method == GSD_TOUCHPAD_SCROLL_METHOD_EDGE_SCROLLING) ? 1 : 0;
-                XChangeDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), xdevice,
-                                       prop_edge, XA_INTEGER, 8,
-                                       PropModeReplace, data, nitems);
-        }
-
-        XFree (data);
-
-        rc = XGetDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), xdevice,
-                                 prop_twofinger, 0, 1, False,
-                                 XA_INTEGER, &act_type, &act_format, &nitems,
-                                 &bytes_after, &data);
-        if (rc == Success && act_type == XA_INTEGER &&
-            act_format == 8 && nitems >= 2) {
-                data[0] = (method == GSD_TOUCHPAD_SCROLL_METHOD_TWO_FINGER_SCROLLING) ? 1 : 0;
-                XChangeDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), xdevice,
-                                       prop_twofinger, XA_INTEGER, 8,
-                                       PropModeReplace, data, nitems);
-        }
-
-        if (gdk_error_trap_pop ())
-                g_warning ("Error in setting edge scroll on \"%s\"", gdk_device_get_name (device));
-
-        if (rc == Success)
-                XFree (data);
-
-        xdevice_close (xdevice);
-}
-
-static void
-set_touchpad_disabled (GdkDevice *device)
-{
-        int id;
-        XDevice *xdevice;
-
-        if (xdevice_is_libinput (gdk_x11_device_get_id (device)))
-                return;
-
-        g_object_get (G_OBJECT (device), "device-id", &id, NULL);
-
-        g_debug ("Trying to set device disabled for \"%s\" (%d)", gdk_device_get_name (device), id);
-
-        xdevice = open_gdk_device (device);
-        if (xdevice == NULL)
-                return;
-
-        if (!xdevice_is_synaptics (xdevice)) {
-                xdevice_close (xdevice);
-                return;
-        }
-
-        if (set_synaptics_device_enabled (id, FALSE) == FALSE)
-                g_warning ("Error disabling device \"%s\" (%d)", gdk_device_get_name (device), id);
-        else
-                g_debug ("Disabled device \"%s\" (%d)", gdk_device_get_name (device), id);
-
-        xdevice_close (xdevice);
-}
-
-static void
-set_touchpad_enabled (int id)
-{
-        XDevice *xdevice;
-
-        if (xdevice_is_libinput (id))
-                return;
-
-        g_debug ("Trying to set device enabled for %d", id);
-
-        gdk_error_trap_push ();
-        xdevice = XOpenDevice (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), id);
-        if (gdk_error_trap_pop () != 0)
-                return;
-
-        if (!xdevice_is_synaptics (xdevice)) {
-                xdevice_close (xdevice);
-                return;
-        }
-
-        if (set_synaptics_device_enabled (id, TRUE) == FALSE)
-                g_warning ("Error enabling device \"%d\"", id);
-        else
-                g_debug ("Enabled device %d", id);
-
-        xdevice_close (xdevice);
-}
-
 static void
 set_locate_pointer (GsdMouseManager *manager,
                     gboolean         state)
@@ -962,418 +143,32 @@ set_mousetweaks_daemon (GsdMouseManager *manager,
         g_free (comm);
 }
 
-static gboolean
-get_touchpad_handedness (GsdMouseManager *manager, gboolean mouse_left_handed)
-{
-        switch (g_settings_get_enum (manager->priv->touchpad_settings, KEY_LEFT_HANDED)) {
-        case GSD_TOUCHPAD_HANDEDNESS_RIGHT:
-                return FALSE;
-        case GSD_TOUCHPAD_HANDEDNESS_LEFT:
-                return TRUE;
-        case GSD_TOUCHPAD_HANDEDNESS_MOUSE:
-                return mouse_left_handed;
-        default:
-                g_assert_not_reached ();
-        }
-}
-
-static void
-set_natural_scroll (GsdMouseManager *manager,
-                    GdkDevice       *device,
-                    gboolean         natural_scroll)
-{
-        XDevice *xdevice;
-        Atom scrolling_distance, act_type;
-        int rc, act_format;
-        unsigned long nitems, bytes_after;
-        unsigned char *data;
-        glong *ptr;
-
-        xdevice = open_gdk_device (device);
-        if (xdevice == NULL)
-                return;
-
-        if (!xdevice_is_synaptics (xdevice)) {
-                xdevice_close (xdevice);
-                return;
-        }
-
-        if (xdevice_is_libinput (gdk_x11_device_get_id (device)))
-                return;
-
-        g_debug ("Trying to set %s for \"%s\"",
-                 natural_scroll ? "natural (reverse) scroll" : "normal scroll",
-                 gdk_device_get_name (device));
-
-        scrolling_distance = XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
-                                          "Synaptics Scrolling Distance", False);
-
-        gdk_error_trap_push ();
-        rc = XGetDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), xdevice,
-                                 scrolling_distance, 0, 2, False,
-                                 XA_INTEGER, &act_type, &act_format, &nitems,
-                                 &bytes_after, &data);
-
-        if (rc == Success && act_type == XA_INTEGER && act_format == 32 && nitems >= 2) {
-                ptr = (glong *) data;
-
-                if (natural_scroll) {
-                        ptr[0] = -abs(ptr[0]);
-                        ptr[1] = -abs(ptr[1]);
-                } else {
-                        ptr[0] = abs(ptr[0]);
-                        ptr[1] = abs(ptr[1]);
-                }
-
-                XChangeDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), xdevice,
-                                       scrolling_distance, XA_INTEGER, act_format,
-                                       PropModeReplace, data, nitems);
-        }
-
-        if (gdk_error_trap_pop ())
-                g_warning ("Error setting %s for \"%s\"",
-                           natural_scroll ? "natural (reverse) scroll" : "normal scroll",
-                           gdk_device_get_name (device));
-
-        if (rc == Success)
-                XFree (data);
-
-        xdevice_close (xdevice);
-}
-
-static void
-set_scroll_wheel_button (GsdMouseManager *manager,
-                         GdkDevice       *device)
-{
-        Atom wheel_prop, button_prop;
-        XDevice *xdevice;
-        Atom type;
-        int format;
-        unsigned long nitems, bytes_after;
-        unsigned char *data = NULL;
-        int button;
-        int rc;
-
-        if (!device_is_trackball (device))
-                return;
-
-        if (xdevice_is_libinput (gdk_x11_device_get_id (device)))
-                return;
-
-        xdevice = open_gdk_device (device);
-        if (xdevice == NULL)
-                return;
-
-        wheel_prop = XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
-                                  "Evdev Wheel Emulation", True);
-        button_prop = XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
-                                   "Evdev Wheel Emulation Button", True);
-
-        if (!wheel_prop || !button_prop) {
-                xdevice_close (xdevice);
-                return;
-        }
-
-        g_debug ("setting scroll wheel emulation on %s", gdk_device_get_name (device));
-
-        gdk_error_trap_push ();
-
-        button = g_settings_get_int (manager->priv->trackball_settings, KEY_SCROLL_WHEEL_BUTTON);
-
-        /* Whether scroll wheel emulation is enabled */
-        rc = XGetDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
-                                 xdevice, wheel_prop, 0, 1, False, XA_INTEGER, &type, &format,
-                                 &nitems, &bytes_after, &data);
-
-        if (rc == Success && format == 8 && type == XA_INTEGER && nitems == 1) {
-                data[0] = button > 0 ? 1 : 0;
-
-                XChangeDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
-                                       xdevice, wheel_prop, type, format, PropModeReplace, data, nitems);
-        }
-
-        if (data) {
-                XFree (data);
-                data = NULL;
-        }
-
-        /* Which button is used for the emulation */
-        if (button > 0) {
-                rc = XGetDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
-                                         xdevice, button_prop, 0, 1, False, XA_INTEGER, &type, &format,
-                                         &nitems, &bytes_after, &data);
-
-                if (rc == Success && format == 8 && type == XA_INTEGER && nitems == 1) {
-                        data[0] = button;
-
-                        XChangeDeviceProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
-                                               xdevice, button_prop, type, format, PropModeReplace, data, 
nitems);
-                }
-
-                if (data)
-                        XFree (data);
-        }
-
-        if (gdk_error_trap_pop ())
-                g_warning ("Error in setting scroll wheel emulation on \"%s\"", gdk_device_get_name 
(device));
-
-        xdevice_close (xdevice);
-}
-
-static gboolean
-get_touchpad_enabled (GsdMouseManager *manager)
-{
-        GDesktopDeviceSendEvents send_events;
-
-        send_events = g_settings_get_enum (manager->priv->touchpad_settings, KEY_SEND_EVENTS);
-
-        if (send_events == G_DESKTOP_DEVICE_SEND_EVENTS_DISABLED_ON_EXTERNAL_MOUSE) {
-                /* FIXME: mouse_is_present() also finds internal ones... */
-                return (!mouse_is_present () && !trackball_is_present ());
-
-        }
-
-        return send_events == G_DESKTOP_DEVICE_SEND_EVENTS_ENABLED ? TRUE : FALSE;
-}
-
-static void
-set_mouse_settings (GsdMouseManager *manager,
-                    GdkDevice       *device)
-{
-        gboolean mouse_left_handed, touchpad_left_handed;
-
-        if (xdevice_is_libinput (gdk_x11_device_get_id (device)))
-                return;
-
-        mouse_left_handed = g_settings_get_boolean (manager->priv->mouse_settings, KEY_LEFT_HANDED);
-        touchpad_left_handed = get_touchpad_handedness (manager, mouse_left_handed);
-        set_left_handed (manager, device, mouse_left_handed, touchpad_left_handed);
-
-        set_motion (manager, device);
-
-        set_tap_to_click (device, g_settings_get_boolean (manager->priv->touchpad_settings, 
KEY_TAP_TO_CLICK), touchpad_left_handed);
-        set_edge_scrolling_enabled (manager, device, g_settings_get_boolean 
(manager->priv->touchpad_settings, KEY_EDGE_SCROLLING_ENABLED));
-        set_horiz_scroll (device, TRUE);
-        set_natural_scroll (manager, device, g_settings_get_boolean (manager->priv->touchpad_settings, 
KEY_NATURAL_SCROLL_ENABLED));
-
-        set_scroll_wheel_button (manager, device);
-}
-
 static void
 mouse_callback (GSettings       *settings,
                 const gchar     *key,
                 GsdMouseManager *manager)
 {
-        GList *devices, *l;
-
         if (g_str_equal (key, KEY_DWELL_CLICK_ENABLED) ||
             g_str_equal (key, KEY_SECONDARY_CLICK_ENABLED)) {
                 set_mousetweaks_daemon (manager,
                                         g_settings_get_boolean (settings, KEY_DWELL_CLICK_ENABLED),
                                         g_settings_get_boolean (settings, KEY_SECONDARY_CLICK_ENABLED));
-                return;
         } else if (g_str_equal (key, KEY_LOCATE_POINTER)) {
                 set_locate_pointer (manager, g_settings_get_boolean (settings, KEY_LOCATE_POINTER));
-                return;
         }
-
-        devices = gdk_device_manager_list_devices (manager->priv->device_manager, GDK_DEVICE_TYPE_SLAVE);
-
-        for (l = devices; l != NULL; l = l->next) {
-                GdkDevice *device = l->data;
-
-                if (device_is_ignored (manager, device))
-                        continue;
-
-                if (xdevice_is_libinput (gdk_x11_device_get_id (device)))
-                        continue;
-
-                if (g_str_equal (key, KEY_LEFT_HANDED)) {
-                        gboolean mouse_left_handed;
-                        mouse_left_handed = g_settings_get_boolean (settings, KEY_LEFT_HANDED);
-                        set_left_handed (manager, device, mouse_left_handed, get_touchpad_handedness 
(manager, mouse_left_handed));
-                } else if (g_str_equal (key, KEY_SPEED)) {
-                        set_motion (manager, device);
-                }
-        }
-        g_list_free (devices);
-}
-
-static void
-touchpad_callback (GSettings       *settings,
-                   const gchar     *key,
-                   GsdMouseManager *manager)
-{
-        GList *devices, *l;
-
-        devices = gdk_device_manager_list_devices (manager->priv->device_manager, GDK_DEVICE_TYPE_SLAVE);
-
-        for (l = devices; l != NULL; l = l->next) {
-                GdkDevice *device = l->data;
-
-                if (device_is_ignored (manager, device))
-                        continue;
-
-                if (xdevice_is_libinput (gdk_x11_device_get_id (device)))
-                        continue;
-
-                if (g_str_equal (key, KEY_TAP_TO_CLICK)) {
-                        gboolean mouse_left_handed;
-                        mouse_left_handed = g_settings_get_boolean (manager->priv->mouse_settings, 
KEY_LEFT_HANDED);
-                        set_tap_to_click (device, g_settings_get_boolean (settings, key),
-                                          get_touchpad_handedness (manager, mouse_left_handed));
-                } else if (g_str_equal (key, KEY_EDGE_SCROLLING_ENABLED)) {
-                        set_edge_scrolling_enabled (manager, device, g_settings_get_boolean (settings, key));
-                        set_horiz_scroll (device, TRUE);
-                } else if (g_str_equal (key, KEY_SPEED)) {
-                        set_motion (manager, device);
-                } else if (g_str_equal (key, KEY_LEFT_HANDED)) {
-                        gboolean mouse_left_handed;
-                        mouse_left_handed = g_settings_get_boolean (manager->priv->mouse_settings, 
KEY_LEFT_HANDED);
-                        set_left_handed (manager, device, mouse_left_handed, get_touchpad_handedness 
(manager, mouse_left_handed));
-                } else if (g_str_equal (key, KEY_NATURAL_SCROLL_ENABLED)) {
-                        set_natural_scroll (manager, device, g_settings_get_boolean (settings, key));
-                }
-        }
-        g_list_free (devices);
-
-        if (g_str_equal (key, KEY_SEND_EVENTS)) {
-                ensure_touchpad_active (manager);
-        }
-}
-
-static void
-trackball_callback (GSettings       *settings,
-                    const gchar     *key,
-                    GsdMouseManager *manager)
-{
-        GList *devices, *l;
-
-        devices = gdk_device_manager_list_devices (manager->priv->device_manager, GDK_DEVICE_TYPE_SLAVE);
-
-        for (l = devices; l != NULL; l = l->next) {
-                GdkDevice *device = l->data;
-
-                if (device_is_ignored (manager, device))
-                        continue;
-
-                if (xdevice_is_libinput (gdk_x11_device_get_id (device)))
-                        return;
-
-                set_scroll_wheel_button (manager, device);
-        }
-        g_list_free (devices);
-}
-
-/* Re-enable touchpad when any other pointing device isn't present. */
-static void
-ensure_touchpad_active (GsdMouseManager *manager)
-{
-        GList *devices, *l;
-        gboolean state;
-
-        state = get_touchpad_enabled (manager);
-        if (state) {
-                devices = get_disabled_synaptics ();
-                for (l = devices; l != NULL; l = l->next) {
-                        int device_id;
-
-                        device_id = GPOINTER_TO_INT (l->data);
-                        set_touchpad_enabled (device_id);
-                }
-                g_list_free (devices);
-        } else {
-                devices = gdk_device_manager_list_devices (manager->priv->device_manager,
-                                                           GDK_DEVICE_TYPE_SLAVE);
-
-                for (l = devices; l != NULL; l = l->next) {
-                        GdkDevice *device = l->data;
-
-                        if (device_is_ignored (manager, device))
-                                continue;
-                        if (xdevice_is_libinput (gdk_x11_device_get_id (device)))
-                                continue;
-                        if (gdk_device_get_source (device) != GDK_SOURCE_TOUCHPAD)
-                                continue;
-
-                        set_touchpad_disabled (device);
-                }
-
-                g_list_free (devices);
-        }
-
-        set_disable_w_typing (manager, state);
-}
-
-static void
-device_added_cb (GdkDeviceManager *device_manager,
-                 GdkDevice        *device,
-                 GsdMouseManager  *manager)
-{
-        if (device_is_ignored (manager, device) == FALSE) {
-                if (run_custom_command (device, COMMAND_DEVICE_ADDED) == FALSE) {
-                        set_mouse_settings (manager, device);
-                } else {
-                        int id;
-                        g_object_get (G_OBJECT (device), "device-id", &id, NULL);
-                        g_hash_table_insert (manager->priv->blacklist,
-                                             GINT_TO_POINTER (id), GINT_TO_POINTER (1));
-                }
-
-                ensure_touchpad_active (manager);
-        }
-}
-
-static void
-device_removed_cb (GdkDeviceManager *device_manager,
-                   GdkDevice        *device,
-                   GsdMouseManager  *manager)
-{
-       int id;
-
-       /* Remove the device from the hash table so that
-        * device_is_ignored () doesn't check for blacklisted devices */
-       g_object_get (G_OBJECT (device), "device-id", &id, NULL);
-       g_hash_table_remove (manager->priv->blacklist,
-                            GINT_TO_POINTER (id));
-
-        if (device_is_ignored (manager, device) == FALSE) {
-                run_custom_command (device, COMMAND_DEVICE_REMOVED);
-
-                ensure_touchpad_active (manager);
-        }
-}
-
-static void
-set_devicepresence_handler (GsdMouseManager *manager)
-{
-        GdkDeviceManager *device_manager;
-
-        device_manager = gdk_display_get_device_manager (gdk_display_get_default ());
-
-        manager->priv->device_added_id = g_signal_connect (G_OBJECT (device_manager), "device-added",
-                                                           G_CALLBACK (device_added_cb), manager);
-        manager->priv->device_removed_id = g_signal_connect (G_OBJECT (device_manager), "device-removed",
-                                                             G_CALLBACK (device_removed_cb), manager);
-        manager->priv->device_manager = device_manager;
 }
 
 static void
 gsd_mouse_manager_init (GsdMouseManager *manager)
 {
         manager->priv = GSD_MOUSE_MANAGER_GET_PRIVATE (manager);
-        manager->priv->blacklist = g_hash_table_new (g_direct_hash, g_direct_equal);
 }
 
 static gboolean
 gsd_mouse_manager_idle_cb (GsdMouseManager *manager)
 {
-        GList *devices, *l;
-
         gnome_settings_profile_start (NULL);
 
-        set_devicepresence_handler (manager);
-
         manager->priv->gsd_mouse_settings = g_settings_new (GSD_SETTINGS_MOUSE_SCHEMA);
         g_signal_connect (manager->priv->gsd_mouse_settings, "changed",
                           G_CALLBACK (mouse_callback), manager);
@@ -1381,46 +176,17 @@ gsd_mouse_manager_idle_cb (GsdMouseManager *manager)
         manager->priv->mouse_a11y_settings = g_settings_new ("org.gnome.desktop.a11y.mouse");
         g_signal_connect (manager->priv->mouse_a11y_settings, "changed",
                           G_CALLBACK (mouse_callback), manager);
-
+#if 0
         manager->priv->mouse_settings = g_settings_new (GSETTINGS_MOUSE_SCHEMA);
         g_signal_connect (manager->priv->mouse_settings, "changed",
                           G_CALLBACK (mouse_callback), manager);
-
-        manager->priv->touchpad_settings = g_settings_new (GSETTINGS_TOUCHPAD_SCHEMA);
-        g_signal_connect (manager->priv->touchpad_settings, "changed",
-                          G_CALLBACK (touchpad_callback), manager);
-
-        manager->priv->trackball_settings = g_settings_new (GSETTINGS_TRACKBALL_SCHEMA);
-        g_signal_connect (manager->priv->trackball_settings, "changed",
-                          G_CALLBACK (trackball_callback), manager);
-
-        manager->priv->syndaemon_spawned = FALSE;
+#endif
 
         set_locate_pointer (manager, g_settings_get_boolean (manager->priv->gsd_mouse_settings, 
KEY_LOCATE_POINTER));
         set_mousetweaks_daemon (manager,
                                 g_settings_get_boolean (manager->priv->mouse_a11y_settings, 
KEY_DWELL_CLICK_ENABLED),
                                 g_settings_get_boolean (manager->priv->mouse_a11y_settings, 
KEY_SECONDARY_CLICK_ENABLED));
 
-        devices = gdk_device_manager_list_devices (manager->priv->device_manager, GDK_DEVICE_TYPE_SLAVE);
-        for (l = devices; l != NULL; l = l->next) {
-                GdkDevice *device = l->data;
-
-                if (device_is_ignored (manager, device))
-                        continue;
-
-                if (run_custom_command (device, COMMAND_DEVICE_PRESENT) == FALSE) {
-                        set_mouse_settings (manager, device);
-                } else {
-                        int id;
-                        g_object_get (G_OBJECT (device), "device-id", &id, NULL);
-                        g_hash_table_insert (manager->priv->blacklist,
-                                             GINT_TO_POINTER (id), GINT_TO_POINTER (1));
-                }
-        }
-        g_list_free (devices);
-
-        ensure_touchpad_active (manager);
-
         gnome_settings_profile_end (NULL);
 
         manager->priv->start_idle_id = 0;
@@ -1436,11 +202,6 @@ gsd_mouse_manager_start (GsdMouseManager *manager,
 
         migrate_mouse_settings ();
 
-        if (!supports_xinput_devices ()) {
-                g_debug ("XInput is not supported, not applying any settings");
-                return TRUE;
-        }
-
         if (gnome_settings_is_wayland ())
                 return TRUE;
 
@@ -1464,16 +225,9 @@ gsd_mouse_manager_stop (GsdMouseManager *manager)
                 manager->priv->start_idle_id = 0;
         }
 
-        if (p->device_manager != NULL) {
-                g_signal_handler_disconnect (p->device_manager, p->device_added_id);
-                g_signal_handler_disconnect (p->device_manager, p->device_removed_id);
-                p->device_manager = NULL;
-        }
-
         g_clear_object (&p->mouse_a11y_settings);
         g_clear_object (&p->mouse_settings);
         g_clear_object (&p->touchpad_settings);
-        g_clear_object (&p->trackball_settings);
         g_clear_object (&p->gsd_mouse_settings);
 
         set_locate_pointer (manager, FALSE);
@@ -1493,9 +247,6 @@ gsd_mouse_manager_finalize (GObject *object)
 
         gsd_mouse_manager_stop (mouse_manager);
 
-        if (mouse_manager->priv->blacklist != NULL)
-                g_hash_table_destroy (mouse_manager->priv->blacklist);
-
         G_OBJECT_CLASS (gsd_mouse_manager_parent_class)->finalize (object);
 }
 


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