changeset 4627:340c18d50337

(Fx_popup_menu): Adjust coords so they are relative to the inner window.
author Richard M. Stallman <rms@gnu.org>
date Sat, 14 Aug 1993 10:30:09 +0000
parents c5bbe7c3cfe3
children e55cc9fdaa92
files src/xmenu.c
diffstat 1 files changed, 28 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/xmenu.c	Sat Aug 14 09:38:56 1993 +0000
+++ b/src/xmenu.c	Sat Aug 14 10:30:09 1993 +0000
@@ -168,6 +168,34 @@
        but I don't want to make one now.  */
     CHECK_WINDOW (window, 0);
 
+#ifdef HAVE_X11
+  {
+    Window child;
+    int win_x = 0, win_y = 0;
+
+    /* Find the position of the outside upper-left corner of
+       the inner window, with respect to the outer window.  */
+    if (f->display.x->parent_desc != ROOT_WINDOW)
+      {
+	BLOCK_INPUT;
+	XTranslateCoordinates (x_current_display,
+
+			       /* From-window, to-window.  */
+			       f->display.x->window_desc,
+			       f->display.x->parent_desc,
+
+			       /* From-position, to-position.  */
+			       0, 0, &win_x, &win_y,
+
+			       /* Child of window.  */
+			       &child);
+	UNBLOCK_INPUT;
+	XMenu_xpos += win_x;
+	XMenu_ypos += win_y;
+      }
+  }
+#endif
+
   XMenu_xpos += FONT_WIDTH (f->display.x->font) * XINT (x);
   XMenu_ypos += FONT_HEIGHT (f->display.x->font) * XINT (y);