[Pkg-xfce-devel] Bug#742460: lightdm-gtk-greeter root window cursor problems

Ken Milmore ken.milmore at gmail.com
Sun Mar 23 23:10:34 UTC 2014


Package: lightdm-gtk-greeter
Version: 1.1.6-2
Severity: normal
Tags: upstream patch

Dear Maintainer,

LightDM causes problems with mouse cursors and startup notifications on the
Xfce desktop (and possibly elsewhere).  These seem to be caused by the lightdm
greeter setting a device-specific cursor on the root window (i.e. a cursor set
through XIDefineCursor, called in this case through gdk_window_set_cursor).
This cusror overrides any "normal" cursors set in the desktop environment with
XDefineCursor.

On Xfce in particular, the most noticeable effect is that application startup
notifications do not work - no busy cursor is shown when an application is
launched from the desktop or menus.  Also, if a pointer theme is set, this is
overridden on the root window which continues to show the pointer which was set
by lightdm.

An easy way to demonstrate this problem is to run "xsetroot -cursor_name watch"
from a terminal window.  A "busy" cursor should appear when the pointer is
moved over the desktop; but instead the default arrow cursor remains.

This problem appears to have already been reported in several other places:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=694353
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=671121
https://bugs.launchpad.net/ubuntu/+source/unity-greeter/+bug/1024482

The discussion following on from the Ubuntu bug report seems to have got to the
root of the problem:  When a "device cursor" has been set, it overrides any
"ordinary" cursor defined on the window.  Unfortunately nobody seems to have
applied a fix yet.

I would like to suggest that the attached patch be applied, which I have
tested on Wheezy with Xfce.  It sets the root cursor using XDefineCursor, which
avoids the problems caused by the XInput2 cursor precedence rules.  A fairly
thorough explanation of why this should work appears on comment 15 of the
Ubuntu bug report.

I think the patch should also apply against Jessie/Sid, although I haven't had
a chance to test it on those platforms yet.


-- System Information:
Debian Release: 7.4
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-4-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages lightdm-gtk-greeter depends on:
ii  libc6                   2.13-38+deb7u1
ii  libcairo2               1.12.2-3
ii  libgdk-pixbuf2.0-0      2.26.1-1
ii  libglib2.0-0            2.33.12+really2.32.4-5
ii  libgtk-3-0              3.4.2-7
ii  liblightdm-gobject-1-0  1.2.2-4
ii  libx11-6                2:1.5.0-1+deb7u1

Versions of packages lightdm-gtk-greeter recommends:
ii  desktop-base           7.0.3
ii  gnome-icon-theme       3.4.0-2
ii  gnome-themes-standard  3.4.2-2.1
ii  policykit-1            0.105-3

lightdm-gtk-greeter suggests no packages.

-- no debconf information

*** /home/data/ken/local/default-cursor.patch
diff -Naur lightdm-gtk-greeter-1.1.6.orig/src/lightdm-gtk-greeter.c lightdm-
gtk-greeter-1.1.6/src/lightdm-gtk-greeter.c
--- lightdm-gtk-greeter-1.1.6.orig/src/lightdm-gtk-greeter.c    2012-05-21
10:47:42.000000000 +0100
+++ lightdm-gtk-greeter-1.1.6/src/lightdm-gtk-greeter.c 2014-03-23
22:09:58.723502815 +0000
@@ -722,7 +722,7 @@
         return EXIT_FAILURE;

     /* Set default cursor */
-    gdk_window_set_cursor (gdk_get_default_root_window (), gdk_cursor_new
(GDK_LEFT_PTR));
+    XDefineCursor(gdk_x11_get_default_xdisplay (),
gdk_x11_get_default_root_xwindow (), gdk_x11_cursor_get_xcursor (gdk_cursor_new
(GDK_LEFT_PTR)));



More information about the Pkg-xfce-devel mailing list