Ensure that caret position is not reset to (0, 0) when CreateCaret is

called second time with the same window.
This commit is contained in:
Krzysztof Foltman 2005-02-18 20:02:55 +00:00 committed by Alexandre Julliard
parent 53ccd49c58
commit b85017223f
1 changed files with 9 additions and 6 deletions

View File

@ -175,11 +175,14 @@ static struct thread_input *foreground_input;
/* set the caret window in a given thread input */ /* set the caret window in a given thread input */
static void set_caret_window( struct thread_input *input, user_handle_t win ) static void set_caret_window( struct thread_input *input, user_handle_t win )
{ {
if (!win || win != input->caret)
{
input->caret_rect.left = 0;
input->caret_rect.top = 0;
input->caret_rect.right = 0;
input->caret_rect.bottom = 0;
}
input->caret = win; input->caret = win;
input->caret_rect.left = 0;
input->caret_rect.top = 0;
input->caret_rect.right = 0;
input->caret_rect.bottom = 0;
input->caret_hide = 1; input->caret_hide = 1;
input->caret_state = 0; input->caret_state = 0;
} }
@ -1891,8 +1894,8 @@ DECL_HANDLER(set_caret_window)
reply->old_state = input->caret_state; reply->old_state = input->caret_state;
set_caret_window( input, get_user_full_handle(req->handle) ); set_caret_window( input, get_user_full_handle(req->handle) );
input->caret_rect.right = req->width; input->caret_rect.right = input->caret_rect.left + req->width;
input->caret_rect.bottom = req->height; input->caret_rect.bottom = input->caret_rect.top + req->height;
} }
} }