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_ */