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 98574 - Menu already active
Menu already active
Status: RESOLVED DUPLICATE of bug 89139
Product: Sawfish
Classification: Deprecated
Component: General
pre-1.3.x
Other Linux
: High major
: 1.5.x
Assigned To: John Harper
sawfish QA Team
Depends on:
Blocks:
 
 
Reported: 2002-11-15 09:43 UTC by Georg Wild
Modified: 2009-08-16 15:13 UTC
See Also:
GNOME target: ---
GNOME version: 2.0



Description Georg Wild 2002-11-15 09:43:19 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))))))
Comment 1 Jeremy Nickurak 2002-12-07 20:58:50 UTC
same here
sawfish 1.2-gtk2 on debian sid
Comment 2 Georg Wild 2002-12-08 10:12:30 UTC
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!
Comment 3 John Harper 2003-03-16 20:52:26 UTC

*** This bug has been marked as a duplicate of 89139 ***