Re: user32: Set correct caret state in the server in SetCaretPos (try 2)
On 20.12.2015 19:42, Anton Baskanov wrote:
Signed-off-by: Anton Baskanov <baskanov(a)gmail.com>
The code in SetCaretPos doesn't change the caret state if it's position is unchanged. Reflect this at the server side to avoid caret corruption.
try2: - fixed incorrect if statement in the server --- dlls/user32/caret.c | 2 +- server/protocol.def | 3 ++- server/queue.c | 5 +++++ 3 files changed, 8 insertions(+), 2 deletions(-)
I assume the "corruption" you mean is that the state could get out of sync between wineserver and child process. However, is there a specific reason (for example testcase) which shows that this is the right way to fix it? A different (and much easier) possibility would be: - if (ret && !hidden && (x != r.left || y != r.top)) + if (ret && !hidden && (x != r.left || y != r.top || !old_state)) Regards, Sebastian
participants (1)
-
Sebastian Lackner