Mercurial > hg > svgui
diff view/Pane.cpp @ 341:998786b3174f
...
author | Chris Cannam |
---|---|
date | Fri, 14 Dec 2007 14:17:05 +0000 |
parents | ac954fc0ec6f |
children | 1b6879d03cb6 |
line wrap: on
line diff
--- a/view/Pane.cpp Thu Dec 13 17:14:33 2007 +0000 +++ b/view/Pane.cpp Fri Dec 14 14:17:05 2007 +0000 @@ -1211,6 +1211,26 @@ return; } + std::cerr << "mousePressEvent" << std::endl; + + + //!!! need to avoid spurious mouse events when e.g. double-clicking. + + // when double clicking, we get: + // mousePressEvent + // mouseReleaseEvent + // mouseMoveEvent <- called from mouseReleaseEvent + // mouseDoubleClickEvent + // mouseReleaseEvent + // mouseMoveEvent <- called from mouseReleaseEvent + + // so we set a timer on the first press, if we're in a mode in + // which moving the mouse will do something + + // the move method doesn't do anything unless that timer has + // elapsed + + m_clickPos = e->pos(); m_mousePos = m_clickPos; m_clickedInRange = true; @@ -1329,6 +1349,8 @@ return; } + std::cerr << "mouseReleaseEvent" << std::endl; + ViewManager::ToolMode mode = ViewManager::NavigateMode; if (m_manager) mode = m_manager->getToolMode(); @@ -1426,6 +1448,13 @@ return; } + std::cerr << "mouseMoveEvent" << std::endl; + + //!!! if no buttons pressed, and not called from + //mouseReleaseEvent, we want to reset clicked-ness (to avoid + //annoying continual drags when we moved the mouse outside the + //window after pressing button first time). + updateContextHelp(&e->pos()); ViewManager::ToolMode mode = ViewManager::NavigateMode; @@ -1799,7 +1828,7 @@ return; } -// std::cerr << "mouseDoubleClickEvent" << std::endl; + std::cerr << "mouseDoubleClickEvent" << std::endl; m_clickPos = e->pos(); m_clickedInRange = true;