mirror of
https://github.com/reactos/reactos.git
synced 2025-08-09 05:23:09 +00:00
[NTUSER] Fix caret display mistake (#2180)
Take care of caret visibility. co_IntSetCaretPos function wrongly drawn the caret upon invisible caret. @Doug-Lyons did test this patch. CORE-15661
This commit is contained in:
parent
3f9e695061
commit
22f883278b
1 changed files with 5 additions and 2 deletions
|
@ -217,10 +217,13 @@ co_IntSetCaretPos(int X, int Y)
|
||||||
if(ThreadQueue->CaretInfo.Pos.x != X || ThreadQueue->CaretInfo.Pos.y != Y)
|
if(ThreadQueue->CaretInfo.Pos.x != X || ThreadQueue->CaretInfo.Pos.y != Y)
|
||||||
{
|
{
|
||||||
co_IntHideCaret(&ThreadQueue->CaretInfo);
|
co_IntHideCaret(&ThreadQueue->CaretInfo);
|
||||||
ThreadQueue->CaretInfo.Showing = 1;
|
|
||||||
ThreadQueue->CaretInfo.Pos.x = X;
|
ThreadQueue->CaretInfo.Pos.x = X;
|
||||||
ThreadQueue->CaretInfo.Pos.y = Y;
|
ThreadQueue->CaretInfo.Pos.y = Y;
|
||||||
|
if (ThreadQueue->CaretInfo.Visible)
|
||||||
|
{
|
||||||
|
ThreadQueue->CaretInfo.Showing = 1;
|
||||||
co_IntDrawCaret(pWnd, &ThreadQueue->CaretInfo);
|
co_IntDrawCaret(pWnd, &ThreadQueue->CaretInfo);
|
||||||
|
}
|
||||||
|
|
||||||
IntSetTimer(pWnd, IDCARETTIMER, gpsi->dtCaretBlink, CaretSystemTimerProc, TMRF_SYSTEM);
|
IntSetTimer(pWnd, IDCARETTIMER, gpsi->dtCaretBlink, CaretSystemTimerProc, TMRF_SYSTEM);
|
||||||
IntNotifyWinEvent(EVENT_OBJECT_LOCATIONCHANGE, pWnd, OBJID_CARET, CHILDID_SELF, 0);
|
IntNotifyWinEvent(EVENT_OBJECT_LOCATIONCHANGE, pWnd, OBJID_CARET, CHILDID_SELF, 0);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue