* nsterm.m (last_window): New variable.
(EV_TRAILER2): New macro. (EV_TRAILER): Call EV_TRAILER2. (mouseMoved:): Add support for mouse-autoselect-window on nextstep. Fixes: debbugs:6888
This commit is contained in:
parent
78779650d6
commit
5ab473cdda
2 changed files with 39 additions and 2 deletions
|
@ -1,3 +1,11 @@
|
|||
2013-08-28 Davor Cubranic <cubranic@stat.ubc.ca> (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 <schwab@suse.de>
|
||||
|
||||
* regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE, CHAR_HEAD_P)
|
||||
|
|
33
src/nsterm.m
33
src/nsterm.m
|
@ -184,6 +184,9 @@ Updated by Christian Limpach (chris@nice.ch)
|
|||
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 @@ Updated by Christian Limpach (chris@nice.ch)
|
|||
/* 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 @@ - (void)mouseMoved: (NSEvent *)e
|
|||
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;
|
||||
|
|
Loading…
Add table
Reference in a new issue