return 0;
}
+static void
+signal_user_input ()
+{
+ /* Interrupt any lisp that wants to be interrupted by input. */
+ if (!NILP (Vthrow_on_input))
+ {
+ Vquit_flag = Vthrow_on_input;
+ /* If we're inside a function that wants immediate quits,
+ do it now. */
+ if (immediate_quit && NILP (Vinhibit_quit))
+ {
+ immediate_quit = 0;
+ QUIT;
+ }
+ }
+}
+
+
static void
post_character_message (hwnd, msg, wParam, lParam, modifiers)
HWND hwnd;
to receive C-g to interrupt the lisp thread. */
cancel_all_deferred_msgs ();
}
+ else
+ signal_user_input ();
}
my_post_msg (&wmsg, hwnd, msg, wParam, lParam);
wmsg.dwModifiers = w32_get_modifiers ();
my_post_msg (&wmsg, hwnd, msg, wParam, lParam);
+ signal_user_input ();
/* Need to return true for XBUTTON messages, false for others,
to indicate that we processed the message. */
case WM_MOUSEWHEEL:
wmsg.dwModifiers = w32_get_modifiers ();
my_post_msg (&wmsg, hwnd, msg, wParam, lParam);
+ signal_user_input ();
return 0;
case WM_DROPFILES:
wmsg.dwModifiers = w32_get_modifiers ();
my_post_msg (&wmsg, hwnd, msg, wParam, lParam);
+ signal_user_input ();
return 0;
case WM_TIMER:
if (saved_mouse_button_msg.msg.hwnd)
{
post_msg (&saved_mouse_button_msg);
+ signal_user_input ();
saved_mouse_button_msg.msg.hwnd = 0;
}
KillTimer (hwnd, mouse_button_timer);
{
wmsg.dwModifiers = w32_get_modifiers ();
my_post_msg (&wmsg, hwnd, msg, wParam, lParam);
+ signal_user_input ();
return 0;
}