GNOME Bugzilla – Bug 98574
Menu already active
Last modified: 2009-08-16 15:13:28 UTC
When I click on the icons in the near of the window title sometimes the menus hang and I got on terminal "Menu already active" when I try to open a window menu. I don't know much about (I think lisp), but the error is maybe in sawmill/lisp/sawfish/wm/menus.jl: (define (popup-menu spec) (or spec (error "No menu given to popup-menu")) (if (and menu-active menu-process (process-in-use-p menu-process)) (error "Menu already active") (let* ((part (clicked-frame-part)) (offset (and part (frame-part-position part))) (dims (and part (frame-part-dimensions part)))) (setq menu-active (or (current-event-window) (input-focus))) (condition-case error-data (progn (menu-start-process) ;; prevent any depressed button being redrawn until the menu ;; is popped down ;; XXX expose events screw this up.. (when (clicked-frame-part) (frame-draw-mutex t)) ;; This function is probably called from a ButtonPress event, ;; so cancel the implicit pointer grab (to allow the menu's grab ;; to succeed) (ungrab-pointer) (ungrab-keyboard) (sync-server) (when (functionp spec) (setq spec (spec))) ;; XXX this is a hack, but I want menus to appear under buttons (if (and part (setq part (frame-part-get part 'class)) (windowp menu-active) (string-match "-button$" (symbol-name part))) (progn (rplaca offset (max 0 (+ (car offset) (car (window-position menu-active))))) (rplacd offset (max 0 (+ (cdr offset) (cdr dims) (cdr (window-position menu-active)))))) (setq offset nil)) (setq nickname-table (make-table eq-hash eq)) (setq nickname-index 0) (format menu-process "(popup-menu %s %S %S)\n" ;; write out the menu spec in one chunk to ;; avoid large numbers of system calls :-[ (format nil "%S" (mapcar menu-preprocessor spec)) (x-server-timestamp) offset)) (error ;; prevents spurious errors with subsequent menus (setq menu-active nil) (apply signal error-data))))))
same here sawfish 1.2-gtk2 on debian sid
Ideas to reproduce: 1. Increase the depth of a window +1. Then directly click to change the border of the window. 2. Click in the panel to open a slow application. While it is working to open click on the button to open the preferences window of another existing window. This are only ideas! Just test!
*** This bug has been marked as a duplicate of 89139 ***