Mercurial > hg > xemacs-beta
diff src/menubar-x.c @ 175:2d532a89d707 r20-3b14
Import from CVS: tag r20-3b14
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:50:14 +0200 |
parents | 8eaf7971accc |
children | 3d6bfa290dbd |
line wrap: on
line diff
--- a/src/menubar-x.c Mon Aug 13 09:49:11 2007 +0200 +++ b/src/menubar-x.c Mon Aug 13 09:50:14 2007 +0200 @@ -145,10 +145,15 @@ { Lisp_Object key, val; Lisp_Object include_p = Qnil, hook_fn = Qnil, config_tag = Qnil; + Lisp_Object accel; int included_spec = 0; wv->type = CASCADE_TYPE; wv->enabled = 1; wv->name = (char *) XSTRING_DATA (LISP_GETTEXT (XCAR (desc))); + + accel = menu_name_to_accelerator (wv->name); + wv->accel = LISP_TO_VOID (accel); + desc = Fcdr (desc); while (key = Fcar (desc), KEYWORDP (key)) @@ -166,6 +171,14 @@ config_tag = val; else if (EQ (key, Q_filter)) hook_fn = val; + else if (EQ (key, Q_accelerator)) + { + if ( SYMBOLP (val) + || CHARP (val)) + wv->accel = LISP_TO_VOID (val); + else + signal_simple_error ("bad keyboard accelerator", val); + } else signal_simple_error ("unknown menu cascade keyword", cascade); } @@ -352,6 +365,10 @@ int any_changes = 0; int count; + /* set in lwlib to the time stamp associated with the most recent menu + operation */ + extern Time x_focus_timestamp_really_sucks_fix_me_better; + if (!f) f = x_any_window_to_frame (d, XtWindow (XtParent (widget))); if (!f) @@ -430,6 +447,9 @@ !XFRAME_MENUBAR_DATA (f)->menubar_contents_up_to_date) #endif set_frame_menubar (f, 1, 0); + DEVICE_X_MOUSE_TIMESTAMP (XDEVICE (FRAME_DEVICE (f))) = + DEVICE_X_GLOBAL_MOUSE_TIMESTAMP (XDEVICE (FRAME_DEVICE (f))) = + x_focus_timestamp_really_sucks_fix_me_better; UNGCPRO; } }