[Geany-Devel] Ping on Bug #943 - windows build command

Matthew Brush mbrush at xxxxx
Wed Oct 16 01:13:03 UTC 2013


On 13-10-15 10:05 AM, Dimitar Zhekov wrote:
> On Tue, 15 Oct 2013 11:29:17 +1100
> Lex Trotman <elextr at gmail.com> wrote:
>
> [snip]
>>
>> Basically the whole spawning thing needs to be looked at critically,
>> especially those uses that do i/o to the child process.  A working version
>> of each permutation sync/async, reads/writes/both needs to be put in utils
>> and all of Geany should then use that implementation and the callbacks use
>> known good idioms.
>
> Blocking the GTK+ message loop (aka Geany) to avoid document changes
> and using blocking pipe I/O are two different things, and we don't
> need the later AFAIK.
>
> A good blocking without rewriting the current code is by displaying a
> small modal dialog "Running FOO..." with a Cancel button. The keyboard
> and mouse events are redirected to it, keeping the documents fair, and
> there's a way to stop a slow process which intentionally blocks Geany.
>

Assuming re-writing more of the code isn't actually a bad thing, a good 
way for Scintilla is the way recommended in the docs[1] for background 
saving/loading, and I think you said Scope does it too, is to just make 
the affected document(s) read-only while the task executes.

I did something quite similar in an editor I was working on a while I 
ago and still have a video on my site[1] that shows a possible UI for 
something like this. The actual program also dimmed the document with a 
semi-transparent black overlay over the document and underneath the 
progress bar to make it more obvious that that particular document was 
locked, but it wasn't implemented when the video was recorded.

Cheers,
Matthew Brush

[1]: http://codebrainz.ca/screencasts/Loading300MBFile.avi
[2]: http://www.scintilla.org/ScintillaDoc.html#BackgroundLoadSave


More information about the Devel mailing list