mirror of
https://github.com/brl/mutter.git
synced 2024-11-25 09:30:45 -05:00
window: Replace meta_window_type_changed with meta_window_set_type
Which does the equality checking for us.
This commit is contained in:
parent
a5d2c51392
commit
a9d8107c3d
@ -684,7 +684,8 @@ void meta_window_update_layer (MetaWindow *window);
|
|||||||
|
|
||||||
void meta_window_recalc_features (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);
|
void meta_window_frame_size_changed (MetaWindow *window);
|
||||||
|
|
||||||
|
@ -1510,43 +1510,41 @@ error:
|
|||||||
void
|
void
|
||||||
meta_window_x11_recalc_window_type (MetaWindow *window)
|
meta_window_x11_recalc_window_type (MetaWindow *window)
|
||||||
{
|
{
|
||||||
MetaWindowType old_type;
|
MetaWindowType type;
|
||||||
|
|
||||||
old_type = window->type;
|
|
||||||
|
|
||||||
if (window->type_atom != None)
|
if (window->type_atom != None)
|
||||||
{
|
{
|
||||||
if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_DESKTOP)
|
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)
|
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)
|
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)
|
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)
|
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)
|
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)
|
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)
|
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
|
/* The below are *typically* override-redirect windows, but the spec does
|
||||||
* not disallow using them for managed windows.
|
* not disallow using them for managed windows.
|
||||||
*/
|
*/
|
||||||
else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_DROPDOWN_MENU)
|
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)
|
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)
|
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)
|
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)
|
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)
|
else if (window->type_atom == window->display->atom__NET_WM_WINDOW_TYPE_DND)
|
||||||
window->type = META_WINDOW_DND;
|
type = META_WINDOW_DND;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
char *atom_name;
|
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.
|
* 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);
|
meta_error_trap_push (window->display);
|
||||||
atom_name = XGetAtomName (window->display->xdisplay,
|
atom_name = XGetAtomName (window->display->xdisplay,
|
||||||
@ -1571,16 +1569,16 @@ meta_window_x11_recalc_window_type (MetaWindow *window)
|
|||||||
}
|
}
|
||||||
else if (window->transient_for != NULL)
|
else if (window->transient_for != NULL)
|
||||||
{
|
{
|
||||||
window->type = META_WINDOW_DIALOG;
|
type = META_WINDOW_DIALOG;
|
||||||
}
|
}
|
||||||
else
|
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->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
|
/* We don't want to allow override-redirect windows to have decorated-window
|
||||||
* types since that's just confusing.
|
* 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_MODAL_DIALOG:
|
||||||
case META_WINDOW_MENU:
|
case META_WINDOW_MENU:
|
||||||
case META_WINDOW_UTILITY:
|
case META_WINDOW_UTILITY:
|
||||||
window->type = META_WINDOW_OVERRIDE_OTHER;
|
type = META_WINDOW_OVERRIDE_OTHER;
|
||||||
break;
|
break;
|
||||||
/* Undecorated types, normally not override-redirect */
|
/* Undecorated types, normally not override-redirect */
|
||||||
case META_WINDOW_DESKTOP:
|
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",
|
meta_verbose ("Calculated type %u for %s, old type %u\n",
|
||||||
window->type, window->desc, old_type);
|
type, window->desc, type);
|
||||||
|
meta_window_set_type (window, type);
|
||||||
if (old_type != window->type)
|
|
||||||
meta_window_type_changed (window);
|
|
||||||
}
|
}
|
||||||
|
@ -7064,7 +7064,7 @@ meta_window_update_struts (MetaWindow *window)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
static void
|
||||||
meta_window_type_changed (MetaWindow *window)
|
meta_window_type_changed (MetaWindow *window)
|
||||||
{
|
{
|
||||||
gboolean old_decorated = window->decorated;
|
gboolean old_decorated = window->decorated;
|
||||||
@ -7097,6 +7097,17 @@ meta_window_type_changed (MetaWindow *window)
|
|||||||
g_object_thaw_notify (object);
|
g_object_thaw_notify (object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
meta_window_set_type (MetaWindow *window,
|
||||||
|
MetaWindowType type)
|
||||||
|
{
|
||||||
|
if (window->type == type)
|
||||||
|
return;
|
||||||
|
|
||||||
|
window->type = type;
|
||||||
|
meta_window_type_changed (window);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
meta_window_frame_size_changed (MetaWindow *window)
|
meta_window_frame_size_changed (MetaWindow *window)
|
||||||
{
|
{
|
||||||
|
@ -991,8 +991,7 @@ xdg_shell_get_xdg_popup (struct wl_client *client,
|
|||||||
surface->window->placed = TRUE;
|
surface->window->placed = TRUE;
|
||||||
meta_window_set_transient_for (surface->window, parent_surf->window);
|
meta_window_set_transient_for (surface->window, parent_surf->window);
|
||||||
|
|
||||||
surface->window->type = META_WINDOW_DROPDOWN_MENU;
|
meta_window_set_type (surface->window, META_WINDOW_DROPDOWN_MENU);
|
||||||
meta_window_type_changed (surface->window);
|
|
||||||
|
|
||||||
meta_wayland_pointer_start_popup_grab (&seat->pointer, surface);
|
meta_wayland_pointer_start_popup_grab (&seat->pointer, surface);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user