Fix initial setting of _NET_WM_STATE on new windows

When reload_net_wm_state() is called at startup to read the initial
value of _NET_WM_STATE, it was calling recalc_window_type(), but not
recalc_features(), which meant that, eg, meta->skip_taskbar would
never get initialized from meta->wm_state_skip_taskbar, which meant
that next time mutter went to update the window's _NET_WM_STATE, it
would overwrite the app-specified initial values. Fix that.

(In metacity, this bug is masked by the fact that recalc_features()
gets called when reading the intial value of WM_NORMAL_HINTS, which
comes after _NET_WM_STATE in metacity's prop_hooks_table. In mutter,
the table got reordered at some point, exposing the bug.)

https://bugzilla.gnome.org/show_bug.cgi?id=624360
This commit is contained in:
Dan Winship 2011-03-09 08:43:14 -05:00
parent 7c6b55e79e
commit 6c4a283b4c

View File

@ -693,6 +693,7 @@ reload_net_wm_state (MetaWindow *window,
window->desc); window->desc);
meta_window_recalc_window_type (window); meta_window_recalc_window_type (window);
meta_window_recalc_features (window);
} }
static void static void