]> git.sur5r.net Git - i3/i3/blobdiff - include/data.h
Add support for WM_CLIENT_LEADER, put floating windows mapping to (0x0) to center...
[i3/i3] / include / data.h
index 3288cb8d03e0533d36e2ff4d587cbc16ce32420a..99e79ab2b7adcc908ea8dec76445138c9a15c1a2 100644 (file)
@@ -165,6 +165,15 @@ struct Workspace {
         /** Number of this workspace, starting from 0 */
         int num;
 
+        /** Name of the workspace (in UCS-2) */
+        char *name;
+
+        /** Length of the workspace’s name (in glyphs) */
+        int name_len;
+
+        /** Width of the workspace’s name (in pixels) rendered in config.font */
+        int text_width;
+
         /** x, y, width, height */
         Rect rect;
 
@@ -250,7 +259,12 @@ struct Assignment {
         /** floating is true if this was an assignment to the special
          * workspace "~".  Matching clients will be put into floating mode
          * automatically. */
-        bool floating;
+        enum {
+                ASSIGN_FLOATING_NO,   /* don’t float, but put on a workspace */
+                ASSIGN_FLOATING_ONLY, /* float, but don’t assign on a workspace */
+                ASSIGN_FLOATING       /* float and put on a workspace */
+        } floating;
+
         /** The number of the workspace to assign to. */
         int workspace;
         TAILQ_ENTRY(Assignment) assignments;
@@ -327,6 +341,10 @@ struct Client {
         /** Holds the WM_CLASS, useful for matching the client in commands */
         char *window_class;
 
+        /** Holds the xcb_window_t (just an ID) for the leader window (logical
+         * parent for toolwindows and similar floating windows) */
+        xcb_window_t leader;
+
         /** fullscreen is pretty obvious */
         bool fullscreen;