Kristian Høgsberg
fc713dffb3
wayland: Pass most recent button press serial to set_popup_surface
2013-03-27 13:39:58 -04:00
Jan Arne Petersen
8d884bb4fb
wayland: Add support for custom surfaces
...
Allow to set a GdkWindow to use a custom surface instead of a
wl_shell_surface. It allows to register the surface as a custom type
with some Wayland interface.
https://bugzilla.gnome.org/show_bug.cgi?id=695861
2013-03-24 14:31:51 -04:00
Thomas Hindoe Paaboel Andersen
c5145421af
wayland: complete cursor_for_pixbuf
...
Finishes the implementation for loading cursors from pixbufs.
Gnome bug #696223
2013-03-21 18:00:23 -04:00
Rob Bradford
1b15b9e1bc
wayland: Preserve dimensions separately for fullscreen / maximised case
...
Use separate fields for saving the window dimensions prior to fullscreening
and maximisation. Then use those fields to restore the window dimensions from.
2013-03-19 19:52:49 +00:00
Scott Moreau
1be7f3dee9
wayland: Implement gdk_window_[un]maximize
...
This allows the buttons in the decorations to maximise the window.
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=695945
Signed-off-by: Rob Bradford <rob@linux.intel.com>
2013-03-18 15:51:39 +00:00
Scott Moreau
0d2c461720
wayland: Always attach buffer before committing
...
With recent changes in attach semantics, we always need to attach before
committing. Without this changes to the window contents to not get reflected
in the content of the surface.
Signed-off-by: Rob Bradford <rob@linux.intel.com>
2013-03-18 12:01:55 +00:00
Scott Moreau
d8507a3a83
wayland: Remove unused wayland-egl header
...
This was left over from the work done in commit: d4a9863
Signed-off-by: Rob Bradford <rob@linux.intel.com>
2013-03-18 12:01:55 +00:00
Scott Moreau
89b1947631
wayland: Set title on shell surfaces to window title
...
We currently use this information to display the title
string in the window list of the desktop shell.
Signed-off-by: Rob Bradford <rob@linux.intel.com>
2013-03-18 12:01:55 +00:00
Rob Bradford
2145907cfe
wayland: Synthesize fullscreen window state change
2013-02-19 13:11:12 +00:00
Thomas Wood
fbc0572068
wayland: attempt to determine the possible parent surface for popups
...
Use the surface beneath the device that created the grab as the transient
parent for the popup surfaces.
https://bugzilla.gnome.org/show_bug.cgi?id=693913
2013-02-18 19:38:21 -05:00
Thomas Wood
ec43a1f72a
wayland: look further through the hierarchy for the surface with the grab
...
https://bugzilla.gnome.org/show_bug.cgi?id=693912
2013-02-18 19:38:21 -05:00
Owen W. Taylor
645b5f398d
Reimplement _NET_WM_SYNC_REQUEST inside X11 backend
...
Deprecate gdk_window_enable_synchronized_configure() and
gdk_window_configure_done() and make them no-ops. Implement the
handling of _NET_WM_SYNC_REQUEST in terms of the frame cycle -
we know that all processing will be finished in the next frame
cycle after the ConfigureNotify is received.
2013-02-14 17:19:51 -05:00
Thomas Wood
a8862727c9
wayland: set the "transient inactive" flag on tooltip surfaces
...
This prevents the tooltip surfaces from taking the focus away from the
parent surface.
https://bugzilla.gnome.org/show_bug.cgi?id=693313
2013-02-12 15:30:56 +00:00
Jan Arne Petersen
e437016a65
wayland: Make GdkWaylandDevice public
...
Rename GdkDeviceCore to GdkWaylandDevice and export it properly in a
header file. Add public accessors for wl_seat, wl_pointer and
wl_keyboard.
https://bugzilla.gnome.org/show_bug.cgi?id=692823
2013-02-01 23:03:17 -05:00
Rob Bradford
a687cbaae8
wayland: Implement gdk_window_fullscreen & gdk_window_unfullscreen
2013-01-29 18:42:44 +00:00
Jan Arne Petersen
01c0dd9182
wayland: Make GdkWaylandWindow public
...
Allows to access Wayland specific window information like wl_surface and
wl_shell_surface.
Add gdk_wayland_window_get_wl_surface for getting the Wayland wl_surface
and gdk_wayland_window_get_wl_shell_surface for getting the Wayland
wl_shell_surface.
2013-01-23 22:26:27 +01:00
Rob Bradford
d4a9863e19
wayland: Drop code to use cairo-gl for rendering
...
The APIs that this code relied upon were removed in Wayland 1.0 and as such
this code has been broken since then.
2013-01-18 08:56:47 +00:00
Scott Moreau
e5b88f1bdd
wayland: Update to reflect protocol changes
2012-10-19 12:21:35 +01:00
Rob Bradford
7c51d67e7c
wayland: Fallback to setting transient windows if no seat available
...
If we don't have a wl_seat - because a grab hasn't been initialised by GTK+
then fallback to making the shell surface transient to the parent rather than
a popup surface.
2012-07-18 16:16:56 +01:00
Rob Bradford
8a39d2269e
wayland: Don't compare against GdkWindowTypeHint as a bitmask
...
The hint was being compared as a bitmask which means types that were not in
the list were being erroneously matched
2012-07-18 16:08:36 +01:00
Rob Bradford
91a11ee277
wayland: Ensure we destroy the shell surface when destroying the surface
...
Otherwise we can try and use an invalid object that the compositor has already
deleted.
2012-07-12 15:58:38 +01:00
Rob Bradford
8bd1478596
wayland: wl_shell_surface_set_popup requires a valid seat and serial
...
If we don't have our own grab then get the grab from the parent.
2012-07-12 15:58:38 +01:00
Rob Bradford
310fd40357
wayland: Protocol update: wl_shell_surface_resize and _move take serials
2012-07-12 15:58:38 +01:00
Rob Bradford
9f039e5b74
wayland: Save the serial number for the ping event
2012-07-12 15:58:38 +01:00
Rob Bradford
33b9f8e1b8
wayland: Protocol change: wl_buffer_damage
...
wl_buffer_damage is no longer necessary - it is sufficient to damage the
surface that the buffer is attached to instead.
2012-07-12 15:58:38 +01:00
Rob Bradford
6cdb75256e
wayland: Protocol change: configure event
...
The 'time' value has been removed.
2012-07-12 15:58:38 +01:00
Rob Bradford
0d1ae2e0dd
wayland: Protocol change: wl_shell_surface_* take surfaces for parents
...
These functions used to take shell_surface objects and now take surface
objects the parents.
2012-07-12 15:58:38 +01:00
Rob Bradford
8d7869ecbb
wayland: Remove unused variable
2012-07-12 15:58:38 +01:00
Rob Bradford
f20ac38315
wayland: Port to SHM pool allocation mechanism
2012-07-12 15:58:38 +01:00
Rob Bradford
3eb0b195ed
wayland: Port to new input protocol mechanism
...
This replaces the wl_input_device with wl_pointer, wl_keyboard, wl_touch all
tied together under a wl_seat.
This is quite a radical change in protocol and for now keyboard handling is
disabled.
2012-07-12 15:58:38 +01:00
Rob Bradford
936ceb84b5
wayland: Protocol change: ping event on shell_surface
2012-07-12 15:58:37 +01:00
Rob Bradford
af8e4ee8e7
wayland: Calculate window position offset to give emulated root coordinates
...
This allows combo box popup windows to appear in the correct place. This is a
workaround emulating root coordinates by calculating the offset for a chain
of windows that that are relative to each other.
2012-04-25 14:36:08 +01:00
Rob Bradford
568b310eb3
wayland: Only update position if the with_move flag is set
...
This was causing the combobox popup to be moved to (0,0) when just the
size was asserted.
2012-04-25 12:00:40 +01:00
Rob Bradford
1aa2a7f821
wayland: Improve the error reporting in the Cairo GL surface code path
2012-04-19 17:59:09 +01:00
Rob Bradford
b5845514ec
wayland: Improve error messages during SHM buffer creation
...
Use g_critical rather than fprintf and and also grab the error messages from
errno and from Cairo
2012-04-19 17:58:59 +01:00
Rob Bradford
fc58ff1e6a
wayland: Rename GdkDisplayWayland to GdkWaylandDisplay
...
This makes it consistent with the functions in the vtable and also consistent
with other backends.
2012-04-17 14:11:31 +01:00
Rob Bradford
71ca53993e
wayland: Use an ARGB buffer for the Cairo and SHM surface
2012-04-16 15:09:14 +01:00
Rob Bradford
cddfcf1418
wayland: Force an expose for the whole area when scrolling
2012-04-16 15:09:14 +01:00
Rob Bradford
cdf5c2af62
wayland: Add support for rendering into an SHM buffer with Cairo image backend
...
The first version of this change included a bug that meant that if you don't
compile for any other backend then it wouldn't search for cairo. Credit for
identifying the bug goes to darxus@chaosreigns.com .
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=672361
2012-04-16 15:09:14 +01:00
Rob Bradford
6977ea0bd1
wayland: Move the buffer creation to the cairo surface creation
2012-04-16 14:12:51 +01:00
Rob Bradford
d9ca1a8636
wayland: Move the finalize function to allow a clear logical block of code
2012-04-16 14:12:51 +01:00
Rob Bradford
a8d03c9970
wayland: Remove unused member from struct
2012-04-16 14:12:51 +01:00
Rob Bradford
c6b0e91e87
wayland: Add some useful comments explaining the cairo surface behaviour
2012-03-06 21:24:41 +00:00
Rob Bradford
ff2acecac6
wayland: Add NULL warning check to _gdk_wayland_window_set_device_grabbed
2012-03-06 21:24:41 +00:00
Rob Bradford
8db9ba9e43
wayland: Categorise menus, popups and combo boxes as Wayland popup windows
...
Once we've made them popup windows we must also implement the popup_done event
handler on the shell surface listener. The best we can currently do is to hide
the window. This will then signal up to GTK which could then deactivate the
appropriate menu (see https://bugzilla.gnome.org/show_bug.cgi?id=670881 )
2012-02-27 17:15:12 +00:00
Rob Bradford
bdca0520e6
wayland: Store the device that does a grab for a window on the window
...
This allows us to get the device if we need to make the window a popup. This
relies on the side effect that GTK calls into GDK to take a grab before the
popup window is shown.
2012-02-27 17:15:12 +00:00
Rob Bradford
161b9d2066
wayland: Call wl_shell_surface_set_{popup,transient,toplevel} before attach
...
The requests only have an effect if you call them before the buffer is
attached to the surface.
2012-02-27 17:15:12 +00:00
Javier Jardón
9d0febc9a6
Change FSF Address
2012-02-27 17:06:11 +00:00
Kristian Høgsberg
12e661c801
wayland: Fix return type from gdk_wayland_window_configure()
...
Should be void. Copy and paste error.
2012-01-30 09:07:24 -05:00
Kristian Høgsberg
aae9a71986
wayland: Also synthesize a configure event from gdk_window_wayland_move_resize
2012-01-29 07:32:44 -05:00
Kristian Høgsberg
b9190c7fe9
wayland: Destroy shell surface as we destroy the surface
2012-01-19 09:57:43 -05:00
Rob Bradford
dba9c2e5a7
wayland: Adapt move_resize vfunc implementation to match semantics
...
Callers of this function were passing in -1, -1 for the width and height if
they just wanted the window moving - rather than the size changing. We need to
respect that behaviour and don't try and set the width/height to those
dimensions.
Now pop-up windows (ala combo-boxes) work!
2012-01-17 15:05:03 +00:00
Kristian Høgsberg
7328cc73aa
wayland: Set GdkWindow focused state based on keyboard focus
2012-01-16 15:36:28 -05:00
Kristian Høgsberg
0e10fae36c
wayland: Set surface type based on GdkWindow hint
2012-01-13 09:50:38 -05:00
Rob Bradford
7f404a1fee
wayland: Remove unused variable
2012-01-12 13:48:46 +00:00
Rob Bradford
1f023cd2b1
wayland: Constrain the window configure requests to the window's geometry
...
When we receive a configure event from Wayland telling us to resize our
surface we check against the geometry constraints for the window to ensure we
do not resize below the minimum and maximum limits.
2012-01-09 17:19:34 +00:00
Rob Bradford
4107ef0b93
wayland: Implement set_geometry_hints vfunc
...
Our trivial implementation simply saves the passed in parameters into the
Wayland private data structure.
2012-01-09 17:19:34 +00:00
Rob Bradford
eedd1ec92f
wayland: Make the resize and move functions use gdk_device_ungrab
...
Now that grab and ungrab vfuncs are implemented on GdkDevice then we can use
gdk_device_ungrab to break the implicit grab created by the button press that
triggered the resize and move.
2012-01-09 16:00:14 +00:00
Rob Bradford
47146dacff
wayland: Break an implicit grab when asking to be resized
...
An implicit grab is created inside GTK+ when the button is pressed down on a
window. The semantics of wl_shell_surface_resize means that you don't get a
corresponding release event that would ordinarily break the implicit grab. So
we must do it as part of the resize request.
2012-01-06 16:58:06 +00:00
Rob Bradford
b917c2f027
wayland: Port from wl_shell to wl_surface_shell
...
Previously all the commands that acted on the shell took the surface that was
to be acted on as parameter. Now we retrieve an object from the shell that
represents its state for the surface. With that wl_shell_surface object we can
then call methods on that.
Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
2011-12-05 16:20:39 +00:00
Kristian Høgsberg
0dd1f7edbc
wayland: Update to recent API changes
2011-12-02 05:41:43 -05:00
Matthias Clasen
3b152df48a
Wayland: Adapt to GdkWindowImpl api change
2011-11-05 01:12:26 -04:00
Michael Natterer
616afadd78
gdk: s/gdk_cursor_unref/g_object_unref/
2011-10-15 14:35:28 +02:00
Daniel Nicoara
99f489b5ef
wayland: Acquire cairo device during operations that need the GL context
2011-08-22 16:32:06 -04:00
Scott Moreau
24f1132671
Track wayland protocol changes.
2011-06-23 07:06:35 -04:00
Kristian Høgsberg
2ebdcf5f37
wayland: Track wayland API changes
2011-05-08 13:20:11 -04:00
Kristian Høgsberg
b5134619a0
wayland: Map transient surfaces as such
2011-02-11 17:20:14 -05:00
Kristian Høgsberg
152dca40d3
wayland: Remove window cursor hash
2011-02-11 10:06:56 -05:00
Kristian Høgsberg
6eac07d4f6
wayland: Trim some unused struct fields
2011-02-11 09:50:10 -05:00
Kristian Høgsberg
f2ac8c7ce3
wayland: Drop empty gdkscreen-wayland.h
2011-02-10 23:00:12 -05:00
Kristian Høgsberg
4ca3e53a3e
wayland: Drop GdkToplevelWayland and gdkwindow-wayland.h
2011-02-10 22:51:23 -05:00
Kristian Høgsberg
cd91551075
wayland: Fix resizing from other corners than just botton-right
2011-02-10 22:37:51 -05:00
Kristian Høgsberg
cfb9c840e5
wayland: Remove some fprintf debug messages
2011-02-10 22:22:42 -05:00
Kristian Høgsberg
6d20bcb848
wayland: Fix hiding and withdrawing surfaces
2011-02-10 22:21:08 -05:00
Kristian Høgsberg
22b9132ae5
wayland: Keep a reference to the surface we last attached
2011-02-10 22:04:26 -05:00
Kristian Høgsberg
4621c6476c
wayland: Send visibility event after map
2011-02-10 11:02:15 -05:00
Kristian Høgsberg
c36dfccc64
wayland: Consolidate device and devicemanager implementation
2011-02-09 15:27:08 -05:00
Kristian Høgsberg
3ef3433511
wayland: Support setting cursors
...
And a handful unrelated cleanups. Still doesn't really have an answer
for cursor themes.
2011-02-09 14:48:31 -05:00
Kristian Høgsberg
546069f434
wayland: Use wayland-egl
2011-02-08 16:02:22 -05:00
Kristian Høgsberg
541d5172dd
Track 2.99.3 API changes
2011-02-08 08:12:59 -05:00
Kristian Høgsberg
1149c342bf
Clean up buffer handling a bit
2011-02-05 16:11:55 -05:00
Kristian Høgsberg
846e2c0eee
Remove leftover _gdk_windowing_set_cairo_surface_size()
2011-02-05 16:11:55 -05:00
Kristian Høgsberg
799279daf0
Invalidate window on configure
...
This will trigger a repaint of the window, but it may be more efficient
to just copy back the old surface contents and let gtk+ just update the
changed parts.
2011-02-05 16:11:54 -05:00
Kristian Høgsberg
56de871bf3
Create and attach buffer at process_updates time
...
This way we don't try to show the buffer until we've handle the initial
expose.
2011-02-05 16:11:54 -05:00
Kristian Høgsberg
7bbc158217
Remove copy of grab enum that's now in wayland core
2011-02-05 16:11:54 -05:00
Kristian Høgsberg
590f3dfa1f
Add Wayland backend
2011-02-05 16:11:54 -05:00