+{
+ // it is possible that the property panel widgets have not been visualized
+ // (e.g. on start operation), so it is strictly important to do not check visualized state
+ activateNextWidget(theWidget, false);
+}
+
+void XGUI_PropertyPanel::onFocusInWidget(ModuleBase_ModelWidget* theWidget)
+{
+#ifdef DEBUG_ACTIVE_WIDGET
+ std::cout << "onFocusInWidget" << std::endl;
+#endif
+ if (theWidget->canAcceptFocus())
+ activateWidget(theWidget);
+}
+
+void XGUI_PropertyPanel::onActivateNextWidget(ModuleBase_ModelWidget* theWidget)
+{
+ // this slot happens when some widget lost focus, the next widget which accepts the focus
+ // should be shown, so the second parameter is true
+ // it is important for features where in cases the same attributes are used, isCase for this
+ // attribute returns true, however it can be placed in hidden stack widget(extrusion: elements,
+ // sketch multi rotation -> single/full point)
+ // it is important to check the widget visibility to do not check of the next widget visible
+ // state if the current is not shown. (example: sketch circle re-entrant operation after mouse
+ // release in the viewer, next, radius,
+ // widget should be activated but the first is not visualized)
+ bool isVisible = theWidget->isVisible();
+ activateNextWidget(theWidget, isVisible);
+}
+
+
+void XGUI_PropertyPanel::activateNextWidget(ModuleBase_ModelWidget* theWidget,
+ const bool isCheckVisibility)