[PATCH 0/2] MR4714: server: Ignore the capture window wrt desktop cursor changes.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55306 Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56046 I am tempted to drop the always_queue logic entirely, and always merge/queue the mouse move messages, but that would be a bigger change. This is enough to fix both regressions (the original with Worms Armageddon and the new one with Pegasus Mail). -- https://gitlab.winehq.org/wine/wine/-/merge_requests/4714
From: Rémi Bernon <rbernon(a)codeweavers.com> This partially reverts commit c3dcf1e2697b2cdf88dffdeb57feb0d5c7ff06cb. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55306 Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56046 --- server/queue.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/server/queue.c b/server/queue.c index 67249d06599..d3ca1172d91 100644 --- a/server/queue.c +++ b/server/queue.c @@ -454,8 +454,6 @@ static int update_desktop_cursor_window( struct desktop *desktop, user_handle_t static int update_desktop_cursor_pos( struct desktop *desktop, user_handle_t win, int x, int y ) { - struct thread_input *input; - user_handle_t capture; int updated; x = max( min( x, desktop->cursor.clip.right - 1 ), desktop->cursor.clip.left ); @@ -465,7 +463,6 @@ static int update_desktop_cursor_pos( struct desktop *desktop, user_handle_t win desktop->cursor.y = y; desktop->cursor.last_change = get_tick_count(); - if ((input = desktop->foreground_input) && (capture = input->capture)) win = capture; if (!win || !is_window_visible( win ) || is_window_transparent( win )) win = shallow_window_from_point( desktop, x, y ); if (update_desktop_cursor_window( desktop, win )) updated = 1; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/4714
From: Rémi Bernon <rbernon(a)codeweavers.com> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55306 --- server/queue.c | 1 + 1 file changed, 1 insertion(+) diff --git a/server/queue.c b/server/queue.c index 15a63f880f1..67249d06599 100644 --- a/server/queue.c +++ b/server/queue.c @@ -1711,6 +1711,7 @@ static void queue_hardware_message( struct desktop *desktop, struct message *msg } input = thread->queue->input; + if (win != msg->win) always_queue = 1; if (!always_queue || merge_message( input, msg )) free_message( msg ); else { -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/4714
participants (1)
-
Rémi Bernon