Skip to content

Commit 1ec7778

Browse files
committed
bauhaus slider ignore first click of double-click reset
1 parent 66f2b4b commit 1ec7778

File tree

2 files changed

+8
-11
lines changed

2 files changed

+8
-11
lines changed

src/bauhaus/bauhaus.c

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -750,7 +750,8 @@ static void _widget_finalize(GObject *widget)
750750
if(w->type == DT_BAUHAUS_SLIDER)
751751
{
752752
dt_bauhaus_slider_data_t *d = &w->data.slider;
753-
if(d->timeout_handle) g_source_remove(d->timeout_handle);
753+
if(d->timeout_handle && d->timeout_handle != G_MAXUINT)
754+
g_source_remove(d->timeout_handle);
754755
free(d->grad_col);
755756
free(d->grad_pos);
756757
}
@@ -3630,6 +3631,7 @@ static void _widget_button_press(GtkGestureSingle *gesture,
36303631
else if(pos <= 1.0f && y > .5 * bh->line_height + w->margin.top + w->padding.top)
36313632
{
36323633
bh->mouse_x = NAN;
3634+
w->data.slider.timeout_handle = G_MAXUINT;
36333635
_slider_set_normalized(w, pos);
36343636
}
36353637
}
@@ -3646,24 +3648,19 @@ static void _widget_button_release(GtkGestureSingle *gesture,
36463648
dt_bauhaus_widget_t *w = DT_BAUHAUS_WIDGET(widget);
36473649
dt_bauhaus_widget_release_quad(widget);
36483650

3651+
dt_gui_claim(gesture);
36493652
if(w->type != DT_BAUHAUS_SLIDER) return;
36503653

36513654
dt_bauhaus_slider_data_t *d = &w->data.slider;
3652-
if(gtk_gesture_single_get_current_button(gesture) == GDK_BUTTON_PRIMARY
3653-
&& d->is_dragging)
3654-
{
3655+
if(gtk_gesture_single_get_current_button(gesture) == GDK_BUTTON_PRIMARY)
36553656
d->is_dragging = 0;
3656-
3657-
// FIXME _slider_value_change_dragging
3658-
if(d->timeout_handle) g_source_remove(d->timeout_handle);
3659-
d->timeout_handle = 0;
3660-
_slider_set_normalized(w, d->pos);
3661-
}
36623657
}
36633658

36643659
static void _widget_button_stopped(GtkGestureSingle *gesture,
36653660
dt_bauhaus_widget_t *w)
36663661
{
3662+
if(w->data.slider.timeout_handle == G_MAXUINT)
3663+
_slider_value_change_dragging(w);
36673664
}
36683665

36693666
static void _widget_motion(GtkEventControllerMotion *controller,

src/gui/gtk.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3737,7 +3737,7 @@ static gboolean _notebook_button_press_callback(GtkNotebook *notebook,
37373737
const GdkEventButton *event,
37383738
gpointer user_data)
37393739
{
3740-
if(event->type == GDK_2BUTTON_PRESS)
3740+
if(event->type == GDK_2BUTTON_PRESS && gtk_get_event_widget((GdkEvent*)event) == GTK_WIDGET(notebook))
37413741
_reset_all_bauhaus(notebook, gtk_notebook_get_nth_page(notebook, gtk_notebook_get_current_page(notebook)));
37423742

37433743
return FALSE;

0 commit comments

Comments
 (0)