[gtk+] gdk: Add GDK_WINDOW_SUBSURFACE window type
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] gdk: Add GDK_WINDOW_SUBSURFACE window type
- Date: Tue, 26 Aug 2014 11:00:45 +0000 (UTC)
commit 84414f038123c437c25bb762ae087e5450a31366
Author: Carlos Garnacho <carlosg gnome org>
Date: Thu Aug 21 17:26:18 2014 +0200
gdk: Add GDK_WINDOW_SUBSURFACE window type
This window type can only be used on wayland so far, so NULL is returned
if it's attempted to be used on any other windowing backend.
https://bugzilla.gnome.org/show_bug.cgi?id=729215
gdk/gdkwindow.c | 13 +++++++++++++
gdk/gdkwindow.h | 6 +++++-
2 files changed, 18 insertions(+), 1 deletions(-)
---
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 04e3d0a..f7a4531 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -45,6 +45,10 @@
/* for the use of round() */
#include "fallback-c89.c"
+#ifdef GDK_WINDOWING_WAYLAND
+#include "wayland/gdkwayland.h"
+#endif
+
#undef DEBUG_WINDOW_PRINTING
@@ -1294,6 +1298,15 @@ gdk_window_new (GdkWindow *parent,
g_warning (G_STRLOC "Toplevel windows must be created as children of\n"
"of a window of type GDK_WINDOW_ROOT or GDK_WINDOW_FOREIGN");
break;
+ case GDK_WINDOW_SUBSURFACE:
+#ifdef GDK_WINDOWING_WAYLAND
+ if (!GDK_IS_WAYLAND_DISPLAY (display))
+ {
+ g_warning (G_STRLOC "Subsurface windows can only be used on Wayland");
+ return NULL;
+ }
+#endif
+ break;
case GDK_WINDOW_CHILD:
break;
default:
diff --git a/gdk/gdkwindow.h b/gdk/gdkwindow.h
index 23a317a..c7ec15c 100644
--- a/gdk/gdkwindow.h
+++ b/gdk/gdkwindow.h
@@ -68,6 +68,9 @@ typedef enum
* @GDK_WINDOW_FOREIGN: foreign window (see gdk_window_foreign_new())
* @GDK_WINDOW_OFFSCREEN: offscreen window (see
* [Offscreen Windows][OFFSCREEN-WINDOWS]). Since 2.18
+ * @GDK_WINDOW_SUBSURFACE: subsurface-based window; This window is visually
+ * tied to a toplevel, and is moved/stacked with it. Currently this window
+ * type is only implemented in Wayland. Since 3.14
*
* Describes the kind of window.
*/
@@ -78,7 +81,8 @@ typedef enum
GDK_WINDOW_CHILD,
GDK_WINDOW_TEMP,
GDK_WINDOW_FOREIGN,
- GDK_WINDOW_OFFSCREEN
+ GDK_WINDOW_OFFSCREEN,
+ GDK_WINDOW_SUBSURFACE
} GdkWindowType;
/**
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]