On Tue, 2007-09-25 at 13:30 +0100, Dave Howorth wrote:

> > the convention in gtk+ is that any changed signal is emitted at least
> > once when "something" changes: there's no upper bound, just the lower
> > one[1].
> 
> Hmm, I click on a button to make a bank transfer and the transfer
> happens twice? I saw this issue once in an inter-bank transfer system.

this has *nothing* to do with gtk+, so please don't use it as an
argument. the convention is defined and documented in countless threads
(even on this very mailing list :-)), and as such gtk+ has always had
this kind of behaviour; some applications might even depend on it - so
it's not going to change.

you can use pre-conditions and post-conditions to verify the data before
committing it inside the callback - as you always should, since it's
dealing with user input.

>  
> > will result in your callback not being invoked[2]; you can use this
> > inside the callback of the other widget that controls the contents of
> > the entry.
> 
> AFAICT, this would mean that my callback is not called at all.

yes. if you are changing the content of the entry with a known value
then you can also call the functions you are calling in the
GtkEntry::changed callback as well. if you can't do that it means you
haven't separated the logic of the application from the UI code - and
this is usually something that bites you back, sooner or later.

> > [1] I think there's a bug open, somewhere in bugzilla, for this specific
> > instance (making a set_text() atomic); personally, I think it's merely a
> > matter of taste: the ::changed signal convention is known and
> > documented.
> 
> It's not documented where it's needed! (i.e. at
> <http://library.gnome.org/devel/gtk/unstable/GtkEditable.html#GtkEditable-changed>
> and/or
> <http://library.gnome.org/devel/gtk/unstable/GtkEntry.html#gtk-entry-set-text>)

then, please: provide a patch for the gtk+ upstream documentation. those
patches are usually applied as soon as received.

see, for instance:

  http://mail.gnome.org/archives/gtk-devel-list/2004-June/msg00085.html

    In general, "changed" signals should be thought of as 
    "something might have changed" rather than as "something
    changed".

ciao,
 Emmanuele.

-- 
Emmanuele Bassi,
W: http://www.emmanuelebassi.net
B: http://log.emmanuelebassi.net

_______________________________________________
gtk-perl-list mailing list
gtk-perl-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-perl-list

Reply via email to