diff options
author | aihtdikh <aihtdikh@users.sourceforge.net> | 2011-03-06 17:13:09 +0300 |
---|---|---|
committer | Vic Lee (llyzs) <llyzs@b6cfa94a-2857-405c-b0d6-536ef9fc39e1> | 2011-03-06 17:13:09 +0300 |
commit | f264f3e7b2ab7788258b9f99a840c01044c05705 (patch) | |
tree | 02a786a4b7dcf66572934cbde334b7d40edd3e0c /remmina | |
parent | e989fb1f8f7180718f8271840e7060ba0c90a80e (diff) |
Add preference for auto-scrolling speed
Diffstat (limited to 'remmina')
-rw-r--r-- | remmina/src/remminapref.c | 6 | ||||
-rw-r--r-- | remmina/src/remminapref.h | 1 | ||||
-rw-r--r-- | remmina/src/remminascrolledviewport.c | 7 |
3 files changed, 12 insertions, 2 deletions
diff --git a/remmina/src/remminapref.c b/remmina/src/remminapref.c index 5b52e3b00..cbb9c293a 100644 --- a/remmina/src/remminapref.c +++ b/remmina/src/remminapref.c @@ -303,6 +303,11 @@ remmina_pref_init (void) else remmina_pref.tab_mode = 0; + if (g_key_file_has_key (gkeyfile, "remmina_pref", "auto_scroll_step", NULL)) + remmina_pref.auto_scroll_step = g_key_file_get_integer (gkeyfile, "remmina_pref", "auto_scroll_step", NULL); + else + remmina_pref.auto_scroll_step = 10; + if (g_key_file_has_key (gkeyfile, "remmina_pref", "hostkey", NULL)) remmina_pref.hostkey = g_key_file_get_integer (gkeyfile, "remmina_pref", "hostkey", NULL); else @@ -430,6 +435,7 @@ remmina_pref_save (void) g_key_file_set_integer (gkeyfile, "remmina_pref", "recent_maximum", remmina_pref.recent_maximum); g_key_file_set_integer (gkeyfile, "remmina_pref", "default_mode", remmina_pref.default_mode); g_key_file_set_integer (gkeyfile, "remmina_pref", "tab_mode", remmina_pref.tab_mode); + g_key_file_set_integer (gkeyfile, "remmina_pref", "auto_scroll_step", remmina_pref.auto_scroll_step); g_key_file_set_integer (gkeyfile, "remmina_pref", "hostkey", remmina_pref.hostkey); g_key_file_set_integer (gkeyfile, "remmina_pref", "shortcutkey_fullscreen", remmina_pref.shortcutkey_fullscreen); g_key_file_set_integer (gkeyfile, "remmina_pref", "shortcutkey_autofit", remmina_pref.shortcutkey_autofit); diff --git a/remmina/src/remminapref.h b/remmina/src/remminapref.h index 2c44be5d5..86675669a 100644 --- a/remmina/src/remminapref.h +++ b/remmina/src/remminapref.h @@ -72,6 +72,7 @@ typedef struct _RemminaPref gint recent_maximum; gint default_mode; gint tab_mode; + gint auto_scroll_step; gboolean applet_new_ontop; gboolean applet_hide_count; diff --git a/remmina/src/remminascrolledviewport.c b/remmina/src/remminascrolledviewport.c index 41df60f11..8a6bfa42d 100644 --- a/remmina/src/remminascrolledviewport.c +++ b/remmina/src/remminascrolledviewport.c @@ -20,6 +20,7 @@ #include <gtk/gtk.h> #include "remminascrolledviewport.h" +#include "remminapref.h" G_DEFINE_TYPE (RemminaScrolledViewport, remmina_scrolled_viewport, GTK_TYPE_EVENT_BOX) @@ -52,15 +53,17 @@ remmina_scrolled_viewport_motion_timeout (gpointer data) my = (y == 0 ? -1 : (y >= h - 1 ? 1 : 0)); if (mx != 0) { + gint step = MAX (10, MIN (remmina_pref.auto_scroll_step, w / 5)); adj = gtk_viewport_get_hadjustment (GTK_VIEWPORT (child)); - value = gtk_adjustment_get_value (GTK_ADJUSTMENT (adj)) + (gdouble) (mx * 10); + value = gtk_adjustment_get_value (GTK_ADJUSTMENT (adj)) + (gdouble) (mx * step); value = MAX (0, MIN (value, adj->upper - (gdouble) w + 2.0)); gtk_adjustment_set_value (GTK_ADJUSTMENT (adj), value); } if (my != 0) { + gint step = MAX (10, MIN (remmina_pref.auto_scroll_step, h / 5)); adj = gtk_viewport_get_vadjustment (GTK_VIEWPORT (child)); - value = gtk_adjustment_get_value (GTK_ADJUSTMENT (adj)) + (gdouble) (my * 10); + value = gtk_adjustment_get_value (GTK_ADJUSTMENT (adj)) + (gdouble) (my * step); value = MAX (0, MIN (value, adj->upper - (gdouble) h + 2.0)); gtk_adjustment_set_value (GTK_ADJUSTMENT (adj), value); } |