With a simple GTK test program, the window-state-event signal is broken under Metacity when gtk_window_stick is called on startup. On startup, the signal is sent four times, alternately claiming that the window is sticky and then it is not. When I then set the test window not to be sticky, the signal is sent twice, first claiming that the window is sticky and then that it is not. After this, toggling the sticky state after this sends the correct signal. Test program (stick.c) is attached. $ ./stick Sticky? Yes. Sticky? No. Sticky? Yes. Sticky? No. <<< Right-click title bar, click "Only on This Workspace" Sticky? Yes. Sticky? No. <<< Right-click title bar, click "Always on Visible Workspace" Sticky? Yes. <<< Right-click title bar, click "Only on This Workspace" Sticky? No. XFWM has a similar but not identical problem, #567607.