Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/Remmina/Remmina.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraihtdikh <aihtdikh@users.sourceforge.net>2011-03-06 17:13:09 +0300
committerVic Lee (llyzs) <llyzs@b6cfa94a-2857-405c-b0d6-536ef9fc39e1>2011-03-06 17:13:09 +0300
commitf264f3e7b2ab7788258b9f99a840c01044c05705 (patch)
tree02a786a4b7dcf66572934cbde334b7d40edd3e0c /remmina
parente989fb1f8f7180718f8271840e7060ba0c90a80e (diff)
Add preference for auto-scrolling speed
Diffstat (limited to 'remmina')
-rw-r--r--remmina/src/remminapref.c6
-rw-r--r--remmina/src/remminapref.h1
-rw-r--r--remmina/src/remminascrolledviewport.c7
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);
}