From 079f29ca5a97535d97a50712a1add3936eefd374 Mon Sep 17 00:00:00 2001 From: dannye <33dannye@gmail.com> Date: Sat, 4 Apr 2026 12:08:15 -0500 Subject: [PATCH] Fix Select/Hold Browser callback with FL_WHEN_RELEASE when mouse is dragged --- src/Fl_Browser_.cxx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Fl_Browser_.cxx b/src/Fl_Browser_.cxx index 56b751415..586998f1e 100644 --- a/src/Fl_Browser_.cxx +++ b/src/Fl_Browser_.cxx @@ -789,6 +789,7 @@ J1: // This second call of Fl_Browser_::handle() may result in a - // somewhat unexpected - second concurrent invocation of the callback. + static void* initsel; static char change; static char whichway; static int py; @@ -800,6 +801,7 @@ J1: redraw(); } my = py = Fl::event_y(); + initsel = selection_; change = 0; if (type() == FL_NORMAL_BROWSER || !top_) ; @@ -904,11 +906,10 @@ J1: } if (l) selection_ = l; } else { - void* l1 = selection_; void* l = (Fl::event_x()x()+w()) ? selection_ : find_item(my); - change = (l != l1); + change = (l != initsel); select_only(l, when() & FL_WHEN_CHANGED); if (wp.deleted()) return 1; }