Syncing task from Mir. ** Changed in: mir (Ubuntu) Status: New => Confirmed
-- 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/1513883 Title: Wrapping mir::graphics::Cursor doesn't work as expected on a nested server Status in Mir: Confirmed Status in mir package in Ubuntu: Confirmed Bug description: I wrapped the_cursor() (mir::graphics::Cursor) and intercepted all move_to() calls, not forwarding them to the wrapped cursor. I expected the cursor not to move at all, but it moves normally. I call Cursor::hide() on initialization, but every time the nested server creates a new surface (for a new display that comes up), the cursor image property of that surface is set to default and therefore the host server shows the cursor when it's above that surface. So at the very least I've to call Cursor::hide() again (or Cursor::show(someImage), every time such event takes place to ensure the cursor has the visibility/image state I want it to. Clearly this interface is disjoint from what's happening. If a nested server call Cursor::hide() or interceps all Cursor::show() calls, not forwarding them to the wrapped cursor, a cursor should never appear on the screen. As alan_g said, mir::graphics::Cursor on a nested server is working more like a listener. When a nested server wraps mir::graphics::Cursor, its intention is to achieve full control over the cursor state. But that doesn't happen. qtmir needs this behavior. If Mir denies giving such control to a nested server, this API should be removed and a CursorListener should be added in its place (which would be of no use for qtmir, by the way). To manage notifications about this bug go to: https://bugs.launchpad.net/mir/+bug/1513883/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp