diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index a5e8fa5cd..00cafe131 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -400,7 +400,9 @@ class FittingView(d.Display): sFit = service.Fit.getInstance() fitID = self.mainFrame.getActiveFit() - sFit.toggleModulesState(fitID, self.mods[self.GetItemData(row)], mods, "right" if event.Button == 3 else "left") + ctrl = wx.GetMouseState().ControlDown() + click = "ctrl" if ctrl is True else "right" if event.Button == 3 else "left" + sFit.toggleModulesState(fitID, self.mods[self.GetItemData(row)], mods, click) wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.mainFrame.getActiveFit())) else: event.Skip() diff --git a/service/fit.py b/service/fit.py index 900df974a..1d0631458 100644 --- a/service/fit.py +++ b/service/fit.py @@ -637,7 +637,7 @@ class Fit(object): # Old state : New State localMap = {State.OVERHEATED: State.ACTIVE, - State.ACTIVE: State.OFFLINE, + State.ACTIVE: State.ONLINE, State.OFFLINE: State.ONLINE, State.ONLINE: State.ACTIVE} projectedMap = {State.OVERHEATED: State.ACTIVE, @@ -655,6 +655,8 @@ class Fit(object): state = proposedState elif click == "right": state = State.OVERHEATED + elif click == "ctrl": + state = State.OFFLINE else: state = transitionMap[currState] if not mod.isValidState(state):