comparison src/gui-x.c @ 286:57709be46d1b r21-0b41

Import from CVS: tag r21-0b41
author cvs
date Mon, 13 Aug 2007 10:35:03 +0200
parents 558f606b08ae
children e11d67e05968
comparison
equal deleted inserted replaced
285:9a3756523c1b 286:57709be46d1b
34 #include "buffer.h" 34 #include "buffer.h"
35 #include "device.h" 35 #include "device.h"
36 #include "frame.h" 36 #include "frame.h"
37 #include "gui.h" 37 #include "gui.h"
38 #include "opaque.h" 38 #include "opaque.h"
39 #include "bytecode.h" /* for struct Lisp_Compiled_Function */
40 39
41 #ifdef HAVE_POPUPS 40 #ifdef HAVE_POPUPS
42 Lisp_Object Qmenu_no_selection_hook; 41 Lisp_Object Qmenu_no_selection_hook;
43 #endif 42 #endif
44 43
257 if (((EMACS_INT) client_data) == -1) 256 if (((EMACS_INT) client_data) == -1)
258 { 257 {
259 fn = Qrun_hooks; 258 fn = Qrun_hooks;
260 arg = Qmenu_no_selection_hook; 259 arg = Qmenu_no_selection_hook;
261 } 260 }
262 else if (SYMBOLP (data)
263 /* poor man's commandp
264 #### should abstract it out! */
265 || (COMPILED_FUNCTIONP (data)
266 && XCOMPILED_FUNCTION (data)->flags.interactivep)
267 || (EQ (XCAR (data), Qlambda)
268 && !NILP (Fassq (Qinteractive, Fcdr (Fcdr (data))))))
269 {
270 fn = Qcall_interactively;
271 arg = data;
272 }
273 else if (CONSP (data))
274 {
275 fn = Qeval;
276 arg = data;
277 }
278 else 261 else
279 { 262 get_callback (data, &fn, &arg);
280 fn = Qeval;
281 arg = list3 (Qsignal,
282 list2 (Qquote, Qerror),
283 list2 (Qquote, list2 (build_translated_string
284 ("illegal popup callback"),
285 data)));
286 }
287 263
288 /* This is the timestamp used for asserting focus so we need to get an 264 /* This is the timestamp used for asserting focus so we need to get an
289 up-to-date value event if no events has been dispatched to emacs 265 up-to-date value event if no events has been dispatched to emacs
290 */ 266 */
291 #if defined(HAVE_MENUBARS) 267 #if defined(HAVE_MENUBARS)