mutter:wip/surface-two

Last commit made on 2014-02-25
Get this branch:
git clone -b wip/surface-two https://git.launchpad.net/mutter

Branch merges

Branch information

Name:
wip/surface-two
Repository:
lp:mutter

Recent commits

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

Fix input and bounding shapes

1) We need to select for shape events
2) For decorated windows, we don't want to apply any input
   shape, because the frame is always rectangular and eats
   all the input
3) For undecorated windows, the "has input shape" check is
   wrong if the window has a bounding shape but not an input
   shape

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

MetaWindowActor: replace MetaSurfaceActorEmpty with no MSA at all

Have MetaWindowActor cope with having a NULL surface actor, and
drop the Empty class.

89ca368... by Giovanni Campagna <email address hidden>

MetaSurfaceActor: move freeze accounting to MetaWindowActor

Turns out we only ever need to freeze/thaw whole windows, not
surfaces or subsurfaces.
This will allow removing the surface actor without losing
the count.

fe1a58b... by Jasper St. Pierre

compositor: Add a new MetaSurfaceActorEmpty

This will be used in the interim before MetaSurfaceActorWayland
we set_window_id is called. This is somewhat expensive and hacky,
but all other attempts to prevent either MetaWindowActor or
MetaWindow from created prematurely, e.g. before we have a
set_window_id have failed.

f0cd9b0... by Jasper St. Pierre

wayland-surface: Rework construction / destruction yet again

This time, to make way for MetaSurfaceActorEmpty. This also fixes
destroy effects as a side effect. It still has issues if we try
to re-assign an actor that's already toplevel (e.g. somebody
re-popping up a menu that's already being destroyed), but this
will be fixed soon.

The idea here is that MetaWindowActor will do the unparenting of
the surface actor when it itself is destroyed. To prevent bad issues
with picking, we only make the surface actor reactive when it's
toplevel.

1783bf2... by Jasper St. Pierre

Revert "window: Delay the showing of XWayland clients until set_window_id"

This reverts commit 59c8b949ad1b8712be7f1e90f8aaddac897da463.

9b24ae2... by Jasper St. Pierre

Revert "compositor: Delay meta_compositor_add_window until the first show"

This reverts commit 4efe4483fbc7602e8358fda936074216a8e5544b.

0be4622... by Jasper St. Pierre

stack-tracker: Comment out bad warning

It triggers too often, making G_DEBUG=fatal-warnings quite useless.
Owen is going to rewrite this code sometime in the near future, so
I'm just gonna kill this warning for now.

bcd5446... by Carlos Garnacho

core: prevent early MetaIdleMonitor destruction when its invoker vanishes

If the last reference of a MetaIdleMonitor is held by the caller, it may
happen that the last reference is lost when calling the GDestroyNotify,
if this happens when the watched DBus name vanishes, the object (and the
watches hashtable) are destroyed while manipulating the watches hashtable,
so bad things may happen then.

Fix this by wrapping the operation by a ref/unref pair, so the object would
be destroyed after operating on the hashtable.

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

04b5232... by Jasper St. Pierre

compositor: The stage is always focused when we're a Wayland compositor

gnome-shell has some complex tracking to set the X input focus
correctly, assuming various things about how the stage is set up in X11.
For instance, it assumes that all actors that get key focus are
gnome-shell Chrome actors that will get events through the stage, so
when one of them is focused, it will try to set the focus back to the
stage.

In Wayland, windows are considered chrome actors that will get key
events through the stage, so this only has the result of unfocusing any
windows that have just received key focus.

We should probably move this input focus moving to mutter instead of
gnome-shell so we can better use mutter's internal state and heuristics.