diff 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
line wrap: on
line diff
--- a/src/gui-x.c	Mon Aug 13 10:34:15 2007 +0200
+++ b/src/gui-x.c	Mon Aug 13 10:35:03 2007 +0200
@@ -36,7 +36,6 @@
 #include "frame.h"
 #include "gui.h"
 #include "opaque.h"
-#include "bytecode.h"		/* for struct Lisp_Compiled_Function */
 
 #ifdef HAVE_POPUPS
 Lisp_Object Qmenu_no_selection_hook;
@@ -259,31 +258,8 @@
       fn = Qrun_hooks;
       arg = Qmenu_no_selection_hook;
     }
-  else if (SYMBOLP (data)
-	   /* poor man's commandp
-	      #### should abstract it out! */
-	   || (COMPILED_FUNCTIONP (data)
-	       && XCOMPILED_FUNCTION (data)->flags.interactivep)
-	   || (EQ (XCAR (data), Qlambda)
-	       && !NILP (Fassq (Qinteractive, Fcdr (Fcdr (data))))))
-    {
-      fn = Qcall_interactively;
-      arg = data;
-    }
-  else if (CONSP (data))
-    {
-      fn = Qeval;
-      arg = data;
-    }
   else
-    {
-      fn = Qeval;
-      arg = list3 (Qsignal,
-                   list2 (Qquote, Qerror),
-                   list2 (Qquote, list2 (build_translated_string
-					 ("illegal popup callback"),
-                                         data)));
-    }
+    get_callback (data, &fn, &arg);
 
   /* This is the timestamp used for asserting focus so we need to get an
      up-to-date value event if no events has been dispatched to emacs