mutter:wip/wayland-clutter-events

Last commit made on 2013-09-05
Get this branch:
git clone -b wip/wayland-clutter-events https://git.launchpad.net/mutter

Branch merges

Branch information

Name:
wip/wayland-clutter-events
Repository:
lp:mutter

Recent commits

ef00e3f... by Neil Roberts <email address hidden>

wayland: Use an event filter instead of the captured event signal

In order to see all Clutter events, Mutter was previously installing a
signal handler on the ‘captured-event’ signal on the stage and
additionally using a signal emission hook to cope with grabs. This
changes it to use the new clutter_event_add_filter API so that we can
avoid the signal emission hook hack.

e0df9ee... by Neil Roberts <email address hidden>

wayland: Remove the motion event synthesizing

The event handling code for Wayland no longer needs to synthesize X
events for the motion events because the main display code now handles
motion events directly off of the Clutter events instead of off the X
events.

4492845... by Neil Roberts <email address hidden>

Move the motion event handling code to work in terms of Clutter events

There is now a meta_display_handle_event alongside the
meta_display_handle_xevent function which handles events in terms of
Clutter events instead of X events. A Clutter event filter is
registered so that all Clutter events will pass through this function.
The motion event handling code from the X event version has been moved
into this new function and has been modified to use the details from
the Clutter event instead of the X event. This is a step towards
moving all of the code over and finally removing the
meta_display_handle_xevent function.

c334fd5... by Neil Roberts <email address hidden>

Rename meta_display_handle_event to meta_display_handle_xevent

The plan is to make a new version of meta_display_handle_event that
will accept Clutter events instead of X events and then gradually move
over the events to the new function and finally remove the X version.

83f61da... by Giovanni Campagna <email address hidden>

wayland: sync the keymap from X to wayland

When X clients change the keyboard map, the also update a property
on the root window. We can notice that and rebuild our data structures
with the new values, as well as inform the wayland clients.

This is a terrible hack, and it's not how we want to implement things
in 3.12, but it's enough to have the same keyboard layout in the
shell, in X clients and in wayland clients in 3.10, until we decide
on the fate of the keyboard g-s-d plugin.

https://bugzilla.gnome.org/show_bug.cgi?id=707446

a474608... by Giovanni Campagna <email address hidden>

wayland: reimplement keyboard state handling properly

We can't rely on clutter's xkb_state, because that's updated
when events are pulled from the kernel, not when we see them.
Instead, use the new clutter API to get the full modifier state
from the event (which, as a side effect, also works when clutter
is using the X11 backend for running nested).

https://bugzilla.gnome.org/show_bug.cgi?id=706963

67457dc... by Giovanni Campagna <email address hidden>

wayland: implement global and window keybindings

Synthetize XInput events from ClutterEvents in MetaWaylandKeyboard,
and pass them to the keybindings infrastructure for early handling,
so that we can activate them even if the currently focused window
is not an X11 one (or if there is no focused window, or we're
modal)

https://bugzilla.gnome.org/show_bug.cgi?id=706963

9cff36b... by Giovanni Campagna <email address hidden>

wayland: implement resizing and maximization for wayland clients

To properly resize clients, we need to send them configure events
with the size we computed from the constraint system.
Also, once the sizing is properly wired up, we need to make
sure that the size at the initial map is correct, and not
always 0, 0 (because the buffer is not yet converted into
a CoglTexture by MetaShapedTexture), otherwise we end up sending
out configure events at 1 x 1. To do so, we cache the surface
type in the initial state until the first commit.

Note that this does not handle interactive resizing yet, it
merely makes the API calls work for wayland clients.

While we're there, let's implement transient hints too.
(I may have to separate this out...)

https://bugzilla.gnome.org/show_bug.cgi?id=707401

8708d03... by Giovanni Campagna <email address hidden>

wayland: die when gnome-session asks us to

At logout, we want to die when gnome-session tells us. Previously,
we were relying on the X server going down (killed by GDM at the
end of the session), but we can't use that in wayland.

https://bugzilla.gnome.org/show_bug.cgi?id=706421

f59d92a... by Giovanni Campagna <email address hidden>

wayland: don't require Clutter backend variables to be set from outside

When running under mutter-launch, we can assume we're running on
bare metal, and set the clutter backend appropriately.

https://bugzilla.gnome.org/show_bug.cgi?id=706421