talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 3d765a3396a0fb59802723fc9319a3c0f50b0056
parent 46d02cbde10d89eb792d4d6890435dfa48937fa4
Author: Oliver Lowe <o@olowe.co>
Date:   Sun, 24 Aug 2025 14:01:40 +1000

Start using regular GTK scrolling behaviour

Diffstat:
Msrc/gtk/gtkutils.c | 103-------------------------------------------------------------------------------
Msrc/prefs_common.c | 5-----
Msrc/prefs_common.h | 2--
Msrc/prefs_message.c | 36------------------------------------
4 files changed, 0 insertions(+), 146 deletions(-)

diff --git a/src/gtk/gtkutils.c b/src/gtk/gtkutils.c @@ -1079,81 +1079,12 @@ GtkWidget *gtkut_sc_combobox_create(GtkWidget *eventbox, gboolean focus_on_click return combobox; } -static void gtkutils_smooth_scroll_do(GtkWidget *widget, GtkAdjustment *vadj, - gfloat old_value, gfloat last_value, - gint step) -{ - gint change_value; - gboolean up; - gint i; - - if (old_value < last_value) { - change_value = last_value - old_value; - up = FALSE; - } else { - change_value = old_value - last_value; - up = TRUE; - } - - for (i = step; i <= change_value; i += step) { - gtk_adjustment_set_value(vadj, old_value + (up ? -i : i)); - g_signal_emit_by_name(G_OBJECT(vadj), - "value_changed", 0); - } - - gtk_adjustment_set_value(vadj, last_value); - g_signal_emit_by_name(G_OBJECT(vadj), "value_changed", 0); - - gtk_widget_queue_draw(widget); -} - -static gboolean gtkutils_smooth_scroll_page(GtkWidget *widget, GtkAdjustment *vadj, gboolean up) -{ - gfloat upper; - gfloat page_incr; - gfloat old_value; - gfloat last_value; - - page_incr = gtk_adjustment_get_page_increment(vadj); - if (prefs_common.scroll_halfpage) - page_incr /= 2; - - old_value = gtk_adjustment_get_value(vadj); - if (!up) { - upper = gtk_adjustment_get_upper(vadj) - gtk_adjustment_get_page_size(vadj); - if (old_value < upper) { - last_value = old_value + page_incr; - last_value = MIN(last_value, upper); - - gtkutils_smooth_scroll_do(widget, vadj, old_value, - last_value, - prefs_common.scroll_step); - } else - return FALSE; - } else { - if (old_value > 0.0) { - last_value = old_value - page_incr; - last_value = MAX(last_value, 0.0); - - gtkutils_smooth_scroll_do(widget, vadj, old_value, - last_value, - prefs_common.scroll_step); - } else - return FALSE; - } - - return TRUE; -} - gboolean gtkutils_scroll_page(GtkWidget *widget, GtkAdjustment *vadj, gboolean up) { gfloat upper; gfloat page_incr; gfloat old_value; - if (prefs_common.enable_smooth_scroll) - return gtkutils_smooth_scroll_page(widget, vadj, up); - page_incr = gtk_adjustment_get_page_increment(vadj); if (prefs_common.scroll_halfpage) page_incr /= 2; @@ -1182,45 +1113,11 @@ gboolean gtkutils_scroll_page(GtkWidget *widget, GtkAdjustment *vadj, gboolean u return TRUE; } -static void gtkutils_smooth_scroll_one_line(GtkWidget *widget, GtkAdjustment *vadj, gboolean up) -{ - gfloat upper; - gfloat old_value; - gfloat last_value; - - old_value = gtk_adjustment_get_value(vadj); - if (!up) { - upper = gtk_adjustment_get_upper(vadj) - gtk_adjustment_get_page_size(vadj); - if (old_value < upper) { - last_value = old_value + gtk_adjustment_get_step_increment(vadj); - last_value = MIN(last_value, upper); - - gtkutils_smooth_scroll_do(widget, vadj, old_value, - last_value, - prefs_common.scroll_step); - } - } else { - if (old_value > 0.0) { - last_value = old_value - gtk_adjustment_get_step_increment(vadj); - last_value = MAX(last_value, 0.0); - - gtkutils_smooth_scroll_do(widget, vadj, old_value, - last_value, - prefs_common.scroll_step); - } - } -} - void gtkutils_scroll_one_line(GtkWidget *widget, GtkAdjustment *vadj, gboolean up) { gfloat upper; gfloat old_value; - if (prefs_common.enable_smooth_scroll) { - gtkutils_smooth_scroll_one_line(widget, vadj, up); - return; - } - old_value = gtk_adjustment_get_value(vadj); if (!up) { upper = gtk_adjustment_get_upper(vadj) - gtk_adjustment_get_page_size(vadj); diff --git a/src/prefs_common.c b/src/prefs_common.c @@ -508,11 +508,6 @@ static PrefParam param[] = { {"never_send_retrcpt", "FALSE", &prefs_common.never_send_retrcpt, P_BOOL, NULL, NULL, NULL}, - {"enable_smooth_scroll", "FALSE", - &prefs_common.enable_smooth_scroll, P_BOOL, - NULL, NULL, NULL}, - {"scroll_step", "1", &prefs_common.scroll_step, P_INT, - NULL, NULL, NULL}, {"scroll_half_page", "FALSE", &prefs_common.scroll_halfpage, P_BOOL, NULL, NULL, NULL}, {"hide_quoted", "TRUE", diff --git a/src/prefs_common.h b/src/prefs_common.h @@ -326,8 +326,6 @@ struct _PrefsCommon gint line_space; gboolean render_html; gboolean promote_html_part; - gboolean enable_smooth_scroll; - gint scroll_step; gboolean scroll_halfpage; gboolean hide_quoted; gboolean respect_flowed_format; diff --git a/src/prefs_message.c b/src/prefs_message.c @@ -54,8 +54,6 @@ typedef struct _MessagePage GtkWidget *checkbtn_promote_html_part; GtkWidget *spinbtn_linespc; - GtkWidget *checkbtn_smoothscroll; - GtkWidget *spinbtn_scrollstep; GtkWidget *checkbtn_halfpage; GtkWidget *checkbtn_hide_quoted; @@ -84,11 +82,8 @@ static void prefs_message_create_widget(PrefsPage *_page, GtkWindow *window, GtkWidget *frame; GtkWidget *vbox_scr; - GtkWidget *checkbtn_smoothscroll; GtkWidget *hbox_scr; GtkWidget *label_scr; - GtkAdjustment *spinbtn_scrollstep_adj; - GtkWidget *spinbtn_scrollstep; GtkWidget *checkbtn_halfpage; GtkWidget *checkbtn_hide_quoted; @@ -168,31 +163,10 @@ static void prefs_message_create_widget(PrefsPage *_page, GtkWindow *window, gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox_scr), hbox1, FALSE, TRUE, 0); - PACK_CHECK_BUTTON(hbox1, checkbtn_smoothscroll, _("Smooth scroll")); - hbox_scr = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 8); gtk_widget_show (hbox_scr); gtk_box_pack_start (GTK_BOX (hbox1), hbox_scr, FALSE, FALSE, 0); - label_scr = gtk_label_new (_("Step")); - gtk_widget_show (label_scr); - gtk_box_pack_start (GTK_BOX (hbox_scr), label_scr, FALSE, FALSE, 0); - - spinbtn_scrollstep_adj = GTK_ADJUSTMENT(gtk_adjustment_new (1, 1, 100, 1, 10, 0)); - spinbtn_scrollstep = gtk_spin_button_new - (GTK_ADJUSTMENT (spinbtn_scrollstep_adj), 1, 0); - gtk_widget_show (spinbtn_scrollstep); - gtk_box_pack_start (GTK_BOX (hbox_scr), spinbtn_scrollstep, - FALSE, FALSE, 0); - gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbtn_scrollstep), - TRUE); - - label_scr = gtk_label_new (_("pixels")); - gtk_widget_show (label_scr); - gtk_box_pack_start (GTK_BOX (hbox_scr), label_scr, FALSE, FALSE, 0); - - SET_TOGGLE_SENSITIVITY (checkbtn_smoothscroll, hbox_scr) - PACK_CHECK_BUTTON(vbox1, checkbtn_attach_desc, _("Show attachment descriptions (rather than names)")); @@ -224,8 +198,6 @@ static void prefs_message_create_widget(PrefsPage *_page, GtkWindow *window, prefs_common.render_html); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_promote_html_part), prefs_common.promote_html_part); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_smoothscroll), - prefs_common.enable_smooth_scroll); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_hide_quoted), prefs_common.hide_quoted); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_halfpage), @@ -234,8 +206,6 @@ static void prefs_message_create_widget(PrefsPage *_page, GtkWindow *window, prefs_common.attach_desc); gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinbtn_linespc), prefs_common.line_space); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinbtn_scrollstep), - prefs_common.scroll_step); prefs_message->window = GTK_WIDGET(window); prefs_message->checkbtn_dispxface = checkbtn_dispxface; @@ -244,9 +214,7 @@ static void prefs_message_create_widget(PrefsPage *_page, GtkWindow *window, prefs_message->checkbtn_html = checkbtn_html; prefs_message->checkbtn_promote_html_part = checkbtn_promote_html_part; prefs_message->spinbtn_linespc = spinbtn_linespc; - prefs_message->checkbtn_smoothscroll = checkbtn_smoothscroll; prefs_message->checkbtn_hide_quoted = checkbtn_hide_quoted; - prefs_message->spinbtn_scrollstep = spinbtn_scrollstep; prefs_message->checkbtn_halfpage = checkbtn_halfpage; prefs_message->checkbtn_attach_desc = checkbtn_attach_desc; @@ -267,8 +235,6 @@ static void prefs_message_save(PrefsPage *_page) GTK_TOGGLE_BUTTON(page->checkbtn_html)); prefs_common.promote_html_part = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(page->checkbtn_promote_html_part)); - prefs_common.enable_smooth_scroll = gtk_toggle_button_get_active( - GTK_TOGGLE_BUTTON(page->checkbtn_smoothscroll)); prefs_common.scroll_halfpage = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(page->checkbtn_halfpage)); prefs_common.hide_quoted = gtk_toggle_button_get_active( @@ -277,8 +243,6 @@ static void prefs_message_save(PrefsPage *_page) GTK_TOGGLE_BUTTON(page->checkbtn_attach_desc)); prefs_common.line_space = gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON(page->spinbtn_linespc)); - prefs_common.scroll_step = gtk_spin_button_get_value_as_int( - GTK_SPIN_BUTTON(page->spinbtn_scrollstep)); main_window_reflect_prefs_all_real(FALSE); }