From ab1c0e946fab0cf728150e253efea461cdc85f27 Mon Sep 17 00:00:00 2001 From: Thomas Geymayer Date: Sun, 2 Dec 2012 23:59:44 +0100 Subject: [PATCH] Fix calculating CanvasWidget mouse coordinates --- src/GUI/CanvasWidget.cxx | 9 +++++---- src/GUI/CanvasWidget.hxx | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/GUI/CanvasWidget.cxx b/src/GUI/CanvasWidget.cxx index 18bee716d..fe0119db5 100644 --- a/src/GUI/CanvasWidget.cxx +++ b/src/GUI/CanvasWidget.cxx @@ -113,11 +113,12 @@ void CanvasWidget::doHit(int button, int updown, int x, int y) namespace sc = simgear::canvas; sc::MouseEventPtr event(new sc::MouseEvent); - event->pos.set(x - abox.min[0], y - abox.min[1]); - event->delta.set(x - _last_x, y - _last_y); + event->pos.set(x - abox.min[0], abox.max[1] - y); + event->delta.set( event->pos.x() - _last_x, + event->pos.y() - _last_y ); - _last_x = x; - _last_y = y; + _last_x = event->pos.x(); + _last_y = event->pos.y(); switch( button ) { diff --git a/src/GUI/CanvasWidget.hxx b/src/GUI/CanvasWidget.hxx index 976b336ae..f5fa0bf75 100644 --- a/src/GUI/CanvasWidget.hxx +++ b/src/GUI/CanvasWidget.hxx @@ -45,8 +45,8 @@ class CanvasWidget: *_mouse_down, *_mouse_drag; - int _last_x, - _last_y; + float _last_x, + _last_y; }; #endif /* CANVASWIDGET_HXX_ */ -- 2.39.5