[mutter/wayland] Move more fields to MetaWindowX11



commit d6a27195d312c34987ac95b2f650c2047c04c94d
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Tue Mar 18 13:07:50 2014 -0400

    Move more fields to MetaWindowX11

 src/core/window-private.h    |    9 --------
 src/core/window.c            |    6 -----
 src/x11/window-props.c       |   44 +++++++++++++++++++++++++++++------------
 src/x11/window-x11-private.h |    9 ++++++++
 src/x11/window-x11.c         |   13 +++++++----
 5 files changed, 48 insertions(+), 33 deletions(-)
---
diff --git a/src/core/window-private.h b/src/core/window-private.h
index 4ef9707..e7c0d4d 100644
--- a/src/core/window-private.h
+++ b/src/core/window-private.h
@@ -262,9 +262,6 @@ struct _MetaWindow
   guint has_move_func : 1;
   guint has_resize_func : 1;
   guint has_fullscreen_func : 1;
-  
-  /* Weird "_NET_WM_STATE_MODAL" flag */
-  guint wm_state_modal : 1;
 
   /* Computed whether to skip taskbar or not */
   guint skip_taskbar : 1;
@@ -318,12 +315,6 @@ struct _MetaWindow
 
   /* Transient parent is a root window */
   guint transient_parent_is_root_window : 1;
-
-  /* Info on which props we got our attributes from */
-  guint using_net_wm_name              : 1; /* vs. plain wm_name */
-  guint using_net_wm_visible_name      : 1; /* tracked so we can clear it */
-  guint using_net_wm_icon_name         : 1; /* vs. plain wm_icon_name */
-  guint using_net_wm_visible_icon_name : 1; /* tracked so we can clear it */
   
   /* if TRUE, window was maximized at start of current grab op */
   guint shaken_loose : 1;
diff --git a/src/core/window.c b/src/core/window.c
index 8b452b4..7f507f1 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -920,7 +920,6 @@ _meta_window_shared_new (MetaDisplay         *display,
 
   window->always_sticky = FALSE;
 
-  window->wm_state_modal = FALSE;
   window->skip_taskbar = FALSE;
   window->skip_pager = FALSE;
   window->wm_state_above = FALSE;
@@ -946,11 +945,6 @@ _meta_window_shared_new (MetaDisplay         *display,
 
   window->struts = NULL;
 
-  window->using_net_wm_name              = FALSE;
-  window->using_net_wm_visible_name      = FALSE;
-  window->using_net_wm_icon_name         = FALSE;
-  window->using_net_wm_visible_icon_name = FALSE;
-
   window->layer = META_LAYER_LAST; /* invalid value */
   window->stack_position = -1;
   window->initial_workspace = 0; /* not used */
diff --git a/src/x11/window-props.c b/src/x11/window-props.c
index 35f0569..3d54765 100644
--- a/src/x11/window-props.c
+++ b/src/x11/window-props.c
@@ -489,15 +489,18 @@ static void
 set_window_title (MetaWindow *window,
                   const char *title)
 {
+  MetaWindowX11 *window_x11 = META_WINDOW_X11 (window);
+  MetaWindowX11Private *priv = window_x11->priv;
+
   char *new_title = NULL;
- 
+
   gboolean modified =
     set_title_text (window,
-                    window->using_net_wm_visible_name,
+                    priv->using_net_wm_visible_name,
                     title,
                     window->display->atom__NET_WM_VISIBLE_NAME,
                     &new_title);
-  window->using_net_wm_visible_name = modified;
+  priv->using_net_wm_visible_name = modified;
   
   meta_window_set_title (window, new_title);
 
@@ -509,10 +512,13 @@ reload_net_wm_name (MetaWindow    *window,
                     MetaPropValue *value,
                     gboolean       initial)
 {
+  MetaWindowX11 *window_x11 = META_WINDOW_X11 (window);
+  MetaWindowX11Private *priv = window_x11->priv;
+
   if (value->type != META_PROP_VALUE_INVALID)
     {
       set_window_title (window, value->v.str);
-      window->using_net_wm_name = TRUE;
+      priv->using_net_wm_name = TRUE;
 
       meta_verbose ("Using _NET_WM_NAME for new title of %s: \"%s\"\n",
                     window->desc, window->title);
@@ -520,7 +526,7 @@ reload_net_wm_name (MetaWindow    *window,
   else
     {
       set_window_title (window, NULL);
-      window->using_net_wm_name = FALSE;
+      priv->using_net_wm_name = FALSE;
       if (!initial)
         meta_window_reload_property (window, XA_WM_NAME, FALSE);
     }
@@ -531,7 +537,10 @@ reload_wm_name (MetaWindow    *window,
                 MetaPropValue *value,
                 gboolean       initial)
 {
-  if (window->using_net_wm_name)
+  MetaWindowX11 *window_x11 = META_WINDOW_X11 (window);
+  MetaWindowX11Private *priv = window_x11->priv;
+
+  if (priv->using_net_wm_name)
     {
       meta_verbose ("Ignoring WM_NAME \"%s\" as _NET_WM_NAME is set\n",
                     value->v.str);
@@ -606,13 +615,16 @@ static void
 set_icon_title (MetaWindow *window,
                 const char *title)
 {
+  MetaWindowX11 *window_x11 = META_WINDOW_X11 (window);
+  MetaWindowX11Private *priv = window_x11->priv;
+
   gboolean modified =
     set_title_text (window,
-                    window->using_net_wm_visible_icon_name,
+                    priv->using_net_wm_visible_icon_name,
                     title,
                     window->display->atom__NET_WM_VISIBLE_ICON_NAME,
                     &window->icon_name);
-  window->using_net_wm_visible_icon_name = modified;
+  priv->using_net_wm_visible_icon_name = modified;
 }
 
 static void
@@ -620,10 +632,13 @@ reload_net_wm_icon_name (MetaWindow    *window,
                          MetaPropValue *value,
                          gboolean       initial)
 {
+  MetaWindowX11 *window_x11 = META_WINDOW_X11 (window);
+  MetaWindowX11Private *priv = window_x11->priv;
+
   if (value->type != META_PROP_VALUE_INVALID)
     {
       set_icon_title (window, value->v.str);
-      window->using_net_wm_icon_name = TRUE;
+      priv->using_net_wm_icon_name = TRUE;
 
       meta_verbose ("Using _NET_WM_ICON_NAME for new title of %s: \"%s\"\n",
                     window->desc, window->title);
@@ -631,7 +646,7 @@ reload_net_wm_icon_name (MetaWindow    *window,
   else
     {
       set_icon_title (window, NULL);
-      window->using_net_wm_icon_name = FALSE;
+      priv->using_net_wm_icon_name = FALSE;
       if (!initial)
         meta_window_reload_property (window, XA_WM_ICON_NAME, FALSE);
     }
@@ -642,7 +657,10 @@ reload_wm_icon_name (MetaWindow    *window,
                      MetaPropValue *value,
                      gboolean       initial)
 {
-  if (window->using_net_wm_icon_name)
+  MetaWindowX11 *window_x11 = META_WINDOW_X11 (window);
+  MetaWindowX11Private *priv = window_x11->priv;
+
+  if (priv->using_net_wm_icon_name)
     {
       meta_verbose ("Ignoring WM_ICON_NAME \"%s\" as _NET_WM_ICON_NAME is set\n",
                     value->v.str);
@@ -687,7 +705,7 @@ reload_net_wm_state (MetaWindow    *window,
   window->maximized_horizontally = FALSE;
   window->maximized_vertically = FALSE;
   window->fullscreen = FALSE;
-  window->wm_state_modal = FALSE;
+  priv->wm_state_modal = FALSE;
   priv->wm_state_skip_taskbar = FALSE;
   priv->wm_state_skip_pager = FALSE;
   window->wm_state_above = FALSE;
@@ -709,7 +727,7 @@ reload_net_wm_state (MetaWindow    *window,
       else if (value->v.atom_list.atoms[i] == window->display->atom__NET_WM_STATE_HIDDEN)
         window->minimize_after_placement = TRUE;
       else if (value->v.atom_list.atoms[i] == window->display->atom__NET_WM_STATE_MODAL)
-        window->wm_state_modal = TRUE;
+        priv->wm_state_modal = TRUE;
       else if (value->v.atom_list.atoms[i] == window->display->atom__NET_WM_STATE_SKIP_TASKBAR)
         priv->wm_state_skip_taskbar = TRUE;
       else if (value->v.atom_list.atoms[i] == window->display->atom__NET_WM_STATE_SKIP_PAGER)
diff --git a/src/x11/window-x11-private.h b/src/x11/window-x11-private.h
index 25114da..d3ceb3b 100644
--- a/src/x11/window-x11-private.h
+++ b/src/x11/window-x11-private.h
@@ -41,6 +41,15 @@ struct _MetaWindowX11Private
   /* TRUE if the client forced these on */
   guint wm_state_skip_taskbar : 1;
   guint wm_state_skip_pager : 1;
+
+  /* Weird "_NET_WM_STATE_MODAL" flag */
+  guint wm_state_modal : 1;
+
+  /* Info on which props we got our attributes from */
+  guint using_net_wm_name              : 1; /* vs. plain wm_name */
+  guint using_net_wm_visible_name      : 1; /* tracked so we can clear it */
+  guint using_net_wm_icon_name         : 1; /* vs. plain wm_icon_name */
+  guint using_net_wm_visible_icon_name : 1; /* tracked so we can clear it */
 };
 
 G_END_DECLS
diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c
index cade656..c8db060 100644
--- a/src/x11/window-x11.c
+++ b/src/x11/window-x11.c
@@ -81,6 +81,8 @@ meta_window_x11_class_init (MetaWindowX11Class *klass)
 void
 meta_window_x11_set_net_wm_state (MetaWindow *window)
 {
+  MetaWindowX11 *window_x11 = META_WINDOW_X11 (window);
+  MetaWindowX11Private *priv = meta_window_x11_get_instance_private (window_x11);
   int i;
   unsigned long data[13];
 
@@ -90,7 +92,7 @@ meta_window_x11_set_net_wm_state (MetaWindow *window)
       data[i] = window->display->atom__NET_WM_STATE_SHADED;
       ++i;
     }
-  if (window->wm_state_modal)
+  if (priv->wm_state_modal)
     {
       data[i] = window->display->atom__NET_WM_STATE_MODAL;
       ++i;
@@ -904,9 +906,9 @@ meta_window_x11_client_message (MetaWindow *window,
       if (first == display->atom__NET_WM_STATE_MODAL ||
           second == display->atom__NET_WM_STATE_MODAL)
         {
-          window->wm_state_modal =
+          priv->wm_state_modal =
             (action == _NET_WM_STATE_ADD) ||
-            (action == _NET_WM_STATE_TOGGLE && !window->wm_state_modal);
+            (action == _NET_WM_STATE_TOGGLE && !priv->wm_state_modal);
 
           meta_window_x11_recalc_window_type (window);
           meta_window_queue(window, META_QUEUE_MOVE_RESIZE);
@@ -1546,6 +1548,8 @@ error:
 void
 meta_window_x11_recalc_window_type (MetaWindow *window)
 {
+  MetaWindowX11 *window_x11 = META_WINDOW_X11 (window);
+  MetaWindowX11Private *priv = meta_window_x11_get_instance_private (window_x11);
   MetaWindowType type;
 
   if (window->type_atom != None)
@@ -1612,8 +1616,7 @@ meta_window_x11_recalc_window_type (MetaWindow *window)
       type = META_WINDOW_NORMAL;
     }
 
-  if (type == META_WINDOW_DIALOG &&
-      window->wm_state_modal)
+  if (type == META_WINDOW_DIALOG && priv->wm_state_modal)
     type = META_WINDOW_MODAL_DIALOG;
 
   /* We don't want to allow override-redirect windows to have decorated-window


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