[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] trunk r114044: * nsterm.m (last_window): New variable.
From: |
Jan D. |
Subject: |
[Emacs-diffs] trunk r114044: * nsterm.m (last_window): New variable. |
Date: |
Wed, 28 Aug 2013 16:20:29 +0000 |
User-agent: |
Bazaar (2.6b2) |
------------------------------------------------------------
revno: 114044
revision-id: address@hidden
parent: address@hidden
fixes bug: http://debbugs.gnu.org/6888
committer: Jan D. <address@hidden>
branch nick: trunk
timestamp: Wed 2013-08-28 18:20:15 +0200
message:
* nsterm.m (last_window): New variable.
(EV_TRAILER2): New macro.
(EV_TRAILER): Call EV_TRAILER2.
(mouseMoved:): Add support for mouse-autoselect-window
on nextstep.
modified:
src/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1438
src/nsterm.m nsterm.m-20091113204419-o5vbwnq5f7feedwu-8747
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2013-08-28 13:50:55 +0000
+++ b/src/ChangeLog 2013-08-28 16:20:15 +0000
@@ -1,3 +1,11 @@
+2013-08-28 Davor Cubranic <address@hidden> (tiny change)
+
+ * nsterm.m (last_window): New variable.
+ (EV_TRAILER2): New macro.
+ (EV_TRAILER): Call EV_TRAILER2.
+ (mouseMoved:): Add support for mouse-autoselect-window
+ on nextstep (Bug#6888).
+
2013-08-28 Andreas Schwab <address@hidden>
* regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE, CHAR_HEAD_P)
=== modified file 'src/nsterm.m'
--- a/src/nsterm.m 2013-08-28 11:00:03 +0000
+++ b/src/nsterm.m 2013-08-28 16:20:15 +0000
@@ -184,6 +184,9 @@
Lisp_Object ns_display_name_list;
long context_menu_value = 0;
+/* Last window where we saw the mouse. Used by mouse-autoselect-window. */
+static Lisp_Object last_window;
+
/* display update */
NSPoint last_mouse_motion_position;
static NSRect last_mouse_glyph;
@@ -308,8 +311,13 @@
/* This is a piece of code which is common to all the event handling
methods. Maybe it should even be a function. */
#define EV_TRAILER(e) \
- { \
- XSETFRAME (emacs_event->frame_or_window, emacsframe); \
+ { \
+ XSETFRAME (emacs_event->frame_or_window, emacsframe); \
+ EV_TRAILER2 (e); \
+ }
+
+#define EV_TRAILER2(e) \
+ { \
if (e) emacs_event->timestamp = EV_TIMESTAMP (e); \
if (q_event_ptr) \
{ \
@@ -5465,6 +5473,27 @@
previous_help_echo_string = help_echo_string;
help_echo_string = Qnil;
+ if (!NILP (Vmouse_autoselect_window))
+ {
+ NSTRACE (mouse_autoselect_window);
+ Lisp_Object window;
+ window = window_from_coordinates(emacsframe,
last_mouse_motion_position.x,
+ last_mouse_motion_position.y, 0, 0);
+ if (WINDOWP (window)
+ && !EQ (window, last_window)
+ && !EQ (window, selected_window)
+ && (focus_follows_mouse
+ || (EQ (XWINDOW (window)->frame,
+ XWINDOW (selected_window)->frame))))
+ {
+ NSTRACE (in_window);
+ emacs_event->kind = SELECT_WINDOW_EVENT;
+ emacs_event->frame_or_window = window;
+ EV_TRAILER2 (e);
+ }
+ last_window = window;
+ }
+
if (!note_mouse_movement (emacsframe, last_mouse_motion_position.x,
last_mouse_motion_position.y))
help_echo_string = previous_help_echo_string;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] trunk r114044: * nsterm.m (last_window): New variable.,
Jan D. <=