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