- 07 Oct, 2019 1 commit
-
-
Robert Mader authored
When we call the subsurface destructor the actor might be gone already. Check first, like we do in other places, to avoid warnings. !829
-
- 06 Oct, 2019 1 commit
-
-
Dorian Stoll authored
After commit 75cffd0e ("shaped-texture: Implement ClutterContent"), the input to the meta_wayland_tablet_tool_get_relative_coordinates function is already scaled correctly. By scaling it again, all stylus events are getting mapped to the screen incorrectly (for anything != 100% scaling). See also: d3f30d9e !830
-
- 04 Oct, 2019 1 commit
-
-
Jonas Ådahl authored
Correct silly mistake where the MetaWaylandSurface was passed as the user_data of the surface actor destroy signal handler, instead of the expected MetaWaylandActorSurface. Fixes: #844
-
- 03 Oct, 2019 18 commits
-
-
Jonas Ådahl authored
A surface actor may be destroyed without the backing Wayland surface being destroyed yet, e.g. by the window being unmanaged. Handle this by listening on the "destroy" signal and making late requests (e.g. wl_surface_commit()) resilient against the lack of a surface actor. Fixes: #838 !825
-
Jonas Ådahl authored
No functional changes. !825
-
Alan01 authored
-
Hans de Goede authored
Instead of storing the result of meta_prop_get_latin1_string() into a temporary string value, g_strdup-ing that temp value storing the g_strdup result into window->sm_client_id and then g_free-ing the temporary string, we can pass window->sm_client_id as the place where meta_prop_get_latin1_string() stores its result, since the result from meta_prop_get_latin1_string() is itself a g_strdup-ed string, so there is no need to g_strdup it again. Note this drops the check to only issue the "Window %s sets SM_CLIENT_ID on itself ..." warning once. This check is not necessary as update_sm_hints() is only called once at window creation time and is never called again. !786
-
Hans de Goede authored
Switch the memory allocation in size_hints_from_results from a malloc call without error-checking to g_new0 and adjust the free path accordingly. !786
-
Hans de Goede authored
Use g_strdup instead of malloc + strcpy, this also gets rid of a bunch of error checking which is no longer necessary, also adjust the free path accordingly. Note that there was a malloc + XFree mismatch in the removed error-handling. !786
-
Hans de Goede authored
Switch the memory allocation in wm_hints_from_results from a calloc call without error-checking to g_new0 and just the free path accordingly. !786
-
Hans de Goede authored
results->prop is g_malloc memory so it should be free-ed with g_free not XFree. The same applies to the return value of text_property_from_results itself. !786
-
Hans de Goede authored
counter_list_from_results directly passes through the results->prop pointer which is g_malloc memory, so we should free the buffer it returns with g_free. !786
-
Hans de Goede authored
latin1_string_from_results and utf8_string_from_results use g_strndup, so the returned string should be freed with g_free, rather then with free or XFree. This fixes all free-s of buffers returned by these 2 functions to properly use g_free. !786
-
Hans de Goede authored
Use g_new0 instead of calloc for motif_hints_from_results and adjust its callers to use g_free. Note that in the process_request_frame_extents function this replaces the wrong original mismatch of calloc + XFree with a matching g_malloc + g_free pair. !786
-
Hans de Goede authored
meta_prop_get_cardinal_list directly passes through the results->prop pointer which is g_malloc memory, so we should free the buffer it returns with g_free. !786
-
Hans de Goede authored
atom_list_from_results directly passes through the results->prop pointer which is g_malloc memory, so we should free the buffer it returns with g_free. !786
-
Hans de Goede authored
Use meta_XFree instead of XFree, letting meta_XFree do the NULL checks for us. !786
-
Daniel van Vugt authored
The final version of the function was changed to allow points that are touching the edge of a quadrilateral to be counted as "inside". Update the function documentation to refect this. Also clarify that the function is written in such a way that it is agnostic to clockwise or anticlockwise vertex ordering. !783
-
Ting-Wei Lan authored
!817
-
Olivier Fourdan authored
Make sure to submit all pending primitives before blitting, otherwise rendering from the shell may be incomplete leaving partial drawing of the shell widgets. !820
-
Olivier Fourdan authored
In `clutter_stage_view_blit_offscreen()`, the given clipping rectangle is in “view” coordinates whereas we intend to copy the whole actual framebuffer, meaning that we cannot use the clipping rectangle. Use the actual framebuffer size, starting at (0, 0) instead. That fixes the issue with partial repainting with shadow framebuffer when fractional scaling is enabled. !820
-
- 02 Oct, 2019 4 commits
-
-
Marco Trevisan authored
Clutter actors might emit property changes in dispose, while unparenting. However we assume that the ::destroy signal is the last one we emit for an actor, and that starting from this moment the object is not valid anymore, and so we don't expect any signal emission from it. To avoid this, freeze the object notifications on an actor during its disposition, just before the ::destroy signal emission. Update the actor-destroy test to verify this behavior. !769
-
Marco Trevisan authored
Clutter actors unset their parent on dispose, after emitting the ::destroy signal, however this could cause ::parent-set signal emission. Since we assume that after the destruction has been completed the actor isn't valid anymore, and that during the destroy phase we do all the signal / source disconnections, this might create unwanted behaviors, as in the signal callbacks we always assume that the actor isn't in disposed yet. To avoid this, don't emit ::parent-set signal if the actor is being destroyed. Update the actor-destroy test to verify this behavior. !769
-
Olivier Fourdan authored
Mutter issues a synchronous grab on the pointer for unfocused client windows to be able to catch the button events first and raise/focus client windows accordingly. When there is a synchronous grab in effect, all events are queued until the grabbing client releases the event queue as it processes the events. Mutter does release the events in its event handler function but does so only if it is able to find the window matching the event. If the window is a shell widget, that matching may fail and therefore Mutter will not release the events, hence causing a freeze in pointer events delivery. To avoid the issue, make sure we sync the pointer events in case we can't find a matching window. !821
-
Ask Hjorth Larsen authored
-
- 30 Sep, 2019 1 commit
-
-
Jonas Ådahl authored
It was not the lack of forcing the shadow fb that caused slowness, but rather due to the method the shadow fb content was copied onto the scanout fb. With 'clutter: Use cogl_blit_framebuffer() for shadow FB' we'll use a path that shouldn't be slow when copying onto the scanout fb. Also 437f6b3d accidentally enabled shadow fb when using hw accelerated contexts, due to the cap being set to 1 in majority of drivers. While the kernel documentation for the related field says "hint to userspace to prefer shadow-fb rendering", the name of the hint when exposed to userspace is DRM_CAP_DUMB_PREFER_SHADOW, thus should only be taken into consideration for dumb buffers, not rendering in general. This reverts commit 437f6b3d. !818
-
- 28 Sep, 2019 1 commit
-
-
Adam Jackson authored
!814
-
- 27 Sep, 2019 6 commits
-
-
Jonas Ådahl authored
The commit 'renderer/native: Use shadow fb on software GL if preferred' attempted to force using a shadow fb when using llvmpipe in order to speed up blending, but instead only did so when llvmpipe AND the drm device explicityl asked for it. Now instead always force it for llvmpipe and other software rendering backends, and otherwise just query the drm device (i.e. DRM_CAP_DUMB_PREFER_SHADOW). !807
-
Olivier Fourdan authored
If there is no transformation, use `cogl_blit_framebuffer()` as a shortcut in `clutter_stage_view_blit_offscreen()`, that dramatically improves performance when using a shadow framebuffer. !809
-
Robert Mader authored
Since the recent clutter-content work, legacy scaling (in contrast to the new stage-view-scaling) only applies to surfaces that belong to a window. This broke scaling of DnD surfaces. As a workaround, apply the same scaling on DnD-surface-actors until we use stage-view-scaling by default and can remove this again. Also: small corrections of geometry calculation !780
-
Robert Mader authored
This allows us to implement more sophisticated logic for the different cases. For DnD surfaces, use the geometry scale of the monitor where the pointer is, instead of incorrectly assuming '1' as it was before. !780
-
Jonas Ådahl authored
Otherwise we won't get core dumps if the launching binary has capabilities set. !811
-
Carlos Garnacho authored
The meta_display_update_focus_window() call has indirect dependencies on the X11 focus window, in order to determine the correct focus window on the Wayland side (i.e. may turn out NULL with certain X windows). In order to have the right x11_display->focus_xwindow there, we should perform first the focus update on the X11 display. Fixes focusing of Java applications, as those don't seem to go through _NET_ACTIVE_WINDOW. Closes: #819
-
- 26 Sep, 2019 2 commits
-
-
Matej Urbančič authored
-
Jonas Ådahl authored
When tearing down, gnome-shell may call various methods a bit late, specifically while MetaDisplay is closing, after MetaCompositor is freed. Handle calls to the fullscreen unredirect inhibitation counters happening after MetaCompositor tear down by ignoring them. We're closing anyway, so it's not a problem. Fixes: gnome-shell#1710 !808
-
- 25 Sep, 2019 1 commit
-
-
Nathan Follens authored
-
- 24 Sep, 2019 2 commits
-
-
Olivier Fourdan authored
With the addition of the locate-pointer special keybinding (defaults to the [Control] key), we have now two separate special modifier keys which can be triggered separately, one for the locate-pointer action and another one for overlay. When processing those special modifier keys, mutter must ensure that the key was pressed alone, being a modifier, the key could otherwise be part of another key combo. As result, if both special modifiers keys are pressed simultaneously, mutter will try to trigger the function for the second key being pressed, and since those special modifier keys have no default handler function set, that will crash mutter. Check if the handler has a function associated and treat the keybinding as not found if no handler function is set, as with the special modifier keys. #823
-
Olivier Fourdan authored
The `process_event()` would check for a existing keybinding handler and abort if there is none, however the test is done after the handler had been accessed, hence defeating the purpose of the check. Move the check to verify there is an existing keybinding handler before actually using it. #823
-
- 20 Sep, 2019 2 commits
-
-
Robert Mader authored
shaped_texture requires the clip to be in surface coordinates. Scale it accordingly. !758
-
Robert Mader authored
There were multiple bugs present after the ClutterContent transition. Refactor `get_image` to: - always assume surface coordinates for the clip - return a cairo_surface in buffer size - make the offscreen path take size arguments, so we can easily change the assumption in get_image - fix some clipping bugs on the way !758
-