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 ----


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/