Re: passing on signals

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2003-09-30 at 20:09, edscott wilson garcia wrote:
> Hi,
> 
>   Does anybody know the correct way to pass on keypressed signals
> received by one widget to another? Either of the following two lines
> causes gtk to segfault when signal received by GtkCombo is passed to
> GtkEntry:
> 
> gtk_signal_emit_by_name (GTK_OBJECT (entry),
> "key_press_event",event,data,NULL);
> 
> gtk_signal_emit_by_name (GTK_OBJECT (entry),
> "key_press_event",event,data);


If anyone is interested, I figured this one out:
gtk_signal_emit_by_name() is blocking, i.e. it does not return until the
signal has been duly received and processed by the target widget's
signal handler. And the value of "data" is overwritten by the return of
the signal handler (in this case it returns a guint).

This means that you must save whatever you have in "data" to restore it
after the function returns. But the fact that gtk_signal_emit_by_name()
is blocking means that you have to get into the thread business if you
want to make things work as with signal queue. So you are much better
off calling the signal handler of the signalled widget directly. Oh
well...

Edscott

> 
> 
> TIA,
> 
> Edscott Wilson Garcia
> 
> 
> 
> 
> 
> _______________________________________________
> 
> gtk-list@xxxxxxxxx
> http://mail.gnome.org/mailman/listinfo/gtk-list
> 

_______________________________________________

gtk-list@xxxxxxxxx
http://mail.gnome.org/mailman/listinfo/gtk-list

[Index of Archives]     [Touch Screen Library]     [GIMP Users]     [Gnome]     [KDE]     [Yosemite News]     [Steve's Art]

  Powered by Linux