Clients reading their surface position on screen
Daniel van Vugt
daniel.van.vugt at canonical.com
Wed Jul 23 01:42:03 UTC 2014
I think we can make QWidget::mapToGlobal() work pretty easily. It just
requires a new function in libmirclient under the hood first.
That's such a simple task, we should just do it. If it's helpful to
accessibility then great. But I expect accessibility to require more
work later.
On 23/07/14 05:11, Thomi Richards wrote:
> Hi,
>
> On Tue, Jul 22, 2014 at 8:01 PM, Thomas Voß <thomas.voss at canonical.com
> <mailto:thomas.voss at canonical.com>> wrote:
>
> so reading Gerry's initial mail, it seems to me that autopilot does
> not actually want to deal with absolute screen coordinates (and take
> on the burden of figuring out multi-monitor, multi-dpi cases on its
> own) but instead wants to say: Please Mr. Mir, for this surface with
> ID id, send an event of type Y with these attributes. Where Y is most
> likely touch events and the attributes are surface-relative
> coordinates. With that, we can leverage the existing mir logic, while
> keeping AP free of global knowledge.
>
>
>
> Actually, that's not the case at all.
>
> We send events through evdev. We do this so events travel through the
> entire software stack. We don't want to insert events through mir/unity8
> directly.
>
> Anyway, generating events isn't the problem. The problem is figuring out
> Qt widget global (screen) coordinates from within the autopilot-qt
> driver. Ideally, we'd like to ask Qt "Please Mr Qt, please translate
> these local widget coordinates to screen-space coordinates". This is
> what we do currently, and it works[1]. I'd really like to not have to
> deal with mir directly, since the autopilot-qt driver is complicated
> enough as it is, without having to deal with mir directly. We don't
> currently talk to X11 directly, it'd be a shame to add this low-level
> code to a library that, to date, contains reasonably high level code.
>
>
> RAOF Wrote:
>
> So, Qt actually has a whole bunch of holes where an API just plain
> isn't supported on all platforms but makes no mention of it. This is
> one of them.
>
> That call also fails on Wayland compositors, for example.
>
> This should be fixed in Qt by documenting that this doesn't succeed
> on all platforms, and allowing you to check whether you're on a
> platform where it will.
>
>
>
> This may, or may not all be true, but none of it helps solve the problem :)
>
>
> I think this conversation is drifting away from the original point. Are
> there any strong objections to making the existing Qt API "just work" on
> mir?
>
> Cheers,
>
> [1] We already handle multi-monitor configurations. I'm sure some extra
> code will have to be written when we have more unusual cases to deal
> with (like a tablet plugged in to a large screen, for example), but for
> now, this "just works".
> --
> Thomi Richards
> thomi.richards at canonical.com <mailto:thomi.richards at canonical.com>
>
>
More information about the Mir-devel
mailing list