diff options
author | Karoly Lorentey <lorentey@elte.hu> | 2006-12-03 15:03:30 +0000 |
---|---|---|
committer | Karoly Lorentey <lorentey@elte.hu> | 2006-12-03 15:03:30 +0000 |
commit | 974b73e83842d63b14512aa225cc53983a9b5d14 (patch) | |
tree | 462170d38cbb7057e98f08e8c612a9d30eeea0fd /src/xmenu.c | |
parent | d0104e754a241cf83811fef30195d41201de533c (diff) | |
parent | f5be22a273892218aad1db32c43ba562a08f3925 (diff) | |
download | emacs-974b73e83842d63b14512aa225cc53983a9b5d14.tar.gz |
Merged from emacs@sv.gnu.org. Last-minute emacsclient rewrites be damned!
Patches applied:
* emacs@sv.gnu.org/emacs--devo--0--patch-490
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-491
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-492
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-493
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-494
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-495
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-496
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-497
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-498
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-499
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-500
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-501
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-502
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-503
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-504
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-505
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-506
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-507
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-508
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-509
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-510
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-511
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-512
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-513
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-514
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-515
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-516
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-517
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-518
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-519
Update from CVS: etc/TUTORIAL.cn: Updated.
* emacs@sv.gnu.org/emacs--devo--0--patch-520
Merge from erc--emacs--22
* emacs@sv.gnu.org/emacs--devo--0--patch-521
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-522
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-523
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-524
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-525
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-526
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-527
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-528
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-529
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-530
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-531
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-532
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-533
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-534
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-535
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-161
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-162
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-163
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-164
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-165
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-166
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-167
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-168
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-169
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-170
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-588
Diffstat (limited to 'src/xmenu.c')
-rw-r--r-- | src/xmenu.c | 41 |
1 files changed, 30 insertions, 11 deletions
diff --git a/src/xmenu.c b/src/xmenu.c index b615d321cc7..b4665f88e07 100644 --- a/src/xmenu.c +++ b/src/xmenu.c @@ -825,7 +825,7 @@ no quit occurs and `x-popup-menu' returns nil. */) int xpos = 0, ypos = 0; Lisp_Object title; char *error_name = NULL; - Lisp_Object selection; + Lisp_Object selection = Qnil; FRAME_PTR f = NULL; Lisp_Object x, y, window; int keymaps = 0; @@ -1404,8 +1404,13 @@ If FRAME is nil or not given, use the selected frame. */) Lisp_Object frame; { GtkWidget *menubar; + FRAME_PTR f; + + /* gcc 2.95 doesn't accept the FRAME_PTR declaration after + BLOCK_INPUT. */ + BLOCK_INPUT; - FRAME_PTR f = check_x_frame (frame); + f = check_x_frame (frame); if (FRAME_EXTERNAL_MENU_BAR (f)) set_frame_menubar (f, 0, 1); @@ -1418,7 +1423,7 @@ If FRAME is nil or not given, use the selected frame. */) gtk_menu_shell_select_item (GTK_MENU_SHELL (menubar), GTK_WIDGET (children->data)); - + popup_activated_flag = 1; g_list_free (children); } @@ -1495,14 +1500,6 @@ x_activate_menubar (f) f->output_data.x->saved_menu_event->type = 0; } -/* Detect if a dialog or menu has been posted. */ - -int -popup_activated () -{ - return popup_activated_flag; -} - /* This callback is invoked when the user selects a menubar cascade pushbutton, but before the pulldown menu is posted. */ @@ -3801,6 +3798,27 @@ xmenu_show (f, x, y, for_click, keymaps, title, error) #endif /* not USE_X_TOOLKIT */ #endif /* HAVE_MENUS */ + +/* Detect if a dialog or menu has been posted. */ + +int +popup_activated () +{ + return popup_activated_flag; +} + +/* The following is used by delayed window autoselection. */ + +DEFUN ("menu-or-popup-active-p", Fmenu_or_popup_active_p, Smenu_or_popup_active_p, 0, 0, 0, + doc: /* Return t if a menu or popup dialog is active. */) + () +{ +#ifdef HAVE_MENUS + return (popup_activated ()) ? Qt : Qnil; +#else + return Qnil; +#endif /* HAVE_MENUS */ +} void syms_of_xmenu () @@ -3818,6 +3836,7 @@ syms_of_xmenu () #endif defsubr (&Sx_popup_menu); + defsubr (&Smenu_or_popup_active_p); #if defined (USE_GTK) || defined (USE_X_TOOLKIT) defsubr (&Sx_menu_bar_open_internal); |