[mutter/wayland] window: Replace meta_window_type_changed with meta_window_set_type
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wayland] window: Replace meta_window_type_changed with meta_window_set_type
- Date: Thu, 13 Mar 2014 21:14:48 +0000 (UTC)
commit a9d8107c3d60f57efe57b293f5197eb8397a3cf0
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Thu Mar 13 16:52:31 2014 -0400
window: Replace meta_window_type_changed with meta_window_set_type
Which does the equality checking for us.
src/core/window-private.h | 3 +-
src/core/window-x11.c | 50 ++++++++++++++++-------------------
src/core/window.c | 13 ++++++++-
src/wayland/meta-wayland-surface.c | 3 +-
4 files changed, 38 insertions(+), 31 deletions(-)
---
diff --git a/src/core/window-private.h b/src/core/window-private.h
index 7906bfc..aa5525e 100644
--- a/src/core/window-private.h
+++ b/src/core/window-private.h
@@ -684,7 +684,8 @@ void meta_window_update_layer (MetaWindow *window);
void meta_window_recalc_features (MetaWindow *window);
-void meta_window_type_changed (MetaWindow *window);
+void meta_window_set_type (MetaWindow *window,
+ MetaWindowType type);
void meta_window_frame_size_changed (MetaWindow *window);
diff --git a/src/core/window-x11.c b/src/core/window-x11.c
index 47cd853..a27a16a 100644
--- a/src/core/window-x11.c
+++ b/src/core/window-x11.c
@@ -1510,43 +1510,41 @@ error:
void
meta_window_x11_recalc_window_type (MetaWindow *window)
{
- MetaWindowType old_type;
-
- old_type = window->type;
+ MetaWindowType type;
if (window->type_atom != None)
{
if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_DESKTOP)
- window->type = META_WINDOW_DESKTOP;
+ type = META_WINDOW_DESKTOP;
else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_DOCK)
- window->type = META_WINDOW_DOCK;
+ type = META_WINDOW_DOCK;
else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_TOOLBAR)
- window->type = META_WINDOW_TOOLBAR;
+ type = META_WINDOW_TOOLBAR;
else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_MENU)
- window->type = META_WINDOW_MENU;
+ type = META_WINDOW_MENU;
else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_UTILITY)
- window->type = META_WINDOW_UTILITY;
+ type = META_WINDOW_UTILITY;
else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_SPLASH)
- window->type = META_WINDOW_SPLASHSCREEN;
+ type = META_WINDOW_SPLASHSCREEN;
else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_DIALOG)
- window->type = META_WINDOW_DIALOG;
+ type = META_WINDOW_DIALOG;
else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_NORMAL)
- window->type = META_WINDOW_NORMAL;
+ type = META_WINDOW_NORMAL;
/* The below are *typically* override-redirect windows, but the spec does
* not disallow using them for managed windows.
*/
else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_DROPDOWN_MENU)
- window->type = META_WINDOW_DROPDOWN_MENU;
+ type = META_WINDOW_DROPDOWN_MENU;
else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_POPUP_MENU)
- window->type = META_WINDOW_POPUP_MENU;
+ type = META_WINDOW_POPUP_MENU;
else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_TOOLTIP)
- window->type = META_WINDOW_TOOLTIP;
+ type = META_WINDOW_TOOLTIP;
else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_NOTIFICATION)
- window->type = META_WINDOW_NOTIFICATION;
+ type = META_WINDOW_NOTIFICATION;
else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_COMBO)
- window->type = META_WINDOW_COMBO;
+ type = META_WINDOW_COMBO;
else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_DND)
- window->type = META_WINDOW_DND;
+ type = META_WINDOW_DND;
else
{
char *atom_name;
@@ -1554,7 +1552,7 @@ meta_window_x11_recalc_window_type (MetaWindow *window)
/*
* Fallback on a normal type, and print warning. Don't abort.
*/
- window->type = META_WINDOW_NORMAL;
+ type = META_WINDOW_NORMAL;
meta_error_trap_push (window->display);
atom_name = XGetAtomName (window->display->xdisplay,
@@ -1571,16 +1569,16 @@ meta_window_x11_recalc_window_type (MetaWindow *window)
}
else if (window->transient_for != NULL)
{
- window->type = META_WINDOW_DIALOG;
+ type = META_WINDOW_DIALOG;
}
else
{
- window->type = META_WINDOW_NORMAL;
+ type = META_WINDOW_NORMAL;
}
- if (window->type == META_WINDOW_DIALOG &&
+ if (type == META_WINDOW_DIALOG &&
window->wm_state_modal)
- window->type = META_WINDOW_MODAL_DIALOG;
+ type = META_WINDOW_MODAL_DIALOG;
/* We don't want to allow override-redirect windows to have decorated-window
* types since that's just confusing.
@@ -1595,7 +1593,7 @@ meta_window_x11_recalc_window_type (MetaWindow *window)
case META_WINDOW_MODAL_DIALOG:
case META_WINDOW_MENU:
case META_WINDOW_UTILITY:
- window->type = META_WINDOW_OVERRIDE_OTHER;
+ type = META_WINDOW_OVERRIDE_OTHER;
break;
/* Undecorated types, normally not override-redirect */
case META_WINDOW_DESKTOP:
@@ -1616,8 +1614,6 @@ meta_window_x11_recalc_window_type (MetaWindow *window)
}
meta_verbose ("Calculated type %u for %s, old type %u\n",
- window->type, window->desc, old_type);
-
- if (old_type != window->type)
- meta_window_type_changed (window);
+ type, window->desc, type);
+ meta_window_set_type (window, type);
}
diff --git a/src/core/window.c b/src/core/window.c
index f281b57..a0335aa 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -7064,7 +7064,7 @@ meta_window_update_struts (MetaWindow *window)
}
}
-void
+static void
meta_window_type_changed (MetaWindow *window)
{
gboolean old_decorated = window->decorated;
@@ -7098,6 +7098,17 @@ meta_window_type_changed (MetaWindow *window)
}
void
+meta_window_set_type (MetaWindow *window,
+ MetaWindowType type)
+{
+ if (window->type == type)
+ return;
+
+ window->type = type;
+ meta_window_type_changed (window);
+}
+
+void
meta_window_frame_size_changed (MetaWindow *window)
{
if (window->frame)
diff --git a/src/wayland/meta-wayland-surface.c b/src/wayland/meta-wayland-surface.c
index 71017ca..86f3dd8 100644
--- a/src/wayland/meta-wayland-surface.c
+++ b/src/wayland/meta-wayland-surface.c
@@ -991,8 +991,7 @@ xdg_shell_get_xdg_popup (struct wl_client *client,
surface->window->placed = TRUE;
meta_window_set_transient_for (surface->window, parent_surf->window);
- surface->window->type = META_WINDOW_DROPDOWN_MENU;
- meta_window_type_changed (surface->window);
+ meta_window_set_type (surface->window, META_WINDOW_DROPDOWN_MENU);
meta_wayland_pointer_start_popup_grab (&seat->pointer, surface);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]