I wonder if there was a change in Scintilla so that configured styles are applied asynchronously

No, Geany does that, document_open_file_full() calls queue_colorise() which calls widget_queue_draw() which will call the lexer when the mainloop is idle and the next frame is drawn. So it returns without having set styles, and then document_open_file_full() emits the document-open signal that calls ao_tasks_update() which won't find the tasks because the styles havn't been set yet.

AFAICT thats been the way its done forever (at least back to 2017 which was as far as I traced it). So in theory it never worked, maybe GTK has changed its scheduling of draws at some point and we didn't notice that this stopped working.

Looking at when ao_tasks_update() is called, maybe the process of creating and setting up a tab caused a page switch after the document is drawn and styles are setup. That would emit a document-activate signal which also calls ao_tasks_update(). IIRC there was some fiddling with this somewhere, but of course I can't find it now ;-P


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <geany/geany-plugins/issues/1254/1565778186@github.com>