[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs-24 432b00e: Fix assertions in popping up menus on TT
From: |
Eli Zaretskii |
Subject: |
[Emacs-diffs] emacs-24 432b00e: Fix assertions in popping up menus on TTY (Bug#19862) |
Date: |
Sat, 14 Feb 2015 13:07:52 +0000 |
branch: emacs-24
commit 432b00e6597f2a1eec192d807ad554a430f96f93
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>
Fix assertions in popping up menus on TTY (Bug#19862)
Do not merge this commit to trunk!
src/menu.c (Fx_popup_menu) [HAVE_X_WINDOWS]: Call
mouse_position_for_popup only for X frames.
---
src/ChangeLog | 5 ++++
src/menu.c | 58 ++++++++++++++++++++++++++++++--------------------------
2 files changed, 36 insertions(+), 27 deletions(-)
diff --git a/src/ChangeLog b/src/ChangeLog
index 20d3fb3..52be915 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2015-02-14 Eli Zaretskii <address@hidden>
+
+ * menu.c (Fx_popup_menu) [HAVE_X_WINDOWS]: Call
+ mouse_position_for_popup only for X frames. (Bug#19862)
+
2015-02-13 Eli Zaretskii <address@hidden>
* buffer.c (syms_of_buffer): Doc fix. (Bug#19841)
diff --git a/src/menu.c b/src/menu.c
index e318da0..3e0a89d 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -1238,35 +1238,39 @@ no quit occurs and `x-popup-menu' returns nil. */)
/* Use the mouse's current position. */
struct frame *new_f = SELECTED_FRAME ();
#ifdef HAVE_X_WINDOWS
- /* Can't use mouse_position_hook for X since it returns
- coordinates relative to the window the mouse is in,
- we need coordinates relative to the edit widget always. */
- if (new_f != 0)
+ if (FRAME_X_P (new_f))
{
- int cur_x, cur_y;
-
- mouse_position_for_popup (new_f, &cur_x, &cur_y);
- /* cur_x/y may be negative, so use make_number. */
- x = make_number (cur_x);
- y = make_number (cur_y);
+ /* Can't use mouse_position_hook for X since it returns
+ coordinates relative to the window the mouse is in,
+ we need coordinates relative to the edit widget always. */
+ if (new_f != 0)
+ {
+ int cur_x, cur_y;
+
+ mouse_position_for_popup (new_f, &cur_x, &cur_y);
+ /* cur_x/y may be negative, so use make_number. */
+ x = make_number (cur_x);
+ y = make_number (cur_y);
+ }
+ }
+ else
+#endif /* HAVE_X_WINDOWS */
+ {
+ Lisp_Object bar_window;
+ enum scroll_bar_part part;
+ Time time;
+ void (*mouse_position_hook) (struct frame **, int,
+ Lisp_Object *,
+ enum scroll_bar_part *,
+ Lisp_Object *,
+ Lisp_Object *,
+ Time *) =
+ FRAME_TERMINAL (new_f)->mouse_position_hook;
+
+ if (mouse_position_hook)
+ (*mouse_position_hook) (&new_f, 1, &bar_window,
+ &part, &x, &y, &time);
}
-
-#else /* not HAVE_X_WINDOWS */
- Lisp_Object bar_window;
- enum scroll_bar_part part;
- Time time;
- void (*mouse_position_hook) (struct frame **, int,
- Lisp_Object *,
- enum scroll_bar_part *,
- Lisp_Object *,
- Lisp_Object *,
- Time *) =
- FRAME_TERMINAL (new_f)->mouse_position_hook;
-
- if (mouse_position_hook)
- (*mouse_position_hook) (&new_f, 1, &bar_window,
- &part, &x, &y, &time);
-#endif /* not HAVE_X_WINDOWS */
if (new_f != 0)
XSETFRAME (window, new_f);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] emacs-24 432b00e: Fix assertions in popping up menus on TTY (Bug#19862),
Eli Zaretskii <=