Changeset 7183 for trunk/src


Ignore:
Timestamp:
Oct 24, 2001, 12:26:46 PM (24 years ago)
Author:
sandervl
Message:

IsWindowVisible fix for window with invisible owner

Location:
trunk/src/user32
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/user32/win32wbase.cpp

    r7107 r7183  
    1 /* $Id: win32wbase.cpp,v 1.293 2001-10-18 11:02:22 sandervl Exp $ */
     1/* $Id: win32wbase.cpp,v 1.294 2001-10-24 10:26:45 sandervl Exp $ */
    22/*
    33 * Win32 Window Base Class for OS/2
     
    28342834HWND Win32BaseWindow::GetParent()
    28352835{
    2836   if((!(getStyle() & (WS_POPUP|WS_CHILD)))) {
    2837     return 0;
     2836  Win32BaseWindow *wndparent = (Win32BaseWindow *)ChildWindow::getParentOfChild();
     2837
     2838  if(getStyle() & WS_CHILD) {
     2839      if(wndparent) {
     2840          return wndparent->getWindowHandle();
     2841      }
     2842      dprintf(("WARNING: GetParent: WS_CHILD but no parent!!"));
     2843      DebugInt3();
     2844      return 0;
    28382845  }
    2839 
    2840   Win32BaseWindow *wndparent = (Win32BaseWindow *)ChildWindow::getParentOfChild();
    2841 
    2842   if(getStyle() & WS_CHILD) {
    2843     if(wndparent) {
    2844         return wndparent->getWindowHandle();
    2845     }
    2846     dprintf(("WARNING: GetParent: WS_CHILD but no parent!!"));
    2847     DebugInt3();
    2848     return 0;
    2849   }
    2850   else  return (getOwner()) ? getOwner()->getWindowHandle() : 0;
     2846  else
     2847  if(getStyle() & WS_POPUP)
     2848       return (getOwner()) ? getOwner()->getWindowHandle() : 0;
     2849  else return 0;
    28512850}
    28522851//******************************************************************************
  • trunk/src/user32/window.cpp

    r7182 r7183  
    1 /* $Id: window.cpp,v 1.111 2001-10-24 09:53:14 sandervl Exp $ */
     1/* $Id: window.cpp,v 1.112 2001-10-24 10:26:46 sandervl Exp $ */
    22/*
    33 * Win32 window apis for OS/2
     
    728728    ret = TRUE;
    729729
    730     //check visibility of parents
    731     hwndParent = GetParent(hwnd);
    732     while(hwndParent) {
    733         dwStyle = GetWindowLongA(hwndParent, GWL_STYLE);
    734         if(!(dwStyle & WS_VISIBLE)) {
    735             dprintf(("IsWindowVisible %x returned FALSE (parent %x invisible)", hwnd, hwndParent));
    736             return FALSE;
     730    if(dwStyle & WS_CHILD)
     731    {
     732        //check visibility of parents
     733        hwndParent = GetParent(hwnd);
     734        while(hwndParent) {
     735            dwStyle = GetWindowLongA(hwndParent, GWL_STYLE);
     736            if(!(dwStyle & WS_VISIBLE)) {
     737                dprintf(("IsWindowVisible %x returned FALSE (parent %x invisible)", hwnd, hwndParent));
     738                return FALSE;
     739            }
     740            if(!(dwStyle & WS_CHILD)) {
     741                break; //GetParent can also return the owner
     742            }
     743            hwndParent = GetParent(hwndParent);
    737744        }
    738         if(!(dwStyle & WS_CHILD)) {
    739             break; //GetParent can also return the owner
    740         }
    741         hwndParent = GetParent(hwndParent);
    742     }
    743 
     745    }
    744746end:
    745747    dprintf(("IsWindowVisible %x returned %d", hwnd, ret));
Note: See TracChangeset for help on using the changeset viewer.