From 74707820bf0591678d1123702c8ed82fc331f9dc Mon Sep 17 00:00:00 2001 From: Jinhao Date: Thu, 4 May 2017 05:32:09 +0800 Subject: [PATCH] improve content_view for dragging --- source/gui/widgets/skeletons/content_view.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/source/gui/widgets/skeletons/content_view.cpp b/source/gui/widgets/skeletons/content_view.cpp index df53bcd7..438ce4ea 100644 --- a/source/gui/widgets/skeletons/content_view.cpp +++ b/source/gui/widgets/skeletons/content_view.cpp @@ -92,14 +92,15 @@ namespace nana { auto mouse_evt = [this](const arg_mouse& arg) { - if (event_code::mouse_move == arg.evt_code) + if (event_code::mouse_down == arg.evt_code) { if (!arg.is_left_button()) return; - if ((!this->drag_started) && this->view.view_area().is_hit(arg.pos)) - this->drag_started = true; - + this->drag_started = this->view.view_area().is_hit(arg.pos); + } + else if (event_code::mouse_move == arg.evt_code) + { if (this->drag_started && this->drive(arg.pos)) { tmr.interval(16); @@ -113,6 +114,7 @@ namespace nana { } }; + API::events(handle).mouse_down.connect_unignorable(mouse_evt); API::events(handle).mouse_move.connect_unignorable(mouse_evt); API::events(handle).mouse_up.connect_unignorable(mouse_evt);