[Glade-users] How to block some input in GtkEntry field

virtualex at linuxoid.net virtualex at linuxoid.net
Thu Aug 26 11:24:42 EDT 2010


Quoting Arthur Shats <ashats at hotmail.com>:

> What exactly are we blocking/unblocking with the calls to   
> g_signal_handlers_block_by_func and _unblock_by_func and why we need  
>  to do this?

If you won't do it you'll receive the callback again on the string  
you've already validated, and you'll face infinite recursion.

> Also, since we are typing char by char, the text argument seem to   
> contain only one char at a time and the length arg is 1 and so the   
> result string is going to have only one char, so why do we need to   
> have a loop?

That is the difference between "key-press-event" and "insert-text".  
Consider that user would likely want to copy and paste the whole IP  
address copied from somewhere instead of typing it. In this case you  
wouldn't get any "key-press-event" at all, but have to process the  
whole string in one "insert-text" callback. For that reason the  
"key-press-event" is not suitable for input validation, but could be  
handy if you want to implement some nice extra functionality, like  
moving cursor to the next octet if tab was pressed,  
incrementing/decrementing octet on cursor up/down, etc.




More information about the Glade-users mailing list