From: Dmitry Antipov Date: Thu, 12 Sep 2013 07:29:33 +0000 (+0400) Subject: * xterm.h (x_display_info): New field last_user_time... X-Git-Tag: emacs-24.3.90~173^2^2~42^2~45^2~387^2~1662^2~4 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=27e90f7752ed9d02cb98dd2dc2886a4f052240ab;p=emacs.git * xterm.h (x_display_info): New field last_user_time... * xterm.c (toplevel): ...to replace static last_user_time. (handle_one_xevent, x_ewmh_activate_frame): Adjust users. --- diff --git a/src/ChangeLog b/src/ChangeLog index 88aa22b30dc..069a9885b4c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2013-09-12 Dmitry Antipov + + * xterm.h (x_display_info): New field last_user_time... + * xterm.c (toplevel): ...to replace static last_user_time. + (handle_one_xevent, x_ewmh_activate_frame): Adjust users. + 2013-09-12 Dmitry Antipov * xterm.c (x_set_scroll_bar_thumb) [USE_LUCID && !HAVE_XAW3D]: Clip diff --git a/src/xterm.c b/src/xterm.c index cd60915e056..c28ca824063 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -230,10 +230,6 @@ static Lisp_Object last_mouse_scroll_bar; static Time last_mouse_movement_time; -/* Time for last user interaction as returned in X events. */ - -static Time last_user_time; - /* Incremented by XTread_socket whenever it really tries to read events. */ @@ -5979,7 +5975,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, XEvent *eventptr, break; case SelectionNotify: - last_user_time = event.xselection.time; + dpyinfo->last_user_time = event.xselection.time; #ifdef USE_X_TOOLKIT if (! x_window_to_frame (dpyinfo, event.xselection.requestor)) goto OTHER; @@ -5988,7 +5984,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, XEvent *eventptr, break; case SelectionClear: /* Someone has grabbed ownership. */ - last_user_time = event.xselectionclear.time; + dpyinfo->last_user_time = event.xselectionclear.time; #ifdef USE_X_TOOLKIT if (! x_window_to_frame (dpyinfo, event.xselectionclear.window)) goto OTHER; @@ -6004,7 +6000,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, XEvent *eventptr, break; case SelectionRequest: /* Someone wants our selection. */ - last_user_time = event.xselectionrequest.time; + dpyinfo->last_user_time = event.xselectionrequest.time; #ifdef USE_X_TOOLKIT if (!x_window_to_frame (dpyinfo, event.xselectionrequest.owner)) goto OTHER; @@ -6023,7 +6019,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, XEvent *eventptr, break; case PropertyNotify: - last_user_time = event.xproperty.time; + dpyinfo->last_user_time = event.xproperty.time; f = x_top_window_to_frame (dpyinfo, event.xproperty.window); if (f && event.xproperty.atom == dpyinfo->Xatom_net_wm_state) if (x_handle_net_wm_state (f, &event.xproperty) @@ -6223,7 +6219,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, XEvent *eventptr, case KeyPress: - last_user_time = event.xkey.time; + dpyinfo->last_user_time = event.xkey.time; ignore_next_mouse_click_timeout = 0; #if defined (USE_X_TOOLKIT) || defined (USE_GTK) @@ -6554,7 +6550,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, XEvent *eventptr, #endif case KeyRelease: - last_user_time = event.xkey.time; + dpyinfo->last_user_time = event.xkey.time; #ifdef HAVE_X_I18N /* Don't dispatch this event since XtDispatchEvent calls XFilterEvent, and two calls in a row may freeze the @@ -6565,7 +6561,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, XEvent *eventptr, #endif case EnterNotify: - last_user_time = event.xcrossing.time; + dpyinfo->last_user_time = event.xcrossing.time; x_detect_focus_change (dpyinfo, &event, &inev.ie); f = x_any_window_to_frame (dpyinfo, event.xcrossing.window); @@ -6590,7 +6586,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, XEvent *eventptr, goto OTHER; case LeaveNotify: - last_user_time = event.xcrossing.time; + dpyinfo->last_user_time = event.xcrossing.time; x_detect_focus_change (dpyinfo, &event, &inev.ie); f = x_top_window_to_frame (dpyinfo, event.xcrossing.window); @@ -6624,7 +6620,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, XEvent *eventptr, case MotionNotify: { - last_user_time = event.xmotion.time; + dpyinfo->last_user_time = event.xmotion.time; previous_help_echo_string = help_echo_string; help_echo_string = Qnil; @@ -6767,9 +6763,9 @@ handle_one_xevent (struct x_display_info *dpyinfo, XEvent *eventptr, by the rest of Emacs, we put it here. */ bool tool_bar_p = 0; - memset (&compose_status, 0, sizeof (compose_status)); + memset (&compose_status, 0, sizeof (compose_status)); last_mouse_glyph_frame = 0; - last_user_time = event.xbutton.time; + dpyinfo->last_user_time = event.xbutton.time; if (dpyinfo->grabbed && last_mouse_frame @@ -8859,8 +8855,9 @@ x_ewmh_activate_frame (struct frame *f) Lisp_Object frame; XSETFRAME (frame, f); x_send_client_event (frame, make_number (0), frame, - dpyinfo->Xatom_net_active_window, - make_number (32), list2i (1, last_user_time)); + dpyinfo->Xatom_net_active_window, + make_number (32), + list2i (1, dpyinfo->last_user_time)); } } diff --git a/src/xterm.h b/src/xterm.h index f4a2d4c01b2..bdc8523009a 100644 --- a/src/xterm.h +++ b/src/xterm.h @@ -301,6 +301,9 @@ struct x_display_info minibuffer. */ struct frame *x_highlight_frame; + /* Time of last user interaction as returned in X events on this display. */ + Time last_user_time; + /* The gray pixmap. */ Pixmap gray;