Re: [glade--]TreeView and button_press_event
Murray Cumming <[email protected]> Mon, 10 May 2004 12:09:59 +0200
| Newsgroups | gmane.comp.gnome.glademm |
|---|---|
| Message-ID | <1084183799.2752.12.camel@murrayc_debian> |
On Mon, 2004-05-10 at 11:55 +0200, Christof Petig wrote: > Fabrice Colin schrieb: > > Fabrice Colin wrote: > > > Christof Petig wrote: > > >> Besides that I never heard of connect_notify() - can you explain the > > >> difference? > > >> > > > The only thing I know about it is from the explanation given by Murray > > > Cummings in the bug report I mentioned. > > > With connect(), it is first passed to the treeview/renderer (where, > > > unfortunately, "the standard handler stops the further handling of the > > > signal", ie it is not delivered in turn to the user's handler), > > > whereas with connect_notify(), the event is passed to the users's > > > handler first and then to tthe treeview. > > > Using connect_notify() ensures the application gets the > > > button_press_event message. > > > > > > > I found another page that mentions connect_notify(), this time a tutorial : > > > > http://www.gtkmm.org/gtkmm2/docs/tutorial/html/ch08s07.html > > Hmmm. Now that I get a small understanding of what this is all about > (the handler only get's invoced if you use this largely undocumented > hack): There is a bug about it in bugzilla, but we didn't have time to deal with it for gtkmm 2.4 - there was lots of other stuff to do. The problem has existed since gtkmm 2.0. > How would you like me to solve the problem? My theory is that you should use connect_notify() or connect(false) with all _event() signals (all signals with return-type-stops-signal-handling). > - use connect_notify _whenever_ you connect to a button_press signal on > a treeview (special hardcoded if within glademm) > - tell anybody to connect him/herself in the ctor (which looks like the > most clean solution to me) > - wait for custom signal flags within glade 3.x (to request > connect_notify on a per signal basis) -- Murray Cumming [email protected] www.murrayc.com