[gtk+/wip/gbsneto/edge-constraints: 3/5] wayland: consider edge constraints in surface configuration



commit 65cd23f46d513b98f7642f1414c49ad11c243833
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Thu Aug 17 00:35:52 2017 -0300

    wayland: consider edge constraints in surface configuration
    
    Now that GTK windows have the ability to properly handle
    per-edge tiling constraints, this patch extends GTK's
    internal Wayland protocol to have a proper enum with the
    relevant edge data.
    
    Once this approach is validated, we can think of upstreaming
    this work as an official Wayland protocol extension.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=783669

 gdk/wayland/gdkwindow-wayland.c    |   24 ++++++++++++++++++++++++
 gdk/wayland/protocol/gtk-shell.xml |   11 +++++++++++
 2 files changed, 35 insertions(+), 0 deletions(-)
---
diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c
index c6ebe53..4b8229a 100644
--- a/gdk/wayland/gdkwindow-wayland.c
+++ b/gdk/wayland/gdkwindow-wayland.c
@@ -2962,6 +2962,30 @@ gtk_surface_configure (void                *data,
         case GTK_SURFACE1_STATE_TILED:
           new_state |= GDK_WINDOW_STATE_TILED;
           break;
+        case GTK_SURFACE1_EDGE_CONSTRAINT_TOP_TILED:
+          new_state |= GDK_WINDOW_STATE_TOP_TILED;
+          break;
+        case GTK_SURFACE1_EDGE_CONSTRAINT_TOP_RESIZABLE:
+          new_state |= GDK_WINDOW_STATE_TOP_RESIZABLE;
+          break;
+        case GTK_SURFACE1_EDGE_CONSTRAINT_RIGHT_TILED:
+          new_state |= GDK_WINDOW_STATE_RIGHT_TILED;
+          break;
+        case GTK_SURFACE1_EDGE_CONSTRAINT_RIGHT_RESIZABLE:
+          new_state |= GDK_WINDOW_STATE_TOP_TILED;
+          break;
+        case GTK_SURFACE1_EDGE_CONSTRAINT_BOTTOM_TILED:
+          new_state |= GDK_WINDOW_STATE_BOTTOM_TILED;
+          break;
+        case GTK_SURFACE1_EDGE_CONSTRAINT_BOTTOM_RESIZABLE:
+          new_state |= GDK_WINDOW_STATE_BOTTOM_RESIZABLE;
+          break;
+        case GTK_SURFACE1_EDGE_CONSTRAINT_LEFT_TILED:
+          new_state |= GDK_WINDOW_STATE_LEFT_TILED;
+          break;
+        case GTK_SURFACE1_EDGE_CONSTRAINT_LEFT_RESIZABLE:
+          new_state |= GDK_WINDOW_STATE_LEFT_RESIZABLE;
+          break;
         default:
           /* Unknown state */
           break;
diff --git a/gdk/wayland/protocol/gtk-shell.xml b/gdk/wayland/protocol/gtk-shell.xml
index 5cfdd42..711a0c0 100644
--- a/gdk/wayland/protocol/gtk-shell.xml
+++ b/gdk/wayland/protocol/gtk-shell.xml
@@ -53,6 +53,17 @@
       <entry name="tiled" value="1"/>
     </enum>
 
+    <enum name="edge_constraint">
+      <entry name="top_tiled" value="2"/>
+      <entry name="top_resizable" value="3"/>
+      <entry name="right_tiled" value="4"/>
+      <entry name="right_resizable" value="5"/>
+      <entry name="bottom_tiled" value="6"/>
+      <entry name="bottom_resizable" value="7"/>
+      <entry name="left_tiled" value="8"/>
+      <entry name="left_resizable" value="9"/>
+    </enum>
+
     <event name="configure">
       <arg name="states" type="array"/>
     </event>


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