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:
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);
}