[Bug 1733] Black cursor on textbox with black backgroud -> cursor invisible

wine-bugs at winehq.org wine-bugs at winehq.org
Mon May 10 17:54:56 CDT 2010


http://bugs.winehq.org/show_bug.cgi?id=1733


Nikolay Sivov <bunglehead at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |NEW
          Component|winex11.drv                 |user32




--- Comment #21 from Nikolay Sivov <bunglehead at gmail.com>  2010-05-10 17:54:54 ---
Still present with current wine-1.1.44-72-g658209b.

It's not a drawing problem, a possible issue with custom window colour is fixed
by commit dcddea361f3cd2717c92757adddb87badc55d3ff (isn't directly related to
this bug, just for record).

A real problem is that application (most likely VFP runtime itself) does
something like this:

---
0009:Call KERNEL32.Sleep(00000001) ret=0c15fc55
0009:Ret  KERNEL32.Sleep() retval=00000000 ret=0c15fc55
0009:Call user32.GetQueueStatus(00000006) ret=0c120292
0009:Ret  user32.GetQueueStatus() retval=00000000 ret=0c120292
0009:Call user32.GetCursorPos(0033e034) ret=0c029a19
0009:Ret  user32.GetCursorPos() retval=00000001 ret=0c029a19
0009:Call user32.ScreenToClient(00010078,0033e0a8) ret=0c03415f
0009:Ret  user32.ScreenToClient() retval=00000001 ret=0c03415f
0009:Call gdi32.GetTextExtentPoint32A(00001138,0033dfec "                    
+\x08\x0c\x15",00000015,0033df28) ret=0c0177e6
0009:Ret  gdi32.GetTextExtentPoint32A() retval=00000001 ret=0c0177e6
0009:Call user32.SetCaretPos(000000b8,00000010) ret=0c12077d
trace:msg:SetSystemTimer Added 0x10078 ffff 0xffff0028 timeout 500
0009:Ret  user32.SetCaretPos() retval=00000001 ret=0c12077d
---

And this is constantly repeated - Sleep() -> GetQueueStatus() -> SetCaretPos().
In SetCaretPos() we're doing SetSystemTimer again and again which starts it
every time and timer callback is never reached. Consecutive SetCaretPos() calls
happen really fast - always <=50ms (normally 10ms) on mine vbox.

Removing SetSystemTimer() from SetCaretPos() fixes this, and lets a caret blink
normally. I'll test it more.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list