diff --git a/patches/server-Shared_Memory/0005-user32-Get-rid-of-wineserver-call-for-GetLastInputIn.patch b/patches/server-Shared_Memory/0005-user32-Get-rid-of-wineserver-call-for-GetLastInputIn.patch index 284178e5..aa1e8fd9 100644 --- a/patches/server-Shared_Memory/0005-user32-Get-rid-of-wineserver-call-for-GetLastInputIn.patch +++ b/patches/server-Shared_Memory/0005-user32-Get-rid-of-wineserver-call-for-GetLastInputIn.patch @@ -1,4 +1,4 @@ -From 23feeb06aebf6f8f040fb3b31d5088354284f976 Mon Sep 17 00:00:00 2001 +From 805c26a06412e2af19483976a8a9a892267f29d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Thu, 19 Mar 2015 02:18:37 +0100 Subject: user32: Get rid of wineserver call for GetLastInputInfo. @@ -6,13 +6,14 @@ Subject: user32: Get rid of wineserver call for GetLastInputInfo. --- dlls/user32/input.c | 7 +++++++ server/protocol.def | 4 ++-- - 2 files changed, 9 insertions(+), 2 deletions(-) + server/queue.c | 1 + + 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/dlls/user32/input.c b/dlls/user32/input.c -index ace4fb8..2512887 100644 +index 4cf6b61..e63c8cf 100644 --- a/dlls/user32/input.c +++ b/dlls/user32/input.c -@@ -477,6 +477,7 @@ done: +@@ -487,6 +487,7 @@ done: BOOL WINAPI GetLastInputInfo(PLASTINPUTINFO plii) { BOOL ret; @@ -20,7 +21,7 @@ index ace4fb8..2512887 100644 TRACE("%p\n", plii); -@@ -486,6 +487,12 @@ BOOL WINAPI GetLastInputInfo(PLASTINPUTINFO plii) +@@ -496,6 +497,12 @@ BOOL WINAPI GetLastInputInfo(PLASTINPUTINFO plii) return FALSE; } @@ -34,7 +35,7 @@ index ace4fb8..2512887 100644 { ret = !wine_server_call_err( req ); diff --git a/server/protocol.def b/server/protocol.def -index 7d077d7..cf6d783 100644 +index 4872251..f12109f 100644 --- a/server/protocol.def +++ b/server/protocol.def @@ -71,12 +71,12 @@ struct request_max_size @@ -52,6 +53,18 @@ index 7d077d7..cf6d783 100644 } shmlocal_t; /* debug event data */ +diff --git a/server/queue.c b/server/queue.c +index 3d0fef2..37e8c37 100644 +--- a/server/queue.c ++++ b/server/queue.c +@@ -1490,6 +1490,7 @@ static void queue_hardware_message( struct desktop *desktop, struct message *msg + + update_key_state( desktop, desktop->keystate, msg ); + last_input_time = get_tick_count(); ++ if (shmglobal) shmglobal->last_input_time = last_input_time; + if (msg->msg != WM_MOUSEMOVE) always_queue = 1; + + if (is_keyboard_msg( msg )) -- -2.3.2 +2.3.5 diff --git a/patches/server-Shared_Memory/0008-user32-Get-rid-of-wineserver-call-for-GetActiveWindo.patch b/patches/server-Shared_Memory/0008-user32-Get-rid-of-wineserver-call-for-GetActiveWindo.patch index 67249c42..57d8d280 100644 --- a/patches/server-Shared_Memory/0008-user32-Get-rid-of-wineserver-call-for-GetActiveWindo.patch +++ b/patches/server-Shared_Memory/0008-user32-Get-rid-of-wineserver-call-for-GetActiveWindo.patch @@ -1,4 +1,4 @@ -From 7b779d2ada994d6e7169ce1e589a417a3f17695f Mon Sep 17 00:00:00 2001 +From 452f8d47d7cd63f0fe5270d8ec6a7062544d3903 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sat, 21 Mar 2015 09:45:54 +0100 Subject: user32: Get rid of wineserver call for GetActiveWindow, GetFocus, @@ -38,7 +38,7 @@ index c47a82d..35fe89b 100644 { req->tid = GetCurrentThreadId(); diff --git a/dlls/user32/input.c b/dlls/user32/input.c -index c18ebe0..2308a1e 100644 +index e63c8cf..0943d01 100644 --- a/dlls/user32/input.c +++ b/dlls/user32/input.c @@ -342,8 +342,10 @@ BOOL WINAPI DECLSPEC_HOTPATCH ReleaseCapture(void) @@ -53,7 +53,7 @@ index c18ebe0..2308a1e 100644 { req->tid = GetCurrentThreadId(); diff --git a/server/protocol.def b/server/protocol.def -index 4636d42..15df669 100644 +index f12109f..5ec2485 100644 --- a/server/protocol.def +++ b/server/protocol.def @@ -76,7 +76,10 @@ typedef struct @@ -69,7 +69,7 @@ index 4636d42..15df669 100644 /* debug event data */ diff --git a/server/queue.c b/server/queue.c -index 1b80348..6fa076d 100644 +index 3f52656..33c2758 100644 --- a/server/queue.c +++ b/server/queue.c @@ -270,6 +270,25 @@ static struct thread_input *create_thread_input( struct thread *thread ) @@ -85,7 +85,7 @@ index 1b80348..6fa076d 100644 + LIST_FOR_EACH_ENTRY( queue, &input->queues, struct msg_queue, input_entry ) + { + shmlocal_t *shm; -+ if (!queue->thread) return; ++ if (!queue->thread) continue; + if ((shm = queue->thread->shm)) + { + shm->input_active = input->active; @@ -127,7 +127,7 @@ index 1b80348..6fa076d 100644 } /* check if the specified window can be set in the input data of a given queue */ -@@ -2975,6 +3000,7 @@ DECL_HANDLER(set_focus_window) +@@ -2985,6 +3010,7 @@ DECL_HANDLER(set_focus_window) { reply->previous = queue->input->focus; queue->input->focus = get_user_full_handle( req->handle ); @@ -135,7 +135,7 @@ index 1b80348..6fa076d 100644 } } -@@ -2991,6 +3017,7 @@ DECL_HANDLER(set_active_window) +@@ -3001,6 +3027,7 @@ DECL_HANDLER(set_active_window) { reply->previous = queue->input->active; queue->input->active = get_user_full_handle( req->handle ); @@ -143,7 +143,7 @@ index 1b80348..6fa076d 100644 } else set_error( STATUS_INVALID_HANDLE ); } -@@ -3017,6 +3044,7 @@ DECL_HANDLER(set_capture_window) +@@ -3027,6 +3054,7 @@ DECL_HANDLER(set_capture_window) input->capture = get_user_full_handle( req->handle ); input->menu_owner = (req->flags & CAPTURE_MENU) ? input->capture : 0; input->move_size = (req->flags & CAPTURE_MOVESIZE) ? input->capture : 0;