unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Re: x-popup-menu pops up at funny positions
@ 2003-01-06 18:46 Jan D.
  2003-01-09  7:27 ` Richard Stallman
  0 siblings, 1 reply; 16+ messages in thread
From: Jan D. @ 2003-01-06 18:46 UTC (permalink / raw)
  Cc: emacs-devel

> 
> > So how about writing code to read the current position, compare it
> > with the recorded position, and abort if they differ?  That way
> > we will find out if it isn't always right.
> 
> Abort sounds a bit drastic, how about popping up a dialog instead?

Even the old code relied on these positions to always be correct, it
is not like we are introducing new requirements for correctness.

	Jan D.

^ permalink raw reply	[flat|nested] 16+ messages in thread
* x-popup-menu pops up at funny positions
@ 2003-01-03 16:15 Jan D.
  2003-01-03 17:14 ` Jan D.
  2003-01-04  4:20 ` Richard Stallman
  0 siblings, 2 replies; 16+ messages in thread
From: Jan D. @ 2003-01-03 16:15 UTC (permalink / raw)


[-- Attachment #1: Type: text/plain, Size: 594 bytes --]

Hello.

While trying to reproduce a reported problem with x-popup-menu (that problem 
seems to be gone), I saw that x-popup-menu doesn't put the menu in the correct 
position if the (x y) variant is used, like this:

(x-popup-menu
  (list '(1 1) (selected-window))
  (list "title" (cons "title" '(("ignore" 'ignore)))
        ))

For lucid and motif, this puts the popup menu at a position that would be 
correct if the Emacs edit window is at (0 0) on the root window.  If Emacs is
anywhere else on the root window, this is wrong.

Here is a patch to fix that.  Is it OK to check in?

	Jan D.

[-- Attachment #2: xmenu.c.patch --]
[-- Type: text/plain, Size: 2049 bytes --]

*** src/xmenu.c.~1.239.~	2002-12-27 16:43:12.000000000 +0100
--- src/xmenu.c	2003-01-03 16:48:42.000000000 +0100
***************
*** 2279,2315 ****
  			   popup_deactivate_callback,
  			   menu_highlight_callback);
  
-   /* Adjust coordinates to relative to the outer (window manager) window.  */
-   {
-     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->output_data.x->parent_desc != FRAME_X_DISPLAY_INFO (f)->root_window)
-       {
- 	BLOCK_INPUT;
- 	XTranslateCoordinates (FRAME_X_DISPLAY (f),
- 
- 			       /* From-window, to-window.  */
- 			       f->output_data.x->window_desc,
- 			       f->output_data.x->parent_desc,
- 
- 			       /* From-position, to-position.  */
- 			       0, 0, &win_x, &win_y,
- 
- 			       /* Child of window.  */
- 			       &child);
- 	UNBLOCK_INPUT;
- 	x += win_x;
- 	y += win_y;
-       }
-   }
- 
-   /* Adjust coordinates to be root-window-relative.  */
-   x += f->output_data.x->left_pos;
-   y += f->output_data.x->top_pos;
- 
    dummy.type = ButtonPress;
    dummy.serial = 0;
    dummy.send_event = 0;
--- 2279,2284 ----
***************
*** 2318,2327 ****
    dummy.root = FRAME_X_DISPLAY_INFO (f)->root_window;
    dummy.window = dummy.root;
    dummy.subwindow = dummy.root;
-   dummy.x_root = x;
-   dummy.y_root = y;
    dummy.x = x;
    dummy.y = y;
    dummy.state = (FRAME_X_DISPLAY_INFO (f)->grabbed >> 1) * Button1Mask;
    dummy.button = 0;
    for (i = 0; i < 5; i++)
--- 2287,2299 ----
    dummy.root = FRAME_X_DISPLAY_INFO (f)->root_window;
    dummy.window = dummy.root;
    dummy.subwindow = dummy.root;
    dummy.x = x;
    dummy.y = y;
+   /* Adjust coordinates to be root-window-relative.  */
+   x += f->output_data.x->left_pos;
+   y += f->output_data.x->top_pos;
+   dummy.x_root = x;
+   dummy.y_root = y;
    dummy.state = (FRAME_X_DISPLAY_INFO (f)->grabbed >> 1) * Button1Mask;
    dummy.button = 0;
    for (i = 0; i < 5; i++)

[-- Attachment #3: Type: text/plain, Size: 142 bytes --]

_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/emacs-devel

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2003-01-09 21:02 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-01-06 18:46 x-popup-menu pops up at funny positions Jan D.
2003-01-09  7:27 ` Richard Stallman
2003-01-09 21:02   ` Jan D.
  -- strict thread matches above, loose matches on Subject: below --
2003-01-03 16:15 Jan D.
2003-01-03 17:14 ` Jan D.
2003-01-04  4:20 ` Richard Stallman
2003-01-04 13:25   ` Jan D.
2003-01-05 18:33     ` Richard Stallman
2003-01-05 22:05       ` Jan D.
2003-01-06  0:13         ` Jan D.
2003-01-06 17:13         ` Richard Stallman
2003-01-06 18:41           ` Jan D.
2003-01-07 13:40             ` Richard Stallman
2003-01-07 17:47               ` Jan D.
2003-01-08  8:00                 ` Richard Stallman
2003-01-08 20:07                   ` Jan D.

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).