I have now tested and indeed this solved the problem with GtkFileChooserButton. But I wasn't as luck with GtkCombobox, which inherits from a GtkBin and adds a GtkCellView as a child. Neither without any GdkWindow. It does add a button, which is connected to the GtkBin through as gtk_widget_set_parent. But this button does not appear in gtk_container_get_children(). Sigh. Gtk does have transparency issues...
Any ideas? Regards, Dov 2009/5/26 Dov Grobgeld <dov.grobg...@gmail.com> > Thanks! Now this is obvious. I should have thought of that. All that is > needed is to look at the gtkfilechooserbutton.h or the .c file for that > matter. The code you suggested works fine for my purpose, i.e. to add a > right click menu to any widget. I might amend it to do a recursive descent > on any GTK_CONTAINER. > > Thanks again, > Dov > > 2009/5/26 Chris Vine <ch...@cvine.freeserve.co.uk> > > On Mon, 25 May 2009 06:46:34 +0300 >> Dov Grobgeld <dov.grobg...@gmail.com> wrote: >> >> > I did. See my message to the list from 21 May 2009 20:04 with the >> > subject "Doing right click on some widgets doesn't work". That >> > program creates two buttons. One "normal" and one "file chooser >> > button". I attach the same signals to them, but the signal handler >> > for button-press-event is never called for the file chooser button. I >> > thought I understood signals in gtk by now. But this one beats me... >> >> GtkFileChooserButton is just an GtkHBox object. You need to connect to >> the widget(s) in the GtkBox which receive events (ie which have a >> GdkWindow object). For example amending your code for connecting to >> w_fs_button to this works: >> >> GList* children = >> gtk_container_get_children(GTK_CONTAINER(w_fs_button)); >> for (children = g_list_first(children); children; children = >> g_list_next(children)) { >> g_signal_connect(children->data, "button-press-event", >> G_CALLBACK(cb_button_press_event), NULL); >> } >> >> However, I suggest you are a little more discriminating and look at the >> code for GtkFileChooserButton to find out which widget in particular is >> receiving events and connect to that one. >> >> Chris >> >> >
_______________________________________________ gtk-list mailing list gtk-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-list