diff --git a/remmina/src/remmina_connection_window.c b/remmina/src/remmina_connection_window.c
index ffb7c35c3f..b7001fbb17 100644
--- a/remmina/src/remmina_connection_window.c
+++ b/remmina/src/remmina_connection_window.c
@@ -3570,6 +3570,12 @@ static gboolean remmina_connection_window_hostkey_func(RemminaProtocolWidget* gp
remmina_connection_holder_toolbar_minimize(GTK_WIDGET(gp),
cnnhld);
}
+ else if (keyval == remmina_pref.shortcutkey_viewonly)
+ {
+ remmina_file_set_int(cnnobj->remmina_file, "viewonly",
+ ( remmina_file_get_int(cnnobj->remmina_file, "viewonly", 0 )
+ == 0 ) ? 1 : 0 );
+ }
else if (keyval == remmina_pref.shortcutkey_screenshot)
{
remmina_connection_holder_toolbar_screenshot(GTK_WIDGET(gp),
diff --git a/remmina/src/remmina_pref.c b/remmina/src/remmina_pref.c
index f15cd15b27..87d95d53dc 100644
--- a/remmina/src/remmina_pref.c
+++ b/remmina/src/remmina_pref.c
@@ -485,6 +485,11 @@ void remmina_pref_init(void)
else
remmina_pref.shortcutkey_scale = GDK_KEY_s;
+ if (g_key_file_has_key(gkeyfile, "remmina_pref", "shortcutkey_viewonly", NULL))
+ remmina_pref.shortcutkey_viewonly = g_key_file_get_integer(gkeyfile, "remmina_pref", "shortcutkey_viewonly", NULL);
+ else
+ remmina_pref.shortcutkey_viewonly = GDK_KEY_m;
+
if (g_key_file_has_key(gkeyfile, "remmina_pref", "shortcutkey_grab", NULL))
remmina_pref.shortcutkey_grab = g_key_file_get_integer(gkeyfile, "remmina_pref", "shortcutkey_grab", NULL);
else
@@ -754,6 +759,7 @@ void remmina_pref_save(void)
g_key_file_set_integer(gkeyfile, "remmina_pref", "shortcutkey_prevtab", remmina_pref.shortcutkey_prevtab);
g_key_file_set_integer(gkeyfile, "remmina_pref", "shortcutkey_scale", remmina_pref.shortcutkey_scale);
g_key_file_set_integer(gkeyfile, "remmina_pref", "shortcutkey_grab", remmina_pref.shortcutkey_grab);
+ g_key_file_set_integer(gkeyfile, "remmina_pref", "shortcutkey_viewonly", remmina_pref.shortcutkey_viewonly);
g_key_file_set_integer(gkeyfile, "remmina_pref", "shortcutkey_screenshot", remmina_pref.shortcutkey_screenshot);
g_key_file_set_integer(gkeyfile, "remmina_pref", "shortcutkey_minimize", remmina_pref.shortcutkey_minimize);
g_key_file_set_integer(gkeyfile, "remmina_pref", "shortcutkey_disconnect", remmina_pref.shortcutkey_disconnect);
diff --git a/remmina/src/remmina_pref.h b/remmina/src/remmina_pref.h
index d3c8fd9ab1..27616410cd 100644
--- a/remmina/src/remmina_pref.h
+++ b/remmina/src/remmina_pref.h
@@ -129,6 +129,7 @@ typedef struct _RemminaPref
guint shortcutkey_nexttab;
guint shortcutkey_scale;
guint shortcutkey_grab;
+ guint shortcutkey_viewonly;
guint shortcutkey_screenshot;
guint shortcutkey_minimize;
guint shortcutkey_disconnect;
diff --git a/remmina/src/remmina_pref_dialog.c b/remmina/src/remmina_pref_dialog.c
index 004c2bd5cd..46bce6bd56 100644
--- a/remmina/src/remmina_pref_dialog.c
+++ b/remmina/src/remmina_pref_dialog.c
@@ -212,6 +212,7 @@ void remmina_pref_on_dialog_destroy(GtkWidget *widget, gpointer user_data)
remmina_pref.shortcutkey_scale = remmina_key_chooser_get_keyval(gtk_button_get_label(remmina_pref_dialog->button_keyboard_scaled));
remmina_pref.shortcutkey_grab = remmina_key_chooser_get_keyval(gtk_button_get_label(remmina_pref_dialog->button_keyboard_grab_keyboard));
remmina_pref.shortcutkey_screenshot = remmina_key_chooser_get_keyval(gtk_button_get_label(remmina_pref_dialog->button_keyboard_screenshot));
+ remmina_pref.shortcutkey_viewonly = remmina_key_chooser_get_keyval(gtk_button_get_label(remmina_pref_dialog->button_keyboard_viewonly));
remmina_pref.shortcutkey_minimize = remmina_key_chooser_get_keyval(gtk_button_get_label(remmina_pref_dialog->button_keyboard_minimize));
remmina_pref.shortcutkey_disconnect = remmina_key_chooser_get_keyval(gtk_button_get_label(remmina_pref_dialog->button_keyboard_disconnect));
remmina_pref.shortcutkey_toolbar = remmina_key_chooser_get_keyval(gtk_button_get_label(remmina_pref_dialog->button_keyboard_toolbar));
@@ -369,6 +370,7 @@ static void remmina_pref_dialog_init(void)
remmina_pref_dialog_set_button_label(remmina_pref_dialog->button_keyboard_scaled, remmina_pref.shortcutkey_scale);
remmina_pref_dialog_set_button_label(remmina_pref_dialog->button_keyboard_grab_keyboard, remmina_pref.shortcutkey_grab);
remmina_pref_dialog_set_button_label(remmina_pref_dialog->button_keyboard_screenshot, remmina_pref.shortcutkey_screenshot);
+ remmina_pref_dialog_set_button_label(remmina_pref_dialog->button_keyboard_viewonly, remmina_pref.shortcutkey_viewonly);
remmina_pref_dialog_set_button_label(remmina_pref_dialog->button_keyboard_minimize, remmina_pref.shortcutkey_minimize);
remmina_pref_dialog_set_button_label(remmina_pref_dialog->button_keyboard_disconnect, remmina_pref.shortcutkey_disconnect);
remmina_pref_dialog_set_button_label(remmina_pref_dialog->button_keyboard_toolbar, remmina_pref.shortcutkey_toolbar);
@@ -507,6 +509,7 @@ GtkDialog* remmina_pref_dialog_new(gint default_tab, GtkWindow *parent)
remmina_pref_dialog->button_keyboard_scaled = GTK_BUTTON(GET_OBJECT("button_keyboard_scaled"));
remmina_pref_dialog->button_keyboard_grab_keyboard = GTK_BUTTON(GET_OBJECT("button_keyboard_grab_keyboard"));
remmina_pref_dialog->button_keyboard_screenshot = GTK_BUTTON(GET_OBJECT("button_keyboard_screenshot"));
+ remmina_pref_dialog->button_keyboard_viewonly = GTK_BUTTON(GET_OBJECT("button_keyboard_viewonly"));
remmina_pref_dialog->button_keyboard_minimize = GTK_BUTTON(GET_OBJECT("button_keyboard_minimize"));
remmina_pref_dialog->button_keyboard_disconnect = GTK_BUTTON(GET_OBJECT("button_keyboard_disconnect"));
remmina_pref_dialog->button_keyboard_toolbar = GTK_BUTTON(GET_OBJECT("button_keyboard_toolbar"));
diff --git a/remmina/src/remmina_pref_dialog.h b/remmina/src/remmina_pref_dialog.h
index 7c02a2e7de..06ba2423e5 100644
--- a/remmina/src/remmina_pref_dialog.h
+++ b/remmina/src/remmina_pref_dialog.h
@@ -85,6 +85,7 @@ typedef struct _RemminaPrefDialog
GtkButton *button_keyboard_scaled;
GtkButton *button_keyboard_grab_keyboard;
GtkButton *button_keyboard_screenshot;
+ GtkButton *button_keyboard_viewonly;
GtkButton *button_keyboard_minimize;
GtkButton *button_keyboard_disconnect;
GtkButton *button_keyboard_toolbar;
diff --git a/remmina/ui/remmina_preferences.glade b/remmina/ui/remmina_preferences.glade
index 017df22f51..7824a1cd77 100644
--- a/remmina/ui/remmina_preferences.glade
+++ b/remmina/ui/remmina_preferences.glade
@@ -977,6 +977,35 @@ Author: Antenore Gatta
2
+
+
+
+ 0
+ 10
+
+
+
+
+
+ 1
+ 10
+ 2
+
+