@@ -495,7 +495,7 @@ void CDockAreaWidget::onTabCloseRequested(int Index)
495495 if (DockWidget->features ().testFlag (CDockWidget::DockWidgetDeleteOnClose))
496496 {
497497 // DockWidget->deleteDockWidget();
498- DockWidget->closeDockWidget ();
498+ DockWidget->closeDockWidgetInternal ();
499499 }
500500 else
501501 {
@@ -758,15 +758,26 @@ CDockWidget* CDockAreaWidget::nextOpenDockWidget(CDockWidget* DockWidget) const
758758
759759
760760// ============================================================================
761- CDockWidget::DockWidgetFeatures CDockAreaWidget::features () const
761+ CDockWidget::DockWidgetFeatures CDockAreaWidget::features (eBitwiseOperator Mode ) const
762762{
763- CDockWidget::DockWidgetFeatures Features (CDockWidget::AllDockWidgetFeatures);
764- for (const auto DockWidget : dockWidgets ())
763+ if (BitwiseAnd == Mode)
765764 {
766- Features &= DockWidget->features ();
765+ CDockWidget::DockWidgetFeatures Features (CDockWidget::AllDockWidgetFeatures);
766+ for (const auto DockWidget : dockWidgets ())
767+ {
768+ Features &= DockWidget->features ();
769+ }
770+ return Features;
771+ }
772+ else
773+ {
774+ CDockWidget::DockWidgetFeatures Features (CDockWidget::NoDockWidgetFeatures);
775+ for (const auto DockWidget : dockWidgets ())
776+ {
777+ Features |= DockWidget->features ();
778+ }
779+ return Features;
767780 }
768-
769- return Features;
770781}
771782
772783
@@ -805,7 +816,7 @@ void CDockAreaWidget::closeArea()
805816 auto OpenDockWidgets = openedDockWidgets ();
806817 if (OpenDockWidgets.count () == 1 && OpenDockWidgets[0 ]->features ().testFlag (CDockWidget::DockWidgetDeleteOnClose))
807818 {
808- OpenDockWidgets[0 ]->deleteDockWidget ();
819+ OpenDockWidgets[0 ]->closeDockWidgetInternal ();
809820 }
810821 else
811822 {
0 commit comments