- turn off dwellmouselistener if devices don't send core events. don't warp
pointer to stylus ever (upstream bug 457998)
This commit is contained in:
parent
f3a859bb17
commit
f4aa76ce34
78
gdm-2.19.5-dont-warp-pointer-to-stylus.patch
Normal file
78
gdm-2.19.5-dont-warp-pointer-to-stylus.patch
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
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;
|
||||||
|
static guint max_crossings = 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
|
||||||
|
|
||||||
|
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
|
||||||
|
cursor);
|
||||||
|
gdk_cursor_unref (cursor);
|
||||||
|
g_timeout_add (2000, change_cursor_back, NULL);
|
||||||
|
- latch_core_pointer = FALSE;
|
||||||
|
- /* once we've recognized a gesture, we need to *
|
||||||
|
- * leave the pointer alone */
|
||||||
|
|
||||||
|
at_name = strstr (action, "#AT_TYPE=");
|
||||||
|
if (at_name != NULL) {
|
||||||
|
@@ -719,25 +728,6 @@ leave_enter_emission_hook (GSignalInvoca
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static GdkFilterReturn
|
||||||
|
-gestures_filter (GdkXEvent *gdk_xevent,
|
||||||
|
- GdkEvent *event,
|
||||||
|
- gpointer data)
|
||||||
|
-{
|
||||||
|
- XEvent *xevent = (XEvent *)gdk_xevent;
|
||||||
|
-
|
||||||
|
- if (xevent->type == xinput_type_motion) {
|
||||||
|
- XDeviceMotionEvent *motion = (XDeviceMotionEvent *) xevent;
|
||||||
|
- if ((motion->axes_count < 2) || !is_ext_device (motion->deviceid))
|
||||||
|
- return GDK_FILTER_CONTINUE;
|
||||||
|
- if (latch_core_pointer)
|
||||||
|
- XWarpPointer (motion->display, None,
|
||||||
|
- motion->root,
|
||||||
|
- 0, 0, 0, 0, motion->axis_data[0], motion->axis_data[1]);
|
||||||
|
- }
|
||||||
|
- return GDK_FILTER_CONTINUE;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
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)));
|
||||||
|
|
||||||
|
- gdk_window_add_filter (NULL, gestures_filter, NULL);
|
||||||
|
-
|
||||||
|
/* set up emission hook */
|
||||||
|
gtk_type_class (GTK_TYPE_WIDGET);
|
||||||
|
enter_signal_id = g_signal_lookup ("enter-notify-event", GTK_TYPE_WIDGET);
|
10
gdm.spec
10
gdm.spec
@ -17,7 +17,7 @@
|
|||||||
Summary: The GNOME Display Manager
|
Summary: The GNOME Display Manager
|
||||||
Name: gdm
|
Name: gdm
|
||||||
Version: 2.19.5
|
Version: 2.19.5
|
||||||
Release: 3%{?dist}
|
Release: 4%{?dist}
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
Group: User Interface/X
|
Group: User Interface/X
|
||||||
@ -50,6 +50,9 @@ Patch32: gdm-2.19.1-a11y-fixes-for-themed-greeter.patch
|
|||||||
# http://bugzilla.gnome.org/show_bug.cgi?id=411501
|
# http://bugzilla.gnome.org/show_bug.cgi?id=411501
|
||||||
Patch33: gdm-2.19.1-pass-ats-to-session.patch
|
Patch33: gdm-2.19.1-pass-ats-to-session.patch
|
||||||
|
|
||||||
|
# http://bugzilla.gnome.org/show_bug.cgi?id=457998
|
||||||
|
Patch34: gdm-2.19.5-dont-warp-pointer-to-stylus.patch
|
||||||
|
|
||||||
Patch100: gdm-2.19.4-change-defaults.patch
|
Patch100: gdm-2.19.4-change-defaults.patch
|
||||||
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
@ -131,6 +134,7 @@ Extra icons / faces for the GNOME Display Manager.
|
|||||||
%patch29 -p0 -b .greeter
|
%patch29 -p0 -b .greeter
|
||||||
%patch32 -p1 -b .a11y-fixes
|
%patch32 -p1 -b .a11y-fixes
|
||||||
%patch33 -p1 -b .pass-ats-to-session
|
%patch33 -p1 -b .pass-ats-to-session
|
||||||
|
%patch34 -p1 -b .dont-warp-pointer-to-stylus
|
||||||
|
|
||||||
%patch100 -p1 -b .change-defaults
|
%patch100 -p1 -b .change-defaults
|
||||||
|
|
||||||
@ -348,6 +352,10 @@ fi
|
|||||||
%{_datadir}/pixmaps/faces/extras/*.jpg
|
%{_datadir}/pixmaps/faces/extras/*.jpg
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Aug 6 2007 Ray Strode <rstrode@redhat.com> - 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)
|
||||||
|
|
||||||
* Fri Aug 3 2007 Ray Strode <rstrode@redhat.com> - 1:2.19.5-3
|
* Fri Aug 3 2007 Ray Strode <rstrode@redhat.com> - 1:2.19.5-3
|
||||||
- remove dwellmouselistener module from default configuration.
|
- remove dwellmouselistener module from default configuration.
|
||||||
It's pretty broken (bug 248752)
|
It's pretty broken (bug 248752)
|
||||||
|
Loading…
Reference in New Issue
Block a user