summaryrefslogtreecommitdiff
path: root/src/core/window.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/window.c')
-rw-r--r--src/core/window.c118
1 files changed, 2 insertions, 116 deletions
diff --git a/src/core/window.c b/src/core/window.c
index bbce5a81d..f281b5774 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -7065,121 +7065,6 @@ meta_window_update_struts (MetaWindow *window)
}
void
-meta_window_recalc_window_type (MetaWindow *window)
-{
- MetaWindowType old_type;
-
- old_type = window->type;
-
- if (window->type_atom != None)
- {
- if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_DESKTOP)
- window->type = META_WINDOW_DESKTOP;
- else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_DOCK)
- window->type = META_WINDOW_DOCK;
- else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_TOOLBAR)
- window->type = META_WINDOW_TOOLBAR;
- else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_MENU)
- window->type = META_WINDOW_MENU;
- else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_UTILITY)
- window->type = META_WINDOW_UTILITY;
- else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_SPLASH)
- window->type = META_WINDOW_SPLASHSCREEN;
- else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_DIALOG)
- window->type = META_WINDOW_DIALOG;
- else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_NORMAL)
- window->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;
- else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_POPUP_MENU)
- window->type = META_WINDOW_POPUP_MENU;
- else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_TOOLTIP)
- window->type = META_WINDOW_TOOLTIP;
- else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_NOTIFICATION)
- window->type = META_WINDOW_NOTIFICATION;
- else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_COMBO)
- window->type = META_WINDOW_COMBO;
- else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_DND)
- window->type = META_WINDOW_DND;
- else
- {
- char *atom_name;
-
- /*
- * Fallback on a normal type, and print warning. Don't abort.
- */
- window->type = META_WINDOW_NORMAL;
-
- meta_error_trap_push (window->display);
- atom_name = XGetAtomName (window->display->xdisplay,
- window->type_atom);
- meta_error_trap_pop (window->display);
-
- meta_warning ("Unrecognized type atom [%s] set for %s \n",
- atom_name ? atom_name : "unknown",
- window->desc);
-
- if (atom_name)
- XFree (atom_name);
- }
- }
- else if (window->transient_for != NULL)
- {
- window->type = META_WINDOW_DIALOG;
- }
- else
- {
- window->type = META_WINDOW_NORMAL;
- }
-
- if (window->type == META_WINDOW_DIALOG &&
- window->wm_state_modal)
- window->type = META_WINDOW_MODAL_DIALOG;
-
- /* We don't want to allow override-redirect windows to have decorated-window
- * types since that's just confusing.
- */
- if (window->override_redirect)
- {
- switch (window->type)
- {
- /* Decorated types */
- case META_WINDOW_NORMAL:
- case META_WINDOW_DIALOG:
- case META_WINDOW_MODAL_DIALOG:
- case META_WINDOW_MENU:
- case META_WINDOW_UTILITY:
- window->type = META_WINDOW_OVERRIDE_OTHER;
- break;
- /* Undecorated types, normally not override-redirect */
- case META_WINDOW_DESKTOP:
- case META_WINDOW_DOCK:
- case META_WINDOW_TOOLBAR:
- case META_WINDOW_SPLASHSCREEN:
- /* Undecorated types, normally override-redirect types */
- case META_WINDOW_DROPDOWN_MENU:
- case META_WINDOW_POPUP_MENU:
- case META_WINDOW_TOOLTIP:
- case META_WINDOW_NOTIFICATION:
- case META_WINDOW_COMBO:
- case META_WINDOW_DND:
- /* To complete enum */
- case META_WINDOW_OVERRIDE_OTHER:
- break;
- }
- }
-
- 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);
-}
-
-void
meta_window_type_changed (MetaWindow *window)
{
gboolean old_decorated = window->decorated;
@@ -10258,7 +10143,8 @@ meta_window_set_transient_for (MetaWindow *window,
meta_window_propagate_focus_appearance (window, FALSE);
/* may now be a dialog */
- meta_window_recalc_window_type (window);
+ if (window->client_type == META_WINDOW_CLIENT_TYPE_X11)
+ meta_window_x11_recalc_window_type (window);
if (!window->constructing)
{