[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: y-or-n-dialog from window-c
- To: email@example.com (Karsten Poeck), "Andre Koehorst" <firstname.lastname@example.org>
- Subject: Re: y-or-n-dialog from window-c
- From: email@example.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>, firstname.lastname@example.org ("Andre
>> 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)
(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