From 67bc95aefd401fb239647a0eeab5a945e67835e7 Mon Sep 17 00:00:00 2001 From: Marco Biasini <marco.biasini@unibas.ch> Date: Wed, 22 Dec 2010 12:20:29 +0100 Subject: [PATCH] reduce number of calls to scene refresh --- modules/gui/src/gl_canvas.cc | 11 ++++++++--- modules/gui/src/tools/selection_tool.cc | 3 ++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/modules/gui/src/gl_canvas.cc b/modules/gui/src/gl_canvas.cc index eec0192e9..d1714e803 100644 --- a/modules/gui/src/gl_canvas.cc +++ b/modules/gui/src/gl_canvas.cc @@ -134,6 +134,9 @@ MouseEvent::Buttons GLCanvas::TranslateButtons(Qt::MouseButtons buttons) const void GLCanvas::mouseMoveEvent(QMouseEvent* event) { + if (!(show_beacon_ || event->buttons())) { + return; + } if (this->IsToolEvent(event)) { if (ToolManager::Instance().GetActiveTool()) { MouseEvent mouse_event(this->TranslateButtons(event->buttons()), @@ -163,7 +166,7 @@ void GLCanvas::mousePressEvent(QMouseEvent* event) this->HandleMousePressEvent(event); } last_pos_=QPoint(event->x(), event->y()); - this->DoRefresh(); + this->DoRefresh(); } void GLCanvas::mouseReleaseEvent(QMouseEvent* event) @@ -181,7 +184,7 @@ void GLCanvas::mouseReleaseEvent(QMouseEvent* event) } } last_pos_=QPoint(event->x(), event->y()); - this->DoRefresh(); + this->DoRefresh(); } void GLCanvas::mouseDoubleClickEvent(QMouseEvent* event) @@ -203,7 +206,9 @@ void GLCanvas::mouseDoubleClickEvent(QMouseEvent* event) scene.SetCenter(atom.GetPos()); } } - this->DoRefresh(); + if (show_beacon_) { + this->DoRefresh(); + } } void GLCanvas::RequestContextMenu(const QPoint& pos) diff --git a/modules/gui/src/tools/selection_tool.cc b/modules/gui/src/tools/selection_tool.cc index dfc45ca8f..4b3ad6482 100644 --- a/modules/gui/src/tools/selection_tool.cc +++ b/modules/gui/src/tools/selection_tool.cc @@ -55,7 +55,8 @@ void SelectionTool::Click(const MouseEvent& event) int sel_mode=this->GetSelectionMode(); gfx::Scene& scene=gfx::Scene::Instance(); scene.SetSelectionMode(sel_mode); - scene.Pick(event.GetPos().x(), scene.GetViewport().height-event.GetPos().y(), 8); + scene.Pick(event.GetPos().x(), + scene.GetViewport().height-event.GetPos().y(), 8); } -- GitLab