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;
 	    }

Reply via email to