8905bd2280
window-x11: Move meta_window_new to window-x11.c and rename
2014-02-01 19:19:22 -05:00
2f6f0f252c
wayland: Simply store a MetaWaylandBuffer
...
There's no need for the MetaWaylandBufferReference abstraction...
2014-02-01 17:55:16 -05:00
13651949ed
wayland-seat: Rename sprite to cursor_surface
2014-02-01 17:55:03 -05:00
92e36e7076
wayland-surface: Attach the buffer to a surface, even if it doesn't have a role
...
Currently, set_cursor isn't properly working. Often, the requests look
like this:
cursor_surface = wl_compositor.create_surface()
cursor_buffer = create_cursor_buffer()
cursor_surface.attach(cursor_buffer, 0, 0)
cursor_surface.commit()
wl_pointer.set_cursor(cursor_surface, 7, 14)
But since the surface doesn't "have a role" when the commit comes in,
we ignore it, and don't do anything with the pending buffer. When
set_cursor is called, however, we don't immediately update anything
since it doesn't have a buffer.
This effectively means that set_cursor has unpredictable side effects.
Weston's toy toolkit reuses the same surface for every buffer, so it
only fails the first time. In clients that use a new surface for every
cursor sprite, the cursor is effectively invisible.
To solve this, change the code to always set the buffer for a surface,
even if it doesn't have any real role.
2014-02-01 17:24:13 -05:00
d74796ee80
wayland-surface: Use the same commit() when commiting subsurface
...
Refactor our commit() implementation out of wl_surface_commit(),
and pass the double-buffered state around to all our implementation
methods. This allows us to drop a few lines destroying and
reinitializing list of frame callbacks. This is a big cleanup for
the next commit, though.
2014-02-01 16:44:18 -05:00
3e35cac67a
wayland-surface: Repick after cleaning up everything else
...
Just a code cleanup to keep all the freeing code together.
2014-02-01 16:29:36 -05:00
1f7a6bf845
wayland-surface: Don't clean up the buffer_destroy_listener twice
...
double_buffered_state_destroy will do this for us.
2014-02-01 16:29:09 -05:00
365442c1ff
wayland-surface: Fix typo
2014-02-01 16:19:54 -05:00
a09fa3b0e4
wayland: Clean up the parallels between creating callbacks and surface extensions
2014-01-31 16:40:47 -05:00
225e20a898
wayland: Remove superfluous "wayland_" from arguments
2014-01-31 11:38:37 -05:00
4f4b1bfc37
wayland: Support wl_subsurface.set_sync/set_desync
...
Implement support for synchronous subsurfaces commits. This means that
the client can, by calling wl_subsurface.set_sync, cause its surface
state to be commited not until its parent commits.
This will mean there will be will potentially be one more surface state
(regions, buffer) at the same time: the active surface state, the mutable
pending surface state, and the immutable surface state that was pending
on last surface commit.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com >
https://bugzilla.gnome.org/show_bug.cgi?id=705502
2014-01-30 15:13:44 -05:00
9348c9bd4b
wayland: Make wl_subsurface.place_(above|below) properly synchronized
...
The placement set by either wl_subsurface.place_above or
wl_subsurface.place_below should be applied when the parent surface
invokes wl_surface.commit.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com >
https://bugzilla.gnome.org/show_bug.cgi?id=705502
2014-01-30 15:13:43 -05:00
16de7f66fb
wayland: Make wl_subsurface.set_position properly synchronized
...
The position set by wl_subsurface.set_position should be applied when
the parent surface invokes wl_surface.commit.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com >
https://bugzilla.gnome.org/show_bug.cgi?id=705502
2014-01-30 19:12:06 +01:00
799c27484d
wayland: Report error when trying to stack subsurface incorrectly
...
Don't allow a client to stack a subsurface next to a subsurface with
another parent, or to a non-parent non-subsurface surface.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com >
https://bugzilla.gnome.org/show_bug.cgi?id=705502
2014-01-30 19:12:06 +01:00
20545941fa
Revert unintentional merge from wip/surface-content to wayland
...
This reverts a lot of commits.
2014-01-22 09:18:13 -05:00
e6391c2896
surface content
2014-01-21 19:01:34 -05:00
a0fe392665
surface-actor: Move unobscured_region processing here
...
https://bugzilla.gnome.org/show_bug.cgi?id=720631
2014-01-21 19:01:34 -05:00
a3de799939
wayland-surface: Remove inappropriate meta-weston-launch.h include
2013-12-31 19:20:58 -05:00
7009d1e470
wayland: Update to latest xdg-shell
...
We don't use the new maximize / fullscreen request system yet, leading
to broken maximization / fullscreen. This will be fixed in a followup.
2013-12-17 15:04:16 -05:00
1be117e430
wayland-surface: Properly set the window type
...
We need to make sure to call meta_window_type_changed after updating
the type...
2013-12-04 10:41:58 -05:00
fe26cb5989
wayland-surface: Unmanage the window when destroying xdg_surface/xdg_popup
...
Also, unparent the actor when destroying a subsurface, as well, and
don't free the surface when we destroy the MetaWindow.
2013-12-03 11:45:50 -05:00
1e211722c7
wayland-surface: Set popups transient to their parents
2013-12-03 11:45:50 -05:00
d44574f738
wayland-surface: Process damage even if the buffer didn't change
2013-11-26 12:32:41 -05:00
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
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
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
7841042a85
wayland-surface: Restructure code flow in wl_surface_attach a bit more...
2013-11-25 18:15:20 -05:00
ea1b8cdc22
wayland-surface: Fix copy/paste typo
2013-11-25 18:15:19 -05:00
52b48cfbef
wayland-surface: Return after posting errors back to the client
2013-11-25 18:15:03 -05:00
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
0ccef81789
wayland-surface: Rework flow control for wl_surface_commit
2013-11-25 17:25:46 -05:00
4780f74a40
wayland-surface: Properly allow setting the cursor to a NULL buffer
2013-11-25 17:18:22 -05:00
57866fb267
wayland-surface: Don't rewrite input/opaque regions if the client doesn't attach any
2013-11-25 17:18:22 -05:00
6d639ac528
window: Support pinging Wayland surfaces as well
2013-11-21 14:24:04 -05:00
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
ebf6862a10
wayland-surface: Don't mark popup windows as override-redirect
2013-11-21 13:09:21 -05:00
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
a8632c2546
Revert "wayland-surface: Allow extension resources to be double-destroyed"
...
This reverts commit 2ebecc5370
.
2013-11-19 23:34:03 -05:00
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
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
02144d17e9
wayland-surface: Fill in the maximized/fullscreen hints to the configure event
2013-11-19 19:35:34 -05:00
bbe3641844
wayland-surface: Add support for xdg_popup
2013-11-19 18:44:21 -05:00
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
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
be744775c1
wayland-surface: Support xdg_surface.destroy
...
Cool.
2013-11-19 17:48:19 -05:00
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
d945501be6
window: Remove width/height from meta_window_new_for_wayland
2013-11-19 15:37:33 -05:00
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
f0280a8868
wayland-surface: Allow setting a NULL buffer to effectively unmap
2013-11-19 12:47:50 -05:00
932e913d88
wayland-surface: Fix formatting
2013-11-14 21:49:51 -05:00