GNOME Bugzilla – Bug 308155
monodevelop not reparented by Sawfish, works with Metacity
Last modified: 2009-08-16 15:13:28 UTC
Please describe the problem: When I open 'monodevelop', Sawfish does not draw a frame around it. The 'matched windows' configuration tool cannot even "see" the monodevelop window at all -- selecting "Class" then "Grab" and clicking on the md window does nothing. Selecting the full screen view from the monodevelop menu does nothing also. I changed window managers to Metacity, and the md window was reparented correctly, and full screen mode works also. I closed the monodevelop application and restarted it, and it was decorated. I then killed metacity and restarted sawfish. It parented the monodevelop window, and everything worked the way it is supposed to. When I closed md and then restarted it, once again it was not decorated by sawfish. I took 'xprop' "snapshots" from each state; they are below. Steps to reproduce: 1. Set up 'sawfish' as your Gnome window manager. 2. Launch 'monodevelop' from the Programming menu. 3. Observe whether the window is decorated with a window manager frame or not. 4. Leaving the 'monodevelop' window displayed, change window managers to 'metacity': a) Open the menu System -> Sessions... -> current session, and set 'sawfish' to "normal" then apply. b) In a gnome-terminal, execute: killall sawfish && metacity >.xsession-errors 2>&1 </dev/null & disown %1 5. Observe whether the 'monodevelop' window is decorated or not. 6. Close 'monodevelop' and launch it again. 7. Observe ... 8. Leaving 'monodevelop' open, restart 'sawfish'; use "sessions", run command as above, but kill metacity and start sawfish. 9. Observe that now 'sawfish' has decorated the 'monodevelop' window. 10. Close monodevelop, and then restart it. Once again, it is not decorated. Actual results: At step 3, the window is bare, with no WM decorations. At step 5 and 7 it is, and also at step 9, but not at step 10. Expected results: No matter what window manager is in use, the 'monodevelop' window should be decorated normally. Does this happen every time? I have seen this behaviour consistently since the first time I tried to run 'monodevelop'. 'monodoc', which I believe also uses the same GUI toolkit and 'mono' libraries does not exhibit this behavior, ie., it is decorated normally by 'sawfish'. Other information: Under Metacity, here is the results of 'xprop' (with the icon stuff elided): _NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE _NET_WM_ICON_GEOMETRY(CARDINAL) = 40, 763, 190, 24 _NET_WM_STATE(ATOM) = _NET_WM_DESKTOP(CARDINAL) = 0 XKLAVIER_STATE(INTEGER) = 0, 0 WM_STATE(WM_STATE): window state: Normal icon window: 0x0 _NET_FRAME_EXTENTS(CARDINAL) = 5, 5, 23, 5 WM_HINTS(WM_HINTS): Client accepts input or input focus: True Initial state is Normal State. bitmap id # to use for icon: 0x2800067 bitmap id # of mask for icon: 0x2800068 window id # of group leader: 0x2800001 XdndAware(ATOM) = BITMAP _MOTIF_DRAG_RECEIVER_INFO(_MOTIF_DRAG_RECEIVER_INFO) = 0x6c, 0x0, 0x5, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3a, 0x43, 0x10, 0x0, 0x0, 0x0 [ ... icon ... ] _NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL _NET_WM_USER_TIME(CARDINAL) = 2376315031 WM_CLIENT_LEADER(WINDOW): window id # 0x2800001 _NET_WM_PID(CARDINAL) = 30039 WM_LOCALE_NAME(STRING) = "en_US.UTF-8" WM_CLIENT_MACHINE(STRING) = "journeyhawk.karlheg.net" WM_NORMAL_HINTS(WM_SIZE_HINTS): program specified minimum size: 640 by 480 window gravity: NorthWest WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING WM_CLASS(STRING) = "MonoDevelop", "MonoDevelop" WM_ICON_NAME(STRING) = "MonoDevelop" _NET_WM_ICON_NAME(UTF8_STRING) = 0x4d, 0x6f, 0x6e, 0x6f, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70 WM_NAME(STRING) = "MonoDevelop" _NET_WM_NAME(UTF8_STRING) = 0x4d, 0x6f, 0x6e, 0x6f, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70 And here it is under Sawfish, after sawfish was restarted and the md window had a sawfish frame around it: _WIN_LAYER(CARDINAL) = 4 _WIN_AREA(CARDINAL) = 0, 0 _WIN_WORKSPACE(CARDINAL) = 0 _WIN_STATE(CARDINAL) = 0 _NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE _NET_WM_ICON_GEOMETRY(CARDINAL) = 40, 763, 190, 24 _NET_WM_STATE(ATOM) = _NET_WM_DESKTOP(CARDINAL) = 0 XKLAVIER_STATE(INTEGER) = 0, 0 WM_STATE(WM_STATE): window state: Normal icon window: 0x0 _NET_FRAME_EXTENTS(CARDINAL) = 5, 5, 23, 5 WM_HINTS(WM_HINTS): Client accepts input or input focus: True Initial state is Normal State. bitmap id # to use for icon: 0x2800067 bitmap id # of mask for icon: 0x2800068 window id # of group leader: 0x2800001 XdndAware(ATOM) = BITMAP _MOTIF_DRAG_RECEIVER_INFO(_MOTIF_DRAG_RECEIVER_INFO) = 0x6c, 0x0, 0x5, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3a, 0x43, 0x10, 0x0, 0x0, 0x0 [ ... icon ... ] WM_CLIENT_LEADER(WINDOW): window id # 0x2800001 _NET_WM_PID(CARDINAL) = 30039 WM_LOCALE_NAME(STRING) = "en_US.UTF-8" WM_CLIENT_MACHINE(STRING) = "journeyhawk.karlheg.net" WM_NORMAL_HINTS(WM_SIZE_HINTS): program specified minimum size: 640 by 480 window gravity: NorthWest WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING WM_CLASS(STRING) = "MonoDevelop", "MonoDevelop" WM_ICON_NAME(STRING) = "MonoDevelop" _NET_WM_ICON_NAME(UTF8_STRING) = 0x4d, 0x6f, 0x6e, 0x6f, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70 WM_NAME(STRING) = "MonoDevelop" _NET_WM_NAME(UTF8_STRING) = 0x4d, 0x6f, 0x6e, 0x6f, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70 ... and now under sawfish, when monodevelop was restarted, and sawfish is not decorating it: _NET_WM_ICON_GEOMETRY(CARDINAL) = 230, 763, 191, 24 _WIN_AREA(CARDINAL) = 0, 0 _WIN_STATE(CARDINAL) = 0 WM_HINTS(WM_HINTS): Client accepts input or input focus: True Initial state is Normal State. bitmap id # to use for icon: 0x2800063 bitmap id # of mask for icon: 0x2800064 window id # of group leader: 0x2800001 XdndAware(ATOM) = BITMAP _MOTIF_DRAG_RECEIVER_INFO(_MOTIF_DRAG_RECEIVER_INFO) = 0x6c, 0x0, 0x5, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3a, 0x43, 0x10, 0x0, 0x0, 0x0 [ ... icon ...] _NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL _NET_WM_USER_TIME(CARDINAL) = 2376774574 WM_CLIENT_LEADER(WINDOW): window id # 0x2800001 _NET_WM_PID(CARDINAL) = 30873 WM_LOCALE_NAME(STRING) = "en_US.UTF-8" WM_CLIENT_MACHINE(STRING) = "journeyhawk.karlheg.net" WM_NORMAL_HINTS(WM_SIZE_HINTS): program specified minimum size: 640 by 480 window gravity: NorthWest WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING WM_CLASS(STRING) = "MonoDevelop", "MonoDevelop" WM_ICON_NAME(STRING) = "MonoDevelop" _NET_WM_ICON_NAME(UTF8_STRING) = 0x4d, 0x6f, 0x6e, 0x6f, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70 WM_NAME(STRING) = "MonoDevelop" _NET_WM_NAME(UTF8_STRING) = 0x4d, 0x6f, 0x6e, 0x6f, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70
The redirections in the command given should be '>>' rather than '>' so that output is appended to .xsession-errors rather than trucating the file. The '&&' should be ';', so to change from 'metacity' to 'sawfish': killall metacity; sawfish >>.xsession-errors 2>&1 </dev/null & disown %1
I've discovered that if I restart 'sawfish' while the 'monodevelop' window is open, that it gets decorated.
Fixed the race condition exposed in this bugreport, Sawfish version 1.3.2