| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Use the clutter pointer constrain callback and a lot of copypasted
code from Xorg to implement reactive pointer barriers and pointer
barrier events.
https://bugzilla.gnome.org/show_bug.cgi?id=706655
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In wayland, we can make some assumptions about the behavior and
configuration of the X server (which is Xwayland), including on
the time it uses, and that way avoiding a roundtrip (potentially deadly, if
by chance the X server is also blocking on us or needs us to flush
the wayland socket buffer).
Note that we bypass get_current_time() entirely, as it is assumed
the function is called always to translated CurrentTime into a real
value.
https://bugzilla.gnome.org/show_bug.cgi?id=707466
|
|
|
|
|
|
|
|
| |
Clutter has learned to use monotonic times for the events, and
so does X (at least Xwayland, which is an implementation we know
and we can rely upon), so the values are directly comparable.
https://bugzilla.gnome.org/show_bug.cgi?id=707466
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When X clients change the keyboard map, the also update a property
on the root window. We can notice that and rebuild our data structures
with the new values, as well as inform the wayland clients.
This is a terrible hack, and it's not how we want to implement things
in 3.12, but it's enough to have the same keyboard layout in the
shell, in X clients and in wayland clients in 3.10, until we decide
on the fate of the keyboard g-s-d plugin.
https://bugzilla.gnome.org/show_bug.cgi?id=707446
|
|
|
|
|
|
|
|
|
|
| |
Synthetize XInput events from ClutterEvents in MetaWaylandKeyboard,
and pass them to the keybindings infrastructure for early handling,
so that we can activate them even if the currently focused window
is not an X11 one (or if there is no focused window, or we're
modal)
https://bugzilla.gnome.org/show_bug.cgi?id=706963
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The destroy notify for a DBus watch holds a reference to the IdleMonitor,
but the IdleMonitorWatch object doesn't (it knows all watches will
be destroyed before the monitor is, so it doesn't need one). This
means that the DBus watch reference can be the only one keeping
the IdleMonitor alive (expecially true for device idle monitors,
which are only used by g-s-d/cursor), and that means that calling
the destroy notify freezes the monitor (and the next X calls
access garbage).
https://bugzilla.gnome.org/show_bug.cgi?id=708420
|
|
|
|
|
|
|
|
| |
If you maximize a CSD window on a monitor without struts, it ends
up taking the whole monitor size, but it doesn't mean that the
application wants to fullscreen.
https://bugzilla.gnome.org/show_bug.cgi?id=708718
|
|
|
|
|
|
|
| |
The enum name was wrong.
Patch originally by Dan Horák <dan@danny.cz>
https://bugzilla.gnome.org/show_bug.cgi?id=708813
|
|
|
|
| |
Update NEWS
|
|
|
|
|
|
|
|
| |
We must set x11_size_changed even if we are frozen, as every window
size change makes the X server drop the pixmap, and we might lose
the information at the next thaw() if the window changes size
twice in one frame (so we would keep drawing with the old pixmap
until something else causes another resize)
|
|
|
|
| |
Update NEWS
|
|
|
|
|
|
|
|
| |
Make sure that clutter is at the right minimum version for the API
we use, and that it is built with the right configure flags, by
checking for subpackage .pcs too.
https://bugzilla.gnome.org/show_bug.cgi?id=708210
|
|
|
|
| |
Update NEWS
|
| |
|
|
|
|
| |
Remove a warning that makes us fail with -Werror
|
|
|
|
|
|
|
|
|
| |
Need two passes, because the order we traverse the array is
alphabetical on connector name, not left to right, so we might
see a monitor on the right before we get the offset from disabling
the primary monitor.
https://bugzilla.gnome.org/show_bug.cgi?id=707473
|
|
|
|
|
|
|
|
| |
No, holes in the framebuffer are not a good a thing: windows can
get lost there, and the user can get very confused.
Instead, compact the monitors that where previously after.
https://bugzilla.gnome.org/show_bug.cgi?id=707473
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The XSync semantics mandate that alarms already expired will not
fire until the counter is reset and the alarm triggered again, so
clients traditionally called get_idle_time() first to see if they
should install the alarm.
This is inherently racy, as by the time the call is handled by
mutter and the reply received the idle time could be different.
Instead, if we see that the watch would have fired in the past,
fire it immediately.
This is a behavior change, but it's a compatible one, as all legacy
clients are calling get_idle_time() first, and it was perfectly
possible for the idle time counter to trigger the alarm right
after the get_idle_time() call.
https://bugzilla.gnome.org/show_bug.cgi?id=707302
|
|
|
|
|
|
|
| |
Modern systemd changed the semantics of sd_session_get_tty() to
return the full path, rather than just the tty name.
Reviewed by Ray Strode in IRC.
|
|
|
|
|
|
| |
It was a left-over from the initial code import from weston.
https://bugzilla.gnome.org/show_bug.cgi?id=707863
|
|
|
|
|
|
|
|
| |
Allow multiple popups from the same clients to be stacked under
the same pointer grab.
This is necessary to implement submenus.
https://bugzilla.gnome.org/show_bug.cgi?id=707863
|
|
|
|
|
|
|
|
|
|
|
|
| |
Grabs are now slice allocated structures that are handled by
whoever starts the grab. They contain a generic grab structure
with the interface and a backpointer to the MetaWaylandPointer.
The grab interface has been changed to pass full clutter events,
which allowed to remove the confusion between grab->focus and
pointer->focus. Invidual grabs are now required to keep their
focus, and choose whoever gets the events.
https://bugzilla.gnome.org/show_bug.cgi?id=707863
|
|
|
|
|
|
|
|
| |
Popup surfaces are mapped into override_redirect surfaces
of a DROPDOWN_MENU type, with the addition of a special pointer
grab.
https://bugzilla.gnome.org/show_bug.cgi?id=707863
|
|
|
|
|
|
|
| |
wl_shell supports a set_transient() map request that is equivalent
to setting WM_TRANSIENT_FOR in X11, so implement that.
https://bugzilla.gnome.org/show_bug.cgi?id=707401
|
|
|
|
|
|
|
|
|
|
|
| |
Once the sizing is properly wired up, we need to make sure that
the size at the initial map is correct, and not always 0, 0 because
the buffer is not yet converted into a CoglTexture by MetaShapedTexture,
otherwise we end up sending out configure events at 1 x 1.
To do so, we cache the surface type in the initial state until the
first commit.
https://bugzilla.gnome.org/show_bug.cgi?id=707401
|
|
|
|
|
|
|
|
|
|
|
|
| |
To properly resize clients, we need to send them configure events
with the size we computed from the constraint system, and
then check if the new size they ask is compatible with
our expectation.
Note that this does not handle interactive resizing yet, it
merely makes the API calls work for wayland clients.
https://bugzilla.gnome.org/show_bug.cgi?id=707401
|
|
|
|
|
|
|
|
| |
Make sure that meta_display_list_windows() returns wayland windows
too, by keeping a separate hash for wayland clients.
This fixes a crash in the alt-tab code of gnome-shell.
Reviewed by drago01 in IRC.
|
|
|
|
|
|
|
|
| |
If we skip getting the clip rectangle because we don't have an
allocation or a texture, don't intersect with the visible region.
This avoids a pixman warning of an invalid rectangle.
Reviewed by drago01 in IRC.
|
|
|
|
| |
I had it fixed locally, then it was lost in a bad rebase.
|
|
|
|
|
|
|
| |
We don't have actual pointer barriers implemented, so this is a
quick workaround to trigger the fallback paths in the shell, for
the hot corner and the message tray.
To be reverted after 3.10
|
|
|
|
|
|
|
|
|
| |
Not only this way we get the right Adwaita cursor as the default
(instead of shipping our own in png format), but we also add
support for all MetaCursors as root cursor (which most important
should allow us to have I-beams in shell entries)
https://bugzilla.gnome.org/show_bug.cgi?id=707573
|
|
|
|
|
|
|
| |
Use the DRM API and libgbm to upload cursor buffers to the
appropriate HW plane, saving on GL calls and compositing.
https://bugzilla.gnome.org/show_bug.cgi?id=707573
|
|
|
|
|
|
|
|
|
| |
Using the new Cogl API to actually modeset (because we can't
use the DRM API directly without controlling buffer swap), we
can finally have a KMS monitor backend, which means full display
configuration when running on bare metal.
https://bugzilla.gnome.org/show_bug.cgi?id=706308
|
| |
|
| |
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=708070
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=708070
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=708070
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=708070
|
|
|
|
|
|
|
|
| |
Commit 8c1c77482db263a7dcc04051a9694f30a852b702 removed mutter-message,
mutter-theme-viewer, and mutter-theme-viewer; this drops their man pages
as well.
https://bugzilla.gnome.org/show_bug.cgi?id=706579
|
|
|
|
| |
Had a wrong cursor name.
|
|
|
|
|
|
|
|
|
| |
These cursors are used by gnome-shell, supporting them allows
to reduce GDK usage in the shell.
Also, make meta_screen_set_cursor() public.
https://bugzilla.gnome.org/show_bug.cgi?id=707919
|
|
|
|
|
|
|
|
|
| |
The API was changed during the patch review.
(Yes, we were depending on API which was sitting in a patch not
yet reviewed... you know, vertical integration!)
https://bugzilla.gnome.org/show_bug.cgi?id=707929
|
|
|
|
|
|
|
|
| |
At logout, we want to die when gnome-session tells us. Previously,
we were relying on the X server going down (killed by GDM at the
end of the session), but we can't use that in wayland.
https://bugzilla.gnome.org/show_bug.cgi?id=706421
|
|
|
|
|
|
|
| |
When running under mutter-launch, we can assume we're running on
bare metal, and set the clutter backend appropriately.
https://bugzilla.gnome.org/show_bug.cgi?id=706421
|
|
|
|
|
|
|
| |
We can be launched by gnome-session now, which implies gdb must be
attached from outside, and the Ctrl-C problem is gone.
https://bugzilla.gnome.org/show_bug.cgi?id=706421
|
|
|
|
|
|
|
|
|
| |
autostarted apps
Call the appropriate method on gnome-session so that autostarted
and bus activated apps see the X server and wayland socket.
https://bugzilla.gnome.org/show_bug.cgi?id=706421
|
|
|
|
|
|
|
|
|
| |
Warnings that are going to the journal should be not translated:
they're not user visible, and translating them would just make
bug reporting harder (as now the developers need to understand
what the warning is saying)
https://bugzilla.gnome.org/show_bug.cgi?id=707897
|
|
|
|
|
|
|
|
|
| |
Switching meta/util.h to gi18n.h was wrong, mutter is a library
and needs gi18n-lib.h, but that cannot be included from a public
header (since it depends on config.h or command line options),
so split util.h into a public and a private part.
https://bugzilla.gnome.org/show_bug.cgi?id=707897
|