forked from AuroraMiddleware/gtk
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
This commit is contained in:
parent
d288a134a4
commit
ca77de055b
@ -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)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user