summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* build: Do not provide built sources as libmutter_dep sourceswip/carlosg/libmutter-dep-sourcesCarlos Garnacho2020-09-301-1/+0
| | | | | | | | | | | | | | | | | | This is essentially a revert of https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/326. This commit had the unintended side effect that the built sources are actually rebuilt for every individual user of libmutter_dep. With there being more tests and generated files, the number of targets to build is increasing squarely. Not doing this reduces the number of targets from 2044 to 874, thus saving man hours and CI burnt cycles in the long run. There's the slight risk of reintroducing the random build breaks, but mutter is essentially doing as suggested at https://github.com/mesonbuild/meson/issues/1084 (the only difference being addressed in the previous commit), so meson ought to behave as expected. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1458
* build: Build libmutter using sources as positional argumentsCarlos Garnacho2020-09-301-4/+2
| | | | | | | | | | The "sources" keyword argument does not seem documented at https://mesonbuild.com/Reference-manual.html#shared_library or the related objects. It may work, but let's use meson as intended. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1458
* backends: Ensure to clear the last updated device on device removalCarlos Garnacho2020-09-301-0/+3
| | | | | | | If the last updated device is removed, ensure that it does result in a ::last-device-changed with a NULL device. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1460
* core: Do not update last device on CLUTTER_DEVICE_ADDED/REMOVEDCarlos Garnacho2020-09-301-6/+10
| | | | | | | | | We only update the last device from actual input interaction here, avoid this pair of events. This is specially nasty with CLUTTER_DEVICE_REMOVED, since the device we're notifying upon will be disposed soon after emission. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1460
* backends: Do not use stack-allocated ClutterEventsCarlos Garnacho2020-09-301-6/+7
| | | | | | Use ClutterEvent* and clutter_event_new() to always allocate events. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1460
* clutter: Do not use stack-allocated ClutterEventsCarlos Garnacho2020-09-301-7/+7
| | | | | | Use ClutterEvent* and clutter_event_new() to always allocate events. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1460
* screen-cast/area-src: Clear framebuffer before painting stageJonas Ådahl2020-09-303-2/+11
| | | | | | | | | | | | We'll be painting to a framebuffer that may not be completely covered by the painted areas, meaning the not painted areas would end up undefined, thus potentially contain garbage or old content. Avoid this by clearing the framebuffer before painting the stage. Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1442 https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1459
* clutter: Align all screen transformations to 1/256th of a stage unit.Daniel van Vugt2020-09-301-4/+10
| | | | | | | | | | | | | So as to eliminate floating point precision errors that creep in during matrix operations. 1/256th is chosen as a reasonable maximum resolution to cover any realistic fractional scaling factor. Floats can represent such a fraction losslessly because it is a small power of 2. Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1403 https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1429
* backends/x11: Set stage on logical keyboard devicewip/carlosg/fix-im-x11Carlos Garnacho2020-09-291-0/+4
| | | | | | | Like it's done for the pointer in other places. Without a stage assigned, some bits (like IM handling) may end up with events ignored, and misbehave. Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1413
* wayland: Fix refcount errorSergio Costas2020-09-291-1/+1
| | | | | | | | | | | The Meta.WaylandClient constructor receives a GSubprocessLauncher as a parameter, and stores it internally. Unfortunately, its refcount value isn't increased, which results in the object being released twice. This patch fixes this bug. Fix https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1454
* Update Hebrew translationYosef Or Boczko2020-09-281-138/+265
|
* cogl tests: Show the actual output from tests if VERBOSE is setSimon McVittie2020-09-281-1/+8
| | | | | | | | | | | | | | | | | | Writing tests' output to a log file makes them difficult to debug when the test might be running on an autobuilder or CI system where only stdout/stderr are recorded. This is particularly troublesome if a failure is only reproducible on a particular autobuilder. Recent Automake versions have the convention that detailed output from failing tests is written to stdout/stderr, not just to log files, when the VERBOSE environment variable is set; borrow that convention as a trigger for producing detailed test output. This was originally cogl!14, but applies equally to mutter's fork of cogl. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1273 Signed-off-by: Simon McVittie <smcv@debian.org>
* backends: force enable modifiers on tagged devicesKarol Herbst2020-09-2812-0/+66
| | | | | | | | | | | Some devices can't scanout to linear buffers directly as the hw is not capable of eg rendering into a linear depth buffer. Add code to force kms-modifiers on udev taged devices. Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1408 https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1443
* wayland: Add versions to primary selection protocolsRobert Mader2020-09-273-2/+6
| | | | | | Just so we follow convention - those versions are unlikely to ever change. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1452
* barriers: Free backend implementation at dispose timewip/fix-barrier-leakRay Strode2020-09-271-0/+3
| | | | | | | | | | | | When a MetaBarrier is first created it allocates a backend impl object which does the actual heavy lifting. Unfortunately, that backend object is never freed. This commit ensures the implementation gets freed when the barrier object is freed. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1451
* barriers: Fix leak in meta_barrier_destroyRay Strode2020-09-261-1/+1
| | | | | | | | | | | | meta_barrier_destroy is responsible for removing the extra reference added in meta_barrier_constructed. Unfortunately, it fails to do this because of a misplaced early return statement. This commit removes the spurious return. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1449
* Update Brazilian Portuguese translationRafael Fontenelle2020-09-231-8/+8
|
* clutter: Drop _clutter_clear_events_queue_for_stage()Carlos Garnacho2020-09-233-26/+1
| | | | | | | | There's only one stage. Let's not overcomplicate things, as it will not be possible to simply go through the event queue inspecting every event. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1448
* backends/native: Remove unused functionCarlos Garnacho2020-09-232-21/+0
| | | | | | This meta_seat_native_get_device() function has been unused for some time. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1448
* backends: Drop unused functionCarlos Garnacho2020-09-232-22/+0
| | | | | | | This meta_input_settings_get_tablet_mapping() was never necessary outside MetaInputSettings, nor used. It can simply go away. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1448
* core: Do not force cursor renderer update hereCarlos Garnacho2020-09-231-7/+0
| | | | | | | | This is already taken care of in meta_backend_monitors_changed(), called from the same code paths that emit ::monitors-changed-internal. It is better to leave this up to backend internals. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1448
* core: Remove unused struct fieldCarlos Garnacho2020-09-232-5/+0
| | | | https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1448
* backends: Drop unused functionCarlos Garnacho2020-09-232-12/+0
| | | | | | meta_cursor_tracker_get_displayed_cursor() is used nowhere. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1448
* cogl: Flush specific framebuffersDaniel van Vugt2020-09-181-4/+2
| | | | | | | | | | | | | | | | | This resolves a couple of FIXMEs. The FIXME comments were right in stating that not *all* journals needed flushing, only the one we are trying to put on screen needs flushing. However we can't eliminate all flushes because the winsys swap calls that follow go directly into OpenGL which knows nothing about cogl journalling. So the journal *must* be flushed before the swap, to give OpenGL the correct state. P.S. If this turns out to cause any bugs then the next best answer is to just remove the FIXME comments. Because flushing is still the right thing to do. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1362
* wayland/window: Always flag acked move/resize as 'moved' if movedJonas Ådahl2020-09-181-3/+3
| | | | | | | | | | | | | | We only did this if we weren't currently doing an interactive resize, but since the finish_move_resize() is not the actual interactive resize but the acknowledgment of the configure event that was emitted as a result, we shouldn't limit ourself to the same flags used during resize. This fixes temporarly "stuck" position of attached modal dialogs while they are being resized. Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1163 https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1446
* backends/native: fix the scroll button lock right/middle mismatchPeter Hutterer2020-09-171-5/+19
| | | | | | | | | | In X, buttons 1, 2, 3 are left, middle, right. In evdev, the order is BTN_LEFT, BTN_RIGHT, BTN_MIDDLE. So setting a scroll button to 2 gave us a middle button in the X session and a right button in a wayland session. Fix that by hard-coding the LMR buttons handling. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1433
* backends/native: Fall back to compositing if direct scanout failedJonas Ådahl2020-09-1711-39/+103
| | | | | | | | | | | | | | Even when a direct client buffer has a compatible format, stride and modifier for direct scanout, drmModePageFlip() may still fail sometimes. From testing, it has been observed that it may seemingly randomly fail with ENOSPC, where all subsequent attempts later on the same CRTC failing with EBUSY. Handle this by falling back to flipping after having composited a full frame again. Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1410
* clutter-backend-x11: Don't set the font-dpi computed on X11 parametersMarco Trevisan (Treviño)2020-09-171-9/+0
| | | | | | | | | | We already correctly set the font-dpi based on user settings in MetaSettings at each user change and as part of backend initialization, so there's no point to set it also during x11 backend post-parsing and using X11 values, as this may happen at later point and lead to a wrong clutter font DPI value. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1444
* backends/x11: if the scroll button is nonzero, enable button scrollingPeter Hutterer2020-09-161-0/+1
| | | | https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1431
* backends/x11: factor out the scroll method property changesPeter Hutterer2020-09-161-29/+16
| | | | | | Let's not duplicate this given how complicated it is. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1431
* backends/x11: fix the property type for the scroll buttonPeter Hutterer2020-09-161-1/+1
| | | | | | For reasons beyond my memory, this is an XA_CARDINAL, not an XA_INTEGER. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1431
* kms/crtc: Always consider gamma state validBenjamin Berg2020-09-151-32/+0
| | | | | | | | | | The gamma curve remains valid even if the CRTC is turned off. As such, there is no need to clear it and doing so breaks reading the gamma curve while the screens are turned off using DPMS. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1420 Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1392
* kms/crtc: Read initial gamma stateJonas Ådahl2020-09-151-0/+2
| | | | https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1420
* Update Portuguese translationJuliano de Souza Camargo2020-09-151-159/+332
| | | | (cherry picked from commit 649627028542e660683ddf4b828e162568c76fae)
* Bump version to 3.38.03.38.0Florian Müllner2020-09-142-1/+13
| | | | Update NEWS.
* input-mapper: Don't match touchscreens to the absence of a monitorwip/smcv/issue1414Simon McVittie2020-09-141-1/+6
| | | | | | | | | If there is no laptop panel (for example on a desktop PC or a virtual machine), attempting to put a NULL monitor in the list of matches will just make mapping_helper_apply() crash. Mitigates: https://gitlab.gnome.org/GNOME/mutter/-/issues/1414 Signed-off-by: Simon McVittie <smcv@debian.org>
* screen-cast: Add 'dma-buf-screen-sharing' experimental featureJonas Ådahl2020-09-143-0/+8
| | | | | | | | | It's enabled by default when using the i915 driver, but disabled everywhere else until it can be made reliably an improvement. Until then, for anyone want to force-enable it, add the string 'dma-buf-screen-sharing' to the experimental features list in GSettings. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1442
* screen-cast: Enable DMA buffers only for i915Jonas Ådahl2020-09-141-11/+8
| | | | | | | | | | | Seems DMA buffer based interprocess buffer sharing is more broken than not, so for now only enable it when using the i915 driver. For example vmwgfx, qxl and radeon, it results in mmap() failing to mmap the memory region. Other drivers, e.g. amdgpu will function, but may hit very slow memory download paths, resulting in worse performance. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1442
* cogl/renderer: Set error in dmabuf constructor fallbackJonas Ådahl2020-09-141-0/+4
| | | | | | | | When the CoglRenderer didn't set the DMA buffer constructor vfunc, we return NULL. What we didn't do was set the error, meaning the caller would crash if it tried to look up why DMA buffer construction failed. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1430
* Update Latvian translationRūdolfs Mazurs2020-09-121-93/+126
|
* Update British English translationBruce Cowan2020-09-111-53/+102
|
* Update Italian translationMilo Casagrande2020-09-101-42/+59
|
* Update German translationTim Sabsch2020-09-091-46/+62
|
* Update Hungarian translationBalázs Meskó2020-09-071-42/+80
|
* Update Catalan translationGil Forcada2020-09-071-89/+116
|
* Update Swedish translationAnders Jonsson2020-09-061-40/+56
|
* Bump version to 3.37.923.37.92Florian Müllner2020-09-052-1/+33
| | | | Update NEWS.
* backends: Hook ClutterSeat::touch-mode to PanelOrientationManagedCarlos Garnacho2020-09-053-1/+25
| | | | | | | | We only want the panel autorotation to happen if the laptop has an accelerometer, and is in tablet mode. Regular laptop mode should lock the orientation, and let it be configured manually. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1311
* backends: Check panel autorotation state before applying autorotationCarlos Garnacho2020-09-051-0/+3
| | | | | | | | | | So far, we've expected this signal to not happen whenever autorotation shouldn't apply (no accelerometer is a strong reason). In future commits we'll add further checks to this policy, so prevent autorotation to change the display configuration if the MetaOrientationManager signal happens but it should be ignored. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1311
* backends: Centralize panel autorotation in a DisplayConfig propertyCarlos Garnacho2020-09-054-0/+62
| | | | | | | | | | | | Instead of having everyone check net.hadess.SensorProxy themselves, have this all controlled by the MetaOrientationManager, and proxied everywhere else via a readonly property in org.gnome.Mutter.DisplayConfig. We want to attach more complex policies here, and it seems better to centralize the handling of the autorotation feature rather than implementing policy changes all over the place. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1311