[metacity] window-props: update reload_net_wm_window_type
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [metacity] window-props: update reload_net_wm_window_type
- Date: Sun, 26 Feb 2017 22:23:11 +0000 (UTC)
commit 3a207e479b9bba2cece9838121cee300c6c7c693
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date: Sun Feb 26 21:14:05 2017 +0200
window-props: update reload_net_wm_window_type
Commit a91fda7881f6b038abd8f2a27e326811da6e0b65 did not include all
changes from mutter commit a7b7213017441ecc9e44872e2d67f783a4fdefa5.
src/core/window-props.c | 73 ++++++++++++++++------------------------------
1 files changed, 26 insertions(+), 47 deletions(-)
---
diff --git a/src/core/window-props.c b/src/core/window-props.c
index 203a9e7..136311d 100644
--- a/src/core/window-props.c
+++ b/src/core/window-props.c
@@ -226,59 +226,38 @@ reload_net_wm_window_type (MetaWindow *window,
MetaPropValue *value,
gboolean initial)
{
- int n_atoms;
- Atom *atoms;
- int i;
-
window->type_atom = None;
- n_atoms = 0;
- atoms = NULL;
-
- meta_prop_get_atom_list (window->display, window->xwindow,
- window->display->atom__NET_WM_WINDOW_TYPE,
- &atoms, &n_atoms);
-
- i = 0;
- while (i < n_atoms)
- {
- /* We break as soon as we find one we recognize,
- * supposed to prefer those near the front of the list
- */
- if (atoms[i] == window->display->atom__NET_WM_WINDOW_TYPE_DESKTOP ||
- atoms[i] == window->display->atom__NET_WM_WINDOW_TYPE_DOCK ||
- atoms[i] == window->display->atom__NET_WM_WINDOW_TYPE_TOOLBAR ||
- atoms[i] == window->display->atom__NET_WM_WINDOW_TYPE_MENU ||
- atoms[i] == window->display->atom__NET_WM_WINDOW_TYPE_DIALOG ||
- atoms[i] == window->display->atom__NET_WM_WINDOW_TYPE_NORMAL ||
- atoms[i] == window->display->atom__NET_WM_WINDOW_TYPE_UTILITY ||
- atoms[i] == window->display->atom__NET_WM_WINDOW_TYPE_SPLASH)
- {
- window->type_atom = atoms[i];
- break;
- }
-
- ++i;
- }
-
- meta_XFree (atoms);
- if (meta_is_verbose ())
+ if (value->type != META_PROP_VALUE_INVALID)
{
- char *str;
+ int i;
- str = NULL;
- if (window->type_atom != None)
+ for (i = 0; i < value->v.atom_list.n_atoms; i++)
{
- meta_error_trap_push (window->display);
- str = XGetAtomName (window->display->xdisplay, window->type_atom);
- meta_error_trap_pop (window->display);
- }
+ Atom atom = value->v.atom_list.atoms[i];
- meta_verbose ("Window %s type atom %s\n", window->desc,
- str ? str : "(none)");
-
- if (str)
- meta_XFree (str);
+ /* We break as soon as we find one we recognize,
+ * supposed to prefer those near the front of the list
+ */
+ if (atom == window->display->atom__NET_WM_WINDOW_TYPE_DESKTOP ||
+ atom == window->display->atom__NET_WM_WINDOW_TYPE_DOCK ||
+ atom == window->display->atom__NET_WM_WINDOW_TYPE_TOOLBAR ||
+ atom == window->display->atom__NET_WM_WINDOW_TYPE_MENU ||
+ atom == window->display->atom__NET_WM_WINDOW_TYPE_UTILITY ||
+ atom == window->display->atom__NET_WM_WINDOW_TYPE_SPLASH ||
+ atom == window->display->atom__NET_WM_WINDOW_TYPE_DIALOG ||
+ atom == window->display->atom__NET_WM_WINDOW_TYPE_DROPDOWN_MENU ||
+ atom == window->display->atom__NET_WM_WINDOW_TYPE_POPUP_MENU ||
+ atom == window->display->atom__NET_WM_WINDOW_TYPE_TOOLTIP ||
+ atom == window->display->atom__NET_WM_WINDOW_TYPE_NOTIFICATION ||
+ atom == window->display->atom__NET_WM_WINDOW_TYPE_COMBO ||
+ atom == window->display->atom__NET_WM_WINDOW_TYPE_DND ||
+ atom == window->display->atom__NET_WM_WINDOW_TYPE_NORMAL)
+ {
+ window->type_atom = atom;
+ break;
+ }
+ }
}
meta_window_recalc_window_type (window);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]