Sam`s GDK-Mir Backend

Sam Spilsbury smspillaz at
Thu Aug 22 06:06:15 UTC 2013

Oops, it seems like this went on-list a little earlier than I had expected.

Those looking to try this out can find it here[1]. You can configure and
install the backend by passing the --enable-mir-backend switch to the
configure script and enable it at runtime by running with the
GDK_BACKEND=mir environment variable set.

The backend is not yet complete - there are still some remaining issues,
 1. There is a condition where the event cycle can get out of sync with the
paint cycle, leading to a visible input lag. I'm not so sure what causes
this yet.
 2. Rendering to Mir surfaces is still quite inefficient. GDK does not
appear to have any concept of backbuffer age so we need to render to an
intermediate client-allocated cairo surface so that we can copy the entire
surface contents to the incoming Mir GraphicsRegion. Backbuffer age support
should be something that can be implemented in the backend itself, however
doing so is not a high priority right now.
 3. Client side decorations are not enabled by default. They can be enabled
by setting the environment variable GTK_CSD to a nonzero value.
 4. Support for keyboard modifiers and non-ascii keysyms is not yet
 5. Mir does not have a concept that is parallel to X11's LeaveNotify /
EnterNotify. It has mir_surface_motion_hover_enter and
mir_surface_motion_hover_exit. However, these are tied more closely to
touch events on Android, where motion_hover_enter and motion_hover_exit
will be generated upon exiting the "hover" state and entering the
"clicking" state. Generating GDK_ENTER_NOTIFY and GDK_LEAVE_NOTIFY in these
cases will cause GDK to think that the pointer is no longer in the window,
which causes numerous interactions to fail silently. I've discussed this
with Thomas and hopefully we will come up with some solution. In the
interim, we are ignoring hover_exit events and instead generating
GDK_LEAVE_NOTIFY for "prior" surfaces on hover_enter.

Best Regards,


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Mir-devel mailing list