diff --git a/remmina-plugins/vnc/vnc_plugin.c b/remmina-plugins/vnc/vnc_plugin.c index 9d0cf9f8fc..fb7a434f64 100644 --- a/remmina-plugins/vnc/vnc_plugin.c +++ b/remmina-plugins/vnc/vnc_plugin.c @@ -1510,7 +1510,9 @@ static gboolean remmina_plugin_vnc_on_key(GtkWidget *widget, GdkEventKey *event, RemminaPluginVncData *gpdata; RemminaFile *remminafile; RemminaKeyVal *k; + guint event_keyval; guint keyval; + int i; gpdata = (RemminaPluginVncData*) g_object_get_data(G_OBJECT(gp), "plugin-data"); if (!gpdata->connected || !gpdata->client) @@ -1519,8 +1521,22 @@ static gboolean remmina_plugin_vnc_on_key(GtkWidget *widget, GdkEventKey *event, if (remmina_plugin_service->file_get_int(remminafile, "viewonly", FALSE)) return FALSE; + /* When sending key release, try first to find out a previously sent keyval + to workaround bugs like https://bugs.freedesktop.org/show_bug.cgi?id=7430 */ + + event_keyval = event->keyval; + if ( event->type == GDK_KEY_RELEASE ) { + for (i = 0; i < gpdata->pressed_keys->len; i++) { + k = g_ptr_array_index(gpdata->pressed_keys, i); + if ( k->keycode == event->hardware_keycode ) { + event_keyval = k->keyval; + break; + } + } + } + keyval = remmina_plugin_service->pref_keymap_get_keyval(remmina_plugin_service->file_get_string(remminafile, "keymap"), - event->keyval); + event_keyval); remmina_plugin_vnc_event_push(gp, REMMINA_PLUGIN_VNC_EVENT_KEY, GUINT_TO_POINTER(keyval), GINT_TO_POINTER(event->type == GDK_KEY_PRESS ? TRUE : FALSE), NULL); diff --git a/remmina/po/it.po b/remmina/po/it.po index 2589cf0553..28d5be052f 100644 --- a/remmina/po/it.po +++ b/remmina/po/it.po @@ -532,7 +532,6 @@ msgstr "" " Gianfranco Frisani https://launchpad.net/~gfrisani\n" " Luca Falavigna https://launchpad.net/~dktrkranz\n" " Milo Casagrande https://launchpad.net/~milo\n" -" Vic https://launchpad.net/~llyzs\n" " mrktt77 https://launchpad.net/~marketto" #: remmina/src/remmina_chat_window.c:178 diff --git a/remmina/src/remmina_about.c b/remmina/src/remmina_about.c index 14b59c5c5a..b8e18420ab 100644 --- a/remmina/src/remmina_about.c +++ b/remmina/src/remmina_about.c @@ -89,7 +89,7 @@ void remmina_about_open(GtkWindow* parent) gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(dialog), _("The GTK+ Remote Desktop Client")), gtk_about_dialog_set_license( GTK_ABOUT_DIALOG(dialog), license); gtk_about_dialog_set_wrap_license(GTK_ABOUT_DIALOG(dialog), TRUE); - gtk_about_dialog_set_website(GTK_ABOUT_DIALOG(dialog), "https://github.com/FreeRDP/Remmina/wiki"); + gtk_about_dialog_set_website(GTK_ABOUT_DIALOG(dialog), "http://freerdp.github.io/Remmina/"); gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(dialog), authors); gtk_about_dialog_set_artists(GTK_ABOUT_DIALOG(dialog), artists); gtk_about_dialog_set_translator_credits(GTK_ABOUT_DIALOG(dialog), _("translator-credits"));