After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 624360 - (kkris) window shows up in when pressing alt+tab, but skip_taskbar_hint is set to True
(kkris)
window shows up in when pressing alt+tab, but skip_taskbar_hint is set to True
Status: RESOLVED FIXED
Product: mutter
Classification: Core
Component: general
2.31.x
Other Linux
: Normal normal
: ---
Assigned To: mutter-maint
mutter-maint
Depends on:
Blocks:
 
 
Reported: 2010-07-14 17:35 UTC by Kristoffer Kleine
Modified: 2011-03-09 15:22 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
example to reproduce bug (122 bytes, text/x-python)
2010-07-14 17:36 UTC, Kristoffer Kleine
  Details
Fix initial setting of _NET_WM_STATE on new windows (1.35 KB, patch)
2011-03-09 13:54 UTC, Dan Winship
committed Details | Review

Description Kristoffer Kleine 2010-07-14 17:35:03 UTC
try with the attached python script, although the hint is set correctly, the window shows up in the application-switcher
Comment 1 Kristoffer Kleine 2010-07-14 17:36:03 UTC
Created attachment 165895 [details]
example to reproduce bug
Comment 2 Dan Winship 2011-03-09 13:54:06 UTC
There are actually two bugs here, one in mutter and one in gnome-shell. The gnome-shell one is bug 642221.
Comment 3 Dan Winship 2011-03-09 13:54:23 UTC
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.)
Comment 4 Owen Taylor 2011-03-09 14:31:33 UTC
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.
Comment 5 Dan Winship 2011-03-09 15:22:11 UTC
Attachment 182963 [details] pushed as 6c4a283 - Fix initial setting of _NET_WM_STATE on new windows