QT: LCLIntf.CreateCaret incorrectly returns false (causing error in IDE/SynEdit)
Original Reporter info from Mantis: Martin @martin_frb
-
Reporter name: Martin Friebe
Original Reporter info from Mantis: Martin @martin_frb
- Reporter name: Martin Friebe
Description:
When SynEdit calls LCLIntf.CreateCaret in the qt widgetset, it receives the result "false".
However the caret is actually created (it can be seen in the IDE). So it should be true.
Due to this the caret is not always removed. If code completion drop down is open, the caret (which synedit believes not to exist) remains, and a 2nd caret (drawn directly by synedit) can be seen.
=> Post by Zeljko in http://forum.lazarus-ide.org/index.php/topic,43234.msg302286.html#msg302286
This was tested with qt4-win32 by me, and qt4/qt5-X11 by Zeljko.
I do not know if this affects the issue. But the call to LCLIntf.CreateCaret is done while SynEdit processes a WM_SETFOCUS message. Though caret can (should be able/ can on other WS) be shown independent of focus.
The same issue applies to LCLIntf.ShowCaret, it also returns false. At least during the WM_SETFOCUS message.
LCLIntf.ShowCaret is called again (during processing of paint), and then return true as it should.
Mantis conversion info:
- Mantis ID: 34563
- OS: win 10
- OS Build: 10
- Platform: 64bit Intel
- Version: 2.1 (SVN)
- Fixed in revision: 59590 (#1893f018)