Paul Malherbe wrote:

Hello

Please can anyone help me?

In the following test script I am creating windows which are transient and modal. If I destroy the last window and try to grab_focus on a widget on the next window it does not happen. I am obviously missing something! Some help would be appreciated.


import pygtk pygtk.require("2.0") import gtk

class Test:
   def __init__(self):
       # Window One
       w1 = MkWin()
       w1.win.show_all()
       top = w1.win.get_toplevel()

       # Window Two with entry
       w2 = MkWin(trans=top)
       self.e2 = gtk.Entry()
       w2.win.add(self.e2)
       self.e2.set_flags(gtk.CAN_FOCUS)
       w2.win.show_all()

        # Window Three with entry
       self.w3 = MkWin(trans=top)
       e3 = gtk.Entry()
       self.w3.win.add(e3)
       e3.connect("activate", self.doTest)
       e3.set_flags(gtk.CAN_FOCUS)
       # Focus on entry
       e3.grab_focus()
       self.w3.win.show_all()

       gtk.main()

   def doTest(self, wid):
       self.w3.win.destroy()

       # Focus on entry ???
       self.e2.grab_focus()

class MkWin:
   def __init__(self, trans=None):
       self.win = gtk.Window(type=gtk.WINDOW_TOPLEVEL)
       self.win.connect('destroy', self.doDestroy)
       self.win.connect('delete_event', self.doDestroy)
       if trans:
           self.win.set_transient_for(trans)
           self.win.set_decorated(False)
           self.win.set_modal(True)

   def doDestroy(self, wid=None, data=None):
       wid.destroy()

if __name__ == "__main__":
   tt = Test()

_______________________________________________
pygtk mailing list   [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/

I am replying to my own posting hoping someone is able to help.

Regards, Paul
_______________________________________________
pygtk mailing list   [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/

Reply via email to