GNOME Bugzilla – Bug 624360
window shows up in when pressing alt+tab, but skip_taskbar_hint is set to True
Last modified: 2011-03-09 15:22:15 UTC
try with the attached python script, although the hint is set correctly, the window shows up in the application-switcher
Created attachment 165895 [details] example to reproduce bug
There are actually two bugs here, one in mutter and one in gnome-shell. The gnome-shell one is bug 642221.
Created attachment 182963 [details] [review] 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.)
Review of attachment 182963 [details] [review]: Hmm, will cause: /* FIXME: * Lame workaround for recalc_window_features * being used overzealously. The fix is to * only recalc_window_features when something * has actually changed. */ if (window->constructing || old_has_close_func != window->has_close_func || old_has_minimize_func != window->has_minimize_func || old_has_move_func != window->has_move_func || old_has_resize_func != window->has_resize_func || old_has_shade_func != window->has_shade_func || old_always_sticky != window->always_sticky) set_allowed_actions_hint (window); to lamely set the allowed actions hint an extra time for each window, but I guess that's another problem for another day.
Attachment 182963 [details] pushed as 6c4a283 - Fix initial setting of _NET_WM_STATE on new windows