using compiz' enhanced zoom plugin corrupts mouse pointers

Bug #227907 reported by bgruber
112
This bug affects 15 people
Affects Status Importance Assigned to Milestone
X.Org X server
Unknown
Low
xorg-server (Ubuntu)
Fix Released
Medium
Unassigned

Bug Description

Binary package hint: compiz-fusion-plugins-main

If i use the enhanced zoom plugin (by 'use' i mean actually zoom in and out, not just turn it on), thereafter my 'progress' and i believe 'wait' mouse pointers are invisible. The only way I can figure to get them back is to restart X.

If I happen to zoom in when the pointer is in the 'wait' state, it gets stuck in the wait state until I restart X.

bgruber (bgruber)
description: updated
Revision history for this message
Travis Watkins (amaranth) wrote :

This is a problem in the XFIXES extension in Xorg.

Revision history for this message
Bryce Harrington (bryce) wrote :

@bgruber, Please attach your /var/log/Xorg.0.log.

@Travis, can you explain more specifically what issue needs fixed in XFIXES?

Changed in xorg-server:
status: New → Incomplete
Revision history for this message
bgruber (bgruber) wrote :

as requested

Bryce Harrington (bryce)
Changed in xorg-server:
importance: Undecided → Medium
status: Incomplete → Triaged
Revision history for this message
vwr0527 (vwr0527) wrote :

This is an ancient bug. Nobody has even tried to fix it. Who takes care of this plugin for compiz??
This is probably over 1 year old, but here is ubuntu 8.10 and it is still here.
This bug happens on three computers I have used, so I assume it happens on all computers. In fact I'm sure it happens on all computers. The following steps WILL reproduce the bug, guaranteed.

Steps to reproduce: Get compiz config settings manager, go to enhanced desktop zoom, goto Mouse Behavior, tick Scale Mouse Pointer, Tick Hide original mouse pointer, and the bug is now activated until you restart the X server.

The bug is all animating cursors disappear. This is a very hairy situation because anytime firefox is loading anything, you lose your mouse. You have to try and guess where it is.

Feature request:
I would like to have a "RTS" style desktop zoom, where moving the mouse to the edges moves the zoom area. I was close, but with this bug, I can't. Anyway I guess I will stick to the default where the mouse is in the middle of whatever video I'm trying to watch while zoomed.

Revision history for this message
vwr0527 (vwr0527) wrote :

Well, at least from 8.04, so, six months old.

Revision history for this message
Will Hui (willh126) wrote :

The ezoom plugin uses a hacky method to allow users to interact with transformed windows (doing this properly requires input redirection support from the X server, which it doesn't have yet). A consequence of this approach is the mouse cursor disappearing bug mentioned here. From a comment in the source code:

 * Hide the real cursor and draw our own where it would be when zoomed in.
 * This allows us to navigate with the mouse without constantly moving the
 * zoom area. This is fairly close to what we want in the end when input
 * redirection is available.
 *
 * This second method has one huge issue, which is bugged XFixes. After
 * hiding the cursor once with XFixes, some mouse cursors will simply be
 * invisible. The Firefox loading cursor being one of them.

http://gitweb.compiz-fusion.org/?p=fusion/plugins/ezoom;a=blob;f=ezoom.c;h=5749c17e2e1fbe907f9f64e922acea59fd8f5ab7;hb=eb651d03c6477c0e522c1fb85cacca0d17cde4ed

Revision history for this message
In , gandalfn (gandalfn) wrote :

After using XFixesHideCursor/XFixesShowCursor all animated cursors disappearing.

It's seem when calling XFixesHideCursor or CursorFreeHideCount we call CursorDisplayCursor to initiate or to finish hiding. This function do Unwrap/Wrap
which break stack function calling and loose DisplayCursor from render animcursor.
Here a naive patch which just call directly the parent function when initiate or finish hiding/showing cursor.

Revision history for this message
In , gandalfn (gandalfn) wrote :

Created an attachment (id=24008)
xfixes-fix-animated-cursor-disappearing.patch

Revision history for this message
bgruber (bgruber) wrote :

seems fixed in jaunty

Changed in xorg-server (Ubuntu):
status: Triaged → Fix Released
Revision history for this message
Austin Chu (eefi) wrote :

I just tested this on a Jaunty live CD, and animated cursors are still disappearing after activating zoom with the GConf key /apps/compiz/plugins/ezoom/screen0/options/hide_original_mouse set to true. bgruber, are you sure you turned hide_original_mouse on when you tested it?

It looks like this bug has been reported upstream. There's also a "naive" patch there which seems to fix things, but I don't know enough about the X.Org internals to know whether it's a good long-term patch.

Changed in xorg-server (Ubuntu):
status: Fix Released → Confirmed
Changed in xorg-server:
status: Unknown → Confirmed
Revision history for this message
bgruber (bgruber) wrote :

EspeonEefi is correct. The bug is still there. You have to turn on hide_original_mouse in order to see the problem.

Revision history for this message
Jacob Nevins (0jacobnk-ulp) wrote :

I've marked a bunch of other reports in Launchpad as duplicates of this one, since this one seems to have the highest signal-to-noise; hope that's OK.

Possibly-useful additional information:
* On the workaround: this bug is triggered when a zoom is done with at least "Scale the mouse pointer" and "Hide original mouse pointer" in Enhanced Zoom Desktop's configuration. Once it's triggered, that's it; unchecking "Hide original mouse pointer" won't bring your pointer back until X is restarted, but once restarted, you won't lose it again.
* However, that workaround doesn't help if you want to use the (disabled-by-default) "Toggle zoom area lock", because the original mouse pointer is in the wrong place. (Maybe that's a different bug. LP#180830 refers.)
* A few of the duplicated bugs and posts on Ubuntu Forums (e.g. <http://ubuntuforums.org/showpost.php?p=3664399&postcount=13>) refer to a link-rotted blog post by a Compiz Fusion developer, Kristian Lyngstøl; since it took me a while to track down, here it is: <http://dev.compiz-fusion.org/~kristian/2007/08/25/xfixes-the-problem-and-the-dirty-workaround/>. (Another post on this subject by Kristian: <http://ubuntuforums.org/showpost.php?p=3167896&postcount=26>. However, I'm not sure these references add much to what's already in this bug.)

(Yes, I am running into this, on Jaunty.)

Revision history for this message
Austin Chu (eefi) wrote :

I'm running Debian unstable, and X.Org 1.7 just landed, which seems to have a proper fix for this issue. The related commit is http://cgit.freedesktop.org/xorg/xserver/commit/?id=d040940efe041b57e6323921c380ceb2bb43f41e . I don't have a freedesktop.org Bugzilla login, but someone who does might want to update that bug as well.

Revision history for this message
Bryce Harrington (bryce) wrote :

[This is an automatic notification.]

Hi bgruber,

This bug was reported against an earlier version of Ubuntu, can you
test if it still occurs on Lucid?

Please note we also provide technical support for older versions of
Ubuntu, but not in the bug tracker. Instead, to raise the issue through
normal support channels, please see:

    http://www.ubuntu.com/support

If you are the original reporter and can still reproduce the issue on
Lucid, please run the following command to refresh the report:

  apport-collect 227907

If you are not the original reporter, please file a new bug report, so
we can work with you as the original reporter instead (you can reference
bug 227907 in your report if you think it may be related):

  ubuntu-bug xorg

If by chance you can no longer reproduce the issue on Lucid or if you
feel it is no longer relevant, please mark the bug report 'Fix Released'
or 'Invalid' as appropriate, at the following URL:

  https://bugs.launchpad.net/ubuntu/+bug/227907

Changed in xorg-server (Ubuntu):
status: Confirmed → Incomplete
tags: added: needs-retested-on-lucid-by-june
Revision history for this message
bgruber (bgruber) wrote :

seems fixed on lucid

Changed in xorg-server (Ubuntu):
status: Incomplete → Fix Released
Revision history for this message
Mike.lifeguard (mikelifeguard) wrote :

Yep, fixed.

Revision history for this message
Pedro Bessa (deltrem1984) wrote :

I have Lucid. I disabled mouse pointer hiding and scaling in Enhanced Zoom in Compiz Config Manager. The mouse pointer is still disappearing.

Revision history for this message
Pedro Bessa (deltrem1984) wrote :

The solution may be to use the latest nvidia driver. I'm going to try that.

Changed in xorg-server:
importance: Unknown → Low
Changed in xorg-server:
importance: Low → Unknown
Changed in xorg-server:
importance: Unknown → Low
Revision history for this message
In , Gitlab-migration (gitlab-migration) wrote :

-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/xserver/issues/376.

Changed in xorg-server:
status: Confirmed → Unknown
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.