static gui_window *getFirstGUIParent( HWND hwnd ) { HWND parent; gui_window *gui; gui = NULL; for( ;; ) { gui = GUIGetCtrlWnd( hwnd ); if( gui != NULL ) break; //gui = GUIFindWindowFromHWND( hwnd ); //if( gui != NULL ) break; parent = _wpi_getparent( hwnd ); if( parent == HWND_DESKTOP ) break; hwnd = parent; } return( gui ); }
bool SetFocusToParent( void ) { HWND curr_hwnd; // for a reason I do not yet comprehend, the MDI stuff should no longer // be a deterent to setting the focus to the top parent if( ( GUICurrWnd != NULL ) && !EditControlHasFocus /* && !GUIMDI */ && !( GUICurrWnd->style & GUI_POPUP ) ) { curr_hwnd = GUIGetTopParentHWND( GUICurrWnd->hwnd ); if( GUIGetCtrlWnd( curr_hwnd ) == NULL ) { if( _wpi_iswindow( GUIMainHInst, curr_hwnd ) ) { if( _wpi_getfocus() != curr_hwnd ) { _wpi_setfocus( curr_hwnd ); _wpi_setactivewindow( curr_hwnd ); return( TRUE ); } } } } return( FALSE ); }