mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-14 21:57:18 +00:00
server: Don't drop mouse messages that should go to a different thread input.
Instead requeue them into the proper destination queue. Reported by Ulrich Czekalla.
This commit is contained in:
parent
b0c9e753d5
commit
93938ebe5e
|
@ -1221,13 +1221,21 @@ static void release_hardware_message( struct msg_queue *queue, unsigned int hw_i
|
||||||
{
|
{
|
||||||
struct thread *owner = get_window_thread( new_win );
|
struct thread *owner = get_window_thread( new_win );
|
||||||
if (owner)
|
if (owner)
|
||||||
{
|
|
||||||
if (owner->queue->input == input)
|
|
||||||
{
|
{
|
||||||
msg->win = new_win;
|
msg->win = new_win;
|
||||||
|
if (owner->queue->input != input)
|
||||||
|
{
|
||||||
|
list_remove( &msg->entry );
|
||||||
|
if (msg->msg == WM_MOUSEMOVE && merge_message( owner->queue->input, msg ))
|
||||||
|
{
|
||||||
|
free_message( msg );
|
||||||
|
release_object( owner );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
list_add_tail( &owner->queue->input->msg_list, &msg->entry );
|
||||||
|
}
|
||||||
set_queue_bits( owner->queue, get_hardware_msg_bit( msg ));
|
set_queue_bits( owner->queue, get_hardware_msg_bit( msg ));
|
||||||
remove = 0;
|
remove = 0;
|
||||||
}
|
|
||||||
release_object( owner );
|
release_object( owner );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue