- 06 Sep, 2018 1 commit
-
-
- 03 Sep, 2018 1 commit
-
-
Florian Müllner authored
Update NEWS.
-
- 02 Sep, 2018 1 commit
-
-
- 01 Sep, 2018 2 commits
-
-
Ask Hjorth Larsen authored
-
Trần Ngọc Quân authored
Signed-off-by:
Trần Ngọc Quân <vnwildman@gmail.com>
-
- 31 Aug, 2018 2 commits
-
-
- 29 Aug, 2018 4 commits
-
-
-
Florian Müllner authored
Update NEWS.
-
Marek Cernocky authored
-
Marek Cernocky authored
-
- 28 Aug, 2018 2 commits
-
-
-
Carlos Garnacho authored
Unfortunately XKeysymToKeycode() falls short in that it coalesces keysyms into keycodes pertaining to the first level (i.e. lowercase). Add a ClutterKeymapX11 method (much alike its GdkKeymap counterpart) to look up all matches for the given keysym. Two other helper methods have been added so the virtual device can fetch the current keyboard group, and latch modifiers for key emission. Combining all this, the virtual device is now able to handle keycodes in further levels. Closes: GNOME/gnome-shell#135
-
- 27 Aug, 2018 16 commits
-
-
-
Jonas Ådahl authored
When we update the main monitor, there is a rule that makes it so that popup windows use the same main monitor as their parent. In the commit f4d07caa the call that updates and fetches the main monitor of the toplevel accidentally changed to update from itself, causing a indefinite recursion eventually resulting in a crash. Closes: GNOME/mutter#279
-
Jonas Ådahl authored
A window placed using a placement rule should keep that relative position even if the parent window moves, as the position tied to the parent window, not to the stage. Thus, if the parent window moves, the child window should move with it. In the implementation in this commit, the constraints engine is not used when repositioning the children; the window is simply positioned according to the effective placement rule that was derived from the initial constraining, as the a xdg_popup at the moment cannot move (relative its parent) after being mapped. Closes: GNOME/mutter#274
-
Jonas Ådahl authored
As with xdg-toplevel, a gtk-surface can be unmanaged by the compositor without the client knowing about it, meaning the client may still send updates and make requests. Handle this gracefully by ignoring them. The client needs to reset all the state anyway, if it wants to remap the same surface. GNOME/mutter#240
-
Jonas Ådahl authored
As with xdg-toplevel proper, a legacy xdg-toplevel can be unmanaged by the compositor without the client knowing about it, meaning the client may still send updates and make requests. Handle this gracefully by ignoring them. The client needs to reassign the surface the legacy xdg-toplevel role again, if it wants to remap the same surface, meaning all state would be reset anyway. Closes: GNOME/mutter#240
-
Jonas Ådahl authored
A toplevel window can be unmanaged without the client knowing it (e.g. a modal dialog being unmapped together with its parent. When this has happened, take frame callbacks queued on a commit and cache them on the generic surface queue. If the toplevel is to be remapped because the surface was reassigned the toplevel role, the cached frame callbacks will be queued on the surface actor and dispatched accordingly. GNOME/mutter#240
-
Jonas Ådahl authored
A window can be unmanaged without asking the client to do it, for example as a side effect of a parent window being unmanaged, if the child window was a attached dialog. This means that the client might still make requests post updates to it after that it was unmapped. Handle this gracefully by NULL-checking the surface's MetaWindow pointer. We're not loosing any state due to this, as if the client wants to map the same surface again, it needs to either reassign it the toplevel role, or reset the xdg-toplevel, both resulting in all state being lost anyway. GNOME/mutter#240
-
Jonas Ådahl authored
A toplevel window can be unmanaged without the client knowing it (e.g. a modal dialog being unmapped together with its parent. When this has happened, take frame callbacks queued on a commit and cache them on the generic surface queue. If the toplevel is to be remapped, either because the surface was reassigned the toplevel role, or if it was reset and remapped, the cached frame callbacks will be queued on the surface actor and dispatched accordingly. GNOME/mutter#240
-
Jonas Ådahl authored
A popup can be reset, and when that happens, window and actor are destroyed, and won't be created again unless it is reassigned the popup role. If a client queued frame callbacks when resetting a popup, the frame callbacks would be left in the pending state, as they were not queued on the actor, meaning we'd hit an assert about the frame callbacks not being handled. Fix this by caching them on the MetaWaylandSurface, so that they either are cleaned up on destruction, or queued on the actor would the surface be re-assigned the popup role. GNOME/mutter#240
-
Jonas Ådahl authored
Sometimes it may be useful for roles to put callbacks in the generic surface frame callback queue. The surface frame callback queue will either eventually be processed on the next surface role assignment that places the frame callbacks in a role specific queue, processed at some other point in time by a role, or cleaned up on surface destruction. GNOME/mutter#240
-
Jonas Ådahl authored
When a xdg-toplevel is reset, the window and actor are recreated, and all state is cleared. When this happened, we earlied out from the xdg-toplevel commit handler, which would mean that if the client had queued frame callbacks when resetting, they'd be left in the pending commit state, later hitting an assert as they were not handled. Fix this by queuing the frame callbacks no the new actor, so that they are emitted whenever the actor is eventually painted. GNOME/mutter#240
-
This was done for input regions in commit 718a89eb (Thanks Jonas for the archaeology!) but opaque regions follow the same scaling. This brings less evident issues as opaque regions are just used for culling optimizations.
-
Commit 6a92c6f8 unintendedly broke input/opaque region calculations on hidpi. Most visible side effect is that clicking is only allowed in the upper-left quarter of windows. The surface coordinates are returned in logical unscaled buffer size. We're however interested in actor coordinates (thus real pixels) here. As it is a bit of a detour how the scale to be applied is calculated, refactor a meta_wayland_actor_surface_get_geometry_scale() function that we can use it here, and use it consistently for surface size and the given regions.
-
Jonas Ådahl authored
Commit a3da4b8d changed updating of window monitors to always use take affect when it was done from a non-user operation. This could cause feed back loops when a non-user driven operation would trigger the changing of a monitor, which itself would trigger changing of the monitor again due to a window scale change. The reason for the change, was that when the window monitor changed due to a hot plug, if it didn't actually change, eventually the window monitor pointer would be pointing to freed memory. Instead of force updating the monitor on all non-user operations, just do it on hot plugs. This allows for the feedback loop preventing logic to still do what its supposed to do, without risking dangling pointers on hot plugs. Related: GNOME/mutter#189 Closes: GNOME/mutter#192
-
Jonas Ådahl authored
The bool determines whether the call was directly from a user operation or not. To add more state into the call without having to add more boolenas, change the boolean to a flag (so far with 'none' and 'user-op' as possible values). No functional changes were made. GNOME/mutter#192
-
-
- 26 Aug, 2018 2 commits
-
-
- 24 Aug, 2018 1 commit
-
-
The "backends: Move MetaOutput::crtc field into private struct" accidentally changed the view transform calculation code to assume that "MetaCrtc::transform" corresponds to the transform of the CRTC; so is not the case yet; one must calculate the transform from the logical monitor, and check whether it is supported by the CRTC using meta_monitor_manager_is_transform_handled(). This commit restores the old behaviour that doesn't use MetaCrtc::transform when calculating the view transform. Fixes: GNOME/mutter#216
-
- 23 Aug, 2018 2 commits
-
-
It is certainly able to visualize preedit text inline, so it must announce itself as such.
-
A just focused ClutterInputFocus must set itself up correctly on all situations. Refactor this into a function, so it can be used for the case where a ClutterText gets editable while focused.
-
- 21 Aug, 2018 4 commits
-
-
Sebastian Keller authored
XcursorLibraryLoadCursor can return 'None' if the current cursor theme is missing the requested icon. If XFreeCursor is then called on this cursor, it generates a BadCursor error causing gnome-shell to crash. Fixes GNOME/mutter#254
-
We need a way for mutter to exit if no available GPUs are going to work. For example if gdm starts gnome-shell and we're using a DRM driver that doesn't work with KMS then we should exit so that GDM can try with Xorg, rather than operating in headless mode. Related: GNOME/mutter#223
-
Avoid dereferencing the NULL return value if it fails. We still create the MetaGpu, but we treat it as if it has no outputs. Closes: GNOME/mutter#223
-
Robert Mader authored
As per specification > The compositor ignores the parts of the input region that > fall outside of the surface. > The compositor ignores the parts of the opaque region that > fall outside of the surface This fixes culling problems under certain conditions.
-
- 20 Aug, 2018 2 commits
-
-
`ClutterText` painting for editable single_line_mode actors like `StEntry` is always clipped by: `cogl_framebuffer_push_rectangle_clip (fb, 0, 0, alloc_width, alloc_height)` So it's difficult to get the rectangle wrong. However in cases where the target framebuffer has changed (`cogl_push_framebuffer`) such as when updating `ClutterOffscreenEffect` we had the wrong old value of `fb`. And so would be clipping the wrong framebuffer, effectively not clipping at all.
-
Currently xdg-shell applies a geometry set with set_window_geometry unconditionally. But the specification requires: > When applied, the effective window geometry will be > the set window geometry clamped to the bounding rectangle of the > combined geometry of the surface of the xdg_surface and the > associated subsurfaces. This is especially important to implement viewporter and transformation.
-