+2013-07-18 Juanma Barranquero <lekktu@gmail.com>
+
+ * frame.el (blink-cursor-timer-function, blink-cursor-suspend):
+ Add check for W32 (followup to 2013-07-16T11:41:06Z!jan.h.d@swipnet.se).
+
2013-07-18 Michael Albinus <michael.albinus@gmx.de>
* filenotify.el (file-notify--library): Renamed from
"Timer function of timer `blink-cursor-timer'."
(internal-show-cursor nil (not (internal-show-cursor-p)))
;; Each blink is two calls to this function.
- (when (memq window-system '(x ns))
+ (when (memq window-system '(x ns w32))
(setq blink-cursor-blinks-done (1+ blink-cursor-blinks-done))
(when (and (> blink-cursor-blinks 0)
(<= (* 2 blink-cursor-blinks) blink-cursor-blinks-done))
(setq blink-cursor-timer nil)))
(defun blink-cursor-suspend ()
- "Suspend cursor blinking on NS and X.
+ "Suspend cursor blinking on NS, X and W32.
This is called when no frame has focus and timers can be suspended.
Timers are restarted by `blink-cursor-check', which is called when a
frame receives focus."
- (when (memq window-system '(x ns))
+ (when (memq window-system '(x ns w32))
(blink-cursor-end)
(when blink-cursor-idle-timer
(cancel-timer blink-cursor-idle-timer)
+2013-07-18 Juanma Barranquero <lekktu@gmail.com>
+
+ * keyboard.c (kbd_buffer_get_event):
+ * w32term.c (x_focus_changed): Port FOCUS_(IN|OUT)_EVENT changes to W32.
+ Followup to 2013-07-16T11:41:06Z!jan.h.d@swipnet.se.
+
2013-07-18 Paul Eggert <eggert@cs.ucla.edu>
* filelock.c: Fix unlikely file descriptor leaks.
}
else if (event->kind == FOCUS_OUT_EVENT)
{
-#if defined(HAVE_NS) || defined (HAVE_X11)
+#if defined (HAVE_NS) || defined (HAVE_X11) || defined (WINDOWSNT)
#ifdef HAVE_NS
struct ns_display_info *di;
Lisp_Object frame = event->frame_or_window;
bool focused = false;
- for (di = x_display_list; di && ! focused; di = di->next)
- focused = di->x_highlight_frame != 0;
+ for (di = x_display_list; di && ! focused; di = FRAME_X_DISPLAY_INFO (di)->next)
+ focused = FRAME_X_DISPLAY_INFO (di)->x_highlight_frame = 0;
if (! focused) obj = make_lispy_focus_out (frame);
-#endif /* HAVE_NS || HAVE_X11 */
+#endif /* HAVE_NS || HAVE_X11 || WINDOWSNT */
kbd_fetch_ptr = event + 1;
}
&& CONSP (Vframe_list)
&& !NILP (XCDR (Vframe_list)))
{
- bufp->kind = FOCUS_IN_EVENT;
- XSETFRAME (bufp->frame_or_window, frame);
+ bufp->arg = Qt;
}
+ else
+ {
+ bufp->arg = Qnil;
+ }
+
+ bufp->kind = FOCUS_IN_EVENT;
+ XSETFRAME (bufp->frame_or_window, frame);
}
frame->output_data.x->focus_state |= state;
{
dpyinfo->w32_focus_event_frame = 0;
x_new_focus_frame (dpyinfo, 0);
- }
+
+ bufp->kind = FOCUS_OUT_EVENT;
+ XSETFRAME (bufp->frame_or_window, frame);
+ }
/* TODO: IME focus? */
}