summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* mutter: Cleanup gi-docgen annotationsbilelmoussaoui/mutter-docsBilal Elmoussaoui2023-05-1762-287/+290
|
* cogl/clip-stack: Removing window rectHEADmainGeorges Basile Stavracas Neto2023-05-174-58/+1
| | | | | | | | | The only consumer of this type of rect was the scissor clipping, which was removed by the previous commit. Remove window rects from CoglClipStack, and all dependent code. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3006>
* cogl/framebuffer: Remove scissor clipGeorges Basile Stavracas Neto2023-05-172-47/+2
| | | | | | It's unused. Spotted while discussing snapshot APIs. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3006>
* drm-buffer-gbm: Bail out early if FBO allocation failsRobert Mader2023-05-171-0/+3
| | | | | | | | | A failing allocation is non-fatal here, however if it fails later in a lazy allocation triggered by `cogl_framebuffer_create_timestamp_query()` we end up crashing. Thus force the allocation early, like we already do in other places. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3004>
* backends/x11: Use backend-side error traps for input configurationCarlos Garnacho2023-05-161-35/+8
| | | | | | | | | | | | | | | | | While it's obviously good to trap possible errors from X calls, we are mixing the Clutter error trap with the MetaX11Display one for these calls. This may result in situations where a X call within a Clutter error trap fails, but it's actually handled in these sections using the MetaX11Display error trap. This one will consider the serial out of the "handled" parts and raise an error. It is better to stay consistent here, and use the same error traps than the rest of the X11 backend. Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2796 Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3002>
* x11: Do not unminimize windows with initial IconicStateCarlos Garnacho2023-05-161-22/+12
| | | | | | | | | This is a revert of commit be5c2ebc, adapted to this day and age. While this worked around issues in wine/proton, it did contravene icccm in the interpretation of initially iconic windows. Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2043 Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3001>
* display: Drop the indirection when initializating XwaylandBilal Elmoussaoui2023-05-153-15/+3
| | | | | | | The init function didn't do much other then calling into the xwayland one Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2445>
* compositor/x11: Drop duplicated methods callsBilal Elmoussaoui2023-05-151-2/+0
| | | | | | Those are called in the handler of MetaDisplay::x11-display-opened Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2445>
* wayland: Move surface check to MetaWaylandSurfaceBilal Elmoussaoui2023-05-157-25/+21
| | | | | | | Allows dropping various HAVE_XWAYLAND ifdef as the function would always return false if Mutter is built without XWayland Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2445>
* wayland: Guard XWayland typesBilal Elmoussaoui2023-05-156-2/+19
| | | | Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2445>
* core/events: Guard X11 typesBilal Elmoussaoui2023-05-151-4/+12
| | | | Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2445>
* compositor/dnd: Guard X11 typesBilal Elmoussaoui2023-05-153-1/+12
| | | | Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2445>
* core/display: Guard X11 typesBilal Elmoussaoui2023-05-153-22/+63
| | | | | | | | | This also moves a couple of function calls to MetaDisplay::x11-display-opened a signal handler Related https://gitlab.gnome.org/GNOME/mutter/-/issues/2272 Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2445>
* compositor: Guard X11 typesBilal Elmoussaoui2023-05-156-79/+90
| | | | | | | | This also moves meta_compositor_x11_redirect_windows to DisplayX11 where it makes more sense as meta_display_x11_redirection_windows Related: https://gitlab.gnome.org/GNOME/mutter/-/issues/2272 Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2445>
* x11/x11-display: Fix some wrong code style to please CI checkerMarco Trevisan (Treviño)2023-05-151-3/+8
| | | | Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2970>
* tests/test-client: Use proper style for main argumentsMarco Trevisan (Treviño)2023-05-151-1/+2
| | | | Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2970>
* x11/x11-display: Always set the compositor manager selection on initMarco Trevisan (Treviño)2023-05-153-34/+13
| | | | | | | Set the compositor manager selection during the initialization phase as we do with the window manager selection Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2970>
* tests/test-client: Ensure that screen has always a compositorMarco Trevisan (Treviño)2023-05-151-0/+2
| | | | Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2970>
* tests: Add check for compositor state on XWayland startupMarco Trevisan (Treviño)2023-05-153-1/+129
| | | | | | | Check that the first X11 window started has a compositor defined. See: https://gitlab.gnome.org/GNOME/mutter/-/issues/2472#note_1582262 Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2970>
* tests/meson: Make tests depending on test-client to actually depend on itMarco Trevisan (Treviño)2023-05-151-0/+7
| | | | | | | | It allows meson to rebuild the client-related sources when a single test is running using the client, also ensuring that test-run dependencies are correctly setup Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2970>
* x11/x11-display: Set compositor selection earlier on XWaylandMarco Trevisan (Treviño)2023-05-154-6/+28
| | | | | | | | | | | | | | | When the X11 display is actually XWayland there's no point to delay the compositor selection, given that mutter itself is the compositor and doing this may cause the first X11 client that starts not to receive the right information (and in some cases misbehave). Since some toolkits are not handling the compositor selection changes properly at later times, let's make their life easier by just initializing the selection as early as the other X11 properties, given that in this case there's nothing to replace. Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2472 Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2970>
* tests: Make wayland-x11-interop depends on xwayland featureBilal Elmoussaoui2023-05-151-11/+11
| | | | Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2938>
* build: Set built headers as libmutter_dep sourcesJonas Ådahl2023-05-151-0/+8
| | | | | | | This should help avoiding compiling objects depending on built headers to fail if they happen to be built before the sources are built. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3000>
* backends/x11: Fix type confusion about object dataBarnabás Pőcze2023-05-141-8/+6
| | | | | | | | | | | | | | Since c390f70edca40d ("backend: Set up and use ownership chains") the type of the ClutterInputDevice object's "meta-input-settings-xdevice" data is `DeviceHandle`, but that commit failed to change the one place where the object data is queried. As a consequence, that part still considers it to be an `XDevice`, so everything that uses the return value of `device_ensure_xdevice()` works with invalid data. Furthermore, `device_handle_free()` incorrectly uses the `user_data` as the argument for `XCloseDevice()` leading to a double free. Fixes: c390f70edca40d ("backend: Set up and use ownership chains") Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2995>
* Update French translationSimon Elst2023-05-121-145/+141
|
* wayland/surface: NULL check surface resource in handle_output_bound()Jonas Ådahl2023-05-091-0/+3
| | | | | | | | | | | | | | | | | | | | | Otherwise binding new wl_output's might try to send enter to the destroyed resource. Fixes the following crash: #0 wl_resource_get_client at ../src/wayland-server.c:801 #1 handle_output_bound at ../src/wayland/meta-wayland-surface.c:1287 #3 signal_emit_unlocked_R.isra.0 at ../gobject/gsignal.c:3812 #6 ffi_call_unix64 at ../src/x86/unix64.S:104 #7 ffi_call_int at ../src/x86/ffi64.c:673 #8 ffi_call at ../src/x86/ffi64.c:710 #9 wl_closure_invoke at ../src/connection.c:1025 #10 wl_client_connection_data at ../src/wayland-server.c:438 #11 wl_event_loop_dispatch at ../src/event-loop.c:1027 #12 wayland_event_source_dispatch at ../src/wayland/meta-wayland.c:125 #15 g_main_context_iterate.isra.0 at ../glib/gmain.c:4276 #17 meta_context_run_main_loop at ../src/core/meta-context.c:482 Related: https://bugzilla.redhat.com/show_bug.cgi?id=2196527 Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2992>
* compositor-view: Chain up finalize()Jonas Ådahl2023-05-091-0/+2
| | | | | | The chaining up to the GObject finalize() method was missing, fix that. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2991>
* Update Persian translationDanial Behzadi2023-05-091-141/+38
|
* Fix shortcut wordingAlexandre Franke2023-05-081-4/+4
| | | | Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2982>
* shaped-texture: Move variable declaration to the topRobert Mader2023-05-071-1/+1
| | | | | | Just a minor cleanup. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2990>
* egl: Set EGL_IMAGE_PRESERVED_KHR on DMABUF importRobert Mader2023-05-071-1/+3
| | | | | | | | Otherwise drivers would be free to alter the buffer content. While no driver is known to do so, it's probably good to make things explicit. See also `import_simple_dmabuf()` in Weston. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2990>
* screen-cast/src: Never dequeue pw_buffer's we refuse to record toJonas Ådahl2023-05-043-18/+32
| | | | | | | | | | | | | | | | | | | The DMA buffer paths vs MemFd paths differ slightly in when content is recorded. This was in some places done by trying to record but bail if the dequeued buffer had the wrong type. This is problematic for two reasons: we'd update the timestamp even if we refused to record, making the follow-up attempt fail, and we'd dequeue and queue buffers that didn't get any content, meaning the receiving end would see empty buffers potentially with only cursor updates. Fix this by keeping track if a stream is DMA buffer able or not, and don't attempt to record at all in the places we would previously require DMA buffers. This avoids both issues: we don't dequeue/queue pw_buffers that we refuse to record to, and we won't update the recorded timestamp when we didn't intend to record to begin with. Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2783 Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2987>
* build: Join keybindings path correctly tooJonas Ådahl2023-05-041-1/+1
| | | | Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2985>
* build: Use / operator instead of format for Wayland protocol pathsJonas Ådahl2023-05-041-9/+3
| | | | Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2985>
* build: Use / operator instead of join_paths everywhereJonas Ådahl2023-05-0412-66/+59
| | | | Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2985>
* tests: Set a dummy XDG_CONFIG_HOME variableJonas Ådahl2023-05-041-0/+1
| | | | | | This avoids a local ~/.config/monitors.xml messing up tests. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2985>
* cogl: Remove struct paddingsSebastian Keller2023-05-042-19/+2
| | | | | | | Due to cogl being a private library we don't need worry about ABI compatibility. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2986>
* clutter: Remove struct paddingsSebastian Keller2023-05-044-13/+2
| | | | | | | Due to clutter being a private library we don't need worry about ABI compatibility. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2986>
* docs: Add missing flag documentationAndy Holmes2023-05-041-0/+1
| | | | Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2983>
* Update Persian translationDanial Behzadi2023-05-031-55/+228
|
* surface-actor: Queue rectangles of update region separatelymsizanoen12023-05-031-3/+10
| | | | | | | This aims to help reduce the amount of pixels redrawn on the screen in case the damage rectangle is partially occluded by another surface. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2965>
* stage: Keep queued actor redraw clip volumes separatemsizanoen12023-05-031-39/+28
| | | | | | | | | | | | | This aims to reduce the amount of pixels that have to be redrawed on the screen on a clipped actor redraw in case using the union of two different clips in a surface will substantially increase the redrawn area. This should not result in excessive memory consumption as callers of `clutter_actor_queue_redraw_with_clip` are expected to ensure that the redraw clip rectangles are adequately deduplicated. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2965>
* clutter: Remove class paddingsMarco Trevisan (Treviño)2023-05-0239-231/+0
| | | | | | | | mutter-clutter is a private library that is only used by the shell and not meant to be ABI/API compatible in between versions, so there's no need to add padding to classes. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2903>
* edid: Integrate libdisplay-info for edid parsingadarshgm2023-05-028-20/+245
| | | | | | | | | | Hides libdisplay-info under a build time default-off flag, provides provision to parse essential edid parameters with APIs provided by libdisplay-info. This implementaion increases readibility, avoids code duplication and decreases complexity of edid parsing. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2642>
* frames: Disable XDND support on the frame windowSebastian Keller2023-04-281-0/+8
| | | | | | | | | | | | All X11 surfaces created by gtk4 claim to support XDND via the XdndAware property. This was leading some clients, e.g. Qt, to consider the frame window as drop target instead of the client window. Avoid this issue by removing the XdndAware property again after gtk has created the surface. Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2715 Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2978>
* Bump version to 44.144.1Florian Müllner2023-04-252-1/+34
| | | | Update NEWS.
* core: Fix map transitions for X11 windows on WaylandCarlos Garnacho2023-04-251-2/+2
| | | | | | | | | | | | | | | | | We are attempting to show windows that do not yet have a surface/buffer, this makes GNOME Shell avoid transitions for these windows. Since on Wayland X11 windows are also Wayland surfaces, this check is also valid for these, and is thus made more generic to also cater for these windows. Eventually, meta_window_update_visibility() is called when the surface gets its buffer, so the window can be neatly animated. Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2611 Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2975>
* tests: Avoid CSD window in testCarlos Garnacho2023-04-251-1/+1
| | | | | | | | This ATM triggers missed .commit events for the window in question, to be addressed in Xwayland. Since the test does not seem to specifically rely on this window being CSD, make it a regular window instead. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2975>
* frames: Use cairo renderer on GTK framesCarlos Garnacho2023-04-241-0/+2
| | | | | | | | | Going for the default GL renderer is known to trigger rendering artifacts using the NVidia proprietary driver. Since we don't have too many expectatives about frames being flashy (not to the point of mandating GL), resort to the cairo renderer in the mean time. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2976>
* output: Check the EDID for the supported sink ColorimetrySebastian Wick2023-04-213-10/+45
| | | | | | | | | | | | | | | Just like the HDR Metadata property the Colorspace property values only indicate that the display driver supports signaling certain colorimetry. It does not indidcate that the sink actually supports processing the colorimetry. For this we have to look up the colorimetry support in the EDID. The default colorimetry is always supported. If we want bt.2020 we might get either the RGB or YCC variant even if we ask for the RGB variant but there is nothing we can do about it so let's just pretend it's a driver issue. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2919>