commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnue] r7649 - in trunk/gnue-forms/src/uidrivers/win32: . widgets/form


From: btami
Subject: [gnue] r7649 - in trunk/gnue-forms/src/uidrivers/win32: . widgets/form
Date: Thu, 23 Jun 2005 08:59:11 -0500 (CDT)

Author: btami
Date: 2005-06-23 08:59:10 -0500 (Thu, 23 Jun 2005)
New Revision: 7649

Modified:
   trunk/gnue-forms/src/uidrivers/win32/UIdriver.py
   trunk/gnue-forms/src/uidrivers/win32/widgets/form/widget.py
Log:
fixed quitting from dialogs issues

Modified: trunk/gnue-forms/src/uidrivers/win32/UIdriver.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/win32/UIdriver.py    2005-06-23 13:26:55 UTC 
(rev 7648)
+++ trunk/gnue-forms/src/uidrivers/win32/UIdriver.py    2005-06-23 13:59:10 UTC 
(rev 7649)
@@ -227,29 +227,28 @@
   #
   def _exit(self,formName):
     exitApp = 1
-    for child in self._children:
-      if child._form.name == formName:
+    for child in self._children:
+      if child._form.name == formName:
         child.mainWindow.Hide()
+
+        if child._form.style == 'dialog':
+          win32gui.PostQuitMessage(0) # Terminate the dialog
 
       exitApp = exitApp and not 
win32gui.IsWindowVisible(child.mainWindow.GetHwnd())
 
-    if exitApp:
-      for child in self._children:
+    if exitApp:
+      for child in self._children:
         self._win32app._MainWindowList.remove(child.mainWindow)
-        #child.mainWindow.Destroy()
+        child.mainWindow.Destroy()
 
-    if self._form.style == 'dialog':
-      win32gui.PostQuitMessage(0) # Terminate the dialog
-    else:
-      if len(self._win32app._MainWindowList) == 0:
-        win32gui.PostQuitMessage(0) # Terminate the app.
+    if len(self._win32app._MainWindowList) == 0:
+      win32gui.PostQuitMessage(0) # Terminate the app.
 
     for window in self._win32app._MainWindowList:
-      # TODO: needs more work in case we have
-      # TODO: started a dialog from another dialog
-      window.Enable(1)
+      if isinstance(window, Win32Window):
+        window.Enable(1)
+        win32gui.SetActiveWindow(window.GetHwnd())
 
-
   def _beep(self):
     win32gui.MessageBeep(0)
 

Modified: trunk/gnue-forms/src/uidrivers/win32/widgets/form/widget.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/win32/widgets/form/widget.py 2005-06-23 
13:26:55 UTC (rev 7648)
+++ trunk/gnue-forms/src/uidrivers/win32/widgets/form/widget.py 2005-06-23 
13:59:10 UTC (rev 7649)
@@ -88,9 +88,9 @@
       
formHeight*self._uiDriver.widgetHeight+self.buttonbarHeight+self.tabHeight+90,
       0)
 
-    self._uiDriver._win32app._MainWindowList.append(self.mainWindow)
-
-    if self._form.style == 'dialog':
+    self._uiDriver._win32app._MainWindowList.append(self.mainWindow)
+      
+    if self._form.style == 'dialog':
       centerWindow(self.mainWindow.GetHwnd())
 
     # The window in which pages will be rendered
@@ -166,17 +166,18 @@
 
   def show(self):
     self.mainWindow.Show()
+    if self._form.style == 'dialog':
+      win32gui.PumpMessages()
 
 
   def showModal(self):
     self.mainWindow.Show()
 
-    for window in self._uiDriver._win32app._MainWindowList:
-      window.Enable(0)
-
     for key in self._uiDriver._formNameToUIForm.keys():
       if self._form.name == key:
         self._uiDriver._formNameToUIForm[key].mainWindow.Enable(1)
-
-    win32gui.PumpMessages()
+      else:
+        self._uiDriver._formNameToUIForm[key].mainWindow.Enable(0)
+    if self._form.style == 'dialog':
+      win32gui.PumpMessages()
 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]