From 4ce612a6de538b7845bf9a05170a9fce990475d3 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Aug 06 2007 15:28:25 +0000 Subject: - change previous patch to drop even more code --- diff --git a/gdm-2.19.5-dont-warp-pointer-to-stylus.patch b/gdm-2.19.5-dont-warp-pointer-to-stylus.patch index fd21ad3..893b431 100644 --- a/gdm-2.19.5-dont-warp-pointer-to-stylus.patch +++ b/gdm-2.19.5-dont-warp-pointer-to-stylus.patch @@ -1,37 +1,111 @@ diff -up gdm-2.19.5/gui/modules/dwellmouselistener.c.dont-warp-pointer-to-stylus gdm-2.19.5/gui/modules/dwellmouselistener.c ---- gdm-2.19.5/gui/modules/dwellmouselistener.c.dont-warp-pointer-to-stylus 2007-08-06 11:08:06.000000000 -0400 -+++ gdm-2.19.5/gui/modules/dwellmouselistener.c 2007-08-06 11:09:10.000000000 -0400 -@@ -97,7 +97,6 @@ static int cross_pos = 0; +--- gdm-2.19.5/gui/modules/dwellmouselistener.c.dont-warp-pointer-to-stylus 2007-08-06 11:09:49.000000000 -0400 ++++ gdm-2.19.5/gui/modules/dwellmouselistener.c 2007-08-06 11:22:18.000000000 -0400 +@@ -35,10 +35,6 @@ + + #include + +-#ifdef HAVE_XINPUT +-#include +-#endif +- + /* + * Note that CONFIGFILE will have to be changed to something more generic + * if this module is ever moved outside of gdm. +@@ -90,14 +86,10 @@ extern char **environ; + + static guint enter_signal_id = 0; + static guint leave_signal_id = 0; +-static int xinput_type_motion = 0; + + static Crossings *crossings = NULL; + static int cross_pos = 0; static guint max_crossings = 0; - static XID *ext_input_devices = NULL; - static gint ext_device_count = 0; +-static XID *ext_input_devices = NULL; +-static gint ext_device_count = 0; -static gboolean latch_core_pointer = TRUE; static void create_event_watcher (void); static void load_bindings(gchar *path); -@@ -142,8 +141,21 @@ init_xinput (GdkDisplay *display, GdkWin +@@ -110,77 +102,6 @@ static gboolean debug_gestures = FALSE; + BindingType get_binding_type(char c); + BindingDirection get_binding_direction(char c); - for (i=0; i < num_devices; i++) { - if (devices[i].use == IsXExtensionDevice) { -+ -+ XDeviceCoreState *core_state; -+ gboolean sends_core_events = FALSE; -+ - device = XOpenDevice (GDK_DISPLAY_XDISPLAY (display), - devices[i].id); -+ -+ core_state = (XDeviceCoreState *) -+ XGetDeviceControl (GDK_DISPLAY_XDISPLAY (display), -+ device, DEVICE_CORE); -+ if (core_state->length == sizeof (XDeviceCoreState)) -+ sends_core_events = core_state->iscore != False; -+ XFreeDeviceControl ((XDeviceControl *) core_state); -+ -+ if (sends_core_events) - for (j=0; j < device->num_classes && number < 39; j++) { - switch (device->classes[j].input_class) - { -@@ -687,9 +699,6 @@ leave_enter_emission_hook (GSignalInvoca +-static gboolean +-is_ext_device (XID id) +-{ +- gint i; +- for (i=0; i < ext_device_count; i++) +- if (id == ext_input_devices[i]) +- return TRUE; +- +- if (debug_gestures) +- syslog (LOG_WARNING, "is-ext-device failed for %d", (int) id); +- +- return FALSE; +-} +- +-static void +-init_xinput (GdkDisplay *display, GdkWindow *root) +-{ +-#ifdef HAVE_XINPUT +- XEventClass event_list[40]; +- int i, j, number = 0, num_devices; +- XDeviceInfo *devices = NULL; +- XDevice *device = NULL; +- +- devices = XListInputDevices (GDK_DISPLAY_XDISPLAY (display), +- &num_devices); +- +- if (debug_gestures) +- syslog (LOG_WARNING, "Checking %d input devices...", +- num_devices); +- +- for (i=0; i < num_devices; i++) { +- if (devices[i].use == IsXExtensionDevice) { +- device = XOpenDevice (GDK_DISPLAY_XDISPLAY (display), +- devices[i].id); +- for (j=0; j < device->num_classes && number < 39; j++) { +- switch (device->classes[j].input_class) +- { +- case ValuatorClass: +- DeviceMotionNotify (device, +- xinput_type_motion, +- event_list[number]); +- number++; +- default: +- break; +- } +- } +- ++ext_device_count; +- +- if (ext_input_devices) { +- ext_input_devices = g_realloc (ext_input_devices, +- sizeof (XID *) * ext_device_count); +- } else { +- ext_input_devices = g_malloc (sizeof (XID *)); +- } +- ext_input_devices[ext_device_count - 1] = devices[i].id; +- } +- } +- +- if (debug_gestures) +- syslog (LOG_WARNING, "%d event types available", number); +- +- if (XSelectExtensionEvent (GDK_WINDOW_XDISPLAY (root), +- GDK_WINDOW_XWINDOW (root), +- event_list, number)) { +- if (debug_gestures) +- syslog (LOG_WARNING, +- "Can't select input device events!"); +- } +-#endif +-} +- + static gchar * + screen_exec_display_string (GdkScreen *screen, const char *old) + { +@@ -687,9 +608,6 @@ leave_enter_emission_hook (GSignalInvoca cursor); gdk_cursor_unref (cursor); g_timeout_add (2000, change_cursor_back, NULL); @@ -41,7 +115,7 @@ diff -up gdm-2.19.5/gui/modules/dwellmouselistener.c.dont-warp-pointer-to-stylus at_name = strstr (action, "#AT_TYPE="); if (at_name != NULL) { -@@ -719,25 +728,6 @@ leave_enter_emission_hook (GSignalInvoca +@@ -719,25 +637,6 @@ leave_enter_emission_hook (GSignalInvoca return TRUE; } @@ -67,10 +141,14 @@ diff -up gdm-2.19.5/gui/modules/dwellmouselistener.c.dont-warp-pointer-to-stylus static void create_event_watcher (void) { -@@ -762,8 +752,6 @@ create_event_watcher (void) - gdk_screen_get_root_window ( - gdk_display_get_default_screen (display))); +@@ -758,12 +657,6 @@ create_event_watcher (void) + crossings[i].time = 0; + } +- init_xinput (display, +- gdk_screen_get_root_window ( +- gdk_display_get_default_screen (display))); +- - gdk_window_add_filter (NULL, gestures_filter, NULL); - /* set up emission hook */ diff --git a/gdm.spec b/gdm.spec index 3e5718a..f22f9e2 100644 --- a/gdm.spec +++ b/gdm.spec @@ -17,7 +17,7 @@ Summary: The GNOME Display Manager Name: gdm Version: 2.19.5 -Release: 4%{?dist} +Release: 5%{?dist} Epoch: 1 License: GPLv2+ Group: User Interface/X @@ -352,6 +352,9 @@ fi %{_datadir}/pixmaps/faces/extras/*.jpg %changelog +* Mon Aug 6 2007 Ray Strode - 1:2.19.5-5 +- change previous patch to drop even more code + * Mon Aug 6 2007 Ray Strode - 1:2.19.5-4 - turn off dwellmouselistener if devices don't send core events. don't warp pointer to stylus ever (upstream bug 457998)