Canvas: set button for drag events.

This commit is contained in:
Thomas Geymayer
2014-03-15 00:40:48 +01:00
parent c925b7b601
commit 80e77b8372
2 changed files with 7 additions and 0 deletions
+6
View File
@@ -63,6 +63,7 @@ namespace canvas
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
EventManager::EventManager(): EventManager::EventManager():
_last_button_down(0),
_current_click_count(0) _current_click_count(0)
{ {
@@ -77,6 +78,7 @@ namespace canvas
{ {
case Event::MOUSE_DOWN: case Event::MOUSE_DOWN:
_last_mouse_down = StampedPropagationPath(path, event->getTime()); _last_mouse_down = StampedPropagationPath(path, event->getTime());
_last_button_down = event->button;
break; break;
case Event::MOUSE_UP: case Event::MOUSE_UP:
{ {
@@ -106,7 +108,11 @@ namespace canvas
if( !_last_mouse_down.valid() ) if( !_last_mouse_down.valid() )
return false; return false;
else else
{
// OSG does not set button for drag events.
event->button = _last_button_down;
return propagateEvent(event, _last_mouse_down.path); return propagateEvent(event, _last_mouse_down.path);
}
case Event::MOUSE_MOVE: case Event::MOUSE_MOVE:
handled |= handleMove(event, path); handled |= handleMove(event, path);
break; break;
+1
View File
@@ -65,6 +65,7 @@ namespace canvas
StampedPropagationPath _last_mouse_down, StampedPropagationPath _last_mouse_down,
_last_click, _last_click,
_last_mouse_over; _last_mouse_over;
int _last_button_down;
size_t _current_click_count; size_t _current_click_count;
/** /**