diff --git a/gui/droneView.py b/gui/droneView.py index 44ed90ebf..e506c278d 100644 --- a/gui/droneView.py +++ b/gui/droneView.py @@ -148,11 +148,6 @@ class DroneView(Display): sFit = Fit.getInstance() fitID = self.mainFrame.getActiveFit() - # If either stack has active drones, make them all active. Fixes #728 - if (getattr(self.drones[src], "amountActive", 0) + getattr(self.drones[dst], "amountActive", 0)) > 0: - self.drones[src].amountActive = getattr(self.drones[src], "amount", 0) - self.drones[dst].amountActive = getattr(self.drones[dst], "amount", 0) - if sFit.mergeDrones(fitID, self.drones[src], self.drones[dst]): wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) diff --git a/service/fit.py b/service/fit.py index 719fb7b6a..409f2e932 100644 --- a/service/fit.py +++ b/service/fit.py @@ -726,8 +726,14 @@ class Fit(object): else: fit.drones.remove(d1) - d2.amount += d1.amount - d2.amountActive += d1.amountActive if d1.amountActive > 0 else -d2.amountActive + d2.amount += getattr(d1, "amount", 0) + d2.amountActive += getattr(d1, "amountActive", 0) + + # If we have less than the total number of drones active, make them all active. Fixes #728 + # This could be removed if we ever add an enhancement to make drone stacks partially active. + if getattr(d2, "amount", 0) > getattr(d2, "amountActive", 0): + d2.amountActive = getattr(d2, "amount", 0) + eos.db.commit() self.recalc(fit) return True