Re: [AD] GUI - d_ctext_proc, file_select_ex, gui_textout_ex |
[ Thread Index |
Date Index
| More lists.liballeg.org/allegro-developers Archives
]
> Heh, yes, I noticed when I was searching for the post.. seems Eric
> already has a fix for it.
It was on the paper only... now materialized by the attached patch.
Applied.
--
Eric Botcazou
Index: src/gui.c
===================================================================
RCS file: /cvsroot/alleg/allegro/src/gui.c,v
retrieving revision 1.63
diff -c -p -r1.63 gui.c
*** src/gui.c 3 Apr 2003 11:17:18 -0000 1.63
--- src/gui.c 16 Jun 2003 12:43:03 -0000
*************** int gui_font_baseline = 0;
*** 40,45 ****
--- 40,46 ----
/* pointer to the currently active dialog and menu objects */
static DIALOG_PLAYER *active_dialog_player = NULL;
static MENU_PLAYER *active_menu_player = NULL;
+ static int active_menu_player_zombie = FALSE;
DIALOG *active_dialog = NULL;
MENU *active_menu = NULL;
*************** int update_dialog(DIALOG_PLAYER *player)
*** 897,911 ****
/* redirect to update_menu() whenever a menu is activated */
if (active_menu_player) {
! if (update_menu(active_menu_player))
return TRUE;
! for (c=0; player->dialog[c].proc; c++)
! if (&player->dialog[c] == active_menu_player->dialog)
! break;
!
! MESSAGE(c, MSG_LOSTMOUSE, 0);
! goto getout;
}
if (player->res & D_CLOSE)
--- 898,923 ----
/* redirect to update_menu() whenever a menu is activated */
if (active_menu_player) {
! if (!active_menu_player_zombie) {
! if (update_menu(active_menu_player))
! return TRUE;
! }
!
! /* make sure all buttons are released before folding the menu */
! if (gui_mouse_b()) {
! active_menu_player_zombie = TRUE;
return TRUE;
+ }
+ else {
+ active_menu_player_zombie = FALSE;
! for (c=0; player->dialog[c].proc; c++)
! if (&player->dialog[c] == active_menu_player->dialog)
! break;
!
! MESSAGE(c, MSG_LOSTMOUSE, 0);
! goto getout;
! }
}
if (player->res & D_CLOSE)
*************** int d_menu_proc(int msg, DIALOG *d, int
*** 2065,2074 ****
mp = active_menu_player;
active_menu_player = NULL;
shutdown_tree_menu(mp, &x);
-
- do {
- } while (gui_mouse_b());
-
ret |= x;
/* put the mouse */
--- 2077,2082 ----