diff src/xmenu.c @ 97645:229acec13840

(Fx_popup_dialog, Fx_popup_menu, xmenu_show): Allow MSDOS frames along with X frames.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 23 Aug 2008 16:45:51 +0000
parents ba4a6844b73c
children 611a022eaebb
line wrap: on
line diff
--- a/src/xmenu.c	Sat Aug 23 16:45:13 2008 +0000
+++ b/src/xmenu.c	Sat Aug 23 16:45:51 2008 +0000
@@ -360,6 +360,13 @@
 	  Lisp_Object bar_window;
 	  enum scroll_bar_part part;
 	  unsigned long time;
+	  void (*mouse_position_hook) P_ ((struct frame **, int,
+					   Lisp_Object *,
+					   enum scroll_bar_part *,
+					   Lisp_Object *,
+					   Lisp_Object *,
+					   unsigned long *)) =
+	    new_f->terminal->mouse_position_hook;
 
 	  if (mouse_position_hook)
 	    (*mouse_position_hook) (&new_f, 1, &bar_window,
@@ -403,8 +410,8 @@
       xpos += XINT (x);
       ypos += XINT (y);
 
-      if (! FRAME_X_P (f))
-        error ("Can not put X menu on non-X terminal");
+      if (! FRAME_X_P (f) && ! FRAME_MSDOS_P (f))
+        error ("Can not put X menu on this terminal");
 
       XSETFRAME (Vmenu_updating_frame, f);
     }
@@ -594,8 +601,8 @@
        but I don't want to make one now.  */
     CHECK_WINDOW (window);
 
-  if (! FRAME_X_P (f))
-    error ("Can not put X dialog on non-X terminal");
+  if (! FRAME_X_P (f) && ! FRAME_MSDOS_P (f))
+    error ("Can not put X dialog on this terminal");
 
 #if ! defined (USE_X_TOOLKIT) && ! defined (USE_GTK)
   /* Display a menu with these alternatives
@@ -2605,7 +2612,7 @@
   unsigned int dummy_uint;
   int specpdl_count = SPECPDL_INDEX ();
 
-  if (! FRAME_X_P (f))
+  if (! FRAME_X_P (f) && ! FRAME_MSDOS_P (f))
     abort ();
 
   *error = 0;