Rui Matos
461f74ef18
wayland: Fix setting keyboard/pointer focus for new clients
...
When we have a new client, we potentially set the focus on one of its
surfaces when we map it but the client might not have called
wl_seat.get_keyboard/pointer yet. When it finally calls
get_keyboard/pointer we must then register its resource as the
focus_resource which means that we can only return early if
focus_resource is already set.
https://bugzilla.gnome.org/show_bug.cgi?id=719725
2013-12-03 15:56:15 +01:00
Rui Matos
20e92c5a72
wayland: Set the clutter stage focus when we focus a window
...
Otherwise clutter events don't have their source actor properly set
and we aren't able to determine the MetaWindow to which a given
keybinding applies.
https://bugzilla.gnome.org/show_bug.cgi?id=719724
2013-12-03 13:58:27 +01:00
Jasper St. Pierre
d44574f738
wayland-surface: Process damage even if the buffer didn't change
2013-11-26 12:32:41 -05:00
Jasper St. Pierre
a9424255a5
wayland-surface: Add support for subsurfaces
...
The state for a subsurface isn't double-buffered yet, though...
2013-11-25 18:33:03 -05:00
Jasper St. Pierre
5089a63d76
wayland-surface: Create the surface actor ourselves
...
Otherwise, we can't rely on a surface_actor being around to add
ourselves to...
2013-11-25 18:29:58 -05:00
Jasper St. Pierre
f9a2c64460
wayland-surface: Don't require a MetaWindow to process damage...
...
and ClutterActor will clip to the actor bounds, anyway...
2013-11-25 18:15:20 -05:00
Jasper St. Pierre
7841042a85
wayland-surface: Restructure code flow in wl_surface_attach a bit more...
2013-11-25 18:15:20 -05:00
Jasper St. Pierre
ea1b8cdc22
wayland-surface: Fix copy/paste typo
2013-11-25 18:15:19 -05:00
Jasper St. Pierre
52b48cfbef
wayland-surface: Return after posting errors back to the client
2013-11-25 18:15:03 -05:00
Jasper St. Pierre
304005e04f
wayland-surface: Replace MetaWindowActor with MetaSurfaceActor
...
Since subsurfaces won't have toplevel MetaWindowActors, we need to
use MetaSurfaceActor instead. These are embedded in the MetaWindowActor,
just like MetaShapedTexture was (in fact, MetaSurfaceActor now contains
a MetaShapedTexture)
2013-11-25 17:25:55 -05:00
Jasper St. Pierre
0ccef81789
wayland-surface: Rework flow control for wl_surface_commit
2013-11-25 17:25:46 -05:00
Jasper St. Pierre
4780f74a40
wayland-surface: Properly allow setting the cursor to a NULL buffer
2013-11-25 17:18:22 -05:00
Jasper St. Pierre
57866fb267
wayland-surface: Don't rewrite input/opaque regions if the client doesn't attach any
2013-11-25 17:18:22 -05:00
Jasper St. Pierre
6d639ac528
window: Support pinging Wayland surfaces as well
2013-11-21 14:24:04 -05:00
Rui Matos
8a3501ffe1
xwayland: Fix a couple of small leaks
...
https://bugzilla.gnome.org/show_bug.cgi?id=712833
2013-11-21 19:22:26 +01:00
Jasper St. Pierre
a37a8c6497
wayland-surface: Fix transient_for
...
It takes a wl_surface resource, not an xdg_shell_surface resource,
and the argument is allowed to be NULL.
2013-11-21 13:09:21 -05:00
Jasper St. Pierre
ebf6862a10
wayland-surface: Don't mark popup windows as override-redirect
2013-11-21 13:09:21 -05:00
Jasper St. Pierre
1c0e6f26e2
mutter-launch: Don't test the argument name to validate launching things
...
Somebody could do:
$ mv my-evil-program mutter-wayland
$ PATH=.:$PATH mutter-launch mutter-wayland
It's not secure, and it's hard to test with, so just drop it for now
We'll be relying on logind to hand us permissions in the future.
2013-11-20 17:07:03 -05:00
Jasper St. Pierre
f4fc498e65
wayland-surface: Properly destroy extension resources on the destroy request
...
Otherwise, the resource IDs will linger around and be destroyed again
on client close...
2013-11-19 23:34:03 -05:00
Jasper St. Pierre
a8632c2546
Revert "wayland-surface: Allow extension resources to be double-destroyed"
...
This reverts commit 2ebecc5370
.
2013-11-19 23:34:03 -05:00
Jasper St. Pierre
600a0f836f
keyboard: Don't send leave events to dying surfaces
2013-11-19 20:26:28 -05:00
Jasper St. Pierre
0ac142d39e
keyboard: Remove focus listener
2013-11-19 20:26:28 -05:00
Jasper St. Pierre
abd368be00
pointer: Don't send leave events to dying surfaces
...
It's invalid and will crash the client.
2013-11-19 20:26:03 -05:00
Jasper St. Pierre
a8ac2cc275
pointer: Remove focus listener
...
It's added too late to matter -- by the time we've destroyed the
resource, we've already repicked and re-set the focus.
2013-11-19 20:26:03 -05:00
Jasper St. Pierre
2f14b5cc3f
wayland: Set a log handler
...
To see error messages and such
2013-11-19 20:26:02 -05:00
Jasper St. Pierre
2930612e64
pointer: Remove dead and incorrect code
...
Now that we can never pick a destroying actor, we can remove these
bad asserts.
2013-11-19 19:35:34 -05:00
Jasper St. Pierre
2ebecc5370
wayland-surface: Allow extension resources to be double-destroyed
...
As they will be on shutdown... I'm not sure if this is a wayland-server
bug or not, but we should guard against it anyway.
2013-11-19 19:35:34 -05:00
Jasper St. Pierre
02144d17e9
wayland-surface: Fill in the maximized/fullscreen hints to the configure event
2013-11-19 19:35:34 -05:00
Jasper St. Pierre
594b15abf1
pointer: Fix crash when we have the pointer over nothing during a popup grab
2013-11-19 18:51:30 -05:00
Jasper St. Pierre
bbe3641844
wayland-surface: Add support for xdg_popup
2013-11-19 18:44:21 -05:00
Jasper St. Pierre
0cc5cf940b
wayland-surface: Remove some properties from the double-buffered state
...
Now that we can always set them on the MetaWindow...
2013-11-19 18:44:21 -05:00
Jasper St. Pierre
153d8efcf5
window: Create a backing MetaWindow for unmapped Wayland surfaces
...
We require a MetaWindow to properly implement some of the requests
for xdg_surface, so add a way to have an unmapped MetaWindow that
we can store properties on, that we later map when the client
attaches a buffer...
2013-11-19 17:48:19 -05:00
Jasper St. Pierre
be744775c1
wayland-surface: Support xdg_surface.destroy
...
Cool.
2013-11-19 17:48:19 -05:00
Jasper St. Pierre
5959457c73
wayland-surface: Embed MetaWaylandSurfaceExtension in MetaWaylandSurface
...
This makes it easier to support xdg_surface.destroy, which we're
going to add support for next commit...
2013-11-19 17:48:19 -05:00
Jasper St. Pierre
d945501be6
window: Remove width/height from meta_window_new_for_wayland
2013-11-19 15:37:33 -05:00
Jasper St. Pierre
9461c612de
wayland-surface: Only spew about set_buffer_scale if it's not 1
...
... to stop the GTK+ spam on my system.
2013-11-19 13:00:34 -05:00
Jasper St. Pierre
f0280a8868
wayland-surface: Allow setting a NULL buffer to effectively unmap
2013-11-19 12:47:50 -05:00
Jasper St. Pierre
a02d734243
window-actor: Move all buffer management and damage correction here
...
We want ShapedTexture to be a dumb actor that knows how to
pick/paint fairly easily, without any "platform knowledge", so to say...
2013-11-18 21:19:00 -05:00
Jasper St. Pierre
d96b053c9d
cursor-tracker: Use a sync methodology for the cursor image
...
Rather than have MetaWaylandSeat do all the state management itself,
put the split between the root cursor and the window cursor in the
cursor tracker itself. We'll expand this to add a "grab" cursor in
the next commit, allowing us to force a cursor on grab operations.
2013-11-18 19:25:47 -05:00
Jasper St. Pierre
1a88176cc0
keyboard: Fix surface focusing
...
Bad rebase...
2013-11-18 16:52:10 -05:00
Jasper St. Pierre
932e913d88
wayland-surface: Fix formatting
2013-11-14 21:49:51 -05:00
Jasper St. Pierre
b72315e27a
wayland-surface: Support xdg_surface_resize as well
2013-11-14 21:48:39 -05:00
Jasper St. Pierre
3c7cd1f38c
wayland-surface: Use begin_grab_op for move grabs
2013-11-14 21:34:20 -05:00
Rui Matos
63b9110f93
wayland: Update internal wayland state unconditionally
...
Things like idle times and the cursor position need to be updated even
if there's a mutter grab in effect.
https://bugzilla.gnome.org/show_bug.cgi?id=712247
2013-11-13 21:55:05 +01:00
Jasper St. Pierre
23ba3e527f
wayland: Support alternative focus modes like focus-follows-mouse
...
Use the existing code for MetaWindow focus-follows-mouse to support this.
2013-11-12 16:53:15 -05:00
Jasper St. Pierre
648639fffe
display: Invoke Wayland from the Grand Central Station callback
2013-11-12 16:53:15 -05:00
Jasper St. Pierre
6cc014a941
wayland: Move cursor tracker handling code to meta_wayland_seat_handle_event
2013-11-12 16:53:14 -05:00
Jasper St. Pierre
b7b95123ed
wayland: Drop raise on click too
...
We'll handle this through GCD as well.
2013-11-12 16:53:14 -05:00
Jasper St. Pierre
153463790a
wayland: Drop focus on click
...
The native raise-on-click works with Wayland clients through the standard
Grand Central Station event handling, with MetaWindow.
2013-11-12 16:53:14 -05:00
Jasper St. Pierre
875bbec949
wayland: Drop old hack to synthesize motion events
...
mutter now uses Clutter events for the source of its drag support, so
we don't need to synthesize X11 events anymore.
2013-11-12 16:53:14 -05:00