mutter:gnome-3-20

Last commit made on 2016-10-29
Get this branch:
git clone -b gnome-3-20 https://git.launchpad.net/mutter

Branch merges

Branch information

Name:
gnome-3-20
Repository:
lp:mutter

Recent commits

de18294... by YunQiang Su <email address hidden>

Update zh_CN translation

67598b8... by liushuyu <liushuyu_011@126.com>

Update zh_CN translation

f37b21e... by Jonas Ã…dahl

wayland: Don't handle input events after capability was removed

The seat capability updating is synchronous, but input events are
asynchronous (first queued then emitted). This means we may end up in a
situation where we from libinput first may receive a key event,
immediately followed by a device-removed event. Clutter will first
queue the key event, then remove the device, immediately triggering the
seat capability removal.

Later, when the clutter stage processes the queued events, the
previously queued key event will be processed, eventually making it
into MetaWaylandSeat. Before this patch, MetaWaylandSeat would still
forward the key event to MetaWaylandKeyboard, even though it had
'released' it. Doing this would cause referencing potentially freed
memory, such as the xkb state that was unreferenced when the seat
removed the capability.

In order to avoid processing these lingering events, for now, just drop
them on the floor if the capability has been removed.

Eventually, the event queuing etc needs to be redesigned to work better
when used in a Wayland compositor, but for now at least don't access
freed memory.

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

83bddd7... by =?utf-8?q?Florian_M=C3=BCllner?= <email address hidden>

Bump version to 3.20.3

Update NEWS.

1169ccc... by Carlos Garnacho

xwayland: Use CurrentTime on all XConvertSelection calls

The call fetching the targets mistakenly used the timestamp meant
to back up the TIMESTAMP atom (hence, it's the timestamp at which
the selection is *owned* by the compositor, on behalf of a wayland
client).

This timestamp is actually only updated when the compositor gets
to own the selection, so it's a randomly late timestamp to retrieve
the TARGETS atom content, which certain clients might end up
ignoring.

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

d934cde... by Rui Matos

ui/frames: Drop the current grab info on button release

This was added in commit d05b750b8dec3825d286e3ae30c41b41bd6aed98 and
later removed inadvertently in commit
d561b3b18f73a66bcd7947dce7ab1aab9e09965a .

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

9ec231f... by =?utf-8?q?Florian_M=C3=BCllner?= <email address hidden>

frames: "Initialize" frame background

Frames are painted on the frame window according to the GTK+ theme.
Depending on the target's visual, this means either drawing over
a black destination or a fully transparent one. So in cases where
the theme doesn't paint decorations with full opacity, decorations
for windows with an rgba visual look different from those with a
non-rgba visual. Using an rgba visual for all frames independent
from the client's visual can potentially break clients, so our
only option for a consistent appearance is to explicitly initialize
the frame background to black before painting the theme's decoration
on top.

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

9b5daf9... by =?utf-8?q?Florian_M=C3=BCllner?= <email address hidden>

frames: Don't clip out "invisible" parts of frames

The GTK+ theme may draw parts of the decorations outside the actual
frame. Since commit f9db65f47f we make sure that the frame is big
enough to account for any overdrawing, however as we still clip the
cairo context to the actual frame before drawing the decorations,
those parts aren't actually painted.
This issue is not very obvious for most frames, as they use a non-rgba
visual where the unpainted parts appear black, which gives the expected
result with many themes once the shape mask is applied (as the mask does
include any overdrawn parts). For frames using an rgba visual however,
unpainted parts are transparent, so any overdrawn decorations are clearly
missing.
Fix this by only clipping out the client area when drawing decorations.

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

bd1297f... by Andika Triwidada

Updated Indonesian translation

15aa1a5... by =?utf-8?q?Florian_M=C3=BCllner?= <email address hidden>

surface-actor: Keep track of ignored damage

We ignore all damage while a surface is frozen and queue a full
update instead once it's thawed. While not super efficient, this
isn't overly bad for the intended case of catching up with any
updates that happened during a compositor effect. However when
extended frame sync is used, surfaces are also frozen while the
client is drawing a frame, in which case the current behavior is
pretty damaging (pun intended), as we end up redrawing the entire
window each frame. To address this, keep track of the actual damage
we ignore and apply it when the surface is thawed.

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