mir::scene::Surface::input_area_contains is reset when surface moved onto a new display

Bug #1598936 reported by Daniel d'Andrada
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mir
New
Undecided
Unassigned
mir (Ubuntu)
New
Undecided
Unassigned

Bug Description

I'm changing ubuntu-keyboard to fill out its input shape/region.

qtmir/unity8 then calls mir::scene::Surface::input_area_contains on a surface that is hit by an input event in unity8 QML scene before deciding whether that Qt input event is gonna be transformed into a MirEvent and consumed/sent-to that mir::scene::Surface or whether it will pass through.

It all works as expected until I connect my mako to an external display. Once that happens, mir::scene::Surface::input_area_contains returns false on any point on any surface. Meaning that no surface gets input.

At the present moment, that code hasn't landed yet. It's in https://requests.ci-train.ubuntu.com/#/ticket/1525.

The qtmir patch is https://code.launchpad.net/~dandrader/qtmir/mirSurfaceInputBounds/+merge/296986

In the meantime I've added a workaround in this branch that makes qtmir store locally the input rect and use it to decide whether a point hits the surface's input area instead of querying mir::scene::Surface::input_area_contains

Revision history for this message
Michał Sawicz (saviq) wrote :

Syncing task from Mir.

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.