Re: [gtk-list] Re: Event propogation problem
- From: Ian Britten <britten universal ca>
- To: gtk-list redhat com
- Subject: Re: [gtk-list] Re: Event propogation problem
- Date: Mon, 24 Jan 2000 23:41:24 -0400 (AST)
On 20 Jan 2000, Owen Taylor wrote:
> Three different sets of handlers are run for each signal emission:
>
> - handlers connected with gtk_signal_connect()
> - the default handler for the widget
> - handlers connected with gtk_signal_connect_after()
>
> Only the _last_ return value matters. The default handlers is running
> after your signal handler and returning FALSE.
>
> So you have two choices:
>
> - If you want to override the default handler, use gtk_signal_connect(),
> and then call gtk_signal_emit_stop_by_name() before returning TRUE
>
> - If you want to supplement the default handler use gtk_signal_connect_after().
Ok, now I understand (I think...). It's not quite the same way Motif
works... (Not that that's a bad thing :-)
> Key snoopers are called before any other handling of the key press. They
> really aren't intended for general use - perhaps you want an accelerator
> instead. (Or simply want to connect to ::key_press_event on the toplevel.)
Ok, if snoopers aren't for general use, perhaps you can suggest a solution
to my problem for me.
I'm inside I time-consuming loop, and am looking for a way to break out of
the loop in response to a user action (Typically, the Escape key being
pressed).
Because I'm in a loop, I haven't returned to the main loop, meaning that
received events aren't being processed yet. Thus, I can't set up a signal
handler, as it won't be called until I return from my loop. What I'm
doing is peeking into the event queue to see if the the key press is
there, and if it is, I break out of the loop.
Under X, I was using XCheckIfEvent(). What should I do under GTK?
Ian
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]