[QScintilla] Editor with a custom lexer keeps flashing when editing

agarny at hellix.com agarny at hellix.com
Tue May 31 22:02:52 BST 2016


Hi Phil,

>> Hi Neil,
> Wrong mailing list.

Argh, not sure what went wrong with me, but really sorry about that!

>> I am currently working on upgrading to Qt 5.5.1 from 5.4.2 in my 
>> project. It's all working fine for different QScintilla-based editors 
>> that I have in my application, except for one. The only difference 
>> between that editor and the others is that it relies on a custom 
>> lexer. As you might expect, that lexer is implemented in a class that 
>> inherits from QsciLexerCustom (see https://goo.gl/cjrYCM and 
>> https://goo.gl/cMojqk).
>> 
>> Now, my problem, when my project is built using Qt 5.5.1 on OS X 
>> (everything works fine on Windows and Linux), is that if I then try to 
>> edit something in that particular editor, then I get one or two black 
>> lines flashing repeatedly for as long as I keep editing.
>> 
>> After some debugging, I found out that the 'culprit' is 
>> Editor::Paint(), more precisely the paintState == paintAbandoned if 
>> clause. That if clause is true then it will return after it has done 
>> what it needs to do. Now, if I comment out the return statement (see 
>> https://goo.gl/5jDdXt), everything works fine for me (i.e. I don't get 
>> the one or two black lines flashing repeatedly).
>> 
>> So, although I have got things to work fine for my application, I 
>> wanted to check with you that what I have done is actually 'safe'. If 
>> it is, then maybe this is something that could be merged in?
> 
> That relates to the underlying Scintilla code, not the QScintilla code.

Hmm, good point indeed. My bad again!

> Is the Qt update the only change? Can be behaviour be reproduced in a
> simple, self-contained example?

The only thing that is different is indeed the fact that I have upgraded 
Qt from version 5.4.2 to version 5.5.1. Everything else is the same, 
i.e. same version of OS X (10.11.5) and Xcode (7.3.1).

I am going to see whether I can come up with a simple, self-contained 
example.

Alan


More information about the QScintilla mailing list