mutter.git
6 years agoclutter-offscreen-effect: Disable if no texture
Daniel van Vugt [Thu, 11 Oct 2018 07:02:05 +0000 (09:02 +0200)]
clutter-offscreen-effect: Disable if no texture

If texture allocation fails (e.g. on an old GPU with size limit 2048)
then `update_fbo` would return `FALSE` but leaves `priv->offscreen`
as non-NULL. So the next paint will try to use the offscreen with a
`NULL` texture and crashes. The solution is simply to ensure that
`priv->offscreen` is NULL if there is no `priv->texture`, so the default
(non-offscreen) paint path gets used instead.

Bug reported and fix provided by Gert van de Kraats.

Origin: https://gitlab.gnome.org/GNOME/mutter/commit/f31cf0c3e
Bug-Ubuntu: https://launchpad.net/bugs/1795774
Applied-upstream: 3.30.3

Gbp-Pq: Name clutter-offscreen-effect-Disable-if-no-texture.patch

6 years agocogl-auto-texture: Avoid a double-free crash
Daniel van Vugt [Thu, 11 Oct 2018 06:49:22 +0000 (08:49 +0200)]
cogl-auto-texture: Avoid a double-free crash

If texture allocation fails (e.g. on an old GPU with size limit 2048)
then `cogl_texture_new_with_size` was trying to use the same CoglError
twice. The second time was after it had already been freed.

Bug reported and fix provided by Gert van de Kraats.

Origin: https://gitlab.gnome.org/GNOME/mutter/commit/d21478b0f
Bug-Ubuntu: https://launchpad.net/bugs/1790525
Applied-upstream: 3.30.3

Gbp-Pq: Name cogl-auto-texture-Avoid-a-double-free-crash.patch

6 years agoclutter: Fix offscreen-effect painting of clones
Daniel van Vugt [Thu, 24 May 2018 09:51:22 +0000 (17:51 +0800)]
clutter: Fix offscreen-effect painting of clones

`ClutterOffscreenEffect` had been getting the wrong bounding box in the
case of clones and descendents of clones, causing visibly incorrect
clipping. This was due to `clutter_actor_get_paint_box` only ever being
given the source actor during a paint (which is correct) and not the clone.
Even if we weren't painting a clone but an offscreened descendent of a
clone (like in gnome-shell's desktop zoom), we would get the wrong result.

Fortunately we don't need to know the actual clone/actor being painted so
don't need to call the problematic `clutter_actor_get_paint_box` at all.
The solution is to only keep untransformed rendering in the FBO and leave
the correct transformation for later. The correct clone/actor's
transformation is already set for us as the current cogl modelview matrix
by `clutter_actor_paint`.

Bonus optimization: This all means we don't need to keep `last_matrix_drawn`
or force a full repaint every time some part of the transformation changes.
Because the FBO contents are no longer affected by transformations. As it
should be. In other words, offscreen-effected actors can now move around
on screen without themselves being repainted.

Special thanks to Mai Lavelle for identifying the cause of the problem.

Fixes:
https://bugzilla.gnome.org/show_bug.cgi?id=789050,
https://bugzilla.gnome.org/show_bug.cgi?id=659523#c9,
https://gitlab.gnome.org/GNOME/mutter/issues/196,
https://gitlab.gnome.org/GNOME/mutter/issues/282,
https://gitlab.gnome.org/GNOME/gnome-shell/issues/387,
https://launchpad.net/bugs/1767648,
https://launchpad.net/bugs/1779615

Origin: https://gitlab.gnome.org/vanvugt/mutter/commit/9a466f289318050bde065bc8878947cb2691bc98
Bug-Ubuntu: https://launchpad.net/bugs/1767648, https://launchpad.net/bugs/1779615
Applied-Upstream: 3.31.90

Gbp-Pq: Name clutter-Fix-offscreen-effect-painting-of-clones.patch

6 years agoclutter: Avoid rounding compensation when invalidating 2D actors
Carlos Garnacho [Fri, 5 May 2017 12:15:30 +0000 (14:15 +0200)]
clutter: Avoid rounding compensation when invalidating 2D actors

This allows the redraw clip to be more constrained, so MetaCullable doesn't
end up rendering portions of window shadows, frame and background when a
window invalidates (part of) its contents.

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

Origin: https://gitlab.gnome.org/GNOME/mutter/commit/a7df459416d
Bug-Ubuntu: https://launchpad.net/bugs/1767648
Bug-GNOME: https://bugzilla.gnome.org/show_bug.cgi?id=782344
Applied-Upstream: 3.30.3

Gbp-Pq: Name clutter-Avoid-rounding-compensation-when-invalidating-2D-.patch

6 years agogtk-shell: Work around non-working startup notifications
Florian Müllner [Thu, 20 Oct 2016 16:00:04 +0000 (18:00 +0200)]
gtk-shell: Work around non-working startup notifications

GNOME Shell relies on the MetaScreen::startup-sequence-changed signal,
which is tied to (lib)startup-notification and therefore X11. As a result,
when we remove the startup sequence of a wayland client, GNOME Shell will
not be notified about this until startup-notification's timeout is hit.
As a temporary stop-gap, go through XWayland even for wayland clients,
so that the signal is emitted when expected.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=768531
Applied-upstream: no

Gbp-Pq: Name bgo768531_workaround-startup-notifications.patch

6 years agotheme: load icons as Gtk does with fallback and RTL support
Marco Trevisan (Treviño) [Fri, 30 Mar 2018 21:17:39 +0000 (15:17 -0600)]
theme: load icons as Gtk does with fallback and RTL support

Forwarded: yes, https://gitlab.gnome.org/GNOME/mutter/merge_requests/62

Gbp-Pq: Name theme-load-icons-as-Gtk-does-with-fallback-and-RTL-suppor.patch

6 years agotheme: use gtk_render_icon_suface to paint button icon
Marco Trevisan (Treviño) [Fri, 30 Mar 2018 20:13:41 +0000 (14:13 -0600)]
theme: use gtk_render_icon_suface to paint button icon

This will properly take care of the icon transformations
and of the shadow.

Fixes #100

Bug: https://gitlab.gnome.org/GNOME/mutter/issues/100
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/mutter/+bug/1764558
Forwarded: yes, https://gitlab.gnome.org/GNOME/mutter/merge_requests/62

Gbp-Pq: Name theme-use-gtk_render_icon_suface-to-paint-button-icon.patch

6 years agomutter (3.30.2-5) unstable; urgency=medium
Marco Trevisan (Treviño) [Thu, 24 Jan 2019 18:00:14 +0000 (18:00 +0000)]
mutter (3.30.2-5) unstable; urgency=medium

  * d/p/clutter-Avoid-rounding-compensation-when-invalidating-2D-.patch,
    d/p/clutter-Fix-offscreen-effect-painting-of-clones.patch:
    - Fix offscreen-effect painting of clones in zoom mode (LP: #1767648,
      LP: #1779615)
  * d/p/cogl-auto-texture-Avoid-a-double-free-crash.patch,
    d/p/clutter-offscreen-effect-Disable-if-no-texture.patch:
    - Fix crash in dual monitor setup and gdm activation (LP: #1790525,
      LP: #1795774)

[dgit import unpatched mutter 3.30.2-5]

6 years agoImport mutter_3.30.2-5.debian.tar.xz
Marco Trevisan (Treviño) [Thu, 24 Jan 2019 18:00:14 +0000 (18:00 +0000)]
Import mutter_3.30.2-5.debian.tar.xz

[dgit import tarball mutter 3.30.2-5 mutter_3.30.2-5.debian.tar.xz]

7 years agoImport mutter_3.30.2.orig.tar.xz
Simon McVittie [Thu, 15 Nov 2018 09:11:25 +0000 (09:11 +0000)]
Import mutter_3.30.2.orig.tar.xz

[dgit import orig mutter_3.30.2.orig.tar.xz]