- Feb 20, 2016
-
-
Carlos Garnacho authored
-
- Feb 19, 2016
-
-
Carlos Garnacho authored
Implement the gtk_shell.set_startup_id request, so that the ID is removed from the sequences list, and feedback updated accordingly. https://bugzilla.gnome.org/show_bug.cgi?id=762268
-
Carlos Garnacho authored
Add a gtk_shell.set_startup_id request, so the application can communicate to the compositor the startup id that it received through the DESKTOP_STARTUP_ID envvar, or other means. https://bugzilla.gnome.org/show_bug.cgi?id=762268
-
Carlos Garnacho authored
This is kind of in a middle ground at the moment. Even though it handles sequences not coming from libsn, they're added nowhere at the moment, we'll rely on the app launch context being in the x11 side at the moment. Also, even though we do create internal sequence objects, we keep exposing SnStartupSequences to make gnome-shell happy, we could consider making this object "public" (and the sequence objects with it), things stay private at the moment. https://bugzilla.gnome.org/show_bug.cgi?id=762268
-
Ray Strode authored
Since a buffer can be used by multiple surfaces at once, we need to release the buffer only after all surfaces are finished with it. Currently we track whether or not to release the buffer based on the accessible boolean. This commit changes it to a counter to accomodate multiple users. Also, each surface needs to know whether not it is done with the buffer, so this commit adds a buffer_used boolean to the surface state. https://bugzilla.gnome.org/show_bug.cgi?id=761613
-
Ray Strode authored
We currently track whether or not a buffer can be released early by looking at the copied_data boolean on the buffer. This boolean is, practically speaking, always set to TRUE for shm buffers and is always false otherwise. We can just as easily check if the buffer is a shm buffer to decide whether or not to do an early release. That's better from a theoretical point of view since copied_data assumes a 1-to-1 relationship between surface and buffer, which may not actually hold. This commit drops copied_data and changes the check to instead see if the buffer is shm. https://bugzilla.gnome.org/show_bug.cgi?id=761613
-
- Feb 18, 2016
-
-
Olivier Fourdan authored
If a broken or naughty application tries set up its windows to create a loop in the transient relationship, mutter will hang, looping forever in meta_window_foreach_ancestor() To avoid looping infinitely at various point in the code, check for a possible loop when setting the transient relationship and deny the request to set a window transient for another if that would create a loop. Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=759299
-
- Feb 17, 2016
-
-
Ray Strode authored
meta_wayland_surface_toplevel_commit has a lot of logic to handle a new buffer getting attached as part of the commit. None of that code needs to run if there is no new buffer attached. This commit short-circuits that case. https://bugzilla.gnome.org/show_bug.cgi?id=761613
-
- Feb 16, 2016
-
-
Jonas Ådahl authored
If we rely on getting back an input event with the warped pointer coordinates, we might draw a frame with the old coordinates if we warp during the paint phase. Avoid that by moving the cursor immediately. https://bugzilla.gnome.org/show_bug.cgi?id=744104
-
Jonas Ådahl authored
This patch adds support for confinement regions that are more complex than a single rectangle. It relies on details about cairo regions not explicitly in the API in order to generate the outer border of the region. https://bugzilla.gnome.org/show_bug.cgi?id=744104
-
Jonas Ådahl authored
The x/y coordinates of the ClutterInputDevice were not the ones which was the result of this event but whatever event was queued the last. The correct coordinates can, however, be found in the event itself, so lets use those. https://bugzilla.gnome.org/show_bug.cgi?id=744104
-
Jonas Ådahl authored
We calculate with floats, so lets use that type throughout. https://bugzilla.gnome.org/show_bug.cgi?id=744104
-
Jonas Ådahl authored
The wp_pointer_constraints protocol is a protocol which enables clients to manipulate the behavior of the pointer cursor associated with a seat. Currently available constraints are locking the pointer to a static position, and confining the pointer to a given region. Currently locking is fully implemented, and confining is implemented for rectangular confinement regions. What else is lacking is less troublesome semantics for enabling the lock or confinement; currently the only requirement implemented is that the window that appears focused is the one that may aquire the lock. This means that a pointer could be 'stolen' by creating a new window that receives active focus, or when using focus-follows-mouse, a pointer passes a window that has requested a lock. This semantics can be changed and the protocol itself allows any semantics as seems fit. https://bugzilla.gnome.org/show_bug.cgi?id=744104
-
Jonas Ådahl authored
Making the pending state an GObject makes it easier to extend it with additional optional state without putting everything inside one big struct. https://bugzilla.gnome.org/show_bug.cgi?id=744104
-
Jonas Ådahl authored
Make MetaWaylandSurface a listener and move output state updating to the handler function. https://bugzilla.gnome.org/show_bug.cgi?id=744104
-
-
Jonas Ådahl authored
In order to reuse some vector math for pointer confinement, move out those parts to its own file, introducing the types old types "MetaVector2" and "MetaLine2" outside of meta-barrier-native.c, as well as introducing MetaBorder which is a line, with a blocking direction. https://bugzilla.gnome.org/show_bug.cgi?id=744104
-
-
Jonas Ådahl authored
Add support for sending relative pointer motion deltas to clients who request such events by creating wp_relative_pointer objects via wp_relative_pointer_manager. This currently implements the unstable version 1 from wayland-protocols. https://bugzilla.gnome.org/show_bug.cgi?id=744104
-
- Feb 08, 2016
-
-
Ray Strode authored
The code currently implements a function, get_time, that fetches a timestamp. That duplicates code already in glib, and the glib implementation is better, anyway, since it doesn't skew backward when the system clock is changed. This commit changes the code to use g_get_monotonic_time and drop the get_time function. https://bugzilla.gnome.org/show_bug.cgi?id=761613
-
- Feb 04, 2016
-
-
Rui Matos authored
Instancing a gbm device without initializing EGL with it means that it won't be able to import wl_drm buffers. Instead, let's re-use cogl's gbm device which is already properly initialized. https://bugzilla.gnome.org/show_bug.cgi?id=761557
-
Florian Müllner authored
GTK+ paints some elements like box shadows (which Adwaita likes to (ab)use for borders) outside the rectangle passed to gtk_render_*. This is not an issue if our own invisible frame border is big enough, but in case of non-resizable windows we end up clipping away part of the decoration. Use the newly added gtk_render_background_get_clip() to make sure we always use a mask that is large enough to contain all decorations. https://bugzilla.gnome.org/show_bug.cgi?id=752794
-
Florian Müllner authored
GtkWindow actually uses two CSS nodes, 'window' and 'decoration'. Simulate that by using two separate style contexts for the frame.
-
Alberts Muktupāvels authored
Use global theme variant only if window does not have _GTK_THEME_VARIANT property. This allows applications to request default theme variant when global dark theme is enabled. https://bugzilla.gnome.org/show_bug.cgi?id=761543
-
- Feb 02, 2016
-
-
Ray Strode authored
commit 0165cb69 changed mutter to release committed shm buffers as soon as they were uploaded to the GPU. It also inadvertently changed mutter to prematurely release EGL buffers (which never get copied, but get used directly). This commit corrects that mistake. https://bugzilla.gnome.org/show_bug.cgi?id=761312
-
- Feb 01, 2016
-
-
Ray Strode authored
When a client is ready for the compositor to read a surface's shared memory buffer, it tells the compositor via wl_surface_commit. From that point forward, the baton is given to the compositor: it knows it can read the buffer without worring about the client making changes out from under it. After the compositor has uploaded the pixel contents to the video card it is supposed to release the buffer back to the client so that the client can reuse it for future use. At the moment, mutter only releases the buffer when a new buffer is attached. This is problematic, since it means the client has to have a second buffer prepared before the compositor gives the first one back. Preparing the second buffer potentially involves copying megabytes of pixel data, so that's suboptimal, and there's no reason mutter couldn't release the buffer earlier. This commit changes mutter to release a surface's buffer as soon as it's done processing the commit request. https://bugzilla.gnome.org/show_bug.cgi?id=761312
-
- Jan 25, 2016
-
-
Rui Matos authored
This fixes a couple of minor memory leaks. https://bugzilla.gnome.org/show_bug.cgi?id=760670
-
- Jan 23, 2016
-
-
Jasper St. Pierre authored
When cleaning up the logic in commit c408cf7a, I forgot to properly apply de Morgan's laws to an inverse. Reported by ricotz on IRC.
-
- Jan 21, 2016
-
-
Florian Müllner authored
Update NEWS.
-
Florian Müllner authored
-
Florian Müllner authored
GTK+ improved its CSS support, and the default theme started to make use of it, so we must update our theming code accordingly. Add support for margins where they make sense.
-
Florian Müllner authored
GTK+ improved its CSS support, and the default theme started to make use of it, so we must update our theming code accordingly. Start by supporting min-width/min-height where it makes sense.
-
Rui Matos authored
-
g_object_unref() was called no matter what we got for value https://bugzilla.gnome.org/show_bug.cgi?id=760670
-
- Jan 19, 2016
-
-
Since we are using the surface actor to draw the DND icon, the offset is already accounted for by MetaSurfaceActorWayland, and passing the surface position offset would effectively double the actual offset, causing the icon to be misplaced. This patch always sets the anchor offset to (0, 0) when the icon is a Wayland surface, and lets the surface actor deal with the offsetting. https://bugzilla.gnome.org/show_bug.cgi?id=759222
-
Carlos Garnacho authored
We now additionally send: - wl_data_offer.source_actions - wl_data_source.action - wl_data_offer.action - wl_data_source.dnd_drop_performed - wl_data_source.dnd_finished The protocol changes allow for compositors to implement different policies when chosing the action, mutter uses this to reimplement the same behavior that GTK+ traditionally had: - Alt/Control/Shift modifiers change the chosen action to ask/copy/move respectively - Drags with middle button start out as "ask" by default As mutter now also grabs the keyboard and unsets the window focus for these purposes, the window focus is restored after the drag operation has finished. The Xdnd bridge code is also modified to cope with actions, so mixed wayland-x11 scenarios are able to convey that information. https://bugzilla.gnome.org/show_bug.cgi?id=760805
-
Carlos Garnacho authored
Move to a separate meta_wayland_drag_grab_set_source() so we keep the weak pointer management in a single place. https://bugzilla.gnome.org/show_bug.cgi?id=760805
-
Carlos Garnacho authored
This will be useful during DnD, where mutter is expected to consume keyboard events for either allowing changes in the selected DnD action, or misc a11y features like keyboard-driven DnD. Currently, the vtable contains 2 functions, key() will be used on every key event we get from Clutter, modifiers() will notify of changes in the keyboard modifiers (mouse buttons will never be set in the modifier mask) https://bugzilla.gnome.org/show_bug.cgi?id=760805
-
Carlos Garnacho authored
This will be useful when an update is due but no motion event is to be sent/received (eg. modifier changes during DnD). https://bugzilla.gnome.org/show_bug.cgi?id=760805
-