Commit ca77de05 authored by Olivier Fourdan's avatar Olivier Fourdan

wayland: Add API to retrieve the Wayland output

In Wayland, surfaces get an enter/leave notification each time they
enter or leave an output.

Add an API to GdkWaylandWindow to retrieve the output the window has
last entered.

https://bugzilla.gnome.org/show_bug.cgi?id=766566
parent d288a134
......@@ -1245,6 +1245,7 @@ gdk_wayland_display_get_wl_display
gdk_wayland_display_get_xdg_shell
gdk_wayland_window_get_wl_surface
gdk_wayland_window_set_use_custom_surface
gdk_wayland_window_get_wl_output
<SUBSECTION Standard>
GDK_TYPE_WAYLAND_DEVICE
......
......@@ -59,6 +59,9 @@ void gdk_wayland_window_set_dbus_properties_libgtk_only (Gdk
const char *window_object_path,
const char *application_object_path,
const char *unique_bus_name);
GDK_AVAILABLE_IN_3_22
struct wl_output *gdk_wayland_window_get_wl_output (GdkWindow *window);
G_END_DECLS
......
......@@ -2954,6 +2954,32 @@ gdk_wayland_window_get_wl_surface (GdkWindow *window)
return GDK_WINDOW_IMPL_WAYLAND (window->impl)->display_server.wl_surface;
}
/**
* gdk_wayland_window_get_wl_output:
* @window: (type GdkWaylandWindow): a #GdkWindow
*
* Returns the Wayland output a #GdkWindow has last entered.
*
* Returns: (transfer none): a Wayland wl_output or NULL if the #GdkWindow
* is not associated with any Wayland wl_output.
*
* Since: 3.22
*/
struct wl_output *
gdk_wayland_window_get_wl_output (GdkWindow *window)
{
GdkWindowImplWayland *impl;
g_return_val_if_fail (GDK_IS_WAYLAND_WINDOW (window), NULL);
impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
/* We pick the head of the list as this is the last entered output */
if (impl->display_server.outputs)
return (struct wl_output *) impl->display_server.outputs->data;
return NULL;
}
static struct wl_egl_window *
gdk_wayland_window_get_wl_egl_window (GdkWindow *window)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment