emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/xmenu.c [lexbind]


From: Miles Bader
Subject: [Emacs-diffs] Changes to emacs/src/xmenu.c [lexbind]
Date: Thu, 20 Nov 2003 19:37:04 -0500

Index: emacs/src/xmenu.c
diff -c emacs/src/xmenu.c:1.230.4.2 emacs/src/xmenu.c:1.230.4.3
*** emacs/src/xmenu.c:1.230.4.2 Tue Oct 14 19:22:51 2003
--- emacs/src/xmenu.c   Thu Nov 20 19:36:23 2003
***************
*** 610,616 ****
  #endif /* not HAVE_BOXES */
  
  #if ! defined (USE_X_TOOLKIT) && ! defined (USE_GTK)
!   if (!NILP(map))
      /* Indicate visually that this is a submenu.  */
      item_string = concat2 (item_string, build_string (" >"));
  #endif
--- 610,616 ----
  #endif /* not HAVE_BOXES */
  
  #if ! defined (USE_X_TOOLKIT) && ! defined (USE_GTK)
!   if (!NILP (map))
      /* Indicate visually that this is a submenu.  */
      item_string = concat2 (item_string, build_string (" >"));
  #endif
***************
*** 696,702 ****
     the scroll bar or the edit window.  Fx_popup_menu needs to be
     sure it is the edit window.  */
  static void
! mouse_position_for_popup(f, x, y)
       FRAME_PTR f;
       int *x;
       int *y;
--- 696,702 ----
     the scroll bar or the edit window.  Fx_popup_menu needs to be
     sure it is the edit window.  */
  static void
! mouse_position_for_popup (f, x, y)
       FRAME_PTR f;
       int *x;
       int *y;
***************
*** 1217,1223 ****
      return;
  
  #ifdef USE_GTK
!   if (! xg_win_to_widget (f->output_data.x->saved_menu_event->xany.window))
      return;
  #endif
  
--- 1217,1224 ----
      return;
  
  #ifdef USE_GTK
!   if (! xg_win_to_widget (FRAME_X_DISPLAY (f),
!                           f->output_data.x->saved_menu_event->xany.window))
      return;
  #endif
  
***************
*** 1866,1871 ****
--- 1867,1878 ----
        f->output_data.x->saved_menu_event->type = 0;
      }
  
+ #ifdef USE_GTK
+   /* If we have detached menus, we must update deep so detached menus
+      also gets updated.  */
+   deep_p = deep_p || xg_have_tear_offs ();
+ #endif
+ 
    if (deep_p)
      {
        /* Make a widget-value tree representing the entire menu trees.  */
***************
*** 2066,2072 ****
    xg_crazy_callback_abort = 1;
    if (menubar_widget)
      {
!       /* The third arg is DEEP_P, which says to consider the entire
         menu trees we supply, rather than just the menu bar item names.  */
        xg_modify_menubar_widgets (menubar_widget,
                                   f,
--- 2073,2079 ----
    xg_crazy_callback_abort = 1;
    if (menubar_widget)
      {
!       /* The fourth arg is DEEP_P, which says to consider the entire
         menu trees we supply, rather than just the menu bar item names.  */
        xg_modify_menubar_widgets (menubar_widget,
                                   f,
***************
*** 2343,2359 ****
    gtk_widget_show_all (menu);
    gtk_menu_popup (GTK_MENU (menu), 0, 0, pos_func, &popup_x_y, i, 0);
  
-   xg_did_tearoff = 0;
    /* Set this to one.  popup_widget_loop increases it by one, so it becomes
       two.  show_help_echo uses this to detect popup menus.  */
    popup_activated_flag = 1;
    /* Process events that apply to the menu.  */
    popup_widget_loop ();
  
!   if (xg_did_tearoff)
!     xg_keep_popup (menu, xg_did_tearoff);
!   else
!     gtk_widget_destroy (menu);
  
    /* Must reset this manually because the button release event is not passed
       to Emacs event loop. */
--- 2350,2362 ----
    gtk_widget_show_all (menu);
    gtk_menu_popup (GTK_MENU (menu), 0, 0, pos_func, &popup_x_y, i, 0);
  
    /* Set this to one.  popup_widget_loop increases it by one, so it becomes
       two.  show_help_echo uses this to detect popup menus.  */
    popup_activated_flag = 1;
    /* Process events that apply to the menu.  */
    popup_widget_loop ();
  
!   gtk_widget_destroy (menu);
  
    /* Must reset this manually because the button release event is not passed
       to Emacs event loop. */




reply via email to

[Prev in Thread] Current Thread [Next in Thread]