compiz->enhanced zoom desktop->zoom area lock = mouse input redirection breaks

Bug #180830 reported by phazei
48
This bug affects 7 people
Affects Status Importance Assigned to Milestone
xorg-server (Ubuntu)
Fix Released
Wishlist
Unassigned
Nominated for Karmic by tommy

Bug Description

Binary package hint: compiz

My system has all the latest updates up to the time of this posting.

After using "Enhanced Desktop Zoom" and then "zoom area lock" to stop the screen from following the mouse,
it still follows the mouse... only the screen doesn't move.

So if I go to click a check box (or anywhere), I need to click where it would be if the screen were moving rather than where it's
actually shown when the screen is locked.
You can see the mouse overs occurring in the wrong locations and such.

It appears that it's not redirecting mouse location when zoom area locked.

Perhaps it's more of a compiz bug than and ubuntu, but I didn't know where to report bugs to them.

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

You're not meant to be able to use the mouse when you lock the zoom area, it's just so you don't accidentally move around something you want to zoom in on. To be able to use the mouse in such situations Xorg would need input redirection support.

Changed in compiz:
status: New → Invalid
Revision history for this message
Dean Sadites (dsadites) wrote :

There definitely is a bug here (actually more than one), but I don't believe it's as described above.

Everything works fine as long as 'Zoom Area Lock' is not selected in that mouse clicks register in the correct position. If the 'Zoom Area Lock' option is enabled, however, the mouse clicks do not register in the correct position (i.e. there's a specific offset between where the mouse pointer appears and where the click is actually registered). This can be corrected by selecting the 'Scale the mouse pointer' option after which the scaled mouse pointer will register clicks in the correct position. The 'Hide original mouse pointer' option needs to be selected along with 'Scale the mouse pointer' to avoid the confusion of having two mouse pointers visible on the screen. However, this is where the solution breaks down due to other bugs. When the 'hide' option is selected, the animated mouse cursor that should appear when an application is waiting (e.g. during a Firefox page loading) doesn't display at all, so you have no idea where the mouse pointer is while waiting for things. I often click on links on web pages before waiting for the page to completely load (some pages never load completely -- e.g. waiting for Google Analytics), so it's extremely frustrating and annoying to not know where the mouse pointer is. To make matters worse, this functionality is also broken when not even actively using the zoom functionality. In the addition to this behavior with 'Zoom Area Lock', the same will also occur if 'Sync Mouse' is disabled and 'Mouse panning' is enabled.

Lot's of people have complained about this problem so it would be great to get it fixed. The Enhanced Desktop Zoom is an indispensable tool, but it's use is severely crippled by these few bugs.

Revision history for this message
Topher (hunt-topher) wrote :

Confirm in Ubuntu Gutsy with Intel graphics card. As Sadites said, the cursor position is misrepresented, causing confusion when clicking (and annoyance when you can't get the cursor away from that YouTube video). The problem is solved with the scaled cursor, but as also noted by Sadites, hiding the original cursor causes additional problems.

Revision history for this message
Alexandre Bourget (wackysalut) wrote :

Confirmed also in Hardy. Another side effect, is that, when zoomed in (with Scale + Hide), the clicks go through at the right position, but using the "Annotate" plug-in still uses a wrong positioning. I'd be neat to be able to use those two functions together, and very useful when doing screencasts, or presentations.

Revision history for this message
Alexandre Bourget (wackysalut) wrote :

This is actually still happening in Ubuntu 8.04 .. losing the mouse pointer is annoying :)

Changed in compiz:
status: Invalid → Confirmed
Revision history for this message
Travis Watkins (amaranth) wrote :

Don't use Zoom Area Lock, you're not meant to be able to interact with the system at all while Zoom Area Lock is enabled, it's just so you can stop to read one part of the screen.

Changed in compiz:
status: Confirmed → Won't Fix
Revision history for this message
Dean Sadites (dsadites) wrote :

Travis, sorry, but that makes absolutely no sense whatsoever. There are countless reasons why you would want and need to interact with the screen while locked. Training presentations are just one example. When connected to a projector, it is often helpful to zoom into part of an application window or website so that everyone can clearly see. In fact, even zooming into an entire window (e.g. using Super-R) and then locking it would also be useful.

As mentioned, there are ways to make it work but then it breaks other functionality. Case in point, when mousepointer scaling is enabled (which enables interactivity on zoom-locked windows) and the second mouse pointer is hidden, Ubuntu completely loses any sort of 'in progress' or 'busy' pointer. Try navigating web pages when the cursor completely disppears when a webpage is loading. It's a pain to have to wait for the entire webpage to finish loading before being able to click on a link. And, keep in mind, this occurs when not actively using the Enhanced Zoom function. It's clearly related to the 'Hide original mouse pointer' option not being disabled again after zooming out.

No matter how you look at this, it's a bug (or more than one bug -- and extremely irritating) and needs to be fixed. Saying "you're not meant to be able to interact with the system ... while Zoom Area Lock is enabled" is both counterintuitive and senseless. Clearly it does work (and therefore I can only assume WAS designed to work) but it breaks other stuff in the process that isn't even related to the Enhanced Desktop Zoom. I would think this should be an easy fix -- just enable the 'Hide original mouse cursor' option (if selected) when zooming and disable it when zoomed out. Of course, 'Scale the mouse pointer' has to be enabled for everything to work, but this would be completely acceptable.

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

You can't interact with things when Zoom Area Lock is enabled because the X server does not support input redirection. In you insist on reopening this bug I'll just reassign it over there where it belongs. We might get this feature in a year or two.

Changed in compiz:
importance: Undecided → Wishlist
status: Won't Fix → Confirmed
Revision history for this message
Dean Sadites (dsadites) wrote :

Travis, I don't understand why you keep saying that "you can't interact with things when Zoom Area Lock is enabled." The fact is, you *can* -- as long as the "Scale the mouse pointer" option is enabled. Please try it and you'll see. (Strictly speaking you can also interact using the unscaled pointer, but it will be offset by a specific amount related to the zoom level, so it's pretty much unusable.) The bug that's being referred to above has nothing to do with not being able to interact while the zoom area is locked.

Let me try to explain it again:

The problem is that when "Scale the mouse pointer" is enabled (which is required to interact while zoomed in and while Zoom Area Lock is enabled) two mouse pointers appear -- the original unscaled pointer and the scaled pointer. Obviously it is very confusing to have two mouse pointers displayed, so the one that doesn't work while Zoom Area Lock is activated needs to be hidden. In order to hide the original unscaled pointer, the "Hide original mouse pointer" option must be selected under the "Mouse Behaviour" tab in the Compiz Settings Manager. This works fine, except that there is a bug (Please note: this is *the* bug) that prevents the 'busy' mouse pointer from displaying system wide even when not actively using Enhanced Desktop Zoom. That means that whenever the system is doing something that would normally display the busy pointer (loading a webpage, starting an application, etc.), the mouse pointer completely disappears until the pointer switches back to the standard arrow pointer. As far as I know, this problem can only be fixed by disabling "Hide original mouse pointer" and then restarting gdm. Obviously, no one should have to go through this to get the busy pointer working again.

As I mentioned above, I believe the simplest solution would be to disable the hide option (i.e. if it's enabled) every time the zoom level is reset to 1X (or fix the hide option so that it doesn't make the busy cursor invisible in the first place).

Revision history for this message
Erik Sax (esax) wrote :

Ubuntu 8.04, I loose the mouse pointer even after disabling "hide mouse pointer" option in the compiz settings, with either "sync mouse" or "mouse panning". This bug occurs non-deterministically and is difficult to reproduce.

Revision history for this message
Tim Buffet (wolfsquared) wrote :

I can confirm Dean's observation. It indeed works when I enable both "mousepointer scaling" and "mouse pointer hiding". So definitely this is workable, but in Intrepid, I also experienced the disappearing mouse pointer problem.

So a workaround is available, but the workaround was not ideal to the disappearing cursor bug (even after you zoomed out completely).

Bryce Harrington (bryce)
Changed in xorg-server:
status: Confirmed → Triaged
Revision history for this message
gandalfn (gandalfn) wrote : Re: [needs input redirection] compiz->enhanced zoom desktop->zoom area lock = mouse input redirection breaks

I posted on freedesktop bugzilla a naive patch which fix disappearing cursor bug when we call XFixesHideCursor :
http://bugs.freedesktop.org/show_bug.cgi?id=20736

Here a debdiff of jaunty xorg-server with patch, I don't use compiz, I don't known if it fixes your problem but I hope it can help.

Revision history for this message
tommy (keenetommy) wrote :

Thanks so much Nicolas, that patch worked perfectly! I am up and running and my cursors have not disappeared. This will make my life so much easier.

Revision history for this message
Tim Buffet (wolfsquared) wrote :

Just upgraded to Jaunty, and it's working flawlessly. Thanks guys.

Revision history for this message
eiver (eiver) wrote :

Confirmed, that the patch solves problem if "Scale Mouse Pointer" is checked.

But the complete solution should work even if that check-box is not checked. What if someone wants to see an original (not scaled) pointer and still interact with the zoomed and locked desktop.

Revision history for this message
tommy (keenetommy) wrote :

By the way, this is still a problem in karmic. The patch by Nicholas should be integrated into the main code.

Revision history for this message
tommy (keenetommy) wrote :

This patch is no longer working with the latest version of xserver in Ubuntu 9.10. Can someone post an update?

Bryce Harrington (bryce)
summary: - [needs input redirection] compiz->enhanced zoom desktop->zoom area lock
- = mouse input redirection breaks
+ compiz->enhanced zoom desktop->zoom area lock = mouse input redirection
+ breaks
Revision history for this message
Sebastien Bacher (seb128) wrote :

unsubscribing the sponsors for now since the patch there doesn't apply to current versions

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

Can someone please test if this is still an issue with the current development version of Ubuntu (Natty 11.04)?

I notice there has been no movement on the upstream bug report. It might be necessary to propose the patch on the xorg-devel list, or to update the upstream bug report with more commends, Xorg.0.log file, screenshots, or other data.

Changed in xorg-server (Ubuntu):
status: Triaged → Incomplete
Revision history for this message
Mihai Capotă (mihaic) wrote :

Not happening in Ubuntu 11.04. The busy pointer shows up when "Zoom Area Lock" is active, both with "Hide original mouse pointer" checked and unchecked. Also, pointer position is accurate.

Changed in xorg-server (Ubuntu):
status: Incomplete → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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