Correction, Just in case someone actually ends up reading this.
On August 12, 2005 09:20 am, Bill Medland wrote:
> Hi guys.
>
> I am researching the whole field of data entry validation,
> including in Gtk+.  I notice what is addressed in FAQ 6.15
> (which I see in various forms around the Web) and a couple of
> things popped out at me and I wanted to check that I do
> understand the code properly.  (I'm still a beginner to Gtk+
> so I feel unsure).  Please note that I am not criticising the
> FAQ; I just want to know what it can and cannot do.
>
> Basically what I see it doing is the following:
> 1. Take the input that is being passed in.  Remove or convert
> any unacceptable characters and produce an equivalent but
> acceptable input.
> 2. Temporarily disable the signal from the widget that is
> being handled.
> 3. Insert the modified (now correct) input into the widget,
> just as whatever is being handled did; but this time it won't
> send the signal.
> 4. Reverse step 2;
> 5. Stop the signal propagating any further down the handler
> chain.
>
> Is that correct?

Not quite.  Step 2 only temporarily disconnects this handler, not 
the whole set of signal handlers.  So at step 3 the signal will 
be sent but the handler will not be called (but other handlers 
will)

> So it seems to me that this solution is going to be a problem
> if there are multiple signal handlers.
Yes
>  If there is a handler
> called before this one it will handle the invalid input and
> won't get a chance to handle the "corrected" input.
No.  It will receive both the original and the corrected, even if 
the corrected is the same as the original.
>  If there
> is a handler after this one it won't get to handle any input.
No.  It will get to handle the corrected input during the second 
invocation.
> Is that a valid observation?
>
> Might this be a more robust (but still unstable) solution?
> 1. Look at the input.  If it is already acceptable then don't
> do anything special.
> 2. If there is anything wrong with the input then create a
> corrected copy, insert that (without disabling the signal) and
> stop propagating the signal through its current chain.
with this handler temporarily disconnected.
> (3. The corrected input will now come back into the top of the
> chain, filter down and pass straight through this function).
>
> Am I understanding it correctly?
No.  See comments above.
-- 
Bill Medland
mailto:[EMAIL PROTECTED]
http://webhome.idirect.com/~kbmed

_______________________________________________
gtk-app-devel-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to