Commit 93938ebe authored by Alexandre Julliard's avatar Alexandre Julliard

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.
parent b0c9e753
...@@ -1222,12 +1222,20 @@ static void release_hardware_message( struct msg_queue *queue, unsigned int hw_i ...@@ -1222,12 +1222,20 @@ 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 );
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment