[gtk/present-toplevel-2: 60/71] toplevel: Add wm properties



commit b0bf51abc8822a7513521d0647924e335c62a14f
Author: Matthias Clasen <mclasen redhat com>
Date:   Tue Mar 3 12:19:24 2020 -0800

    toplevel: Add wm properties
    
    Add properties for decorations and functions.

 gdk/gdktoplevel.c        | 32 ++++++++++++++++++++++++++++++++
 gdk/gdktoplevel.h        |  8 ++++++++
 gdk/gdktoplevelprivate.h |  2 ++
 3 files changed, 42 insertions(+)
---
diff --git a/gdk/gdktoplevel.c b/gdk/gdktoplevel.c
index f0f00eeb6b..870a658fe9 100644
--- a/gdk/gdktoplevel.c
+++ b/gdk/gdktoplevel.c
@@ -139,6 +139,18 @@ gdk_toplevel_default_init (GdkToplevelInterface *iface)
                             "Whether the surface should receive keyboard focus on map",
                             TRUE,
                             G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY));
+  g_object_interface_install_property (iface,
+      g_param_spec_flags ("decorations",
+                          "Decorations",
+                          "Decorations",
+                          GDK_TYPE_WM_DECORATION, 0,
+                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY));
+  g_object_interface_install_property (iface,
+      g_param_spec_flags ("functions",
+                          "Functions",
+                          "Functions",
+                          GDK_TYPE_WM_FUNCTION, 0,
+                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY));
 }
 
 guint
@@ -155,6 +167,8 @@ gdk_toplevel_install_properties (GObjectClass *object_class,
   g_object_class_override_property (object_class, first_prop + GDK_TOPLEVEL_PROP_KEEP_BELOW, "keep-below");
   g_object_class_override_property (object_class, first_prop + GDK_TOPLEVEL_PROP_ACCEPT_FOCUS, 
"accept-focus");
   g_object_class_override_property (object_class, first_prop + GDK_TOPLEVEL_PROP_FOCUS_ON_MAP, 
"focus-on-map");
+  g_object_class_override_property (object_class, first_prop + GDK_TOPLEVEL_PROP_DECORATIONS, "decorations");
+  g_object_class_override_property (object_class, first_prop + GDK_TOPLEVEL_PROP_FUNCTIONS, "functions");
 
   return GDK_TOPLEVEL_NUM_PROPERTIES;
 }
@@ -452,3 +466,21 @@ gdk_toplevel_set_focus_on_map (GdkToplevel *toplevel,
 
   g_object_set (toplevel, "focus-on-map", focus_on_map, NULL);
 }
+
+void
+gdk_toplevel_set_decorations (GdkToplevel     *toplevel,
+                              GdkWMDecoration  decorations)
+{
+  g_return_if_fail (GDK_IS_TOPLEVEL (toplevel));
+
+  g_object_set (toplevel, "decorations", decorations, NULL);
+}
+
+void
+gdk_toplevel_set_functions (GdkToplevel   *toplevel,
+                            GdkWMFunction  functions)
+{
+  g_return_if_fail (GDK_IS_TOPLEVEL (toplevel));
+
+  g_object_set (toplevel, "functions", functions, NULL);
+}
diff --git a/gdk/gdktoplevel.h b/gdk/gdktoplevel.h
index 871dbe2ab3..55a4c3f62e 100644
--- a/gdk/gdktoplevel.h
+++ b/gdk/gdktoplevel.h
@@ -91,6 +91,14 @@ void          gdk_toplevel_set_accept_focus      (GdkToplevel      *toplevel,
 GDK_AVAILABLE_IN_ALL
 void          gdk_toplevel_set_focus_on_map      (GdkToplevel      *toplevel,
                                                   gboolean          focus_on_map);
+
+GDK_AVAILABLE_IN_ALL
+void          gdk_toplevel_set_decorations       (GdkToplevel      *toplevel,
+                                                  GdkWMDecoration   decorations);
+
+GDK_AVAILABLE_IN_ALL
+void          gdk_toplevel_set_functions         (GdkToplevel      *toplevel,
+                                                  GdkWMFunction     functions);
 G_END_DECLS
 
 #endif /* __GDK_TOPLEVEL_H__ */
diff --git a/gdk/gdktoplevelprivate.h b/gdk/gdktoplevelprivate.h
index 7460ee258f..bbd7c94c4f 100644
--- a/gdk/gdktoplevelprivate.h
+++ b/gdk/gdktoplevelprivate.h
@@ -33,6 +33,8 @@ typedef enum {
   GDK_TOPLEVEL_PROP_KEEP_BELOW,
   GDK_TOPLEVEL_PROP_ACCEPT_FOCUS,
   GDK_TOPLEVEL_PROP_FOCUS_ON_MAP,
+  GDK_TOPLEVEL_PROP_DECORATIONS,
+  GDK_TOPLEVEL_PROP_FUNCTIONS,
   GDK_TOPLEVEL_NUM_PROPERTIES
 } GdkToplevelProperties;
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]