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 308155 - monodevelop not reparented by Sawfish, works with Metacity
monodevelop not reparented by Sawfish, works with Metacity
Status: RESOLVED FIXED
Product: Sawfish
Classification: Deprecated
Component: Window Manager
pre-1.3.x
Other All
: Normal normal
: 1.5.x
Assigned To: John Harper
sawfish QA Team
Depends on:
Blocks:
 
 
Reported: 2005-06-18 05:18 UTC by Karl Hegbloom
Modified: 2009-08-16 15:13 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Karl Hegbloom 2005-06-18 05:18:57 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
Comment 1 Karl Hegbloom 2005-06-18 05:29:02 UTC
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
Comment 2 Karl Hegbloom 2005-06-18 05:41:11 UTC
I've discovered that if I restart 'sawfish' while the 'monodevelop' window is
open, that it gets decorated.
Comment 3 Andrea Vettorello 2008-01-21 09:28:46 UTC
Fixed the race condition exposed in this bugreport, Sawfish version 1.3.2