//#define DEBUG_ACTIVATE_AIS
//#define DEBUG_DEACTIVATE_AIS
+#ifdef TINSPECTOR
+#include <inspector/VInspectorAPI_CallBack.hxx>
+#endif
+
#define CLEAR_OUTDATED_SELECTION_BEFORE_REDISPLAY
//**************************************************************
{
SelectMgr_ListOfFilter aSelectionFilters;
switch (activeSelectionPlace()) {
- case Workshop:
- myWorkshop->module()->moduleSelectionFilters(myWorkshop->module()->selectionFilters(),
- aSelectionFilters);
+ case Workshop: {
+ QIntList aModuleSelectionFilters = myWorkshop->module()->selectionFilters();
+ myWorkshop->module()->moduleSelectionFilters(aModuleSelectionFilters, aSelectionFilters);
+ }
break;
case PropertyPanel: {
- ModuleBase_ModelWidget* anActiveWidget = myWorkshop->module()->activeWidget();
QIntList aModuleSelectionFilters = myWorkshop->module()->selectionFilters();
+
+ ModuleBase_ModelWidget* anActiveWidget = myWorkshop->module()->activeWidget();
if (anActiveWidget)
anActiveWidget->selectionFilters(aModuleSelectionFilters, aSelectionFilters);
myWorkshop->module()->moduleSelectionFilters(aModuleSelectionFilters, aSelectionFilters);
break;
case FacesPanel: {
XGUI_Tools::workshop(myWorkshop)->facesPanel()->selectionFilters(aSelectionFilters);
+ //QIntList aModuleSelectionFilters = myWorkshop->module()->selectionFilters();
+ //myWorkshop->module()->moduleSelectionFilters(aModuleSelectionFilters, aSelectionFilters);
}
break;
default: break;
}
if (!aContext.IsNull()) {
if (myWorkshop->module()) {
- int aMode = (theMode > 8)? theMode : AIS_Shape::SelectionType(theMode);
+ // the code is obsolete, used in additional check before activate, it was removed
+ //int aMode = (theMode > 8)? theMode : AIS_Shape::SelectionType(theMode);
aContext->Activate(theIO, theMode, false);
- } else
+#ifdef TINSPECTOR
+ if (getDisplayer()->getCallBack()) getDisplayer()->getCallBack()->Activate(theIO, theMode);
+#endif
+ }
+ else {
aContext->Activate(theIO, theMode, false);
-
+#ifdef TINSPECTOR
+ if (getDisplayer()->getCallBack()) getDisplayer()->getCallBack()->Activate(theIO, theMode);
+#endif
+ }
// the fix from VPA for more suitable selection of sketcher lines
if (theIO->Width() > 1) {
double aPrecision = theIO->Width() + 2;