View Bazaar branches
Get this repository:
git clone https://git.launchpad.net/mutter

Branches

Name Last Modified Last Commit
wip/carlosg/ci-coverity 2020-10-28 21:35:00 UTC 17 hours ago
ci: Add job for pushing coverity reports

Author: Carlos Garnacho
Author Date: 2020-02-29 14:06:26 UTC

ci: Add job for pushing coverity reports

This job does:
1. Download the coverity bundle and untar it
2. Build mutter using clang and the coverity tool
3. Compress the coverity report
4. Upload for analysis

Things to note:
- Analysis are throttled, as per https://scan.coverity.com/faq#frequency
  we qualify for 21 weekly builds, 3 daily. Mutter is sometimes a busy
  project, so it seems we'd get often those consumed early in the day.
  This is something we can resign to, but the times we'll try to upload
  a report to have it rejected make the operation kinda pointless and
  probably better throttled by ourselves.
- The task is manual, given the restrictions above.
- The task only applies on master, as the envvar holding the coverity
  token is protected in gitlab.
- I had to use clang as the coverity tool doesn't seem to work ATM with
  gcc as per recent Fedora.
- The coverity tarball is 714MB in size, which is a bit too big to have
  it downloaded each time. As per their upload instructions, the tarball
  gets updated twice yearly, may also be a candidate for caching.
- The coverity token for mutter is kept private/hidden in gitlab CI
  settings.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1100

wip/carlosg/input-thread 2020-10-28 19:29:08 UTC 19 hours ago
backends/native: Add input thread inside MetaSeatImpl

Author: Carlos Garnacho
Author Date: 2020-08-12 16:04:34 UTC

backends/native: Add input thread inside MetaSeatImpl

This (now) doesn't change anything in regards to the API that the UI
thread should access from the MetaSeatImpl. The MetaInputDeviceNative,
MetaInputSettings and MetaKeymap objects are now considered owned by
the input thread, as well as all of libinput objects.

The MetaEventSource now dispatches events in a GMainContext that is
the thread default to this thread, and all UI-thread-accessible API
(seat and virtual input device API) will be handled in a serialized
manner by that same input thread.

The MetaSeatImpl itself is still considered to be owned by the caller
thread, and all the signals that this object emits will be emitted in
the GMainContext that is default at the time of calling
meta_seat_impl_new().

The MetaInputSettings configuration changes will likewise be handled
in the input thread, close to libinput devices.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1403

gbsneto/pick-culling 2020-10-28 18:09:42 UTC 20 hours ago
clutter/actor: Cull out when picking

Author: Georges Basile Stavracas Neto
Author Date: 2020-10-23 00:12:10 UTC

clutter/actor: Cull out when picking

Testing points and rays against boxes is substantially cheaper - in
fact, almost trivial - compared to triangles. Check if the actor's
paint volume doesn't intersect with the current pick point / ray,
and skip recursing altogether in those cases.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1520

master 2020-10-28 15:40:56 UTC 23 hours ago
cursor-tracker: Get the GDK (X11) pointer position in floats, not ints

Author: Daniel van Vugt
Author Date: 2020-10-28 09:31:21 UTC

cursor-tracker: Get the GDK (X11) pointer position in floats, not ints

This makes X11 consistent with Wayland which already uses floats.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1519

gnome-3-38 2020-10-28 10:36:57 UTC 2020-10-28
backend: Keep a refcount on backend's current_device

Author: Olivier Fourdan
Author Date: 2020-10-26 17:34:05 UTC

backend: Keep a refcount on backend's current_device

Otherwise we might run into a use-after-free and crash on (virtual)
device removal:

 Invalid read of size 8
   at clutter_input_device_get_device_type (clutter-input-device.c:811)
   by update_last_device (meta-backend.c:1282)
   by g_main_dispatch (gmain.c:3325)
   by g_main_context_dispatch (gmain.c:4016)
   by g_main_context_iterate.constprop.0 (gmain.c:4092)
   by g_main_loop_run (gmain.c:4290)
   by meta_run_main_loop (main.c:708)
   by meta_run (main.c:723)
   by main (main.c:550)
 Address is 32 bytes inside a block of size 504 free'd
   at free (vg_replace_malloc.c:538)
   by g_type_free_instance (gtype.c:1939)
   by clutter_event_free (clutter-event.c:1420)
   by _clutter_stage_process_queued_events (clutter-stage.c:830)
   by handle_frame_clock_before_frame (clutter-stage-view.c:1064)
   by clutter_frame_clock_dispatch (clutter-frame-clock.c:405)
   by frame_clock_source_dispatch (clutter-frame-clock.c:456)
   by g_main_dispatch (gmain.c:3325)
   by g_main_context_dispatch (gmain.c:4016)
   by g_main_context_iterate.constprop.0 (gmain.c:4092)
   by g_main_loop_run (gmain.c:4290)
   by meta_run_main_loop (main.c:708)
   by meta_run (main.c:723)
 Block was alloc'd at
   at malloc (vg_replace_malloc.c:307)
   by g_malloc (gmem.c:106)
   by g_slice_alloc (gslice.c:1025)
   by g_slice_alloc0 (gslice.c:1051)
   by g_type_create_instance (gtype.c:1839)
   by g_object_new_internal (gobject.c:1939)
   by g_object_new_valist (gobject.c:2264)
   by g_object_new (gobject.c:1782)
   by meta_input_device_native_new_virtual (meta-input-device-native.c:1365)
   by meta_virtual_input_device_native_constructed (meta-virtual-input-device-native.c:705)
   by g_object_new_internal (gobject.c:1979)
   by g_object_new_valist (gobject.c:2264)

Suggested-by: Carlos Garnacho <carlosg@gnome.org>
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1529
(cherry picked from commit 8711d8d5914df8e19a907105d9fa7139221f21b4)

gnome-3-36 2020-10-28 10:35:00 UTC 2020-10-28
backend: Keep a refcount on backend's current_device

Author: Olivier Fourdan
Author Date: 2020-10-26 17:34:05 UTC

backend: Keep a refcount on backend's current_device

Otherwise we might run into a use-after-free and crash on (virtual)
device removal:

 Invalid read of size 8
   at clutter_input_device_get_device_type (clutter-input-device.c:811)
   by update_last_device (meta-backend.c:1282)
   by g_main_dispatch (gmain.c:3325)
   by g_main_context_dispatch (gmain.c:4016)
   by g_main_context_iterate.constprop.0 (gmain.c:4092)
   by g_main_loop_run (gmain.c:4290)
   by meta_run_main_loop (main.c:708)
   by meta_run (main.c:723)
   by main (main.c:550)
 Address is 32 bytes inside a block of size 504 free'd
   at free (vg_replace_malloc.c:538)
   by g_type_free_instance (gtype.c:1939)
   by clutter_event_free (clutter-event.c:1420)
   by _clutter_stage_process_queued_events (clutter-stage.c:830)
   by handle_frame_clock_before_frame (clutter-stage-view.c:1064)
   by clutter_frame_clock_dispatch (clutter-frame-clock.c:405)
   by frame_clock_source_dispatch (clutter-frame-clock.c:456)
   by g_main_dispatch (gmain.c:3325)
   by g_main_context_dispatch (gmain.c:4016)
   by g_main_context_iterate.constprop.0 (gmain.c:4092)
   by g_main_loop_run (gmain.c:4290)
   by meta_run_main_loop (main.c:708)
   by meta_run (main.c:723)
 Block was alloc'd at
   at malloc (vg_replace_malloc.c:307)
   by g_malloc (gmem.c:106)
   by g_slice_alloc (gslice.c:1025)
   by g_slice_alloc0 (gslice.c:1051)
   by g_type_create_instance (gtype.c:1839)
   by g_object_new_internal (gobject.c:1939)
   by g_object_new_valist (gobject.c:2264)
   by g_object_new (gobject.c:1782)
   by meta_input_device_native_new_virtual (meta-input-device-native.c:1365)
   by meta_virtual_input_device_native_constructed (meta-virtual-input-device-native.c:705)
   by g_object_new_internal (gobject.c:1979)
   by g_object_new_valist (gobject.c:2264)

Suggested-by: Carlos Garnacho <carlosg@gnome.org>
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1529
(cherry picked from commit 8711d8d5914df8e19a907105d9fa7139221f21b4)

benzea/ignore-monitor-connector 2020-10-23 15:13:35 UTC 2020-10-23
tests/monitor-unit-tests: Add test for ignored connector IDs

Author: Benjamin Berg
Author Date: 2019-12-20 13:27:11 UTC

tests/monitor-unit-tests: Add test for ignored connector IDs

In some cases the connector ID should be ignored. Add a flag to modify
the generated connector ID, and test whether the stored configuration
still applies with the changed IDs.

https://gitlab.gnome.org/GNOME/mutter/issues/932

wip/verdre/device-actors-stage 2020-10-15 14:58:50 UTC 2020-10-15
clutter: Switch to storing device->actor associations in ClutterStage

Author: Jonas Dreßler
Author Date: 2020-10-15 14:53:44 UTC

clutter: Switch to storing device->actor associations in ClutterStage

As planned and prepared with the last commits, now let ClutterStage take
care of tracking inputdevices and their actors and the remove the old
infrastructure from ClutterInputDevice.

gnome-3-28 2020-10-15 09:48:59 UTC 2020-10-15
cally: fix state set leak

Author: Ray Strode
Author Date: 2020-04-30 14:23:09 UTC

cally: fix state set leak

cally_actor_action_do_action leaks a state set object in the
case where the actor is defunct, insensitive, or hidden.

This commit plugs the leak.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1225

(cherry picked from commit 79e5ec57d24f1650cdb2f23e68c9f8bf6a494283)

gnome-3-32 2020-10-15 09:44:12 UTC 2020-10-15
cally: fix state set leak

Author: Ray Strode
Author Date: 2020-04-30 14:23:09 UTC

cally: fix state set leak

cally_actor_action_do_action leaks a state set object in the
case where the actor is defunct, insensitive, or hidden.

This commit plugs the leak.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1225

(cherry picked from commit 79e5ec57d24f1650cdb2f23e68c9f8bf6a494283)

cherry-pick-79e5ec57-6 2020-10-15 09:43:40 UTC 2020-10-15
cally: fix state set leak

Author: Ray Strode
Author Date: 2020-04-30 14:23:09 UTC

cally: fix state set leak

cally_actor_action_do_action leaks a state set object in the
case where the actor is defunct, insensitive, or hidden.

This commit plugs the leak.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1225

(cherry picked from commit 79e5ec57d24f1650cdb2f23e68c9f8bf6a494283)

gnome-3-34 2020-10-15 09:43:31 UTC 2020-10-15
cally: fix state set leak

Author: Ray Strode
Author Date: 2020-04-30 14:23:09 UTC

cally: fix state set leak

cally_actor_action_do_action leaks a state set object in the
case where the actor is defunct, insensitive, or hidden.

This commit plugs the leak.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1225

(cherry picked from commit 79e5ec57d24f1650cdb2f23e68c9f8bf6a494283)

cherry-pick-79e5ec57-5 2020-10-15 09:37:23 UTC 2020-10-15
cally: fix state set leak

Author: Ray Strode
Author Date: 2020-04-30 14:23:09 UTC

cally: fix state set leak

cally_actor_action_do_action leaks a state set object in the
case where the actor is defunct, insensitive, or hidden.

This commit plugs the leak.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1225

(cherry picked from commit 79e5ec57d24f1650cdb2f23e68c9f8bf6a494283)

cherry-pick-79e5ec57-4 2020-10-15 09:37:14 UTC 2020-10-15
cally: fix state set leak

Author: Ray Strode
Author Date: 2020-04-30 14:23:09 UTC

cally: fix state set leak

cally_actor_action_do_action leaks a state set object in the
case where the actor is defunct, insensitive, or hidden.

This commit plugs the leak.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1225

(cherry picked from commit 79e5ec57d24f1650cdb2f23e68c9f8bf6a494283)

cherry-pick-79e5ec57-3 2020-10-15 09:36:43 UTC 2020-10-15
cally: fix state set leak

Author: Ray Strode
Author Date: 2020-04-30 14:23:09 UTC

cally: fix state set leak

cally_actor_action_do_action leaks a state set object in the
case where the actor is defunct, insensitive, or hidden.

This commit plugs the leak.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1225

(cherry picked from commit 79e5ec57d24f1650cdb2f23e68c9f8bf6a494283)

wip/carlosg/shuffle-font-mouse-settings 2020-10-12 09:46:33 UTC 2020-10-12
backends: Update pointer drag-threshold/double-click settings location

Author: Carlos Garnacho
Author Date: 2020-08-26 22:08:00 UTC

backends: Update pointer drag-threshold/double-click settings location

Following recent gsettings-desktop-schemas changes.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1416

gbsneto/effects-paint-nodes 2020-10-07 20:30:49 UTC 2020-10-07
Introduce ClutterBlitNode

Author: Georges Basile Stavracas Neto
Author Date: 2020-06-29 18:26:58 UTC

Introduce ClutterBlitNode

It is not possible to express a blit operation using paint
nodes as of now. This is a requirement for GNOME Shell, e.g.,
to implement its blur effect.

Add a new ClutterBlitNode node that takes two framebuffers as
input, and blits the source framebuffer into the current one
according to added rectangles.

Because this paint node uses the rectangles in a different way
compared to all the other nodes, add an auxiliary method to
ensure all blit operations are valid.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1340

gbsneto/profiling-for-real 2020-09-20 22:07:31 UTC 2020-09-20
profiler: Add support for plugin captures

Author: Georges Basile Stavracas Neto
Author Date: 2020-09-02 20:28:07 UTC

profiler: Add support for plugin captures

A new plugin-specific SysprofCaptureWriter is created when profiling
starts, and then is concatenated with Cogl's capture writer when
profiling stops.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1428

wip/carlosg/shuffle-coverage 2020-07-23 11:55:01 UTC 2020-07-23
ci: Make the coverage build happen in the coverage target

Author: Carlos Garnacho
Author Date: 2020-07-23 11:55:01 UTC

ci: Make the coverage build happen in the coverage target

Use a specific build for it, instead of making the default test-mutter
target prepare that in advance, just in case. Bypasses errors with
recent meson when making coverage builds (although it'd still happen if
the stage were run manually).

wip/exalm/focused-appearance 2020-07-07 20:49:55 UTC 2020-07-07
window: Appear as focused while focusing

Author: Exalm
Author Date: 2019-10-13 00:15:51 UTC

window: Appear as focused while focusing

Prevent focused window from blinking after switching to another
workspace on X11.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/850

gbsneto/offscreen-paint-node 2020-07-06 14:05:59 UTC 2020-07-06
clutter/effect: Move ClutterEffect creation to ClutterActor

Author: Georges Basile Stavracas Neto
Author Date: 2020-07-05 22:17:09 UTC

clutter/effect: Move ClutterEffect creation to ClutterActor

As so paint node creation is centralized in a single function.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1355

wip/exalm/unaccel 2020-07-05 21:37:03 UTC 2020-07-05
clutter: Add API for retrieving gesture unaccelerated deltas

Author: Exalm
Author Date: 2020-07-05 15:22:59 UTC

clutter: Add API for retrieving gesture unaccelerated deltas

This will be useful for better aligning behavior between scrolling and
swiping for gnome-shell swipe tracker.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1353

wip/carlosg/a11y-snoop-keys 2020-06-23 16:14:22 UTC 2020-06-23
clutter: Always snoop key events for a11y

Author: Carlos Garnacho
Author Date: 2020-06-23 14:04:40 UTC

clutter: Always snoop key events for a11y

In the case a11y is required, the screen reader is very much
interested in getting an uniterrupted flow of key events. It attempts
so by setting a ::captured-event callback on the ClutterStage, but
that falls short with our MetaDisplay event handler, as clutter events
can be stopped before a11y gets a chance to see them.

This kind of selective amnesia wrt key events is not new, in X11 those
go unheard of by the WM as long as a client is focused and no grabs hold,
so it is clients' responsibility to talk with AT bridge.

This commit doesn't yet change that for X11, but we can do this right
away from the compositor on Wayland, and without any chance to be
tampered by clients.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1328

wip/carlosg/inputfd 2020-06-10 18:32:19 UTC 2020-06-10
wayland: Implement the "inputfd" wayland protocols

Author: Carlos Garnacho
Author Date: 2018-09-01 20:09:58 UTC

wayland: Implement the "inputfd" wayland protocols

This allows lending control to applications of evdev devices,
and withdrawing it with focus.

wip/lantw/xwayland-Don't-use-abstract-socket-on-non-Linux-systems 2020-05-05 13:36:53 UTC 2020-05-05
xwayland: Don't use abstract socket on non-Linux systems

Author: lantw44
Author Date: 2019-12-02 15:27:55 UTC

xwayland: Don't use abstract socket on non-Linux systems

Abstract socket is a Linux-only feature. On operating systems other than
Linux, we can only use the normal UNIX socket.

This patch allows mutter to run as a nested Wayland compositor under
Xorg on FreeBSD.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/954

gnome-3-30 2020-04-24 19:28:15 UTC 2020-04-24
x11: Limit touch replay pointer events to when replaying

Author: Jonas Ådahl
Author Date: 2019-10-25 08:06:55 UTC

x11: Limit touch replay pointer events to when replaying

When a touch sequence was rejected, the emulated pointer events would be
replayed with old timestamps. This caused issues with grabs as they
would be ignored due to being too old. This was mitigated by making sure
device event timestamps never travelled back in time by tampering with
any event that had a timestamp seemingly in the past.

This failed when the most recent timestamp that had been received were
much older than the timestamp of the new event. This could for example
happen when a session was left not interacted with for 40+ days or so;
when interacted with again, as any new timestamp would according to
XSERVER_TIME_IS_BEFORE() still be in the past compared to the "most
recent" one. The effect is that we'd always use the `latest_evtime` for
all new device events without ever updating it.

The end result of this was that passive grabs would become active when
interacted with, but would then newer be released, as the timestamps to
XIAllowEvents() would out of date, resulting in the desktop effectively
freezing, as the Shell would have an active pointer grab.

To avoid the situation where we get stuck with an old `latest_evtime`
timestamp, limit the tampering with device event timestamp to 1) only
pointer events, and 2) only during the replay sequence. The second part
is implemented by sending an asynchronous message via the X server after
rejecting a touch sequence, only potentially tampering with the device
event timestamps until the reply. This should avoid the stuck timestamp
as in those situations, we'll always have a relatively up to date
`latest_evtime` meaning XSERVER_TIME_IS_BEFORE() will not get confused.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/886

wip/carlosg/x11-selection-timestamps 2020-04-17 12:37:33 UTC 2020-04-17
x11: Fix race conditions in XSetSelection

Author: Carlos Garnacho
Author Date: 2020-04-17 12:15:54 UTC

x11: Fix race conditions in XSetSelection

Some clients like X11 LibreOffice clear the selection prior to copying
some content there. This selection clear is correctly seen by our clipboard
manager as a hint to take ownership and preserve the last copied content,
all while LO is issuing other XSetSelection with the new clipboard content.

Our use of META_CURRENT_TIME turns this into a race condition, as there's
both LO and our clipboard manager trying to do XSetSelection(), from our
side it's all up to the order in which the requests arrive to the X server.

In order to break the tie, keep the selection timestamp from the XFixes
event (i.e. the timestamp set by the XSetSelection external call that is
unsetting the clipboard) and ensure it is used for our own XSetSelection
call replacing the selection. In this same situation, it will make the
X server deem the request too old, and let LO win.

If the compositor-side XSetSelection event does not happen in result to
a XFixes selection notify event, the current event time will be used, and
META_CURRENT_TIME as a last resort.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1113

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1205

gtk3-ci 2020-04-15 13:59:13 UTC 2020-04-15
tests/stacking: Add test checking the initial size

Author: Jonas Ådahl
Author Date: 2020-04-06 10:12:02 UTC

tests/stacking: Add test checking the initial size

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1171

pwood/fix-trackball-button-scroll 2020-04-11 17:59:14 UTC 2020-04-11
input-settings: fix device list iteration

Author: Phillip Wood
Author Date: 2020-04-11 15:08:18 UTC

input-settings: fix device list iteration

Dereference the loop variable rather than the original list head. This
fixes a regression introduced in 4413b86a3 ("backends: Replace
ClutterDeviceManager usage in favor of ClutterSeat", 2019-10-04) which
broke button scrolling with trackballs.

Closes:https://gitlab.gnome.org/GNOME/mutter/-/issues/1120

wip/nielsdg/meta-multi-texture 2020-04-09 13:30:07 UTC 2020-04-09
wip: shm

Author: Niels De Graef
Author Date: 2020-04-09 13:30:07 UTC

wip: shm

wip/nielsdg/meta-multi-texture-dmabuf 2020-04-07 15:58:56 UTC 2020-04-07
wip

Author: Niels De Graef
Author Date: 2020-04-07 15:58:56 UTC

wip

wip/carlosg/fix-x11-wacom-device 2020-03-20 20:55:26 UTC 2020-03-20
backends: Consider pen/eraser devices when looking for matching WacomDevice

Author: Carlos Garnacho
Author Date: 2019-12-13 16:01:44 UTC

backends: Consider pen/eraser devices when looking for matching WacomDevice

Those device types are still in use through the X11 backend, breaking some
checks around on that backend...

https://gitlab.gnome.org/GNOME/mutter/merge_requests/972

benzea/use-sysprof-prefix 2020-01-08 13:12:51 UTC 2020-01-08
meson: Use sysprof interface defintion from correct prefix

Author: Benjamin Berg
Author Date: 2020-01-08 13:08:58 UTC

meson: Use sysprof interface defintion from correct prefix

The sysprof interface definition may be installed to a prefix different
from where mutter is going to be installed. Fetch the prefix from
pkgconfig instead.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/993

benzea/ci-add-machine-id 2019-12-11 15:20:33 UTC 2019-12-11
ci: Always generate a machine ID

Author: Benjamin Berg
Author Date: 2019-12-11 15:16:36 UTC

ci: Always generate a machine ID

At least the F30 base image does not seem to ship with a machine-id.
This causes tests that require DBus to fail as the dbus daemon cannot be
started.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/967

wip/carlosg/drop-caps 2019-11-13 14:12:12 UTC 2019-11-13
backend/native: Use high priority contexts for secondary GPUs

Author: Carlos Garnacho
Author Date: 2019-11-08 14:30:53 UTC

backend/native: Use high priority contexts for secondary GPUs

Ensure the context requests EGL_CONTEXT_PRIORITY_HIGH_IMG, and
that we use cogl_egl_create_context() to ensure that is honored.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/923

gbsneto/content-part2 2019-10-17 06:47:04 UTC 2019-10-17
shaped-texture: Update mipmap counters on invalidation

Author: Georges Basile Stavracas Neto
Author Date: 2018-12-28 04:57:26 UTC

shaped-texture: Update mipmap counters on invalidation

https://gitlab.gnome.org/GNOME/mutter/merge_requests/861

wip/carlosg/fix-open-lid-flicker 2019-09-04 14:29:04 UTC 2019-09-04
backends: Compare gpu/crtc/output configurations before applying

Author: Carlos Garnacho
Author Date: 2018-01-09 20:29:26 UTC

backends: Compare gpu/crtc/output configurations before applying

This spares us from visible flickering whenever an unchanged configuration
is reapplied, eg. after lid open. The code in the X11 paths that did the
same comparisons has been removed in favor of the generic checks.

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

wip/kms-connector-add-remove 2019-09-03 17:14:47 UTC 2019-09-03
monitor-manager/kms: Get hotplug events from MetaKms

Author: Jonas Ådahl
Author Date: 2019-08-22 13:15:51 UTC

monitor-manager/kms: Get hotplug events from MetaKms

This makes it clearer that MetaMonitorManagerKms keeps updated as
MetaKms updates its state.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/743

gbsneto/fix-geometric-picking 2019-08-28 21:44:39 UTC 2019-08-28
clutter: Introduce geometric picking

Author: Daniel van Vugt
Author Date: 2018-08-02 11:03:30 UTC

clutter: Introduce geometric picking

Currently, Clutter does picking by drawing with Cogl and reading
the pixel that's beneath the given point. Since Cogl has a journal
that records drawing operations, and has optimizations to read a
single pixel from a list of rectangle, it would be expected that
we would hit this fast path and not flush the journal while picking.

However, that's not the case: dithering, clipping with scissors, etc,
can all flush the journal, issuing commands to the GPU and making
picking slow. On NVidia-based systems, this glReadPixels() call is
extremely costly.

Introduce geometric picking, and avoid using the Cogl journal entirely.
Do this by introducing a stack of actors in ClutterStage. This stack
is cached, but for now, don't use the cache as much as possible.

The picking routines are still tied to painting.

When projecting the actor vertexes, do it manually and take the modelview
matrix of the framebuffer into account as well.

CPU usage on an Intel i7-7700, tested with two different GPUs/drivers:

  | | Intel | Nvidia |
  | ------: | --------: | -----: |
  | Moving the mouse: |
  | Before | 10% | 10% |
  | After | 6% | 6% |
  | Moving a window: |
  | Before | 23% | 81% |
  | After | 19% | 40% |

Closes: https://gitlab.gnome.org/GNOME/mutter/issues/154,
        https://gitlab.gnome.org/GNOME/mutter/issues/691

Helps significantly with: https://gitlab.gnome.org/GNOME/mutter/issues/283,
                          https://gitlab.gnome.org/GNOME/mutter/issues/590,
                          https://gitlab.gnome.org/GNOME/mutter/issues/700

v2: Fix code style issues
    Simplify quadrilateral checks
    Remove the 0.5f hack
    Differentiate axis-aligned rectangles

https://gitlab.gnome.org/GNOME/mutter/merge_requests/189

wip/carlosg/avoid-app-updates-2 2019-07-24 21:40:21 UTC 2019-07-24
core: Only trigger MetaWorkspace::window-* on toplevel window types

Author: Carlos Garnacho
Author Date: 2019-07-24 21:35:18 UTC

core: Only trigger MetaWorkspace::window-* on toplevel window types

Popups and other override-redirect windows are irrelevant to all listeners
of MetaWorkspace::window-*. Ignoring those windows will namely result in
less activity on ShellWindowTracker, less ShellApp::windows-changed
signal emissions and less AppMenuButton updates.

Reduces gnome-shell CPU activity while typing on the Epiphany addressbar,
as the pop up animation there results in a number of xdg_popup being
created and destroyed.

https://gitlab.gnome.org/GNOME/mutter/issues/556

wip/run-tests-install 2019-07-22 21:07:39 UTC 2019-07-22
cogl/tests: Only install run-tests.sh when building installed tests

Author: Iain Lane
Author Date: 2019-07-22 20:58:21 UTC

cogl/tests: Only install run-tests.sh when building installed tests

This is a script for installed tests; leave it out otherwise.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/694

wip/nielsdg/uncrustify 2019-07-11 09:17:45 UTC 2019-07-11
CI: add uncrustify config.

Author: Niels De Graef
Author Date: 2018-11-05 14:33:55 UTC

CI: add uncrustify config.

Run in the repo's root directory with for example

```
$ uncrustify -c data/uncrustify.cfg src/**/*.c
```

wip/nielsdg/add-yuv-support 2019-06-24 13:14:01 UTC 2019-06-24
WIP

Author: Niels De Graef
Author Date: 2019-06-24 13:05:15 UTC

WIP

wip/nieldsg/cogl-pixel-format-include-dr 2019-06-24 11:51:27 UTC 2019-06-24
cogl: Include DRM 4CC conversions into CoglPixelFormat

Author: Niels De Graef
Author Date: 2019-05-27 10:12:30 UTC

cogl: Include DRM 4CC conversions into CoglPixelFormat

This is at the moment still part of both MetaRendererNative and
MetaDmaBuf, which means duplicated effort in code sections only barely
related to color formats. By doing this, we can keep more of the pixel
format code together, which is more future-proof as we want to add
support for new pixel formats (like YUV-based ones).

https://gitlab.gnome.org/GNOME/mutter/merge_requests/594

wip/gbsneto/kms-transactions-on-steroids 2019-06-19 23:43:27 UTC 2019-06-19
backend/native: Port gamma management to Atomic KMS API

Author: Georges Basile Stavracas Neto
Author Date: 2019-06-19 23:39:29 UTC

backend/native: Port gamma management to Atomic KMS API

As a side note: fun things happen when gamma is set wrong!

wip/nielsdg/remove-gl-alpha 2019-06-12 07:21:09 UTC 2019-06-12
cogl: Don't use GL_ALPHA

Author: Niels De Graef
Author Date: 2019-06-12 07:09:31 UTC

cogl: Don't use GL_ALPHA

It was deprecated in OpenGL and it isn't even a valid value anymore for
functions like `glTextImage2D()` in OpenGL 4.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/612

wip/carlosg/left-handed-tablet-touchpads 2019-06-07 10:41:45 UTC 2019-06-07
backends: Map left-handed in tablet "touchpads" together with the tablet

Author: Carlos Garnacho
Author Date: 2019-06-07 10:31:31 UTC

backends: Map left-handed in tablet "touchpads" together with the tablet

Avoid those devices when applying the configuration to touchpads, and ensure
the devices grouped with the tablet are all synchronized wrt the left handed
setting.

Closes: https://gitlab.gnome.org/GNOME/mutter/issues/562

wip/nielsdg/add-yuv-support-gnome-3-32 2019-06-03 14:06:23 UTC 2019-06-03
WIP: wayland: add basic support for non-RGBA textures

Author: Niels De Graef
Author Date: 2018-11-14 11:22:02 UTC

WIP: wayland: add basic support for non-RGBA textures

Up until now, we didn't support sending YUV textures to the Wayland
server. This was for several reasons:

* We draw onto an RGBA framebuffer, so any other color format needs to
be converted to that color space. Since we don't want to lose a lot of
performance, this is ideally done on the GPU (using shaders).
* YUV formats can consist of several planes (for example NV12, a common
format in decoded video frames consists of a Y-plane and a subsampled
UV-plane). Mutter always assumed that any texture it got was
representable by a `CoglTexture`, which does not have this kind of
concept.

To deal with this, we introduce a new "texture": a
`CoglMultiPlaneTexture` which consists of multiple CoglTextures, each
representing a plane in the texture we got. It also provides support
for CoglSnippets which can convert the colorspace if necessary.

What changes are in this commit:
* Introduce a new CoglMultiPlaneTexture object. Right now it is not
implemented as a CoglTexture to prevent any confusion (but it is
somewhat related to CoglMetaTexture)
* Added some extra values to the CoglPixelFormat enum that deal with YUV
* Make the necessary changes in MetaWaylandBuffer, so that it knows how
to deal with incoming buffers (for example EGLImages and shm buffers)
* This also introduces some changes in MetaDmaBuf, as that is also a
different kind of buffer we can receive from wayland.

Acknowledgements
* There was a lot of prior art already done by the authors of Weston,
CoglGstVideoSink and ClutterGstSink
* My employer Barco for allowing me to work on this

wip/nieldsg/cogl-pixel-format-include-drm 2019-05-28 15:29:18 UTC 2019-05-28
cogl: Include DRM 4CC conversions into CoglPixelFormat

Author: Niels De Graef
Author Date: 2019-05-27 10:12:30 UTC

cogl: Include DRM 4CC conversions into CoglPixelFormat

This is at the moment still part of both MetaRendererNative and
MetaDmaBuf, which means duplicated effort in code sections only barely
related to color formats. By doing this, we can keep more of the pixel
format code together, which is more future-proof as we want to add
support for new pixel formats (like YUV-based ones).

https://gitlab.gnome.org/GNOME/mutter/merge_requests/594

wip/carlosg/no-passive-grabs-on-wayland 2019-05-24 17:40:07 UTC 2019-05-24
core: Ensure passive key grabs are only set up on X11

Author: Carlos Garnacho
Author Date: 2019-05-24 17:40:07 UTC

core: Ensure passive key grabs are only set up on X11

We don't strictly need it for wayland compositors, yet there are
paths where we try to trigger those passive grabs there. Just
skip those on the high level code (where "is it x11" decisions
are taken) like we do with passive button grabs.

dcvviewer 2019-05-22 14:55:03 UTC 2019-05-22
Add dcvviewer to xwayland_grab_default_access_rules

Author: Ignacio Casal Quinteiro
Author Date: 2019-05-22 09:32:25 UTC

Add dcvviewer to xwayland_grab_default_access_rules

dcvviewer does not have native wayland support yet

https://gitlab.gnome.org/GNOME/mutter/merge_requests/587

cherry-pick-1ca0fdc9 2019-05-03 07:49:22 UTC 2019-05-03
idle-monitor: Postpone dispatching of idle timeout if not ready

Author: Jonas Ådahl
Author Date: 2019-04-16 16:07:31 UTC

idle-monitor: Postpone dispatching of idle timeout if not ready

If we update the ready time while the source is already in the
to-dispatch list, changing the ready time doesn't have any effect, and
the source will still be dispatched. This could cause incorrect idle
watch firing causing the power management plugin in
gnome-settings-daemon to sometimes turn off monitors due to it believing
the user had been idle for some time, while in fact, they just logged
back in.

Fix this by not actually dispatching the idle timeout if the ready time
is in the future when actually dispatching.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/543

(cherry picked from commit 1ca0fdc928511edea57b72bfb798be84b8293b1e)

gbsneto/charts 2019-04-17 22:26:23 UTC 2019-04-17
clutter/stage: Cast the stage just when needed

Author: Georges Basile Stavracas Neto
Author Date: 2019-03-22 01:32:52 UTC

clutter/stage: Cast the stage just when needed

If we use a variable, and the debug notes are disabled at
compile time, the variable becomes unused and we are warned.

Remove this variable and instead cast inline.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/502

wip/carlosg/axe-libsn 2019-04-17 16:56:44 UTC 2019-04-17
core: Set timestamp in our DESKTOP_STARTUP_ID tokens

Author: Carlos Garnacho
Author Date: 2019-04-16 11:07:58 UTC

core: Set timestamp in our DESKTOP_STARTUP_ID tokens

We must be educated to X11 clients (which usually parse the timestamp from
the DESKTOP_STARTUP_ID, and request focus with it) to make focus stealing
prevention work across the board.

To wayland clients the startup ID should be as opaque and meaningless as
it was before.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/540

wip/nielsdg/reenable-gtk-doc 2019-04-08 09:42:13 UTC 2019-04-08
docs: Re-enable generating the reference manual

Author: NielsDG
Author Date: 2019-01-17 08:29:00 UTC

docs: Re-enable generating the reference manual

gtk-doc support was removed around 3 years ago with commit 7dc0b0e6.
Now that we have Meson and [MRs related to documentation], it makes
sense to re-enable this, so people who want to use libmutter can do so
without having to actually dive in the code.

[MRs related to documentation]: https://gitlab.gnome.org/GNOME/mutter/merge_requests/269

gbsneto/graphene2 2019-03-20 15:17:16 UTC 2019-03-20
clutter/actor: Revert transform order

Author: Georges Basile Stavracas Neto
Author Date: 2019-03-12 17:38:11 UTC

clutter/actor: Revert transform order

When doing affine transforms on 2D and 3D spaces, operations are
done relative to the origin. That means that, when applying
rotations and scales, we must:

 * translate (-anchor_x, -anchor_y, -anchor_z)
 * apply the operation
 * translate (anchor_x, anchor_y, anchor_z)

Since OpenGL has its matrices applied in the reverse order, the
usual way to do it is, then:

 * translate (anchor_x, anchor_y, anchor_z)
 * apply the operation
 * translate (-anchor_x, anchor_y, anchor_z)

However, graphene matrices do not follow the GL format, so matrix
operations are done as the first example. Now that we are using
graphene_matrix_t for every matrix operation, the transform order
is wrong.

Apply the transform operations in the opposite order.

wip/fmuellner/flash-flash 2019-03-12 00:27:07 UTC 2019-03-12
frame: Remove flashing support

Author: Florian Müllner
Author Date: 2019-03-06 22:56:33 UTC

frame: Remove flashing support

It's now unused.

https://gitlab.gnome.org/GNOME/mutter/issues/491

wip/fmuellner/missing-image-missing 2019-02-27 21:46:19 UTC 2019-02-27
window: Handle broken icon themes more gracefully

Author: Florian Müllner
Author Date: 2019-02-27 21:11:46 UTC

window: Handle broken icon themes more gracefully

We assert that the icons used as default window icons are loaded correctly,
but currently this can fail simply because of an incomplete icon theme. After
all, "image-missing" was only added to the icon-naming spec in 2005 🙄

Handle this case more gracefully by falling back to a completely
transparent "icon".

https://bugzilla.gnome.org/show_bug.cgi?id=720583
https://gitlab.gnome.org/GNOME/mutter/merge_requests/462

wip/carlosg/unfocus-on-modal 2019-02-19 18:09:01 UTC 2019-02-19
compositor: Focus the no focus window during modal plugin operations

Author: Carlos Garnacho
Author Date: 2018-09-18 17:49:03 UTC

compositor: Focus the no focus window during modal plugin operations

Modal operations are usually far from transient, so it makes sense to
unfocus the currently focused window while the operation is going on.
If no other window was focused and the window is still alive when the
modal operation is finished, focus will be restored back.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/452

wip/rstrode/rhel-8.0.0 2019-02-13 14:53:42 UTC 2019-02-13
native: add some logging spew

Author: Ray Strode
Author Date: 2019-02-13 14:53:42 UTC

native: add some logging spew

hopefully this will help us get to the bottom of why jkoten's machine
isn't fixed.

gbsneto/cleanup-x11-from-meta-window 2019-02-13 08:05:49 UTC 2019-02-13
window-x11: Cleanup header and shuffle function locations

Author: Georges Basile Stavracas Neto
Author Date: 2018-12-23 01:46:15 UTC

window-x11: Cleanup header and shuffle function locations

The functions meta_window_x11_create_sync_request_alarm() and
meta_window_x11_destroy_sync_request_alarm() are not used outside
MetaWindowX11 now, and don't need to be exposed in window-x11.h

Remove them from window-x11.h and shuffle these functions to
before their first usage, to avoid having to add their prototypes.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/372

gbsneto/content-pt1 2019-01-27 18:22:42 UTC 2019-01-27
shaped-texture: Implement ClutterContent

Author: Georges Basile Stavracas Neto
Author Date: 2018-12-26 15:41:26 UTC

shaped-texture: Implement ClutterContent

MetaWindowActor is the compositor-side representative of a
MetaWindow. Specifically it represents the geometry of the
window under Clutter scene graph. MetaWindowActors are backed
by MetaSurfaceActors, that represent the windowing system's
surfaces themselves. Naturally, these surfaces have textures
with the pixel content of the clients associated with them.
These textures are represented by MetaShapedTexture.

MetaShapedTextures are currently implemented as ClutterActor
subclasses that override the paint function to paint the
textures it holds.

Conceptually, however, Clutter has an abstraction layer for
contents of actors: ClutterContent. Which MetaShapedTexture
fits nicely, in fact.

Make MetaShapedTexture a ClutterContent implementation. This
forces a few changes in the stack:

 * MetaShapedTexture now manually tracks the content scale.

 * We now paint into ClutterPaintNode instead of the direct
   framebuffer.

 * Various pieces of Wayland code now use MetaSurfaceActor
   instead of MetaShapedTexture.

 * MetaSurfaceActorWayland doesn't override size negotiation
   vfuncs anymore

wip/carlosg/context-priority 2019-01-21 15:33:44 UTC 2019-01-21
cogl/egl: Use EGL_IMG_context_priority

Author: Carlos Garnacho
Author Date: 2018-03-01 22:52:57 UTC

cogl/egl: Use EGL_IMG_context_priority

As long as the context_priority extension is available request a high
priority context, to help the compositor look fluid despite heavy GPU usage
from other applications at a regular priority.

This becomes sort of pointless if/when unredirection applies, should still
help with overview/workspace switch animations, or if the application is
not fullscreen.

Based on a similar patch by Daniel Stone to Weston.

wip/texture-purge-on-nvidia 2019-01-15 16:54:58 UTC 2019-01-15
MetaShapedTexture: save and restore textures on suspend

Author: Ray Strode
Author Date: 2019-01-10 15:48:02 UTC

MetaShapedTexture: save and restore textures on suspend

The proprietary nvidia driver garbles GPU memory on suspend.

In order to workaround that limitation, this commit copies all
textures to host memory on suspend and restores them on resume.

One complication comes from external textures (such as those
given to us by Xwayland for X clients). We can't just restore
those textures, since they aren't writable.

This commit addresses that complication by keeping a local texture
around for those external textures, and using it instead for parts
of the window that haven't been redrawn since resume.

wip/nielsdg/sprinkle-some-g-likely 2018-12-05 14:34:41 UTC 2018-12-05
wayland/buffer: use G_UNLIKELY for error paths

Author: NielsDG
Author Date: 2018-12-05 14:25:54 UTC

wayland/buffer: use G_UNLIKELY for error paths

We do a lot of if-checks in `MetaWaylandBuffer` to deal with unexpected
situations (as we should). However, that means we get a branching
penalty for every time this leads to a misprediction. Although these
should in theory be mitigated by a proper branch predictor, it doesn't
hurt giving some hints to make sure that we don't sacrifice our hot
path. Especially given that in the case of video streams, the
`meta_wayland_buffer_attach` is called for example 60 times per second.

wip/3-monitors-on-nvidia 2018-11-30 19:34:10 UTC 2018-11-30
wip! native: release dumb fb after flip for EGLStreams

Author: Ray Strode
Author Date: 2018-09-10 20:19:39 UTC

wip! native: release dumb fb after flip for EGLStreams

fixme probably need to recreate the dumb fb any time doing
an explicit modeset

wip/nielsdg/uncrustify-test 2018-11-19 13:19:44 UTC 2018-11-19
WIP

Author: Niels De Graef
Author Date: 2018-11-19 13:19:28 UTC

WIP

wip/nielsdg/clutter-remove-deprecated 2018-11-18 10:52:50 UTC 2018-11-18
clutter: remove deprecated ClutterStage/ClutterAnimator

Author: NielsDG
Author Date: 2018-11-18 10:52:50 UTC

clutter: remove deprecated ClutterStage/ClutterAnimator

Removing one without the other was quite the headache, so just remove
both of them together instead.

wip/3v1n0/run-tests-in-ci 2018-11-14 08:46:16 UTC 2018-11-14
gitlab-ci: run tests too

Author: Marco Trevisan (Treviño)
Author Date: 2018-11-14 08:19:27 UTC

gitlab-ci: run tests too

cherry-pick-8eabfaaa 2018-11-13 09:39:53 UTC 2018-11-13
window: Really force update monitor on hot plugs

Author: Olivier Fourdan
Author Date: 2018-11-06 12:35:31 UTC

window: Really force update monitor on hot plugs

Commit 8d3e05305 ("window: Force update monitor on hot plugs") added the
flag `META_WINDOW_UPDATE_MONITOR_FLAGS_FORCE` passed to
`update_monitor()` from `update_for_monitors_changed()`.

However, `update_for_monitors_changed()` may choose to call another code
path to `move_between_rects()` and `meta_window_move_resize_internal()`
eventually.

As `meta_window_move_resize_internal()` does not use the "force" flag,
we may still end up in case where the window->monitor is left unchanged.

To avoid that problem, add a new `MetaMoveResizeFlags` that
`update_for_monitors_changed()` can use to force the monitor update from
`meta_window_move_resize_internal()`.

Fixes: 8d3e05305 ("window: Force update monitor on hot plugs")
Closes: https://gitlab.gnome.org/GNOME/mutter/issues/189

(cherry picked from commit fa495286a1037d610051ab49f0aa1e8b20e38066)

(cherry picked from commit 8eabfaaa8b9469c5bdb1d8ca44b465384e8eaa9d)

alatiera/docker-images 2018-11-11 20:38:33 UTC 2018-11-11
CI: add job to build the docker image

Author: Jordan Petridis
Author Date: 2018-11-11 20:32:14 UTC

CI: add job to build the docker image

This defines a template for building docker images as well as a
job to build the fedora image thats mean to replace the one
that's currently used.

Close #381

wip/carlosg/there-can-be-only-one 2018-11-02 15:15:02 UTC 2018-11-02
wayland: Use default cursor on tablet tools

Author: Carlos Garnacho
Author Date: 2018-11-02 14:52:12 UTC

wayland: Use default cursor on tablet tools

Now that we "replace" the pointer cursor on tablet input, have it
use the default cursor so it blends in better.

gbsneto/paint-nodes 2018-09-29 00:38:12 UTC 2018-09-29
Port ClutterText to ClutterPaintNode

Author: Georges Basile Stavracas Neto
Author Date: 2018-09-26 05:05:28 UTC

Port ClutterText to ClutterPaintNode

The port to use ClutterPaintNodes basically mirrors what
it currently does, with the major benefit of not depending
on cogl_get_draw_framebuffer() anymore.

There are various factors that influence the number of
subnodes:

 * The background color adds a color subnode;
 * The selection adds a clip subnode, and a color subnode,
   or a color and a text subnode;

The simplest case is when the text does not overflow and
has no background color nor selection. In that case, the
render tree is simply:

    [ Dummy ]
        ↓
    [ Text ]

In contrast, the most complex case is when drawing the text
with selection, in which case the render tree looks like:

    [ Dummy ]
        ↓
    [ Clip ]
        ↓
    [ Text ] → [ Clip ]
                  ↓
               [ Color ] → [ Text ]

Since the selection may have another text color, the selected
text must be rendered again, but clipped to only cover the
selection rectangle. This is suboptimal, but it's what the
current code already does anyway.

wip/fmuellner/hide-titlebar-when-tiled 2018-09-08 12:17:47 UTC 2018-09-08
window-props: Handle hide-titlebar-when-maximized for tiled windows

Author: Florian Müllner
Author Date: 2018-09-08 12:17:47 UTC

window-props: Handle hide-titlebar-when-maximized for tiled windows

While we apply the setting to both maximized and tiled windows, we
currently only queue a resize for the former. This is required for
the setting to take effect immediately if the window is already
tiled.

https://gitlab.gnome.org/GNOME/mutter/issues/296

wip/carlosg/issue-294 2018-09-07 17:31:35 UTC 2018-09-07
backends: push missing error trap

Author: Carlos Garnacho
Author Date: 2018-09-07 17:31:35 UTC

backends: push missing error trap

This went MIA in commit 390314adfb6, and causes asserts when
trying to pop a non-existent error trap a bit later.

Closes: #294

wip/laney/drmmodegetresources-handle-failure 2018-08-09 13:43:21 UTC 2018-08-09
gpu-kms: Check for DRM resources when constructing

Author: Iain Lane
Author Date: 2018-08-09 13:12:31 UTC

gpu-kms: Check for DRM resources when constructing

drmModeGetResources() can fail if the DRM driver doesn't implement
modesetting. We shouldn't crash in this case, but instead error out.

This moves the call into the constructor of the MetaGpuKms, as it is
easier to fail constructing directly rather than deal with it later on.

Fixes #223.

gbsneto/tty-switch-crash 2018-07-14 15:58:59 UTC 2018-07-14
gpu-kms: Protect against NULL crtc->current_mode

Author: Georges Basile Stavracas Neto
Author Date: 2018-07-14 15:58:59 UTC

gpu-kms: Protect against NULL crtc->current_mode

When failing to apply the CRTC mode, Mutter throws a warning
message. This warning message would try to access the name of
the CRTC's current mode.

There are ocasions, however, where the current mode is NULL.
On these cases, Mutter would crash.

Fix that by protecting against NULL CRTC modes.

cherry-pick-041be7c5 2018-07-13 12:25:15 UTC 2018-07-13
screen-cast-src: Allow negotiating the framerate

Author: Jonas Ådahl
Author Date: 2018-06-15 10:27:50 UTC

screen-cast-src: Allow negotiating the framerate

The framerate for screen cast sources was set to variable within 1 FPS
and the framerate of the monitor being screen casted. This meant that if
the sink didn't match the framerate (e.g. had a lower max framerate),
the formats would not match and a stream would not be established.

Allow letting the sink clamp the framerate range by setting it as
'unset', allowing it to be negotiated.

(cherry picked from commit 041be7c565914c5f078be879b36811b1bc2c1d3a)

wip/carlosg/move-resize-loop 2018-06-14 19:10:05 UTC 2018-06-14
core: Avoid queueing resizes while changing workspace during window drag

Author: Carlos Garnacho
Author Date: 2018-06-14 17:33:45 UTC

core: Avoid queueing resizes while changing workspace during window drag

We already have a user move/resize going on, so avoid botching it with
window resizes with flags & META_MOVE_RESIZE_USER_ACTION == 0 that will
trigger unintended constraints.

https://gitlab.gnome.org/GNOME/mutter/issues/192

Closes: #192

gnome-3-24 2018-05-21 16:37:21 UTC 2018-05-21
Update Chinese (China) translation

Author: Tong Hui
Author Date: 2018-05-21 16:37:21 UTC

Update Chinese (China) translation

wip/carlosg/keep-depressed-mods-depressed 2018-04-26 18:50:36 UTC 2018-04-26
clutter: Keep depressed mods across keymap changes

Author: Carlos Garnacho
Author Date: 2018-04-26 18:50:36 UTC

clutter: Keep depressed mods across keymap changes

Those are, evidently, depressed. Forgetting about those when the keymap
changes does no good to them, nor the stuff we are typing.

wip/idletime-inhibitors 2018-04-16 11:28:03 UTC 2018-04-16
idle-monitor: Add ResetIdletime API, for testing purposes

Author: Bastien Nocera
Author Date: 2018-03-21 13:11:39 UTC

idle-monitor: Add ResetIdletime API, for testing purposes

The ResetIdletime API can be used instead of an "XTest" binary to
programmatically reset the idle time, as if the user pressed a button on
a keyboard.

This is necessary since we stopped using the XSync extension to monitor
idletimes, as it didn't consider inhibitors as busy, and mutter's
clutter code ignores "Core Events" as generated by XTest.

This patch will require minimal changes to gnome-settings-daemon's power
test suite so that "key press" idletime resets are triggered through
this D-Bus interface rather than through XTest and a roundtrip through
the X server.

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

wip/ssd-black-borders-fix 2018-03-31 21:50:45 UTC 2018-03-31
compositor: get rid of initial black rectangle on xwayland clients

Author: Ray Strode
Author Date: 2018-03-16 21:04:09 UTC

compositor: get rid of initial black rectangle on xwayland clients

At the moment when a legacy X11 application client is first mapped it
gets briefly shown as a black rectangle before redrawing.

That behavior is because the initial Configure operation on the window
leads to the surface immediately getting full window damage posted by
Xwayland before the client has a chance to draw.

This commit changes mutter to send a sync request right away, when a
window first shows up, then waits until the reply from the application
before showing the window.

It leverages the same code paths already used to prevent flicker from
subsequent (non-initial) resizes on the window.

gbsneto/small-leak 2018-03-22 00:16:23 UTC 2018-03-22
window: Fix a small memory leak

Author: Georges Basile Stavracas Neto
Author Date: 2018-03-22 00:16:23 UTC

window: Fix a small memory leak

wip/fmuellner/fix-condition 2018-03-16 16:12:49 UTC 2018-03-16
keyboard: Fix condition

Author: Florian Müllner
Author Date: 2018-03-16 16:08:08 UTC

keyboard: Fix condition

!= has a higher precedence than bitwise &, so we need parentheses
to check for one of the values in flags.

https://gitlab.gnome.org/GNOME/mutter/issues/74

wip/fmuellner/fix-headless-segfault 2018-03-09 15:20:58 UTC 2018-03-09
monitor: Allow %NULL mode in calculate_mode_scale()

Author: Florian Müllner
Author Date: 2018-03-08 19:12:54 UTC

monitor: Allow %NULL mode in calculate_mode_scale()

If no global scaling factor has been set, we currently segfault when
called with a %NULL mode parameter, which happens when calculating the
scale for the current mode while no modes are available.

Adding %NULL checks in the corresponding callers would mean that we'd
have to duplicate the global scaling factor handling, so instead consider
%NULL mode parameters valid and handle them gracefully.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/41

gnome-3-26 2018-03-01 10:46:14 UTC 2018-03-01
Update Scottish Gaelic translation

Author: GNOME Translation Robot
Author Date: 2018-03-01 10:46:14 UTC

Update Scottish Gaelic translation

wip/gbsneto/tile-picker 2017-12-29 16:12:25 UTC 2017-12-29
compositor: Introduce tile picker API

Author: Georges Basile Stavracas Neto
Author Date: 2017-12-25 17:12:20 UTC

compositor: Introduce tile picker API

Plugins might want to know when they should show
a tile picker UI and, since we control the tiling
state from the window manager side, we just need
to tell the compositor when they should do that.

This commit adds the necessary plumbing to let the
compositor and plugins know when a tile picker should
be shown.

wip/carlosg/text-input 2017-12-22 16:16:57 UTC 2017-12-22
clutter: Make ClutterText request toggling the input panel

Author: Carlos Garnacho
Author Date: 2017-12-22 16:16:57 UTC

clutter: Make ClutterText request toggling the input panel

So gnome-shell is able to show the OSK for it.

wip/fmuellner/contraint-tiling 2017-10-03 21:16:44 UTC 2017-10-03
x11: Add support for _GTK_EDGE_CONSTRAINTS atom

Author: Georges Basile Stavracas Neto
Author Date: 2017-08-18 23:21:37 UTC

x11: Add support for _GTK_EDGE_CONSTRAINTS atom

To keep feature parity with the Wayland backend, and
to improve the overall tiling experience with GTK apps,
add the _GTK_EDGE_CONSTRAINTS X11 atom and update it
when necessary.

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

wip/xwayland-on-demand 2017-08-28 02:50:44 UTC 2017-08-28
Fix cursor size update on non-wayland

Author: Armin Krezović
Author Date: 2017-08-27 19:04:14 UTC

Fix cursor size update on non-wayland

gnome-3-22 2017-08-12 13:35:32 UTC 2017-08-12
Update Indonesian translation

Author: Andika Triwidada
Author Date: 2017-08-12 13:35:32 UTC

Update Indonesian translation

tintou/wip/vapi 2017-06-30 15:02:19 UTC 2017-06-30
Enable vala .vapi generation, create the meta/meta.h umbrella file

Author: Corentin Noël
Author Date: 2017-06-30 15:02:19 UTC

Enable vala .vapi generation, create the meta/meta.h umbrella file

wip/carlosg/performance-improvements 2017-05-22 15:43:10 UTC 2017-05-22
wayland: Use weak ref to keep track of buffers

Author: Carlos Garnacho
Author Date: 2017-05-06 20:46:06 UTC

wayland: Use weak ref to keep track of buffers

Instead of using a one-shot signal meant to happen then the buffer
is being destroyed.

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

wip/jstpierre/cursor-position-tracker 2017-02-23 19:06:41 UTC 2017-02-23
backends: Add a method for monitoring cursor position

Author: Jasper St. Pierre
Author Date: 2017-02-23 19:06:41 UTC

backends: Add a method for monitoring cursor position

gnome-3-20 2016-10-29 18:25:41 UTC 2016-10-29
Update zh_CN translation

Author: YunQiang Su
Author Date: 2016-10-29 18:25:41 UTC

Update zh_CN translation

gnome-3-18 2016-10-29 18:19:33 UTC 2016-10-29
Update zh_CN translation

Author: liushuyu
Author Date: 2016-10-29 18:19:33 UTC

Update zh_CN translation

wip/fmuellner/gtk-shadows 2016-10-28 15:10:57 UTC 2016-10-28
theme: Update style classes to match CSD decorations

Author: Florian Müllner
Author Date: 2016-10-28 00:56:28 UTC

theme: Update style classes to match CSD decorations

We currently use the "ssd" style class instead of "csd", so themes
can avoid adding a window shadow to windows that already got a shadow
from the compositor. Now that we no longer add a shadow to regular
windows, we should ask for the appropriate style.

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

gnome-3-4 2016-10-11 18:57:23 UTC 2016-10-11
Update Occitan translation

Author: Cédric VALMARY (Tot en òc)
Author Date: 2016-10-11 18:57:23 UTC

Update Occitan translation

gnome-3-6 2016-10-11 18:54:45 UTC 2016-10-11
Update Occitan translation

Author: Cédric VALMARY (Tot en òc)
Author Date: 2016-10-11 18:54:45 UTC

Update Occitan translation

1100 of 169 results

Other repositories

Name Last Modified
lp:mutter 5 hours ago
lp:~vanvugt/mutter 2019-04-29
12 of 2 results
You can't create new repositories for Mutter.