-// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2022 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
case QEvent::WindowDeactivate:
emit deactivated();
break;
+ /*case QEvent::Move:
+ emit moved();
+ break;*/
default:
break;
}
*/
void SUIT_Desktop::childEvent( QChildEvent* e )
{
- if ( e->type() == QEvent::ChildAdded && e->child()->isWidgetType() )
+ if ( e->type() == QEvent::ChildAdded && e->child()->isWidgetType() ) {
+ // The following line is a workaround to avoid showing view window as a top-level window
+ // before re-parenting it to workstack (issue #23467).
+ // See SUIT_ViewWindow::setVisible() and SUIT_Desktop::customEvent().
+ e->child()->setProperty("blockShow", true );
QApplication::postEvent( this, new ReparentEvent( QEvent::Type( Reparent ), e->child() ) );
- else
+ }
+ else {
QtxMainWindow::childEvent( e );
+ }
}
void SUIT_Desktop::customEvent( QEvent* e )
bool invis = wid->testAttribute( Qt::WA_WState_ExplicitShowHide ) &&
wid->testAttribute( Qt::WA_WState_Hidden );
+ // The following line is a workaround to avoid showing view window as a top-level window
+ // before re-parenting it to workstack (issue #23467).
+ // See SUIT_ViewWindow::setVisible() and SUIT_Desktop::childEvent().
+ wid->setProperty("blockShow", false);
addWindow( wid );
- wid->setShown( !invis );
+ wid->setVisible( !invis );
}
}
{
emit message( theMessage );
}
+
+/*!
+ Activate window (default implementation just sets focus to the window.
+*/
+void SUIT_Desktop::setActiveWindow(SUIT_ViewWindow* wnd)
+{
+ if (wnd) wnd->setFocus();
+}