Created attachment 40304 [details] source file of test program that can reproduce the bug Please use a multi-monitor configuration with different display addresses (:0.0, :0.1, ...) with at least 2 screens. If a pixmap cursor is created and it is larger than 64x64 pixels, then there will be only one screen which everything will be ok on (mostly :0.0 but not always) but the other screens will show the following problem: If you move that pixmap cursor, the underlying window content will not be restored correctly. It seems that the content of the window that lies at the origin of the root window is always used to restore the window content that the cursor has passed over (like XCoypArea()), independently from the actual cursor coordinates which seem to get lost or replaced by (0, 0). The cursor move leaves behind a track of pixmaps taken from the (0, 0)-pixmap. The error occurs on OpenSuse 11.3 with X.Org version "X.Org X Server 1.8.0 Release Date: 2010-04-02" and also on Ubuntu 10.04 with X.Org version "X.Org X Server 1.7.6 Release Date: 2010-03-17 Build Operating System: Linux 2.6.24-27-server i686 Ubuntu". I think that means both use Xorg 7.5. The error occurs e.g. on HP-Z400 with graphics card Nvidia NVS 450 and with 2 or 3 connected screen, each with a size of 2560x1600 pixels. The error also occurs with graphics card Nvidia NVS 295 and with 2 connected screens with a resolution 0f 1600x1200 Pixels. Since the error will not occur on OpenSuse 11.3 if an older xorg version <= 7.2 is used, it is obviously a bug in the Xserver itself and not in a driver. As the bug appears at least on Ubuntu and Suse Linux, it is widely spread and does not seem to be restricted to the above mentioned hardware configurations. If the pixmap cursor does not exceed 64x64 pixels everything will be ok. In order to reproduce the error I wrote a test program called xpixmapcursoronoff. It consists of the attached file xpixmapcursoronoff.c and can be compiled on Linux as follows: gcc -o xpixmapcursoronoff -g xpixmapcursoronoff.c -lXtst -lXext -lX11 -lXi -I/usr/openwin/include The error can be reproduced as follows: - You need Xorg 7.5 and at least two screens which must be configured with different display addresses (:0.0, :0.1, ...). - Please start xpixmapcursoronoff or xpixmapcursoronoff -bitmap 0 The program automatically starts an active cursor grab and keyboard grab and installs a pixmap cursor with a size of 64x72 pixels. By moving the cursor on several screens you will see that the underlying window content will only be restored correctly on one screen but not on the other ones. The grab can be toggled by pressing a mouse button. The program can be finished by pressing q or with the window manager layout. If you start xpixmapcursoronoff -bitmap 2 the program installs a pixmap cursor with a size of 64x64 pixels and everything will be ok.
Mass closure: This bug has been untouched for more than six years, and is not obviously still valid. Please file a new report if you continue to experience issues with a current server.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.