- 18 May, 2022 2 commits
-
-
Fernando Monteiro authored
This has been replaced for primary selection protocol from wayland-protocols. Part-of: <!2184>
-
Fernando Monteiro authored
There is no need to have this protocol as we already have support for the xdg-shell stable. Part-of: <!2207>
-
- 17 May, 2022 20 commits
-
-
The compositor currently only updates the topmost window actor that is visible to it after stacking changes. The visibility of a window actor to the compositor however might only change via the display idle queue after the stacking changes. This could then lead to the topmost window actor being assumed to be NULL on Wayland after switching from an empty workspace or when opening the first window on an empty workspace. The result of this is direct scanout being disabled in these cases. To fix this also trigger the update when the visibility of windows changes. Fixes: #2269 Part-of: <!2413>
-
This allows this to be used from outside the restacking code in the follow-up commit. Part-of: <!2413>
-
This could for example happen with the client window created by the desktop-icons-ng extension which spans the entire desktop, but is not a fullscreen window and uses transparency On Wayland only opaque surfaces or transparent surfaces of fullscreen windows can be used for direct scanout. Related: GNOME/mutter#2263 Part-of: <GNOME/mutter!2409>
-
Some windows span the entire screen but still use transparency, such as the desktop window of Nemo. When these windows were used for direct scanout, the transparent areas would turn black and nothing else would be rendered. In addition to checking the surface for opaqueness, for X11 windows also the window actor itself has to be checked, because its opacity might have been changed via _NET_WM_WINDOW_OPACITY. Fixes: GNOME/mutter#2263 Part-of: <GNOME/mutter!2409>
-
This replaces the API to get the topmost surface actor with an API to get the surface actor that could be a candidate for direct scanout. The advantage of this is that it allows X11 and Wayland specific restrictions for these actors. Part-of: <GNOME/mutter!2409>
-
It's not allowed to call eglQueryWaylandBuffer() if the call to eglBindWaylandDisplay() failed, and will result in an assert being hit in mesa if called. Avoid that by keeping track whether we succeeded to bind, and only attempt to realize a legacy EGL wl_buffer if binding succeeded. Part-of: <!2415>
-
Bilal Elmoussaoui authored
See the previous commit for reasoning behind Part-of: <!2398>
-
Bilal Elmoussaoui authored
Mutter makes use of a gsettings scheme that comes from gnome-settings-daemon to check for the screen orientation. In use cases where gnome-settings-daemon is not available, this would lead to a crash as the key doesn't exists Part-of: <!2398>
-
This checks whether it's possible to set a CRTC GAMMA_LUT, which is what is necessary to implement night light. Part-of: <!2310>
-
Part-of: <!2416>
-
Part-of: <!2416>
-
Part-of: <!2416>
-
Part-of: <!2416>
-
Part-of: <!2416>
-
Part-of: <!2416>
-
This is for hooking up sync events from the compositor side test case. Part-of: <!2416>
-
This is in preparation for adding signals. Part-of: <GNOME/mutter!2416>
-
Part-of: <GNOME/mutter!2416>
-
Adds a _free() function since the display is reopened multiple times and cleaned up in between. Part-of: <GNOME/mutter!2416>
-
This is meant to be used by other test clients, in order to reduce the amount of code duplication that currently exists in the test cases. Part-of: <GNOME/mutter!2416>
-
- 11 May, 2022 5 commits
-
-
The monitors settings such as the privacy screen property is propagated to the monitors via kms updates, however during initialization and on monitors changes, we end up clearing the pending KMS updates because such settings are added to the queue before the backend has fully initialized the monitors, and this may lead to discarding all the pending updates, including the one we've just planned. To avoid this, move settings applications after we've both initialized the backend and notified it about changes. Also avoid to try set the settings during actual initialization, but delay that after post-init. Part-of: <GNOME/mutter!2372>
-
Prior to 'compositor: Destroy actors when unmanaging', window actors were destroyed when the compositor object was destroyed, long after the windows were unmanaged, however, when this instead changed to happen when unmanaging, with the original goal to avoid having these actors try to interact with the disposed MetaCompositor instance, it caused an issue where window actors would be indirectly destroyed as a side effect of their parents being destroyed, which caused some fallout in the logic handling window-close animation tracking, which relies on meta_window_actor_queue_destroy() being called before a window actor is actually destroyed. Fix this by unmanaging windows before unmanaging the compositor. From an X11 point of view, this should be harmless, since all it really do is call XCompositeUnredirectSubwindows(). For the native backend and the common behavior, all unmanaging the compositor instance does is destroy clutter actors, so doing so after window actors were already cleaned up should not be a problem, as this was the case before too. Fixes: 35ac3a09 Closes: GNOME/gnome-shell#5330 Part-of: <GNOME/mutter!2403>
-
This warning can point out design issues, so it should be useful to have it treated as error. Part-of: <GNOME/mutter!2406>
-
Follow the existing convention in Mutter and avoid downcasting custom GSource structs. Part-of: <GNOME/mutter!2406>
-
Follow the existing convention in Mutter and avoid downcasting custom GSource structs. This fixes the following warning: ../src/backends/meta-screen-cast-stream-src.c:1301:20: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] 1301 | g_clear_pointer ((GSource **) &priv->pipewire_source, g_source_destroy); /usr/include/glib-2.0/glib/glib-typeof.h:36:36: note: in definition of macro ‘glib_typeof’ 36 | #define glib_typeof(t) __typeof__ (t) | ^ ../src/backends/meta-screen-cast-stream-src.c:1301:3: note: in expansion of macro ‘g_clear_pointer’ 1301 | g_clear_pointer ((GSource **) &priv->pipewire_source, g_source_destroy); | ^~~~~~~~~~~~~~~ Part-of: <!2406>
-
- 08 May, 2022 2 commits
-
-
- 07 May, 2022 1 commit
-
- 06 May, 2022 4 commits
-
-
Bilal Elmoussaoui authored
Part-of: <!2370>
-
Bilal Elmoussaoui authored
Quoting Ray Strode: we don't expose a way to explicitly save the session in gnome anymore afaik, and I don't think it's going to show on log out because I believe we use the FORCE flag from the log out dialog. Part-of: <!2370>
-
Bilal Elmoussaoui authored
If the MetaPlugin doesn't implement it, we don't show anything. Part-of: <!2370>
-
Bilal Elmoussaoui authored
Mostly to drop the 1/3 use cases of zenity on mutter and usually shells built on top of Mutter should implement that vfunc Part-of: <!2370>
-
- 05 May, 2022 1 commit
-
-
Florian Müllner authored
Update NEWS.
-
- 04 May, 2022 2 commits
-
-
Sebastian Keller authored
This reverts commit d0de671c. The change introduced a regression when focusing java/swing windows. Fixes: gnome-shell#5395 Reopens: gnome-shell#5162 Part-of: <!2402>
-
A slightly annoying "feature" of Clutters debug messages is that it also logs the filename and line of the current debug message. If you don't have an ultrawide monitor, this can be very annoying and cause lots of linebreaks in the debug logs. So remove that debugging feature and no longer log the filename and line number with debugging messages. Part-of: <!2378>
-
- 03 May, 2022 2 commits
-
-
'kms/impl-device/simple: Get the buffer handle from MetaDrmBuffer' changed how fb ids are generated, but it only made it fully work with atomic mode setting. For legacy/simple mode setting, it only handled the primary plane buffer, not the hardware cursor. Fix this by making sure the fb id is generated also in the legacy mode setting case. Fixes: ea39142d Closes: #2250 Part-of: <!2397>
-
Bilal Elmoussaoui authored
Part-of: <!2400>
-
- 02 May, 2022 1 commit
-
-
When an X11 window becomes an all-workspace window its `workspace` is set to NULL before `meta_window_x11_current_workspace_changed()` is called. The latter then checks for `workspace` being NULL (which also happens when unmanaging) and then returns early. So this does not update `_NET_WM_DESKTOP` to 0xFFFFFFFF. Instead it remains at the workspace the window was on before. This was causing programs like `wmctrl` to switch to this old workspace when activating such a window. Fix this by checking if the window is unmanaging instead. Fixes: #2242 Part-of: <!2387>
-