Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions src/dtgtk/culling.c
Original file line number Diff line number Diff line change
Expand Up @@ -1061,6 +1061,17 @@ static void _event_button_release_cb(GtkGestureSingle *gesture,
{
table->panning = FALSE;

/* A gesture cancel is relayed to this handler so widgets can clean up
* their pressed state, but it is not a click (issue #21813). Only a
* real GDK button release may toggle the culling selection. */
GdkEvent *release_event = gtk_get_current_event();
if(!release_event || release_event->type != GDK_BUTTON_RELEASE)
{
gdk_event_free(release_event);
return;
}
gdk_event_free(release_event);
Comment thread
TurboGit marked this conversation as resolved.

const dt_imgid_t overid = dt_control_get_mouse_over_id();
// if the act_on algorithm need a specific culling "selection",
// we use a very simple culling-specific selection
Expand Down
14 changes: 14 additions & 0 deletions src/dtgtk/thumbtable.c
Original file line number Diff line number Diff line change
Expand Up @@ -1621,6 +1621,20 @@ static void _event_button_release_cb(GtkGestureSingle *gesture,
&& cv != DT_VIEW_PRINT)
return;

/* A gesture cancel is relayed to this handler so widgets can clean up
* their pressed state, but it is not a click: cancels can also fire for
* a long-dead press while merely hovering (issue #21813 -- the thumbtable
* re-selected the hovered image). Only a real GDK button release may
* select/toggle, exactly like the pre-gesture button-release-event
* handler. */
GdkEvent *release_event = gtk_get_current_event();
if(!release_event || release_event->type != GDK_BUTTON_RELEASE)
{
gdk_event_free(release_event);
return;
}
gdk_event_free(release_event);
Comment thread
TurboGit marked this conversation as resolved.

dt_set_backthumb_time(0.0);
const dt_imgid_t id = dt_control_get_mouse_over_id();

Expand Down
Loading