Re: Event handling stops for no reason? [message #69999 is a reply to message #69998] |
Wed, 03 March 2010 14:42   |
MichaelT
Messages: 52 Registered: May 2006
|
Member |
|
|
Here is a more detailed description of what I do:
I have an object which sends an event to the main program to update an
info label (to tell the user what the sub-program is currently doing):
Widget_Control, self.Group_Leader, Send_Event = {Info, 0L, 0L, 0L,
(*self.lang).info}
The structure Info is defined in the main program's object definition.
This event is indeed sent, at least the line before the command is
executed which I checked via some "print something" commands + the
label is updated.
However, processing then, sometimes, stops (I think I did not get that
exactly right in my previous post). The weird thing is, it almost
always works. And processing continues as soon as the mouse cursor
enters any place of the GUIs area (not a draw widget). It looks like
the process falls asleep and then awakes as soon as the mouse moves
onto the GUI. When I move the mouse around the desktop and not onto
the GUI, nothing happens.
> I don't know. Maybe you are assuming the event gets
> consumed as soon as it gets queued. Are you using
> the normal XManager event handling?
Yes, I use the xManager.
> Maybe you are
> assuming that if the event gets consumed it automatically
> fires off the next event. Have you stepped though the
> code from the time the event appears in the event handler
> to confirm this?
The label is updated, but, processing does not resume (no further
events involved) unless you move the mouse as described above.
> I just think the chance of it being anything but
> a programming error is very small. I don't know
> which of your programming assumptions is faulty,
> but I'd be some money one of them is.
I believe so, too. I'd very much like to know what it is.
In the mean time I have modified the code as follows:
Widget_Control, self.Group_Leader, Get_uValue = main
main->Event, {Info, 0L, 0L, 0L, (*self.lang).info}
This seems to work. I now get around xManager. I can live with that,
but, would still like to know the cause...
Cheers,
Michael
|
|
|