Widget signals don't work - are they signals at all?



I've written an app that among other stuff, contains a vte terminal. I
wwanted to close the app window when the shell running within the vte
widget exits, using the same function I connected to the toplevel widget's
delete_event. I found the signal emitted on child exit in vte header, so
everything should work:

        term=vte_terminal_new();
        vte_terminal_fork_command(VTE_TERMINAL (term),
                                NULL, NULL,
                                NULL, NULL,
                                FALSE,
                                TRUE,
                                TRUE);
        g_signal_connect(G_OBJECT (term), "child_exited_signal",
                                G_CALLBACK (delete_event), NULL);

But when the shell exits, I get the message:
(clingui:1778): GLib-GObject-WARNING **:
gsignal.c:1633:g_signal_connect_data(): signal `child_exited_signal' is
invalid for instance `0x807d220'

Since not much of you are likely to have vte libs, here are parts of vte
terminal class definition, where the signal is defined:

typedef struct _VteTerminalClass VteTerminalClass;
struct _VteTerminalClass {
        /*< public > */
        /* Inherited parent class. */
        GtkWidgetClass parent_class;

        /*< private > */
        /* Signals we might emit. */
        guint eof_signal;
        guint child_exited_signal;
        guint emulation_changed_signal;

        <snip>
        
};


Although the comment says these are signals, they look a bit weird.
Shouldn't the signals be a function pointer? Am I right with the
assumption that this list is just a kind of placeholder for signals that
are not yet implemented?


Cheers

-- 
Horror Vacui

Registered Linux user #257714

Go get yourself... counted: http://counter.li.org/
- and keep following the GNU.



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