[pygtk] Event ordering
Yang Zhang
yanghatespam at gmail.com
Wed Jan 28 16:23:02 WST 2009
Walter Leibbrandt wrote:
> Hi,
>
> Yang Zhang wrote:
>> Yang Zhang wrote:
>>
>>> Hi, I'm trying to position a pop-up Window to always be directly
>>> under an Entry box, but I'm not sure what signal(s) to react to.
>>>
>>> For instance, I tried entry.connect_after('focus-in-event', ...) to
>>> handle the initial positioning (I also hide the window on
>>> 'focus-out-event'), and that mostly seems to work, but if I resize
>>> the window, the reaction is too early since the geometry of the entry
>>> is not yet fully updated. How can I handle this situation
>>> appropriately?
>>>
>>
>> Another example: I'd like to set the cursor position in the entry to
>> the end of the text whenever focus changes to the entry, but doing
>> this from focus-in-event doesn't work (the entire text still gets
>> highlighted).
>>
> http://www.pygtk.org/docs/pygtk/class-gtkwidget.html#signal-gtkwidget--configure-event
>
>
Hi, thanks for the reply. I think that doesn't work and/or you
misunderstood. Demo:
http://assorted.svn.sourceforge.net/viewvc/assorted/sandbox/trunk/src/py/gtk/eventquirks.py?revision=1149&view=markup
from gtk import *
e = Entry()
def handler(*args): print e.get_window().get_geometry()
#e.connect('focus-in-event', handler)
e.connect('configure-event', handler)
h = HBox()
h.pack_start(e)
w = Window()
w.add(h)
w.show_all()
main()
Try resizing/moving the window - nothing happens.
If you uncomment the commented line, then you'll see that the geometry
doesn't get updated as soon as you resize the window - only on the next
move/resize will you see the (prior) updated geometry printed.
--
Yang Zhang
http://www.mit.edu/~y_z/
More information about the pygtk
mailing list