XEmacs 21.2.34 "Molpe".
[chise/xemacs-chise.git.1] / src / gui-x.c
index 2cade75..8aebe30 100644 (file)
@@ -229,10 +229,6 @@ popup_selection_callback (Widget widget, LWLIB_ID ignored_id,
   VOID_TO_LISP (data, client_data);
   XSETFRAME (frame, f);
 
-  image_instance = XCAR (data);
-  callback = XCAR (XCDR (data));
-  callback_ex = XCDR (XCDR (data));
-
 #if 0
   /* #### What the hell?  I can't understand why this call is here,
      and doing it is really courting disaster in the new event
@@ -255,6 +251,9 @@ popup_selection_callback (Widget widget, LWLIB_ID ignored_id,
     }
   else
     {
+      image_instance = XCAR (data);
+      callback = XCAR (XCDR (data));
+      callback_ex = XCDR (XCDR (data));
       update_subwindows_p = 1;
 
       if (!NILP (callback_ex) && !UNBOUNDP (callback_ex))
@@ -294,16 +293,9 @@ popup_selection_callback (Widget widget, LWLIB_ID ignored_id,
   if (!NILP (event))
     enqueue_Xt_dispatch_event (event);
   /* The result of this evaluation could cause other instances to change so 
-     enqueue an update callback to check this. We also have to make sure that
-     the function does not appear in the command history.
-     #### I'm sure someone can tell me how to optimize this. */
+     enqueue an update callback to check this. */
   if (update_subwindows_p && !NILP (event))
-    signal_special_Xt_user_event (frame, Qeval,
-                                 list3 (Qlet,
-                                        list2 (Qthis_command,
-                                               Qlast_command),
-                                        list2 (Qupdate_widget_instances,
-                                               frame)));
+    enqueue_magic_eval_event (update_widget_instances, frame);
 }
 
 #if 1