From 80e77b837291dc60ac0077cea338f2cf9b68cb6f Mon Sep 17 00:00:00 2001 From: Thomas Geymayer Date: Sat, 15 Mar 2014 00:40:48 +0100 Subject: [PATCH] Canvas: set button for drag events. --- simgear/canvas/CanvasEventManager.cxx | 6 ++++++ simgear/canvas/CanvasEventManager.hxx | 1 + 2 files changed, 7 insertions(+) diff --git a/simgear/canvas/CanvasEventManager.cxx b/simgear/canvas/CanvasEventManager.cxx index bac9d769..0033ec62 100644 --- a/simgear/canvas/CanvasEventManager.cxx +++ b/simgear/canvas/CanvasEventManager.cxx @@ -63,6 +63,7 @@ namespace canvas //---------------------------------------------------------------------------- EventManager::EventManager(): + _last_button_down(0), _current_click_count(0) { @@ -77,6 +78,7 @@ namespace canvas { case Event::MOUSE_DOWN: _last_mouse_down = StampedPropagationPath(path, event->getTime()); + _last_button_down = event->button; break; case Event::MOUSE_UP: { @@ -106,7 +108,11 @@ namespace canvas if( !_last_mouse_down.valid() ) return false; else + { + // OSG does not set button for drag events. + event->button = _last_button_down; return propagateEvent(event, _last_mouse_down.path); + } case Event::MOUSE_MOVE: handled |= handleMove(event, path); break; diff --git a/simgear/canvas/CanvasEventManager.hxx b/simgear/canvas/CanvasEventManager.hxx index efdd0b56..3455f5f8 100644 --- a/simgear/canvas/CanvasEventManager.hxx +++ b/simgear/canvas/CanvasEventManager.hxx @@ -65,6 +65,7 @@ namespace canvas StampedPropagationPath _last_mouse_down, _last_click, _last_mouse_over; + int _last_button_down; size_t _current_click_count; /** -- 2.39.5