* w32term.c (w32_read_socket): Use it instead of WM_PAINT.
* w32fns.c (w32_wnd_proc): Change WM_PAINT to WM_EMACS_PAINT
before passing to lisp thread. (Bug#950)
+2009-03-15 Jason Rumney <jasonr@gnu.org>
+
+ * w32term.h (WM_EMACS_PAINT): New message.
+ * w32term.c (w32_read_socket): Use it instead of WM_PAINT.
+ * w32fns.c (w32_wnd_proc): Change WM_PAINT to WM_EMACS_PAINT
+ before passing to lisp thread. (Bug#950)
+
2009-03-14 David Reitter <david.reitter@gmail.com>
* nsterm.m (ns_shutdown_properly, -terminate): Remove global state
EndPaint (hwnd, &paintStruct);
leave_crit ();
- my_post_msg (&wmsg, hwnd, msg, wParam, lParam);
+ /* Change the message type to prevent Windows from
+ combining WM_PAINT messages in the Lisp thread's queue,
+ since Windows assumes that each message queue is
+ dedicated to one frame and does not bother checking
+ that hwnd matches before combining them. */
+ my_post_msg (&wmsg, hwnd, WM_EMACS_PAINT, wParam, lParam);
return 0;
}
switch (msg.msg.message)
{
- case WM_PAINT:
+ case WM_EMACS_PAINT:
f = x_window_to_frame (dpyinfo, msg.msg.hwnd);
if (f)
#define WM_EMACS_SHOW_CARET (WM_EMACS_START + 17)
#define WM_EMACS_HIDE_CARET (WM_EMACS_START + 18)
#define WM_EMACS_SETCURSOR (WM_EMACS_START + 19)
-#define WM_EMACS_END (WM_EMACS_START + 20)
+#define WM_EMACS_PAINT (WM_EMACS_START + 20)
+#define WM_EMACS_END (WM_EMACS_START + 21)
#define WND_FONTWIDTH_INDEX (0)
#define WND_LINEHEIGHT_INDEX (4)