On Mon, May 09, 2005 at 07:31:51PM +0100, John Levon wrote:
> On Mon, May 09, 2005 at 09:13:03PM +0300, Martin Vermeer wrote:
 
 
> > "We can't update ... at all", is that an imperative? I.e., should we
> > "disable interrupts" as one would have on a microprocessor two decades
> > ago? And if so, how (in Qt/X11)?.
> 
> We just need to delay stuff. Set some flags, and after the update, call
> the dialog's update routine, the environment dropdown's update, etc.
> 
> > I still don't understand your 'Eureka' experience. Please share it ;-)
> 
> Qt is processing the event queue when we change a widget, it appears.

Hmmm yes. In case of the tabular dialog, the cell row and column numbers
are updated.

This sounds close to impossible. Unless there is a generic way in Qt/X11
to simply block the processing of the event queue (like one would mask 
an interrupt) I feel this is pretty hopeless.

A fallback strategy would then be what I outlined: queue keyboard input
(to preserve scriptability as Andre pointed out), shortcut the mouse 
(irrelevant for scriptability), and process all other LFUNs (from 
dialogs, minibuffer, ...) normally, except that they may not be 
allowed to start an update... they are going to get triggered at 
inconvenient times anyway. (And I mean, heck, we put those asserts there
ourselves, assuming linear execution. Assumption shown wrong, big deal.)

As I said, a fallback. And lots of comments, to remind us what is really
happening. 

Do you have a realistic, better proposal?

- Regards Martin

Attachment: pgprc243JkDja.pgp
Description: PGP signature

Reply via email to