diff --git a/src/View/Network/GraphWidget.py b/src/View/Network/GraphWidget.py index 4157bb63..db877c06 100644 --- a/src/View/Network/GraphWidget.py +++ b/src/View/Network/GraphWidget.py @@ -901,7 +901,18 @@ class GraphWidget(QGraphicsView): painter.drawRect(sceneRect) def wheelEvent(self, event): - self.scaleView(math.pow(2.0, event.angleDelta().y() / 240.0)) + factor = math.pow(2.0, event.angleDelta().y() / 240.0) + + old_pos = self.mapToScene(event.pos()) + + self.scaleView(factor) + + new_pos = self.mapToScene(event.pos()) + + delta = old_pos - new_pos + + # Compensation pour garder le point sous la souris fixe + self.translate(delta.x(), delta.y()) def scaleView(self, scaleFactor): factor = self.transform().scale( diff --git a/src/View/Scenarios/GraphWidget.py b/src/View/Scenarios/GraphWidget.py index 65a1ced4..0fff07d3 100644 --- a/src/View/Scenarios/GraphWidget.py +++ b/src/View/Scenarios/GraphWidget.py @@ -312,7 +312,18 @@ class GraphWidget(QGraphicsView): painter.drawRect(sceneRect) def wheelEvent(self, event): - self.scaleView(math.pow(2.0, event.angleDelta().y() / 240.0)) + factor = math.pow(2.0, event.angleDelta().y() / 240.0) + + old_pos = self.mapToScene(event.pos()) + + self.scaleView(factor) + + new_pos = self.mapToScene(event.pos()) + + delta = old_pos - new_pos + + # Compensation pour garder le point sous la souris fixe + self.translate(delta.x(), delta.y()) def keyPressEvent(self, event): key = event.key()