mutter.git
7 years agobackends/x11: Support input-synaptics, if present.
Daniel van Vugt [Sun, 18 Mar 2018 16:56:36 +0000 (12:56 -0400)]
backends/x11: Support input-synaptics, if present.

Add support for configuring the Xorg synaptics touchpad driver.

Turns out it's very simple to support both libinput and synaptics
simultaneously, both under the heading of XI2.

Bug-Ubuntu: https://launchpad.net/bugs/1686081
Forwarded: https://gitlab.gnome.org/GNOME/mutter/merge_requests/37
Applied-upstream: no, rejected as not long-term sustainable
Last-Update: 2018-03-16

Gbp-Pq: Topic debian
Gbp-Pq: Name synaptics-support.patch

7 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

7 years agocore: Return -1 if meta_window_get_monitor is called on an unmanaged window
Sam Spilsbury [Tue, 10 Oct 2017 16:39:40 +0000 (11:39 -0500)]
core: Return -1 if meta_window_get_monitor is called on an unmanaged window

As opposed to crashing. In this case, letting the caller deal with
it is the best policy, since this is public API.

Fixes #78834

Forwarded: yes
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=788834
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/bionic/+source/gnome-shell/+bug/1724439

Gbp-Pq: Name core-Return-1-if-meta_window_get_monitor-is-called-on-an-.patch

7 years agoclutter: Smooth out master clock to smooth visuals
Daniel van Vugt [Fri, 16 Feb 2018 08:50:59 +0000 (02:50 -0600)]
clutter: Smooth out master clock to smooth visuals

Clutter's master clock was jittery because it included errors in cur_tick
such as dispatch delays due to other sources. Dispatch could also occur up
to 1ms early since GSource can only be timed to the millisecond. All of this
could impact the visual smoothness of animations as they are displayed on
the steady interval of the monitor, but spacially moving in less regular
steps derived from the dispatch times.

The simple fix is to ignore any jitter in dispatch timing. Try a little
bit harder to use a precise interval that will better match the display
hardware, and smoother visuals will follow.

Bug: https://gitlab.gnome.org/GNOME/mutter/issues/25
Forwarded: https://gitlab.gnome.org/GNOME/mutter/merge_requests/70

Gbp-Pq: Name clutter-Smooth-out-master-clock-to-smooth-visuals.patch

7 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

7 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

7 years agobackends: Add logical monitor -> monitor -> output -> crtc ref chain
Jonas Ådahl [Fri, 3 Nov 2017 10:27:57 +0000 (04:27 -0600)]
backends: Add logical monitor -> monitor -> output -> crtc ref chain

Make it so that each logical monitor has a reference to all the
monitors that are assigned to it.

All monitors has a reference to each output that belongs to it.

Each output has a reference to any CRTC it has been assigned.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=786929
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/mutter/+bug/1703668
Forwarded: yes, https://gitlab.gnome.org/GNOME/mutter/merge_requests/81
Applied-upstream: 3.28.3, commit:fe1616668e9d82e87f6c518b3b4bacff3afefdf7

Gbp-Pq: Name backends-Add-logical-monitor-monitor-output-crtc-ref-chai.patch

7 years agobackends: Move MetaOutput::crtc field into private struct
Jonas Ådahl [Fri, 3 Nov 2017 10:25:30 +0000 (04:25 -0600)]
backends: Move MetaOutput::crtc field into private struct

No functional changes. This is only done so that changes to reference
counting can done more reliably.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=786929
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/mutter/+bug/1703668
Forwarded: yes, https://gitlab.gnome.org/GNOME/mutter/merge_requests/81
Applied-upstream: 3.28.3, commit:7d01aec48da979f4fdad3c5f586fd0fd340d9325

Gbp-Pq: Name backends-Move-MetaOutput-crtc-field-into-private-struct.patch

7 years agorenderer-native: Don't crash if the FB surface can't be locked
Marco Trevisan (Treviño) [Tue, 8 May 2018 21:36:33 +0000 (22:36 +0100)]
renderer-native: Don't crash if the FB surface can't be locked

(cherry picked from commit 0332b7394e56f71c15692663ab05f8c84a4b9eff)

Origin: upstream, 3.28.3, commit:a41d84db00b3105dc630d91707c0f5dd888394ec

Gbp-Pq: Name renderer-native-Don-t-crash-if-the-FB-surface-can-t-be-lo.patch

7 years agodevice-manager-evdev: Add main seat to seats by default
Marco Trevisan (Treviño) [Wed, 16 May 2018 23:53:48 +0000 (00:53 +0100)]
device-manager-evdev: Add main seat to seats by default

Treat the main seat as other seats, so we don't have to handle it differently
in specific places. This was already the case before when a real device
was plugged before the startup, but not applied when hotplugging a device.

(cherry picked from commit 15f41c9f68abfbb5408205a45f9f578e2ff5ee86)

Origin: upstream, 3.28.3, commit:e73b321c2ed4be6fe2a317d65bdb24238a427c4f

Gbp-Pq: Name device-manager-evdev-Add-main-seat-to-seats-by-default.patch

7 years agodevice-manager-evdev: Free the main seat on finalize
Marco Trevisan (Treviño) [Wed, 16 May 2018 23:23:26 +0000 (00:23 +0100)]
device-manager-evdev: Free the main seat on finalize

(cherry picked from commit 2a38601b4211f9b1dedd45261a040e51de13b838)

Origin: upstream, 3.28.3, commit:b6dc2052c3e64b9b51ff4d15eb280d2b84b4b200

Gbp-Pq: Name device-manager-evdev-Free-the-main-seat-on-finalize.patch

7 years agodevice-manager-evdev: Set and unset the stage for the main seat too
Marco Trevisan (Treviño) [Wed, 16 May 2018 10:55:15 +0000 (11:55 +0100)]
device-manager-evdev: Set and unset the stage for the main seat too

When no input devices are available on startup the device manager might be fast
enough to be constructed so that no default stage is set yet, and thus when
main seat virtual devices are created they won't have a proper stage set.
If then we plug a real device, the events that an input manager could generate
won't be associated to any stage and thus won't be processed.

We need then ensure that when we update the stage for the device manager we
(un)associate it also to the main seat devices.

(cherry picked from commit d7bdc1591fba5353b23a28ebf676da0e7b58c84e)

Origin: upstream, 3.28.3, commit:72965aaaf0b1c6cf098a0652e14dd3eb4c1501b8

Gbp-Pq: Name device-manager-evdev-Set-and-unset-the-stage-for-the-main.patch

7 years agoclutter-device-evdev: Get devices from main seat if no real seat is set
Marco Trevisan (Treviño) [Tue, 15 May 2018 11:09:59 +0000 (12:09 +0100)]
clutter-device-evdev: Get devices from main seat if no real seat is set

In devices such as ARM boards there could be no input devices connected on
startup, leading to a crash when we try to process artificial events that
could be queued (as gnome-shell does when syncing pointer).

Those events still should refer to a device and, in case we don't have one
provided by libinput we should still return the core devices defined in the
main seat.

(cherry picked from commit 3e85ac8131fc76312a2382d83df6926b88a37415)

Origin: upstream, 3.28.3, commit:2a6782dc10147a5a45f90ac318ba440f21f819d6

Gbp-Pq: Name clutter-device-evdev-Get-devices-from-main-seat-if-no-rea.patch

7 years agoclutter-seat-evdev: Add function to get device by id
Marco Trevisan (Treviño) [Tue, 15 May 2018 11:04:56 +0000 (12:04 +0100)]
clutter-seat-evdev: Add function to get device by id

(cherry picked from commit 5f83d9a5c854873746a31d0cc4d118c9a6d87ddd)

Origin: upstream, 3.28.3, commit:5142c8c7e721f7cff91f651178aad55a69b56df1

Gbp-Pq: Name clutter-seat-evdev-Add-function-to-get-device-by-id.patch

7 years agowayland: Don't reset input focus on text commit
Changwoo Ryu [Tue, 15 May 2018 14:45:43 +0000 (23:45 +0900)]
wayland: Don't reset input focus on text commit

Preedit text can be active even after text commit. Resetting the input
focus will lead to unintended commit of the preedit text.

Bug: https://gitlab.gnome.org/GNOME/mutter/issues/152
Origin: upstream, 3.28.3, commit:abc7ad8e9f67a720516fb739c5dfe4b49748d423

Gbp-Pq: Name wayland-Don-t-reset-input-focus-on-text-commit.patch

7 years agoframes: Allow for unknown mouse buttons
Olivier Fourdan [Tue, 22 May 2018 09:23:13 +0000 (11:23 +0200)]
frames: Allow for unknown mouse buttons

Commit 47131b1d ("frames: Handle touch events") introduced an assert to
make sure that all mouse button actions are handled in mutter.

However, mice can have a more than 5 buttons, so simply ignore the
"other" actions instead of aborting.

(cherry picked from commit 473bf38753221dc0002fae309d2f3f217e96c5f5)

Bug: https://gitlab.gnome.org/GNOME/mutter/issues/160
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=899181
Origin: upstream, 3.28.3, commit:1a3f9a33234f8406ffcaa150df542b73715910f4

Gbp-Pq: Name frames-Allow-for-unknown-mouse-buttons.patch

7 years agowayland: update enter/leave output after effects
Olivier Fourdan [Wed, 4 Apr 2018 08:15:25 +0000 (10:15 +0200)]
wayland: update enter/leave output after effects

Compositor effects change the actor size and position, which can lead to
inconsistent output enter/leave notifications, leaving clients' surfaces
without any output set.

Update output enter/leave notifications after all compositor effects are
completed so that we give clients accurate output location.

(cherry picked from commit 17a745bf81c24dae9c081e93ae1593e2bb81efd6)

Bug: https://gitlab.gnome.org/GNOME/mutter/issues/104
Origin: upstream, 3.28.3, commit:235c35182b54eb3a86164afa5be13ae8c520d228

Gbp-Pq: Name wayland-update-enter-leave-output-after-effects.patch

7 years agowindow-actor: add new signal "effects-completed"
Olivier Fourdan [Wed, 4 Apr 2018 08:10:32 +0000 (10:10 +0200)]
window-actor: add new signal "effects-completed"

When using plugins, the effects will affect the MetaWindowActor size
and position.

Add a new signal "effects-completed" wired to the corresponding
MetaWindowActor which is emitted when all effects are completed so that
derived objects can be notified when all effects are completed and use
the actual size and position.

(cherry picked from commit 85bbd82ae847eed0bba943c119a356d9493f7da2)

Bug: https://gitlab.gnome.org/GNOME/mutter/issues/104
Origin: upstream, 3.28.3, commit:e4661d7870c4ae939c72371b5c4b46d5390bfeac

Gbp-Pq: Name window-actor-add-new-signal-effects-completed.patch

7 years agowayland: Compare geometries after chaining up
Georges Basile Stavracas Neto [Thu, 17 May 2018 20:46:05 +0000 (17:46 -0300)]
wayland: Compare geometries after chaining up

After 20176d03, the Wayland backend only synchronizes with the
compositor after a geometry was set, and it was different from
the current geometry.

That commit was mistakenly comparing the geometry before chaining
up, which would yield a false negative on the case where the
client didn't call set_geometry() before commit().

Fix that by caching the old geometry locally, chain up (and thus
apply the new geometry rectangle), then comparing the old and
current geometry rectangles.

(cherry picked from commit cf734999fb9e342811896f70f7c1f415462728a7)

Bug: https://gitlab.gnome.org/GNOME/mutter/issues/150
Origin: upstream, 3.28.3, commit:9d4c7e4e75fc7d03254b2051eb088f216fe36da8

Gbp-Pq: Name wayland-Compare-geometries-after-chaining-up.patch

7 years agoframes: Handle touch events
Carlos Garnacho [Sun, 15 Apr 2018 14:26:32 +0000 (16:26 +0200)]
frames: Handle touch events

This is just done on wayland as it'll break horribly on X11, we let
this happen through pointer emulated events in XISelectEvents evmask
instead.

Some things had to be made slightly more generic to accomodate touch
events. The MetaFrames shall lock onto a single touch at a time, we
don't allow crazy stuff like multi-window drag nor multi-edge resizes.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=770185
Origin: upstream, 3.28.3, commit:47131b1dadc1a9b7afe9a22740ab69ce97fb02d6

Gbp-Pq: Name frames-Handle-touch-events.patch

7 years agoframes: Make 1st button/motion handlers take generic events
Carlos Garnacho [Sun, 15 Apr 2018 13:45:02 +0000 (15:45 +0200)]
frames: Make 1st button/motion handlers take generic events

This will ease handling of touch events through these same handlers.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=770185
Origin: upstream, 3.28.3, commit:51c0130645961e923b0e138adaf371086a0ea4b3

Gbp-Pq: Name frames-Make-1st-button-motion-handlers-take-generic-event.patch

7 years agoclutter/evdev: Don't ignore CAPS lock as modifier
Olivier Fourdan [Tue, 17 Apr 2018 12:03:12 +0000 (14:03 +0200)]
clutter/evdev: Don't ignore CAPS lock as modifier

Mark CAPS lock as a modifier (as it should) so that when using XKB
options to change the default behaviour of CAPS lock, the new assigned
key can by used as a sticky key as well.

(cherry picked from commit 6df2b7af556bf01f8d564b86c66c293678ab6b90)

Bug: https://gitlab.gnome.org/GNOME/mutter/issues/112
Origin: upstream, 3.28.3, commit:2dd9fc17c17cbc9b09f8a364682c5759d6539a8d

Gbp-Pq: Name clutter-evdev-Don-t-ignore-CAPS-lock-as-modifier.patch

7 years agoclutter/evdev: ignore injected events from IM
Olivier Fourdan [Tue, 17 Apr 2018 11:32:21 +0000 (13:32 +0200)]
clutter/evdev: ignore injected events from IM

Input method can inject key events, which leads to multiple reported key
press/release events for a single user action.

Ignore those events as this confuses keyboard accessibility.

(cherry picked from commit c01b099dbdfee4b2a98864bc76bfa1b96a55c8fb)

Origin: upstream, 3.28.3, commit:c7a38c31398871d2461b66963756816d268f524e

Gbp-Pq: Name clutter-evdev-ignore-injected-events-from-IM.patch

7 years agowayland: Use cursor position in logical monitor
Olivier Fourdan [Fri, 23 Mar 2018 12:05:12 +0000 (13:05 +0100)]
wayland: Use cursor position in logical monitor

When using two monitors size by side with different scales, once the
cursor moves from one output to another one, its size changes based on
the scale of the given output.

Changing the size of the cursor can cause the cursor area to change
output again if the hotspot is not exactly at the top left corner of the
area, causing the texture of the cursor to change, which will trigger
another output change, so on and so forth causing continuous surface
enter/leave event which flood the clients and eventually kill them.

Change the logic to use only the actual cursor position to determine if
its on the given logical monitor, so that it remains immune to scale
changes induced by output scale differences.

(cherry picked from commit 67917db45f96befb777e5f331a775ea3c2b53012)

Bug: https://gitlab.gnome.org/GNOME/mutter/issues/83
Origin: upstream, 3.28.3, commit:7d52be02290bd92589fbea756ca3431af8e71a94

Gbp-Pq: Name wayland-Use-cursor-position-in-logical-monitor.patch

7 years agomutter (3.28.2-3) unstable; urgency=medium
Simon McVittie [Sun, 8 Jul 2018 10:32:56 +0000 (11:32 +0100)]
mutter (3.28.2-3) unstable; urgency=medium

  * Team upload
  * d/p/backends-Move-MetaOutput-crtc-field-into-private-struct.patch,
    d/p/backends-Add-logical-monitor-monitor-output-crtc-ref-chai.patch:
    Mark as applied upstream
  * d/p/backends-Move-MetaOutput-crtc-field-into-private-struct.patch:
    Update to the version that was applied upstream
  * d/p/frames-Handle-touch-events.patch,
    d/p/frames-Make-1st-button-motion-handlers-take-generic-event.patch,
    d/p/frames-Allow-for-unknown-mouse-buttons.patch:
    Reinstate patches dropped in previous upload, along with the
    upstream fix for #899181
  * d/p/wayland-Compare-geometries-after-chaining-up.patch,
    d/p/window-actor-add-new-signal-effects-completed.patch,
    d/p/wayland-update-enter-leave-output-after-effects.patch,
    d/p/frames-Allow-for-unknown-mouse-buttons.patch,
    d/p/wayland-Don-t-reset-input-focus-on-text-commit.patch,
    d/p/clutter-seat-evdev-Add-function-to-get-device-by-id.patch,
    d/p/clutter-device-evdev-Get-devices-from-main-seat-if-no-rea.patch,
    d/p/device-manager-evdev-Set-and-unset-the-stage-for-the-main.patch,
    d/p/device-manager-evdev-Free-the-main-seat-on-finalize.patch,
    d/p/device-manager-evdev-Add-main-seat-to-seats-by-default.patch,
    d/p/renderer-native-Don-t-crash-if-the-FB-surface-can-t-be-lo.patch:
    Update to upstream gnome-3-28 branch
  * Add a symbols file for libmutter-2-0
  * d/copyright: Copy many licenses and copyright holders into this file,
    multiplying its length by 5 (Closes: #891156)

[dgit import unpatched mutter 3.28.2-3]

7 years agoImport mutter_3.28.2-3.debian.tar.xz
Simon McVittie [Sun, 8 Jul 2018 10:32:56 +0000 (11:32 +0100)]
Import mutter_3.28.2-3.debian.tar.xz

[dgit import tarball mutter 3.28.2-3 mutter_3.28.2-3.debian.tar.xz]

7 years agoImport mutter_3.28.2.orig.tar.xz
Simon McVittie [Thu, 17 May 2018 09:37:25 +0000 (10:37 +0100)]
Import mutter_3.28.2.orig.tar.xz

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