← Back to team overview

touch-packages team mailing list archive

[Bug 1488417] Re: nexus4 window mode mouse motion bounded incorrectly with external monitor

 

Comment #18 kind of makes sense.

In trying to replicate the bug using just Mir demos I found one way to
do it: Have a client (which in our case is Unity8 itself) that fails to
resize to cover all displays. As it fails to resize to cover all
displays, the client (Unity8 shell) will fail to get motion events that
are outside of its window.

So this problem can be solved in Unity8 by resizing the Unity8 Mir
surface to cover all displays, or it can be solved more reliably with a
Mir enhancement (which we plan on already) --> implement pointer grabs
so that the cursor location does not ever stop the owning surface from
receiving pointer events.

Either way, seems like Mir is working correctly. In the absence of
pointer grab support, clients (including Unity8) stop getting pointer
events when the cursor leaves their window.

** Changed in: mir
       Status: New => Invalid

** Changed in: mir (Ubuntu)
       Status: New => Invalid

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to mir in Ubuntu.
https://bugs.launchpad.net/bugs/1488417

Title:
  nexus4 window mode mouse motion bounded incorrectly with external
  monitor

Status in canonical-pocket-desktop:
  New
Status in Mir:
  Invalid
Status in mir package in Ubuntu:
  Invalid
Status in qtmir package in Ubuntu:
  New

Bug description:
  when connecting a monitor to the Nexus4 during windowed mode, the
  device is put into landscape mode. the mouse motion appears to not
  have followed the orientation and is bounded by roughly portrait width
  instead of landscape width

  
  The problem is that when unity8 configures cloning, it picks the intersection of all displays. While the input subsystem uses the bounding rectangle of all displays. Thus it allows the cursor to move around in (1200x1920) while the only surface is 1080x1920. So there is a dead zone between the display extent and the surface extent. When the cursor hits that area the SurfaceInputDispatcher has no surface underneath, so it decides to not send any further mouse input to Unity8.

  We can fix that by extending the behaviour of display_input_region.cpp
  to use the intersection of displays when necessary.

To manage notifications about this bug go to:
https://bugs.launchpad.net/canonical-pocket-desktop/+bug/1488417/+subscriptions


References