lp:mutter

Owned by GNOME3 Team
Get this repository:
git clone https://git.launchpad.net/mutter

Import details

Import Status: Reviewed

This repository is an import of the Git repository at https://git.gnome.org/browse/mutter/.

The next import is scheduled to run .

Last successful import was .

Import started on juju-98ee42-prod-launchpad-codeimport-0 and finished taking 4 minutes — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-0 and finished taking 1 hour — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-5 and finished taking 1 hour — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-0 and finished taking 1 hour — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-5 and finished taking 1 hour — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-0 and finished taking 2 minutes — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-1 and finished taking 3 minutes — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-1 and finished taking 4 minutes — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-0 and finished taking 5 minutes — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-0 and finished taking 1 hour — see the log

Branches

Name Last Modified Last Commit
bilelmoussaoui/build-shadow 2024-04-23 06:05:17 UTC
build: Enable -Werror=shadow and fix related issues

Author: Bilal Elmoussaoui
Author Date: 2023-11-09 14:29:38 UTC

build: Enable -Werror=shadow and fix related issues

Mostly renames or removing already defined types

main 2024-04-22 10:16:31 UTC
x11: Drop obsolete libXrender dependency

Author: Mart Raudsepp
Author Date: 2024-04-22 05:32:16 UTC

x11: Drop obsolete libXrender dependency

It seems only the iconcache used to use it, but this is gone since
commit d16ddc42ceb5b9.
Even before that, the Xrender usage was removed in commit 556e7694de01,
albeit leaving a redundant include <X11/extensions/Xrender.h> in its
place then, which comes from libXrender.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3716>

gnome-46 2024-04-19 17:48:34 UTC
Bump version to 46.1

Author: =?utf-8?q?Florian_M=C3=BCllner?=
Author Date: 2024-04-19 12:55:16 UTC

Bump version to 46.1

Update NEWS.

gnome-45 2024-04-19 13:00:26 UTC
Bump version to 45.6

Author: =?utf-8?q?Florian_M=C3=BCllner?=
Author Date: 2024-04-19 13:00:26 UTC

Bump version to 45.6

Update NEWS.

wip/antoniof/nautilus-filechooser-portal-support 2024-04-17 10:20:50 UTC
service-channel: Add client type for filechooser portal

Author: Georges Basile Stavracas Neto
Author Date: 2024-04-09 19:11:59 UTC

service-channel: Add client type for filechooser portal

Add a new service client type for a filechooser portal, and expose the
x11_interop protocol to them.

(Ammended by António Fernandes <antoniof@gnome.org>)

work-with-old-libdrm 2024-03-19 17:32:40 UTC
backends/native: Work with old libdrm

Author: Ray Strode
Author Date: 2024-03-19 17:32:40 UTC

backends/native: Work with old libdrm

commit a775241efd8b840e7789077fb2224f0df2361d54 recently introduced
usage of a sort of new API, drmModeCloseFb. Unfortunately, this API
has not yet made it into freedesktop-sdk.

As an interim answer, this commit adds a drmIoctl based reimplementation
of drmModeCloseFb that only gets used if the real implementation isn't
available in libdrm.

Later we can just drop this function without changing any other code.

bilelmoussaoui/wayland-module 2024-03-19 14:45:09 UTC
tests: Remove no longer needed wayland protocol codegen ones

Author: Bilal Elmoussaoui
Author Date: 2024-03-19 14:45:09 UTC

tests: Remove no longer needed wayland protocol codegen ones

As we use meson's module, nothing to test per see...

bilelmoussaoui/frame-x11 2024-03-11 08:10:21 UTC
window: Stop caching frame_bounds

Author: Bilal Elmoussaoui
Author Date: 2023-12-05 22:05:26 UTC

window: Stop caching frame_bounds

That was only there to force updating MetaFrame's bounds
but that is something that is already updated in
MetaWindow.move_resize_internal. So just drop all of that

bilelmoussaoui/very-wip-branch 2024-02-26 10:18:27 UTC
x11: guard group/stack tracker

Author: Bilal Elmoussaoui
Author Date: 2024-02-08 17:46:00 UTC

x11: guard group/stack tracker

bilelmoussaoui/cogl-color-merge 2024-02-22 14:04:05 UTC
cogl/pipeline-debug: Use Color helper to get a string representation

Author: Bilal Elmoussaoui
Author Date: 2024-01-29 14:34:31 UTC

cogl/pipeline-debug: Use Color helper to get a string representation

bilelmoussaoui/x11-round-6 2024-02-22 08:51:14 UTC
core: Include a small subset of xcursor in-tree

Author: Bilal Elmoussaoui
Author Date: 2024-01-31 15:43:22 UTC

core: Include a small subset of xcursor in-tree

For a Wayland only build, we would like to avoid linking against
libXcursor which on it turn, links back to some of the X11 deps.
In order to achieve that, we include a small subset of xcursor.

In case Mutter is built with X11 or with both Wayland & X11, we link
against libXcursor and don't make use of the in-tree implementation.

This patch mimics what GTK 4 do by shipping an in-tree copy of xcursor.
Especially that libwayland-cursor does not provide an alternative to
xcursor itself.

Helps #2272

bilelmoussaoui/config-signal 2024-02-20 09:08:13 UTC
stuff

Author: Bilal Elmoussaoui
Author Date: 2023-11-29 09:13:51 UTC

stuff

gnome-44 2024-02-11 20:17:14 UTC
Bump version to 44.9

Author: =?utf-8?q?Florian_M=C3=BCllner?=
Author Date: 2024-02-11 20:17:14 UTC

Bump version to 44.9

Update NEWS.

bilelmoussaoui/libxcursor 2024-01-31 16:02:14 UTC
backends/cursor-sprite: Guard x11 usage

Author: Bilal Elmoussaoui
Author Date: 2024-01-31 15:47:22 UTC

backends/cursor-sprite: Guard x11 usage

bilelmoussaoui/fonts-options 2024-01-17 17:14:24 UTC
stuff

Author: Bilal Elmoussaoui
Author Date: 2024-01-17 15:14:55 UTC

stuff

wip/sam/sysext 2024-01-15 16:52:00 UTC
WIP: Try building using GNOME OS OCI images

Author: Sam Thursfield
Author Date: 2024-01-15 16:52:00 UTC

WIP: Try building using GNOME OS OCI images

bilelmoussaoui/cogl-pango 2024-01-03 13:50:55 UTC
cogl-pango: Drop no longer needed pango version check

Author: Bilal Elmoussaoui
Author Date: 2024-01-03 13:50:55 UTC

cogl-pango: Drop no longer needed pango version check

As we require at least 1.46.0

bilelmoussaoui/use-logind 2024-01-03 10:46:14 UTC
backend: Switch to using logind for on battery property

Author: Bilal Elmoussaoui
Author Date: 2024-01-03 10:45:20 UTC

backend: Switch to using logind for on battery property

Instead of upower to avoid using two proxies when the logind proxy
provides the same information we retrieve from upower

tintou/make-dock 2023-11-11 13:31:03 UTC
wayland: Add meta_wayland_client_make_dock

Author: Corentin Noël
Author Date: 2023-11-09 23:14:38 UTC

wayland: Add meta_wayland_client_make_dock

Allows to specify that a WaylandClient is a dock and place it according to a
gravity.

tintou/window-type-public 2023-10-24 06:54:20 UTC
window: Make meta_window_set_window_type public

Author: Corentin Noël
Author Date: 2023-10-23 21:35:18 UTC

window: Make meta_window_set_window_type public

Allow compositors to change te window-type of a MetaWindow.

fix-amdgpu-crash 2023-10-17 14:11:43 UTC
wip! thread stuff idk

Author: Ray Strode
Author Date: 2023-10-10 15:15:45 UTC

wip! thread stuff idk

This is just whatever I was working on last when I ran out of
bandwidth to investigate the issue.

maybe-fix-resume-crash 2023-09-07 19:45:25 UTC
backends/native: Prevent crash on resume

Author: Ray Strode
Author Date: 2023-09-07 19:42:01 UTC

backends/native: Prevent crash on resume

When first resuming from a suspend, the renderer
views may not yet have realized cursor stage views.

That can lead to a crash as the monitors light up
and force a cursor update leading to invalidation
of an unallocated cursor stage view.

This commit avoids the crash by doing a NULL check.

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

mcatanzaro/#2985 2023-09-01 15:22:04 UTC
Fix crashes on idle

Author: Michael Catanzaro
Author Date: 2023-09-01 15:22:04 UTC

Fix crashes on idle

Currently whenever GNOME reaches its idle timeout and attempts to lock
the screen, it crashes. The problem occurs in
meta_onscreen_native_invalidate(), which calls
meta_output_is_privacy_screen_supported(),
meta_output_is_color_space_supported(), and
meta_output_is_hdr_metadata_supported(). For the KMS backend, all three
functions assume that meta_kms_connector_get_current_state() returns a
non-NULL pointer. This assumption is wrong.

This fixes the problem just enough to avoid the crashes that users are
encountering in practice. The problem is not comprehensively fixed. E.g.
even MetaKmsConnector itself often assumes that the current_state is
non-NULL without any evidence or assertions that it's true. Further
investigation is required; either it should be NULL-checked everywhere,
or it should be prevented from ever becoming NULL, or some more precise
invariant should be enforced.

Fixes #2985

gnome-43 2023-08-23 11:35:09 UTC
Bump version to 43.8

Author: =?utf-8?q?Florian_M=C3=BCllner?=
Author Date: 2023-08-23 11:35:09 UTC

Bump version to 43.8

Update NEWS.

register-x11-display-with-logind 2023-05-24 13:44:33 UTC
backends/native: Register X11 display with logind

Author: Ray Strode
Author Date: 2023-05-23 18:48:17 UTC

backends/native: Register X11 display with logind

logind has the ability to export the X11 display a session uses
with the logind session.

Previously, this mapping had to be set up at session opening time,
so we lost the feature when we moved to starting the X server
within the session instead of before the session.

Recently, logind gained a SetDisplay dbus method to allow the X11
display to be set after session open time.

This commit makes use of that new method.

gnome-42 2023-04-04 17:45:35 UTC
backends: Move MetaKeyboardA11yFlags to a public header

Author: Olivier Fourdan
Author Date: 2022-06-14 14:31:43 UTC

backends: Move MetaKeyboardA11yFlags to a public header

The MetaKeyboardA11yFlags are used by gnome-shell to show a dialog
whenever a keyboard accessibility feature is switched using the
keyboard.

Unfortunately, commit c3acaeb25 renamed the Clutter flag to Meta and
moved them to a private header. As a result, gnome-shell do not show any
dialog anymore when a keyboard accessibility feature is activated.

Move the MetaKeyboardA11yFlags definition to a public header so that
gnome-shell can use it.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2306
Fixes: c3acaeb25 - backends: Move keyboard a11y into backends
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2463>
(cherry picked from commit 1c16e1cb9c6b0c62dad4c318117324af6485fada)

2486-mutter-crashes-on-xdg_activation-activate-request 2022-12-06 13:08:37 UTC
ci: Fix the expected name of the junit report

Author: =?utf-8?q?Hunor_Csomort=C3=A1ni?=
Author Date: 2022-12-06 13:07:11 UTC

ci: Fix the expected name of the junit report

Tests are run with '--setup plain', expect testlog-plain.junit.xml as an
artifact name.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2733>

2539-non-interactive-resizes-by-xwayland-clients-cause-black-flicker 2022-12-01 20:42:36 UTC
core: Avoid generating XEvent from uninitialized data

Author: Bram Stolk
Author Date: 2022-11-29 18:00:33 UTC

core: Avoid generating XEvent from uninitialized data

The uninitialized fields in this event causes use of uninitialised
data as seen in valgrind:

==71864== Syscall param writev(vector[0]) points to uninitialised byte(s)
==71864== at 0x5026EBD: __writev (writev.c:26)
==71864== by 0x5026EBD: writev (writev.c:24)
==71864== by 0x6482A3B: UnknownInlinedFun (xcb_conn.c:296)
==71864== by 0x6482A3B: _xcb_conn_wait.part.0 (xcb_conn.c:551)
==71864== by 0x6482BAF: UnknownInlinedFun (xcb_out.c:469)
==71864== by 0x6482BAF: _xcb_out_send (xcb_out.c:470)
==71864== by 0x6483DD7: UnknownInlinedFun (xcb_out.c:416)
==71864== by 0x6483DD7: xcb_writev (xcb_out.c:409)
==71864== by 0x53B79B4: _XSend (xcb_io.c:587)
==71864== by 0x53BBF38: _XReply (xcb_io.c:679)
==71864== by 0x53AFFC9: XQueryTree (QuTree.c:47)
==71864== by 0x4982A5F: query_xserver_stack (stack-tracker.c:508)
==71864== by 0x4EA1F5F: g_closure_invoke (gclosure.c:832)
==71864== by 0x4ECFD45: signal_emit_unlocked_R.isra.0 (gsignal.c:3796)
==71864== by 0x4EC0129: g_signal_emit_valist (gsignal.c:3549)
==71864== by 0x4EC03B2: g_signal_emit (gsignal.c:3606)
==71864== Address 0x287d5900 is 32 bytes inside a block of size 16,384 alloc'd
==71864== at 0x4849444: calloc (vg_replace_malloc.c:1340)
==71864== by 0x53A5FE8: XOpenDisplay (OpenDis.c:240)
==71864== by 0x6100E3C: _gdk_x11_display_open (gdkdisplay-x11.c:1565)
==71864== by 0x60CF675: gdk_display_manager_open_display (gdkdisplaymanager.c:462)
==71864== by 0x49D59F1: open_gdk_display (meta-x11-display.c:1041)
==71864== by 0x49D5D64: meta_x11_display_new (meta-x11-display.c:1156)
==71864== by 0x49564AD: meta_display_init_x11_finish (display.c:743)
==71864== by 0x495679D: on_x11_initialized (display.c:818)
==71864== by 0x4D67558: g_task_return_now (gtask.c:1232)
==71864== by 0x4D67782: UnknownInlinedFun (gtask.c:1301)
==71864== by 0x4D67782: g_task_return (gtask.c:1258)
==71864== by 0x495663C: on_xserver_started (display.c:788)
==71864== by 0x4D67558: g_task_return_now (gtask.c:1232)
==71864== Uninitialised value was created by a stack allocation
==71864== at 0x49D4A59: take_manager_selection (meta-x11-display.c:640)
==71864==

To fix this, fully initialize the event struct before sending it.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2535
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2724>

wip/carlosg/inputfd 2022-11-13 00:30:19 UTC
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 changes. Underneath, the device
FD is revoked control through the EVIOCREVOKE ioctl, and closed.
The newly focused client receives a brand new FD obtained through
logind, which will be again revoked in a future focus change.

wip/mutkupavels/fix-memory-leak-in-output-xrandr 2022-09-02 07:02:30 UTC
output-xrandr: Fix memory leak

Author: Alberts Muktupāvels
Author Date: 2022-08-21 14:33:16 UTC

output-xrandr: Fix memory leak

Introduced in 99d84ae1cc8f027a35c32d266cef48758daaff6d.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2589>

gbsneto/profiling-for-real 2022-08-20 04:07:10 UTC
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.

gnome-3-38 2022-08-18 21:04:37 UTC
Update meta connector types enum

Author: Steev Klimaszewski
Author Date: 2022-08-16 22:41:42 UTC

Update meta connector types enum

This adds the 4 new connector types that mutter didn't know about from
drm_mode.h in the kernel.

Noticed because mutter kept crashing when plugging in a USB-C adapter to
use an external monitor.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2577>

(cherry picked from commit 64279167)

wip/smcv/42-rpath 2022-08-18 09:58:58 UTC
tests: Give mutter-test-runner the RUNPATH to find Clutter

Author: Simon McVittie
Author Date: 2022-08-17 15:47:49 UTC

tests: Give mutter-test-runner the RUNPATH to find Clutter

Until recently, mutter-test-runner called into libraries that
indirectly depend on (mutter's fork of) Clutter, but did not actually
call into Clutter itself. Commit 1bf70334 "tests/runner: Make test
runner use the headless backend" gave it a direct call into Clutter,
which means the runtime linker will fail unless the executable's
RUNPATH is sufficient to find Clutter.

For future-proofing, do the same for the other test executables.

Resolves: https://gitlab.gnome.org/GNOME/mutter/-/issues/2389
Signed-off-by: Simon McVittie <smcv@debian.org>
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2580>

gnome-41 2022-08-11 17:07:28 UTC
Bump version to 41.9

Author: =?utf-8?q?Florian_M=C3=BCllner?=
Author Date: 2022-08-11 17:07:28 UTC

Bump version to 41.9

Update NEWS.

bilelmoussaoui/keybindings 2022-08-02 07:51:54 UTC
x11: Move X11 specific functions to x11/keybindings

Author: Bilal Elmoussaoui
Author Date: 2022-06-20 11:00:08 UTC

x11: Move X11 specific functions to x11/keybindings

alatiera/duplicate-pipelines 2022-07-26 19:36:22 UTC
ci: Avoid duplicate pipelines vol 2

Author: Jordan Petridis
Author Date: 2022-07-26 19:36:22 UTC

ci: Avoid duplicate pipelines vol 2

test

gnome-40 2022-06-21 12:31:44 UTC
backends: Move MetaKeyboardA11yFlags to a public header

Author: Olivier Fourdan
Author Date: 2022-06-14 14:31:43 UTC

backends: Move MetaKeyboardA11yFlags to a public header

The MetaKeyboardA11yFlags are used by gnome-shell to show a dialog
whenever a keyboard accessibility feature is switched using the
keyboard.

Unfortunately, commit c3acaeb25 renamed the Clutter flag to Meta and
moved them to a private header. As a result, gnome-shell do not show any
dialog anymore when a keyboard accessibility feature is activated.

Move the MetaKeyboardA11yFlags definition to a public header so that
gnome-shell can use it.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2306
Fixes: c3acaeb25 - backends: Move keyboard a11y into backends
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2463>
(cherry picked from commit 1c16e1cb9c6b0c62dad4c318117324af6485fada)

bilelmoussaoui/x11-frame-guard 2022-06-16 13:52:58 UTC
core/frame: Guard X11 Frame usage

Author: Bilal Elmoussaoui
Author Date: 2022-06-01 13:02:37 UTC

core/frame: Guard X11 Frame usage

wip/carlosg/shutdown-warning 2022-04-30 12:59:43 UTC
compositor: Detach window and actor both ways on actor dispose

Author: Carlos Garnacho
Author Date: 2022-04-30 12:59:43 UTC

compositor: Detach window and actor both ways on actor dispose

This is currently deferred to the window being unmanaged, however
the dependency of events is too indirect to consider these things
always happen one after the other.

Fixes possible warnings like:

(mutter:872101): GLib-GObject-WARNING **: 15:29:27.943: invalid unclassed pointer in cast to 'MetaWindowActor'

Seen on shutdown, a reliable reproducer is gnome-settings-daemon
test suite.

tintou/gnome-desktop-4 2022-04-22 06:50:52 UTC
meson: Use gnome-desktop-4

Author: Corentin Noël
Author Date: 2022-04-22 06:28:17 UTC

meson: Use gnome-desktop-4

This is a drop-in replacement of gnome-desktop-3.0 in our case.

wip/carlosg/no-catchsegv-build-dep 2022-03-04 10:28:00 UTC
build: Drop catchsegv Meson dependency

Author: Carlos Garnacho
Author Date: 2022-02-15 14:47:19 UTC

build: Drop catchsegv Meson dependency

This is basically mostly desirable for CI. Since that still
runs under .gitlab-ci/run-test.sh which wraps execution on
catchsegv, we presumably still have the positive effects there,
or at least until we update CI to a world where catchsegv is
gone.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2120
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2294>

gnome-3-36 2021-12-22 17:01:20 UTC
wayland/surface: Do not uncoditionally process surface damage

Author: Robert Mader
Author Date: 2021-12-18 21:00:41 UTC

wayland/surface: Do not uncoditionally process surface damage

Most clients nowadays switched to buffer damage, most notably Mesa
and Xwayland. Thus lets avoid the extra cost of allocating three
`cairo_region_t`s and doing some calculations.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2168>

(cherry picked from commit c498ae337f57a67c6e678d549cf9a8070c32f251)

wip/carlosg/surfaceless-activation 2021-12-06 11:05:16 UTC
wayland: Check serial for activation if no surface is provided

Author: Carlos Garnacho
Author Date: 2021-12-02 12:30:21 UTC

wayland: Check serial for activation if no surface is provided

Having a "requester" surface helps with accuracy (e.g. ensuring the
pointer is still within coordinates, besides the token serial still
remaining valid). In the case we don't have one, still check the
serial so that we know no other button presses/etc happened in between
and activate the window if none happened.

wip/carlosg/frozen-app-behavior 2021-11-01 17:27:23 UTC
wayland: Make the pointer leave non-alive surfaces

Author: Carlos Garnacho
Author Date: 2021-09-03 21:49:46 UTC

wayland: Make the pointer leave non-alive surfaces

Listen to changes in MetaWindow::is-alive, so that the pointer
can logically leave the surface as soon as that happens. This
helps prevent flooding the client socket while it is stalled.

wip/smcv/orientation-test-debug 2021-10-10 10:39:37 UTC
tests: Add additional debug for orientation test (Debian#995929)

Author: Simon McVittie
Author Date: 2021-10-09 15:13:18 UTC

tests: Add additional debug for orientation test (Debian#995929)

Signed-off-by: Simon McVittie <smcv@debian.org>

wip/halfline/gesture-osk-fix 2021-10-07 13:26:27 UTC
clutter-gester-action: Cancel gesture when a device gets grabbed

Author: Ray Strode
Author Date: 2021-10-07 02:03:46 UTC

clutter-gester-action: Cancel gesture when a device gets grabbed

If an actor takes a grab on an input device, that's a good indicator
that the user expects input to be handled solely by the actor and
any gestures that are taking place aren't meant for the stage.

At the moment, the gesture code has no insight into when a grab
gets taken, though. If a grab does get taken it missed out on the
motion and button release events that have now been redirected to
the actor.

Those missed events can confuse the event processing code into thinking
the user is doing a multi-press gesture, when the user is actually just
e.g., doing a series of clicks.

This commit addresses the problem by installing an event filter that
can see the events before they're delivered to the grabbed actor.

The filter checkes if a device a grabbed, and if so cancels any
in-flight gestures that are currently getting processed.

zbrown/docs-deps 2021-07-19 01:24:45 UTC
ci: Add gi-docgen dependencies to image

Author: Zander Brown
Author Date: 2021-06-08 21:19:10 UTC

ci: Add gi-docgen dependencies to image

document-button-values 2021-05-01 00:40:21 UTC
Document button values in the RemoteDesktop api

Author: Matthias Clasen
Author Date: 2021-05-01 00:40:21 UTC

Document button values in the RemoteDesktop api

I spent some time trying to pass X11 button values
and was a bit miffed that it didn't work. So lets
document the expected values to minimize future
frustation.

gnome-3-32 2021-04-07 11:45:19 UTC
wayland/actor-surface: Queue redraw for frame callback

Author: Jonas Ådahl
Author Date: 2019-10-09 19:53:09 UTC

wayland/actor-surface: Queue redraw for frame callback

A frame callback without damage is still expected to be responded to.
Implement this by simply queuing damage if there are any frame callbacks
requested and there is no damage yet. If there already is damage,
we'll be queued already, but with more correct damage. Without we simply
need to make sure we flush the callbacks if any area of surface is not
occluded.

Fixes: https://gitlab.gnome.org/GNOME/mutter/issues/457

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

(cherry picked from commit d49d10b14f4e0fa80e6867979b26fab383610b39)

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1813>

wip/nielsdg/meta-multi-texture-wip 2021-02-15 18:06:37 UTC
WIP

Author: NielsDG
Author Date: 2021-02-15 18:06:37 UTC

WIP

cherry-pick-eaa98a7c 2021-02-08 21:17:45 UTC
clutter/timeline: Clear stage view listener when actor destroyed

Author: Jonas Ådahl
Author Date: 2021-02-08 17:34:00 UTC

clutter/timeline: Clear stage view listener when actor destroyed

We might have a stage view listener attached to the stage itself if the
actor didn't have a suitable frame clock when the actor was associated
with the timeline. We'd then listen to stage-views-changed signals on
the stage itself to be able to attach to a frame clock when one
appeared.

What went wrong is that if an actor that didn't have a frameclock was
associated with a timeline, but then destroyed, the timeline would
disassociate itself from the actor, but it'd still listen on the
stage-views-changed signal on the stage. This would be in itself
harmless, until the timeline itself is destroyed, as at this point, it
wouldn't clean up the stage-views-changed listener on the stage, as it's
assumed to only be valid when there is an actor attached.

Fix this issue by cleaning up the stage's stage-views-changed listener
when the actor is destroyed, as we wouldn't be able to make use of it by
then anyway.

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

(cherry picked from commit eaa98a7cd6d209819792f3904385ed48114460af)

gnome-3-28 2020-11-24 21:35:37 UTC
wayland/actor-surface: Queue redraw for frame callback

Author: Jonas Ådahl
Author Date: 2019-10-09 19:53:09 UTC

wayland/actor-surface: Queue redraw for frame callback

A frame callback without damage is still expected to be responded to.
Implement this by simply queuing damage if there are any frame callbacks
requested and there is no damage yet. If there already is damage,
we'll be queued already, but with more correct damage. Without we simply
need to make sure we flush the callbacks if any area of surface is not
occluded.

Fixes: https://gitlab.gnome.org/GNOME/mutter/issues/457

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

(cherry picked from commit d49d10b14f4e0fa80e6867979b26fab383610b39)

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1570>

benzea/logind-restart 2020-11-10 12:21:37 UTC
launcher: Ignore session active changes while logind is gone

Author: Benjamin Berg
Author Date: 2020-11-10 12:14:37 UTC

launcher: Ignore session active changes while logind is gone

When logind disconnects from the bus, property change notifications will
be emitted and we'll receive a default False value for "active".

However, when this happens we should assume that the active state
remains the same and will not change until logind reappears on the bus.
As such, check whether there is a name owner and only continue with
syncing if logind is running.

See https://github.com/systemd/systemd/issues/17308

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

benzea/ignore-monitor-connector 2020-10-23 15:13:35 UTC
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
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.

cherry-pick-79e5ec57-6 2020-10-15 09:43:40 UTC
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
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
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
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
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-coverage 2020-07-23 11:55:01 UTC
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/lantw/xwayland-Don't-use-abstract-socket-on-non-Linux-systems 2020-05-05 13:36:53 UTC
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.

1100 of 202 results
This repository contains Public information 
Everyone can see this information.

Subscribers