[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: y-or-n-dialog from window-c
- To: poeck@informatik.uni-wuerzburg.de (Karsten Poeck), "Andre Koehorst" <andre_koehorst@riks.nl>
- Subject: Re: y-or-n-dialog from window-c
- From: bill@cambridge.apple.com (Bill St. Clair)
- Date: Wed, 28 Jul 1993 13:49:12 -0500
- Cc: info-mcl
At 3:38 PM 7/28/93 +0000, Karsten Poeck wrote:
>In article <9307280657.AA11351@london>, andre_koehorst@riks.nl ("Andre
>Koehorst") wrote:
>
>> REGARDING y-or-n-dialog from window-close-event-handler
>> Some time ago I did sent the following message but i didn't get any replies.
>> I'm writing an application that needs swapping the menubar and dialogs like the
>> ones in the example, and would really like to understand why the menubar is
>> (mostly) disabled. Even if I'm doing something completely stupid, please fill
>> me in.
>>
>> In the following code when clicking in the window-close-box of a window of the
>> class wywindow a yes-or-no-dialog is popped up. After pushing the yes-button or
>> the no-button some menus in the *default-menubar* are disabled. Can anyone
>> explain this behaviour to me?
>>
>> Thanks in advance,
>
>Since we have a similar problem in our application I played a little bit
>with your code and have the following explanation:
>
>The problem is that when you call modal-dialog, your window is deactivated
>and the standard menubar is installed. One of the first things modal-dialog
>does is to disable the menubar except for the edit-menu. When the modal
>dialog is closed, your window is selected and your menubar is installed.
>Obviously after that, modal dialog tries to enable the menubar and enables
>the items of !!your menubar!!. Afterwards your window is closed and the
>standard menu-items are installed, which are still disabled
The patch that Karsten Poeck mentioned is indeed a reasonable way to get around
this problem. His patch can be improved by binding *menubar-frozen* true during
the menu enabling and window closing.
(defun modal-dialog (...)
...
(let ((*menubar-frozen* t))
(update-menus-for-modal :enable ms)
(if close-on-exit
(window-close dialog)
(progn (window-hide dialog)
(set-window-layer dialog 9999))))))))
I have prepared a patch for inclusion in patch 3 for MCL 2.0 that includes
this change. If you want it before then, ask for "menu-enable-patch".
-----
Bill St. Clair
bill@cambridge.apple.com