tags 375240 patch
thanks for stopping processing here.
I generated a more meaningful stacktrace:
(gdb) r
Starting program: /usr/bin/ctwm
Program received signal SIGSEGV, Segmentation fault.
0x08062ed1 in PopUpMenu (menu=0x80cff48, x=906, y=395, center=1)
at menus.c:1480
1480 if (!(all || allicons) && !OCCUPY (tmp_win, ws))
continue;
(gdb) bt
#0 0x08062ed1 in PopUpMenu (menu=0x80cff48, x=906, y=395, center=1)
at menus.c:1480
#1 0x080756a8 in do_menu (menu=0x80cff48, w=0) at events.c:2868
#2 0x08076747 in HandleButtonPress () at events.c:3242
#3 0x0806f1f0 in DispatchEvent () at events.c:501
#4 0x0806f30c in HandleEvents () at events.c:546
#5 0x0805aa7a in main (argc=1, argv=0xaff1b9f4, environ=0xaff1b9fc)
at ctwm.c:960
-----
It looks like when you have such a .twmrc as the -submitter, there is no
active WorkspaceManager.
I was able to work up a patch which makes solves this particular bug. I
was able to right click and see the TWM menu as specified in the
-submitter's .twmrc, and it no longer causes the window manager to
crash.
thanks,
stew
diff -ru ctwm-3.7.orig/menus.c ctwm-3.7/menus.c
--- ctwm-3.7.orig/menus.c 2006-07-20 00:37:33.000000000 -0400
+++ ctwm-3.7/menus.c 2006-07-20 00:38:44.000000000 -0400
@@ -1461,7 +1461,7 @@
ws = NULL;
- if (! (all || allicons) && CurrentSelectedWorkspace) {
+ if (! (all || allicons) && CurrentSelectedWorkspace && Scr->workSpaceManagerActive) {
for (ws = Scr->workSpaceMgr.workSpaceList; ws != NULL; ws = ws->next) {
if (strcmp (ws->name, CurrentSelectedWorkspace) == 0) break;
}