]> git.saurik.com Git - wxWidgets.git/commitdiff
Added WIN16 code for window disabler
authorJulian Smart <julian@anthemion.co.uk>
Wed, 8 Mar 2000 08:25:42 +0000 (08:25 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Wed, 8 Mar 2000 08:25:42 +0000 (08:25 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6515 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/common/utilscmn.cpp

index c9e9207ebbb657d80a97aac7a302021e395c8950..7a971cb5ac3e85c08e787005e42f5c99607031e3 100644 (file)
@@ -984,9 +984,14 @@ wxWindowDisabler::wxWindowDisabler(wxWindow *winToSkip)
     m_winDisabled = new wxWindowList;
 
 #ifdef __WXMSW__
+#ifdef __WIN32__
     // and the top level window too
     HWND hwndFG = ::GetForegroundWindow();
     m_winTop = hwndFG ? wxFindWinFromHandle((WXHWND)hwndFG) : (wxWindow *)NULL;
+#else
+    HWND hwndFG = ::GetTopWindow();
+    m_winTop = hwndFG ? wxFindWinFromHandle((WXHWND)hwndFG) : (wxWindow *)NULL;
+#endif
 #endif // MSW
 
     wxWindowList::Node *node;
@@ -1021,6 +1026,7 @@ wxWindowDisabler::~wxWindowDisabler()
     delete m_winDisabled;
 
 #ifdef __WXMSW__
+#ifdef __WIN32__
     if ( m_winTop )
     {
         if ( !::SetForegroundWindow(GetHwndOf(m_winTop)) )
@@ -1028,6 +1034,18 @@ wxWindowDisabler::~wxWindowDisabler()
             wxLogLastError("SetForegroundWindow");
         }
     }
+#else
+    if ( m_winTop )
+    {
+        // 16-bit SetForegroundWindow() replacement
+        RECT reWin;
+        GetWindowRect(m_winTop, &reWin);
+        SetWindowPos (m_winTop, HWND_TOP,
+                             reWin.left, reWin.top, 
+                             reWin.right - reWin.left, reWin.bottom, 
+                             SWP_SHOWWINDOW);
+    }
+#endif
 #endif // MSW
 }