Mercurial > hg > xemacs-beta
comparison 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 |
comparison
equal
deleted
inserted
replaced
174:bb3568571b84 | 175:2d532a89d707 |
---|---|
143 | 143 |
144 if (STRINGP (XCAR (desc))) | 144 if (STRINGP (XCAR (desc))) |
145 { | 145 { |
146 Lisp_Object key, val; | 146 Lisp_Object key, val; |
147 Lisp_Object include_p = Qnil, hook_fn = Qnil, config_tag = Qnil; | 147 Lisp_Object include_p = Qnil, hook_fn = Qnil, config_tag = Qnil; |
148 Lisp_Object accel; | |
148 int included_spec = 0; | 149 int included_spec = 0; |
149 wv->type = CASCADE_TYPE; | 150 wv->type = CASCADE_TYPE; |
150 wv->enabled = 1; | 151 wv->enabled = 1; |
151 wv->name = (char *) XSTRING_DATA (LISP_GETTEXT (XCAR (desc))); | 152 wv->name = (char *) XSTRING_DATA (LISP_GETTEXT (XCAR (desc))); |
153 | |
154 accel = menu_name_to_accelerator (wv->name); | |
155 wv->accel = LISP_TO_VOID (accel); | |
156 | |
152 desc = Fcdr (desc); | 157 desc = Fcdr (desc); |
153 | 158 |
154 while (key = Fcar (desc), KEYWORDP (key)) | 159 while (key = Fcar (desc), KEYWORDP (key)) |
155 { | 160 { |
156 Lisp_Object cascade = desc; | 161 Lisp_Object cascade = desc; |
164 include_p = val, included_spec = 1; | 169 include_p = val, included_spec = 1; |
165 else if (EQ (key, Q_config)) | 170 else if (EQ (key, Q_config)) |
166 config_tag = val; | 171 config_tag = val; |
167 else if (EQ (key, Q_filter)) | 172 else if (EQ (key, Q_filter)) |
168 hook_fn = val; | 173 hook_fn = val; |
174 else if (EQ (key, Q_accelerator)) | |
175 { | |
176 if ( SYMBOLP (val) | |
177 || CHARP (val)) | |
178 wv->accel = LISP_TO_VOID (val); | |
179 else | |
180 signal_simple_error ("bad keyboard accelerator", val); | |
181 } | |
169 else | 182 else |
170 signal_simple_error ("unknown menu cascade keyword", cascade); | 183 signal_simple_error ("unknown menu cascade keyword", cascade); |
171 } | 184 } |
172 | 185 |
173 if ((!NILP (config_tag) | 186 if ((!NILP (config_tag) |
350 Lisp_Object rest = Qnil; | 363 Lisp_Object rest = Qnil; |
351 Lisp_Object frame; | 364 Lisp_Object frame; |
352 int any_changes = 0; | 365 int any_changes = 0; |
353 int count; | 366 int count; |
354 | 367 |
368 /* set in lwlib to the time stamp associated with the most recent menu | |
369 operation */ | |
370 extern Time x_focus_timestamp_really_sucks_fix_me_better; | |
371 | |
355 if (!f) | 372 if (!f) |
356 f = x_any_window_to_frame (d, XtWindow (XtParent (widget))); | 373 f = x_any_window_to_frame (d, XtWindow (XtParent (widget))); |
357 if (!f) | 374 if (!f) |
358 return; | 375 return; |
359 | 376 |
428 that an INCREMENTAL_TYPE widget_value can be recreated... Hmmmmm. */ | 445 that an INCREMENTAL_TYPE widget_value can be recreated... Hmmmmm. */ |
429 if (any_changes || | 446 if (any_changes || |
430 !XFRAME_MENUBAR_DATA (f)->menubar_contents_up_to_date) | 447 !XFRAME_MENUBAR_DATA (f)->menubar_contents_up_to_date) |
431 #endif | 448 #endif |
432 set_frame_menubar (f, 1, 0); | 449 set_frame_menubar (f, 1, 0); |
450 DEVICE_X_MOUSE_TIMESTAMP (XDEVICE (FRAME_DEVICE (f))) = | |
451 DEVICE_X_GLOBAL_MOUSE_TIMESTAMP (XDEVICE (FRAME_DEVICE (f))) = | |
452 x_focus_timestamp_really_sucks_fix_me_better; | |
433 UNGCPRO; | 453 UNGCPRO; |
434 } | 454 } |
435 } | 455 } |
436 | 456 |
437 #ifdef ENERGIZE | 457 #ifdef ENERGIZE |