Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gnome-connections for openSUSE:Factory checked in at 2022-04-11 23:49:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gnome-connections (Old) and /work/SRC/openSUSE:Factory/.gnome-connections.new.1900 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-connections" Mon Apr 11 23:49:18 2022 rev:7 rq:969163 version:42.1.1 Changes: -------- --- /work/SRC/openSUSE:Factory/gnome-connections/gnome-connections.changes 2022-03-23 20:19:51.166512808 +0100 +++ /work/SRC/openSUSE:Factory/.gnome-connections.new.1900/gnome-connections.changes 2022-04-11 23:50:46.194025643 +0200 @@ -1,0 +2,13 @@ +Fri Apr 8 17:17:48 UTC 2022 - Bj??rn Lie <bjorn....@gmail.com> + +- Update to version 42.1.1: + + Fix crash with multiple simultaneous connections. + + Allow for resizing and maximizing a display view. + + Reset credentials when authentication fails. + + Fix connection deletion on notification timeout. +- Changes from version 42.1: + + Fixed double-free crash while connecting to RDP servers. + + Fixed RDP scaling and resizing issues. + + Updated translations. + +------------------------------------------------------------------- Old: ---- gnome-connections-42.0.tar.xz New: ---- gnome-connections-42.1.1.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gnome-connections.spec ++++++ --- /var/tmp/diff_new_pack.xWl3e0/_old 2022-04-11 23:50:46.750019299 +0200 +++ /var/tmp/diff_new_pack.xWl3e0/_new 2022-04-11 23:50:46.758019209 +0200 @@ -17,7 +17,7 @@ Name: gnome-connections -Version: 42.0 +Version: 42.1.1 Release: 0 Summary: A remote desktop client for GNOME License: GPL-3.0-or-later ++++++ gnome-connections-42.0.tar.xz -> gnome-connections-42.1.1.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-connections-42.0/NEWS new/gnome-connections-42.1.1/NEWS --- old/gnome-connections-42.0/NEWS 2022-03-21 12:29:53.000000000 +0100 +++ new/gnome-connections-42.1.1/NEWS 2022-04-07 14:05:12.000000000 +0200 @@ -1,3 +1,24 @@ +42.1.1 - 07 Apr, 2022 +===================== + +Changes since 42.1 + + - Fix crash with multiple simultaneous connections + - Allow for resizing and maximizing a display view + - Reset credentials when authentication fails + - Fix connection deletion on notification timeout + +42.1 - 05 Apr, 2022 +===================== + +Changes since 42.0 + + - Fixed double-free crash while connecting to RDP servers + - Fixed RDP scaling and resizing issues + - Added/updated/fixed translations: + - German + - Vietnamese + 42.0 - 21 Mar, 2022 =================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-connections-42.0/data/org.gnome.Connections.appdata.xml.in new/gnome-connections-42.1.1/data/org.gnome.Connections.appdata.xml.in --- old/gnome-connections-42.0/data/org.gnome.Connections.appdata.xml.in 2022-03-21 12:29:53.000000000 +0100 +++ new/gnome-connections-42.1.1/data/org.gnome.Connections.appdata.xml.in 2022-04-07 14:05:12.000000000 +0200 @@ -32,9 +32,9 @@ </screenshot> </screenshots> <releases> - <release version="42.0" date="2022-03-21"> + <release version="42.1" date="2022-04-05"> <description> - <p>GNOME Connections 42.0 culminates six months of feature development, bugfixes, and performance improvements.</p> + <p>GNOME Connections 42.1 culminates six months of feature development, bugfixes, and performance improvements.</p> </description> </release> </releases> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-connections-42.0/help/de/de.po new/gnome-connections-42.1.1/help/de/de.po --- old/gnome-connections-42.0/help/de/de.po 2022-03-21 12:29:53.000000000 +0100 +++ new/gnome-connections-42.1.1/help/de/de.po 2022-04-07 14:05:12.000000000 +0200 @@ -6,31 +6,31 @@ msgid "" msgstr "" "Project-Id-Version: gnome-connections master\n" -"POT-Creation-Date: 2021-02-27 20:50+0000\n" -"PO-Revision-Date: 2021-02-27 21:54+0100\n" -"Last-Translator: Christian Kirbach <christian.kirb...@gmail.com>\n" +"POT-Creation-Date: 2022-03-21 12:15+0000\n" +"PO-Revision-Date: 2022-03-22 18:20+0100\n" +"Last-Translator: Tim Sabsch <t...@sabsch.com>\n" "Language-Team: German <gnome...@gnome.org>\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.4.1\n" +"X-Generator: Poedit 3.0.1\n" #. Put one translator per line, in the form NAME <EMAIL>, YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "" -"Mario Bl??ttermann <mario.blaetterm...@gmail.com>, 2021.\n" -"Christian Kirbach <christian.kirb...@googlemail.com>, 2021." +"Mario Bl??ttermann <mario.blaetterm...@gmail.com>, 2021\n" +"Christian Kirbach <christian.kirb...@googlemail.com>, 2021" #. (itstool) path: credit/name -#: C/connect.page:9 C/index.page:14 +#: C/connect.page:9 C/index.page:13 msgid "Felipe Borges" msgstr "Felipe Borges" #. (itstool) path: credit/years -#: C/connect.page:11 C/index.page:16 +#: C/connect.page:11 C/index.page:15 msgid "2020" msgstr "2020" @@ -118,24 +118,37 @@ msgid "The remote machine will open in the collection view." msgstr "Der ferne Rechner wird in der Kachelansicht ge??ffnet." -#. (itstool) path: media/span +#. (itstool) path: info/title +#: C/index.page:7 +msgctxt "link:trail" +msgid "Connections" +msgstr "Verbindungen" + +#. (itstool) path: info/title +#: C/index.page:8 +msgctxt "link" +msgid "Connections" +msgstr "Verbindungen" + +#. (itstool) path: info/title #: C/index.page:9 +msgctxt "text" msgid "Connections" msgstr "Verbindungen" #. (itstool) path: info/desc -#: C/index.page:21 +#: C/index.page:20 msgid "Learn to connect to remote machines." msgstr "" "Erfahren Sie, wie Sie Verbindungen zu fernen Rechnern herstellen k??nnen." #. (itstool) path: page/title -#: C/index.page:24 +#: C/index.page:23 msgid "<_:media-1/> Connections" msgstr "<_:media-1/> Verbindungen" #. (itstool) path: page/p -#: C/index.page:29 +#: C/index.page:28 msgid "" "<app>Connections</app> is a remote desktop client for the GNOME desktop " "environment." @@ -144,7 +157,7 @@ "Verbindungen zu fernen Rechnern." #. (itstool) path: section/title -#: C/index.page:32 +#: C/index.page:31 msgid "Getting started" msgstr "Erste Schritte" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-connections-42.0/meson.build new/gnome-connections-42.1.1/meson.build --- old/gnome-connections-42.0/meson.build 2022-03-21 12:29:53.000000000 +0100 +++ new/gnome-connections-42.1.1/meson.build 2022-04-07 14:05:12.000000000 +0200 @@ -1,5 +1,5 @@ project('gnome-connections', ['c', 'vala'], - version: '42.0', + version: '42.1.1', meson_version: '>= 0.50.0', default_options: [ 'warning_level=2', ], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-connections-42.0/po/nl.po new/gnome-connections-42.1.1/po/nl.po --- old/gnome-connections-42.0/po/nl.po 2022-03-21 12:29:53.000000000 +0100 +++ new/gnome-connections-42.1.1/po/nl.po 2022-04-07 14:05:12.000000000 +0200 @@ -1,14 +1,14 @@ # Dutch translation for gnome-connections. # Copyright (C) 2021 gnome-connections's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-connections package. -# Nathan Follens <nfoll...@gnome.org>, 2021. +# Nathan Follens <nfoll...@gnome.org>, 2021-2022. # msgid "" msgstr "" "Project-Id-Version: gnome-connections gnome-40\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/connections/issues\n" -"POT-Creation-Date: 2021-08-26 10:01+0000\n" -"PO-Revision-Date: 2021-09-02 15:41+0200\n" +"POT-Creation-Date: 2022-03-21 12:15+0000\n" +"PO-Revision-Date: 2022-03-25 14:04+0100\n" "Last-Translator: Nathan Follens <nfoll...@gnome.org>\n" "Language-Team: Dutch <gnome-nl-l...@gnome.org>\n" "Language: nl\n" @@ -16,11 +16,11 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 3.0\n" +"X-Generator: Poedit 3.0.1\n" #: data/org.gnome.Connections.appdata.xml.in:7 #: data/org.gnome.Connections.desktop.in:3 src/application.vala:92 -#: src/ui/topbar.ui:9 +#: src/ui/topbar.ui:9 src/ui/window.ui:5 src/window.vala:106 msgid "Connections" msgstr "Verbindingen" @@ -54,11 +54,11 @@ "Connections uses the widely supported VNC and RDP protocols, and one of " "these must be enabled on the desktop that you want to connect to." msgstr "" -"Verbindingen maakt gebruik van de goed ondersteunde VNC- en RDP-" -"protocollen. E??n van deze protocollen moet ingeschakeld zijn op het " -"bureaublad waarmee u verbinding wilt maken." +"Verbindingen maakt gebruik van de goed ondersteunde VNC- en RDP-protocollen. " +"E??n van deze protocollen moet ingeschakeld zijn op het bureaublad waarmee u " +"verbinding wilt maken." -#: data/org.gnome.Connections.appdata.xml.in:34 +#: data/org.gnome.Connections.appdata.xml.in:43 msgid "The GNOME Project" msgstr "Het Gnome-project" @@ -83,65 +83,65 @@ #: src/application.vala:88 msgid "translator-credits" msgstr "" -"Nathan Follens\n" +"Nathan Follens <nfoll...@gnome.org>\n" "\n" "Meer info over Gnome-NL http://nl.gnome.org" -#: src/application.vala:89 src/application.vala:239 +#: src/application.vala:89 src/application.vala:242 msgid "A remote desktop client for the GNOME desktop environment" msgstr "Een externbureaubladcli??nt voor de Gnome-bureaubladomgeving" -#: src/application.vala:150 +#: src/application.vala:151 #, c-format msgid "Couldn???t open file of unknown mime type %s" msgstr "Kon bestand met onbekend MIME-type %s niet openen" -#: src/application.vala:179 +#: src/application.vala:182 #, c-format msgid "Connection to ???%s??? has been deleted" msgstr "Verbinding met ???%s??? is verwijderd" -#: src/application.vala:182 +#: src/application.vala:185 msgid "Undo" msgstr "Ongedaan maken" -#: src/application.vala:229 +#: src/application.vala:232 msgid "URL to connect" msgstr "URL om mee te verbinden" -#: src/application.vala:230 +#: src/application.vala:233 msgid "Open .vnc or .rdp file at the given PATH" msgstr ".vnc- of .rdp-bestand openen op gegeven PAD" -#: src/application.vala:231 +#: src/application.vala:234 msgid "Open in full screen" msgstr "In volledig scherm openen" -#: src/application.vala:254 +#: src/application.vala:257 msgid "Too many command-line arguments specified.\n" msgstr "Te veel argumenten opgegeven voor de opdracht.\n" #. Translators: %s => the timestamp of when the screenshot was taken. -#: src/connection.vala:64 +#: src/connection.vala:70 #, c-format msgid "Screenshot from %s" msgstr "Schermafdruk van %s" -#: src/connection.vala:79 +#: src/connection.vala:85 msgid "Screenshot taken" msgstr "Schermafdruk gemaakt" #. Translators: Open is a verb -#: src/connection.vala:82 +#: src/connection.vala:88 msgid "Open" msgstr "Openen" -#: src/connection.vala:127 +#: src/connection.vala:161 #, c-format msgid "???%s??? requires authentication" msgstr "???%s??? vereist authenticatie" -#: src/connection.vala:146 +#: src/connection.vala:200 #, c-format msgid "Authentication failed: %s" msgstr "Aanmelding mislukt: %s" @@ -152,11 +152,11 @@ msgid "%d??%d" msgstr "%d??%d" -#: src/onboarding-dialog.vala:88 src/ui/onboarding-dialog.ui:147 +#: src/onboarding-dialog.vala:86 src/ui/onboarding-dialog.ui:147 msgid "No Thanks" msgstr "Nee, bedankt" -#: src/onboarding-dialog.vala:88 +#: src/onboarding-dialog.vala:86 msgid "Close" msgstr "Sluiten" @@ -182,15 +182,15 @@ msgid "RDP (standard for connecting to Windows)" msgstr "RDP (standaard om te verbinden met Windows)" -#: src/ui/assistant.ui:71 +#: src/ui/assistant.ui:72 msgid "VNC (standard for connecting to Linux)" msgstr "VNC (standaard om te verbinden met Linux)" -#: src/ui/assistant.ui:88 src/ui/topbar.ui:201 +#: src/ui/assistant.ui:90 src/ui/topbar.ui:201 msgid "Help" msgstr "Hulp" -#: src/ui/assistant.ui:98 +#: src/ui/assistant.ui:100 msgid "Connect" msgstr "Verbinden" @@ -206,14 +206,10 @@ msgid "Sign In" msgstr "Aanmelden" -#: src/ui/empty-view.ui:28 src/ui/onboarding-dialog.ui:41 +#: src/ui/onboarding-dialog.ui:41 src/ui/window.ui:52 msgid "Welcome to Connections" msgstr "Welkom bij Verbindingen" -#: src/ui/empty-view.ui:41 -msgid "Just hit the <b>+</b> button to make your first connection." -msgstr "Klik gewoon op de <b>+</b>-knop om uw eerste verbinding te maken." - #: src/ui/onboarding-dialog.ui:42 msgid "Learn about how Connections works." msgstr "Kom meer te weten over hoe Verbindingen werkt." @@ -263,11 +259,11 @@ msgid "Connection preferences" msgstr "Verbindingsvoorkeuren" -#: src/ui/rdp-preferences.ui:23 src/ui/vnc-preferences.ui:23 +#: src/ui/rdp-preferences.ui:22 src/ui/vnc-preferences.ui:22 msgid "Address" msgstr "Adres" -#: src/ui/rdp-preferences.ui:38 src/ui/vnc-preferences.ui:38 +#: src/ui/rdp-preferences.ui:37 src/ui/vnc-preferences.ui:37 msgid "Name" msgstr "Naam" @@ -331,53 +327,61 @@ msgid "Ctrl + Alt + F7" msgstr "Ctrl + Alt + F7" -#: src/ui/vnc-preferences.ui:55 +#: src/ui/vnc-preferences.ui:54 msgid "Display" msgstr "Weergave" -#: src/ui/vnc-preferences.ui:60 +#: src/ui/vnc-preferences.ui:59 msgid "Scaling" msgstr "Schalen" -#: src/ui/vnc-preferences.ui:67 +#: src/ui/vnc-preferences.ui:66 msgid "View only" msgstr "Alleen bekijken" -#: src/ui/vnc-preferences.ui:74 +#: src/ui/vnc-preferences.ui:73 msgid "Show local pointer" msgstr "Lokale pointer weergeven" -#: src/ui/vnc-preferences.ui:82 +#: src/ui/vnc-preferences.ui:80 +msgid "Enable audio" +msgstr "Geluid inschakelen" + +#: src/ui/vnc-preferences.ui:88 msgid "Bandwidth" msgstr "Bandbreedte" -#: src/ui/vnc-preferences.ui:89 +#: src/ui/vnc-preferences.ui:95 msgid "High quality" msgstr "Hoge kwaliteit" -#: src/ui/vnc-preferences.ui:90 +#: src/ui/vnc-preferences.ui:96 msgid "Fast refresh" msgstr "Snel verversen" -#: src/ui/vnc-preferences.ui:101 +#: src/ui/vnc-preferences.ui:107 msgid "Scale mode" msgstr "Schaalmodus" -#: src/ui/vnc-preferences.ui:108 +#: src/ui/vnc-preferences.ui:114 msgid "Fit window" msgstr "Aanpassen aan venster" -#: src/ui/vnc-preferences.ui:109 +#: src/ui/vnc-preferences.ui:115 msgid "Original size" msgstr "Oorspronkelijke grootte" -#: src/vnc-connection.vala:123 +#: src/ui/window.ui:53 +msgid "Just hit the <b>+</b> button to make your first connection." +msgstr "Klik gewoon op de <b>+</b>-knop om uw eerste verbinding te maken." + +#: src/vnc-connection.vala:148 msgid "Couldn???t parse the file" msgstr "Kon bestand niet verwerken" #. Translators: %s is a VNC file key -#: src/vnc-connection.vala:131 src/vnc-connection.vala:136 -#: src/vnc-connection.vala:141 src/vnc-connection.vala:146 +#: src/vnc-connection.vala:156 src/vnc-connection.vala:161 +#: src/vnc-connection.vala:166 src/vnc-connection.vala:171 #, c-format msgid "VNC File is missing key ???%s???" msgstr "Sleutel ???%s??? ontbreekt in VNC-bestand" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-connections-42.0/po/vi.po new/gnome-connections-42.1.1/po/vi.po --- old/gnome-connections-42.0/po/vi.po 2022-03-21 12:29:53.000000000 +0100 +++ new/gnome-connections-42.1.1/po/vi.po 2022-04-07 14:05:12.000000000 +0200 @@ -1,26 +1,26 @@ # Vietnamese translation for connections. # Copyright (C) 2021 connections's COPYRIGHT HOLDER # This file is distributed under the same license as the connections package. -# Ng???c Qu??n Tr???n <vnwild...@gmail.com>, 2021. +# Ng???c Qu??n Tr???n <vnwild...@gmail.com>, 2021-2022. # msgid "" msgstr "" "Project-Id-Version: connections master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/connections/issues\n" -"POT-Creation-Date: 2021-09-22 15:32+0000\n" -"PO-Revision-Date: 2021-09-23 13:53+0700\n" +"POT-Creation-Date: 2022-03-25 13:05+0000\n" +"PO-Revision-Date: 2022-04-02 14:44+0700\n" +"Last-Translator: Tr???n Ng???c Qu??n <vnwild...@gmail.com>\n" "Language-Team: Vietnamese <gnome-vi-l...@gnome.org>\n" "Language: vi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"Last-Translator: Tr???n Ng???c Qu??n <vnwild...@gmail.com>\n" "X-Generator: Gtranslator 3.38.0\n" #: data/org.gnome.Connections.appdata.xml.in:7 #: data/org.gnome.Connections.desktop.in:3 src/application.vala:92 -#: src/ui/topbar.ui:9 src/window.vala:108 +#: src/ui/topbar.ui:9 src/ui/window.ui:5 src/window.vala:106 msgid "Connections" msgstr "K???t n???i" @@ -35,18 +35,18 @@ "system. It can also be used as a way to provide support to users who might " "need help." msgstr "" -"K???t n???i cho ph??p b???n k???t n???i v?? s??? d???ng c??c m??y t??nh ????? b??n kh??c. ????y c?? " -"th??? l?? m???t c??ch tuy???t v???i ????? truy c???p n???i dung ho???c ph???n m???m tr??n m???t h??? " -"??i???u h??nh m??y t??nh ????? b??n kh??c. N?? c??ng c?? th??? ???????c s??? d???ng nh?? m???t c??ch ????? " -"cung c???p h??? tr??? cho nh???ng ng?????i d??ng c?? th??? c???n gi??p ?????." +"K???t n???i cho ph??p b???n k???t n???i v?? s??? d???ng c??c m??y t??nh ????? b??n kh??c. ????y c?? th??? " +"l?? m???t c??ch tuy???t v???i ????? truy c???p n???i dung ho???c ph???n m???m tr??n m???t h??? ??i???u " +"h??nh m??y t??nh ????? b??n kh??c. N?? c??ng c?? th??? ???????c s??? d???ng nh?? m???t c??ch ????? cung " +"c???p h??? tr??? cho nh???ng ng?????i d??ng c?? th??? c???n gi??p ?????." #: data/org.gnome.Connections.appdata.xml.in:13 msgid "" "A range of different operating systems can be connected to, including Linux " "and Windows desktops. You can also connect to virtual machines." msgstr "" -"M???t lo???t c??c h??? ??i???u h??nh kh??c nhau c?? th??? ???????c k???t n???i, bao g???m c??? m??y " -"t??nh ????? b??n Linux v?? Windows. B???n c??ng c?? th??? k???t n???i v???i c??c m??y ???o." +"M???t lo???t c??c h??? ??i???u h??nh kh??c nhau c?? th??? ???????c k???t n???i, bao g???m c??? m??y t??nh " +"????? b??n Linux v?? Windows. B???n c??ng c?? th??? k???t n???i v???i c??c m??y ???o." #: data/org.gnome.Connections.appdata.xml.in:16 msgid "" @@ -56,7 +56,7 @@ "K???t n???i s??? d???ng c??c giao th???c VNC v?? RDP ???????c h??? tr??? r???ng r??i v?? m???t trong " "s??? n??y ph???i ???????c b???t tr??n m??y t??nh ????? b??n m?? b???n mu???n k???t n???i." -#: data/org.gnome.Connections.appdata.xml.in:34 +#: data/org.gnome.Connections.appdata.xml.in:43 msgid "The GNOME Project" msgstr "D??? ??n GNOME" @@ -80,65 +80,65 @@ msgid "translator-credits" msgstr "Nh??m Vi???t h??a Gnome <gnome-vi-l...@gnome.org>" -#: src/application.vala:89 src/application.vala:239 +#: src/application.vala:89 src/application.vala:242 msgid "A remote desktop client for the GNOME desktop environment" msgstr "" "M???t ch????ng tr??nh ??i???u khi???n m??n h??nh t??? xa cho m??i tr?????ng m??y t??nh ????? b??n " "GNOME" -#: src/application.vala:150 +#: src/application.vala:151 #, c-format msgid "Couldn???t open file of unknown mime type %s" msgstr "Kh??ng th??? m??? t???p tin c???a ki???u mime ch??a bi???t %s" -#: src/application.vala:179 +#: src/application.vala:182 #, c-format msgid "Connection to ???%s??? has been deleted" msgstr "K???t n???i ?????n ???%s??? ???? b??? x??a b???" -#: src/application.vala:182 +#: src/application.vala:185 msgid "Undo" msgstr "H???i l???i" -#: src/application.vala:229 +#: src/application.vala:232 msgid "URL to connect" msgstr "URL ????? k???t n???i" -#: src/application.vala:230 +#: src/application.vala:233 msgid "Open .vnc or .rdp file at the given PATH" msgstr "M??? t???p tin .vnc ho???c .rdp ??? /???????NG/D???N/ ???? cho" -#: src/application.vala:231 +#: src/application.vala:234 msgid "Open in full screen" msgstr "M??? to??n m??n h??nh" -#: src/application.vala:254 +#: src/application.vala:257 msgid "Too many command-line arguments specified.\n" msgstr "" "Qu?? nhi???u ?????i s??? d??ng l???nh ???????c ????a ra.\n" "\n" #. Translators: %s => the timestamp of when the screenshot was taken. -#: src/connection.vala:64 +#: src/connection.vala:70 #, c-format msgid "Screenshot from %s" msgstr "H??nh ch???p v??o %s" -#: src/connection.vala:79 +#: src/connection.vala:85 msgid "Screenshot taken" msgstr "Ch???p m??n h??nh" #. Translators: Open is a verb -#: src/connection.vala:82 +#: src/connection.vala:88 msgid "Open" msgstr "M???" -#: src/connection.vala:127 +#: src/connection.vala:161 #, c-format msgid "???%s??? requires authentication" msgstr "???%s??? c???n x??c th???c" -#: src/connection.vala:146 +#: src/connection.vala:200 #, c-format msgid "Authentication failed: %s" msgstr "G???p l???i khi x??c th???c: %s" @@ -149,11 +149,11 @@ msgid "%d??%d" msgstr "%d??%d" -#: src/onboarding-dialog.vala:88 src/ui/onboarding-dialog.ui:147 +#: src/onboarding-dialog.vala:86 src/ui/onboarding-dialog.ui:147 msgid "No Thanks" msgstr "Kh??ng, c???m ??n" -#: src/onboarding-dialog.vala:88 +#: src/onboarding-dialog.vala:86 msgid "Close" msgstr "????ng" @@ -177,15 +177,15 @@ msgid "RDP (standard for connecting to Windows)" msgstr "RDP (ti??u chu???n ????? k???t n???i ?????n Windows)" -#: src/ui/assistant.ui:71 +#: src/ui/assistant.ui:72 msgid "VNC (standard for connecting to Linux)" msgstr "VNC (ti??u chu???n ????? k???t n???i ?????n Linux)" -#: src/ui/assistant.ui:88 src/ui/topbar.ui:201 +#: src/ui/assistant.ui:90 src/ui/topbar.ui:201 msgid "Help" msgstr "Xem tr??? gi??p" -#: src/ui/assistant.ui:98 +#: src/ui/assistant.ui:100 msgid "Connect" msgstr "K???t n???i" @@ -201,14 +201,10 @@ msgid "Sign In" msgstr "????ng nh???p" -#: src/ui/empty-view.ui:28 src/ui/onboarding-dialog.ui:41 +#: src/ui/onboarding-dialog.ui:41 src/ui/window.ui:52 msgid "Welcome to Connections" msgstr "Ch??o m???ng b???n d??ng \"K???t n???i\"" -#: src/ui/empty-view.ui:41 -msgid "Just hit the <b>+</b> button to make your first connection." -msgstr "Ch??? c???n b???m v??o n??t <b>+</b> ????? t???o k???t n???i ?????u ti??n." - #: src/ui/onboarding-dialog.ui:42 msgid "Learn about how Connections works." msgstr "T??m hi???u v??? c??ch ho???t ?????ng c???a \"K???t n???i\"." @@ -258,11 +254,11 @@ msgid "Connection preferences" msgstr "T??y th??ch k???t n???i" -#: src/ui/rdp-preferences.ui:23 src/ui/vnc-preferences.ui:23 +#: src/ui/rdp-preferences.ui:22 src/ui/vnc-preferences.ui:22 msgid "Address" msgstr "?????a ch???" -#: src/ui/rdp-preferences.ui:38 src/ui/vnc-preferences.ui:38 +#: src/ui/rdp-preferences.ui:37 src/ui/vnc-preferences.ui:37 msgid "Name" msgstr "T??n" @@ -326,53 +322,61 @@ msgid "Ctrl + Alt + F7" msgstr "Ctrl + Alt + F7" -#: src/ui/vnc-preferences.ui:55 +#: src/ui/vnc-preferences.ui:54 msgid "Display" msgstr "Hi???n th???" -#: src/ui/vnc-preferences.ui:60 +#: src/ui/vnc-preferences.ui:59 msgid "Scaling" msgstr "T??? l???" -#: src/ui/vnc-preferences.ui:67 +#: src/ui/vnc-preferences.ui:66 msgid "View only" msgstr "Ch??? xem" -#: src/ui/vnc-preferences.ui:74 +#: src/ui/vnc-preferences.ui:73 msgid "Show local pointer" msgstr "Hi???n th??? con tr??? c???c b???" -#: src/ui/vnc-preferences.ui:82 +#: src/ui/vnc-preferences.ui:80 +msgid "Enable audio" +msgstr "B???t ??m thanh" + +#: src/ui/vnc-preferences.ui:88 msgid "Bandwidth" msgstr "B??ng th??ng" -#: src/ui/vnc-preferences.ui:89 +#: src/ui/vnc-preferences.ui:95 msgid "High quality" msgstr "Ch???t l?????ng cao" -#: src/ui/vnc-preferences.ui:90 +#: src/ui/vnc-preferences.ui:96 msgid "Fast refresh" msgstr "L??m m???i nhanh" -#: src/ui/vnc-preferences.ui:101 +#: src/ui/vnc-preferences.ui:107 msgid "Scale mode" msgstr "Ch??? ????? co gi??n" -#: src/ui/vnc-preferences.ui:108 +#: src/ui/vnc-preferences.ui:114 msgid "Fit window" msgstr "V???a kh??t c???a s???" -#: src/ui/vnc-preferences.ui:109 +#: src/ui/vnc-preferences.ui:115 msgid "Original size" msgstr "K??ch c??? g???c" -#: src/vnc-connection.vala:123 +#: src/ui/window.ui:53 +msgid "Just hit the <b>+</b> button to make your first connection." +msgstr "Ch??? c???n b???m v??o n??t <b>+</b> ????? t???o k???t n???i ?????u ti??n." + +#: src/vnc-connection.vala:148 msgid "Couldn???t parse the file" msgstr "Kh??ng th??? ph??n t??ch c?? ph??p t???p tin" #. Translators: %s is a VNC file key -#: src/vnc-connection.vala:131 src/vnc-connection.vala:136 -#: src/vnc-connection.vala:141 src/vnc-connection.vala:146 +#: src/vnc-connection.vala:156 src/vnc-connection.vala:161 +#: src/vnc-connection.vala:166 src/vnc-connection.vala:171 #, c-format msgid "VNC File is missing key ???%s???" msgstr "T???p tin VNC thi???u kh??a ???%s???" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-connections-42.0/src/notifications.vala new/gnome-connections-42.1.1/src/notifications.vala --- old/gnome-connections-42.0/src/notifications.vala 2022-03-21 12:29:53.000000000 +0100 +++ new/gnome-connections-42.1.1/src/notifications.vala 2022-04-07 14:05:12.000000000 +0200 @@ -31,14 +31,12 @@ } set { - var child = get_child (); - if (child != null) - remove (child); - - if (value != null) - add (value); + if (_active_notification != null) { + remove (_active_notification); + } _active_notification = value; + add (_active_notification); } } @@ -125,7 +123,7 @@ notification_timeout_id = Timeout.add_seconds (timeout, () => { notification_timeout_id = 0; - dismissed (); + dismiss (); return Source.REMOVE; }); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-connections-42.0/src/rdp-connection.vala new/gnome-connections-42.1.1/src/rdp-connection.vala --- old/gnome-connections-42.0/src/rdp-connection.vala 2022-03-21 12:29:53.000000000 +0100 +++ new/gnome-connections-42.1.1/src/rdp-connection.vala 2022-04-07 14:05:12.000000000 +0200 @@ -51,11 +51,14 @@ public override bool scaling { set { - //display.set_scaling (value); + display.set_scaling (value); } get { - return true; + if (!connected) + return true; + + return display.scaling; } } @@ -63,10 +66,11 @@ construct { display = new FrdpDisplay (); + display.hexpand = display.vexpand = true; display.bind_property ("username", this, "username", BindingFlags.BIDIRECTIONAL); display.bind_property ("password", this, "password", BindingFlags.BIDIRECTIONAL); - display.rdp_error.connect (on_connection_error_cb); + display.rdp_error.connect (on_rdp_connection_error_cb); display.rdp_connected.connect (() => { show (); }); //display.rdp_needs_authentication.connect (on_rdp_auth_credential_cb); display.rdp_auth_failure.connect (auth_failed); @@ -105,6 +109,9 @@ display.open_host (host, port); connected = true; + scaling = true; + + display.grab_focus (); } public override void disconnect_it () { @@ -124,6 +131,15 @@ handle_auth (); } + + private void on_rdp_connection_error_cb (string reason) { + disconnect_it (); + + delete_auth_credentials.begin (); + username = password = null; + + on_connection_error_cb (reason); + } } private class FrdpDisplay : Frdp.Display { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-connections-42.0/src/rdp-preferences-window.vala new/gnome-connections-42.1.1/src/rdp-preferences-window.vala --- old/gnome-connections-42.0/src/rdp-preferences-window.vala 2022-03-21 12:29:53.000000000 +0100 +++ new/gnome-connections-42.1.1/src/rdp-preferences-window.vala 2022-04-07 14:05:12.000000000 +0200 @@ -26,12 +26,15 @@ private unowned Gtk.Entry connection_name_entry; [GtkChild] private unowned Gtk.Label host_address_label; + [GtkChild] + private unowned BooleanProperty scaling; public RdpPreferencesWindow (Connection connection) { this.connection = connection; bind_widget_property (connection_name_entry, "text", "display_name"); bind_widget_property (host_address_label, "label", "uri"); + bind_widget_property (scaling, "active", "scaling"); } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-connections-42.0/src/ui/display-view.ui new/gnome-connections-42.1.1/src/ui/display-view.ui --- old/gnome-connections-42.0/src/ui/display-view.ui 2022-03-21 12:29:53.000000000 +0100 +++ new/gnome-connections-42.1.1/src/ui/display-view.ui 2022-04-07 14:05:12.000000000 +0200 @@ -63,12 +63,12 @@ <child> <object class="GtkScrolledWindow"> <property name="visible">True</property> + <property name="min-content-width">980</property> + <property name="min-content-height">640</property> <child> <object class="GtkEventBox" id="event_box"> <property name="visible">True</property> <property name="above-child">True</property> - <property name="hexpand">True</property> - <property name="vexpand">True</property> <signal name="event" handler="on_event_box_event"/> </object> </child> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-connections-42.0/src/ui/rdp-preferences.ui new/gnome-connections-42.1.1/src/ui/rdp-preferences.ui --- old/gnome-connections-42.0/src/ui/rdp-preferences.ui 2022-03-21 12:29:53.000000000 +0100 +++ new/gnome-connections-42.1.1/src/ui/rdp-preferences.ui 2022-04-07 14:05:12.000000000 +0200 @@ -44,6 +44,13 @@ </child> </object> </child> + + <child> + <object class="ConnectionsBooleanProperty" id="scaling"> + <property name="visible">True</property> + <property name="title" translatable="yes">Scaling</property> + </object> + </child> </object> </child> </object> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-connections-42.0/src/ui/window.ui new/gnome-connections-42.1.1/src/ui/window.ui --- old/gnome-connections-42.0/src/ui/window.ui 2022-03-21 12:29:53.000000000 +0100 +++ new/gnome-connections-42.1.1/src/ui/window.ui 2022-04-07 14:05:12.000000000 +0200 @@ -1,23 +1,23 @@ <?xml version="1.0" encoding="UTF-8"?> <interface> <requires lib="gtk+" version="3.20"/> - <template class="ConnectionsWindow" parent="HdyApplicationWindow"> + <template class="ConnectionsWindow" parent="GtkApplicationWindow"> <property name="title" translatable="yes">Connections</property> - <property name="default-width">980</property> - <property name="default-height">640</property> + <property name="resizable">True</property> <signal name="key-press-event" after="yes" handler="on_key_pressed"/> <signal name="delete-event" handler="on_delete_event"/> + <child type="titlebar"> + <object class="ConnectionsTopbar" id="topbar"> + <property name="visible">True</property> + </object> + </child> + <child> <object class="GtkBox"> <property name="visible">True</property> <property name="orientation">vertical</property> - <child> - <object class="ConnectionsTopbar" id="topbar"> - <property name="visible">True</property> - </object> - </child> <child> <object class="GtkSearchBar" id="search_bar"> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-connections-42.0/src/window.vala new/gnome-connections-42.1.1/src/window.vala --- old/gnome-connections-42.0/src/window.vala 2022-03-21 12:29:53.000000000 +0100 +++ new/gnome-connections-42.1.1/src/window.vala 2022-04-07 14:05:12.000000000 +0200 @@ -21,7 +21,7 @@ namespace Connections { [GtkTemplate (ui = "/org/gnome/Connections/ui/window.ui")] - private class Window : Hdy.ApplicationWindow { + private class Window : Gtk.ApplicationWindow { [GtkChild] private unowned Topbar topbar; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-connections-42.0/subprojects/gtk-frdp/src/frdp-display.c new/gnome-connections-42.1.1/subprojects/gtk-frdp/src/frdp-display.c --- old/gnome-connections-42.0/subprojects/gtk-frdp/src/frdp-display.c 2021-10-28 22:05:44.000000000 +0200 +++ new/gnome-connections-42.1.1/subprojects/gtk-frdp/src/frdp-display.c 2022-04-07 12:43:38.000000000 +0200 @@ -516,9 +516,6 @@ gtk_widget_set_halign (GTK_WIDGET (display), GTK_ALIGN_FILL); gtk_widget_set_valign (GTK_WIDGET (display), GTK_ALIGN_FILL); - } else { - gtk_widget_set_halign (GTK_WIDGET (display), GTK_ALIGN_CENTER); - gtk_widget_set_valign (GTK_WIDGET (display), GTK_ALIGN_CENTER); } gtk_widget_queue_draw_area (GTK_WIDGET (display), 0, 0, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-connections-42.0/subprojects/gtk-frdp/src/frdp-session.c new/gnome-connections-42.1.1/subprojects/gtk-frdp/src/frdp-session.c --- old/gnome-connections-42.0/subprojects/gtk-frdp/src/frdp-session.c 2021-10-28 22:05:44.000000000 +0200 +++ new/gnome-connections-42.1.1/subprojects/gtk-frdp/src/frdp-session.c 2022-04-07 12:43:38.000000000 +0200 @@ -42,8 +42,10 @@ GtkWidget *display; cairo_surface_t *surface; + cairo_format_t cairo_format; gboolean scaling; - double scale; + double scale_x; + double scale_y; double offset_x; double offset_y; @@ -125,23 +127,22 @@ cursor = gdk_cursor_new_from_name (display, "default"); else { rdpPointer *pointer = &priv->cursor->pointer; - double scale = self->priv->scale; - double x = priv->cursor->pointer.xPos * scale; - double y = priv->cursor->pointer.yPos * scale; - double w = pointer->width * scale; - double h = pointer->height * scale; + double x = priv->cursor->pointer.xPos * priv->scale_x; + double y = priv->cursor->pointer.yPos * priv->scale_y; + double w = pointer->width * priv->scale_x; + double h = pointer->height * priv->scale_y; cairo_surface_t *surface; cairo_t *cairo; if (!self->priv->scaling) { - scale = 1.0; + self->priv->scale_x = self->priv->scale_y = 1.0; } /* Scale the source image according to current settings. */ surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, w, h); cairo = cairo_create (surface); - cairo_scale(cairo, scale, scale); + cairo_scale(cairo, self->priv->scale_x, self->priv->scale_y); cairo_set_source_surface (cairo, priv->cursor->data, 0, 0); cairo_paint (cairo); @@ -154,133 +155,6 @@ gdk_window_set_cursor (window, cursor); } -static BOOL -frdp_Pointer_New(rdpContext* context, rdpPointer* pointer) -{ - frdpContext *fcontext = (frdpContext*) context; - frdpPointer *fpointer = (frdpPointer*) pointer; - int stride; - unsigned char *data; - cairo_surface_t *surface; - - if (!fcontext || !fpointer) - return FALSE; - - surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, pointer->width, - pointer->height); - if (!surface) { - return FALSE; - } - - { /* FreeRDP BUG https://github.com/FreeRDP/FreeRDP/issues/5061 - * the function freerdp_image_copy_from_pointer_data - * does not initialize the buffer which results in broken alpha data. */ - cairo_t* cairo = cairo_create (surface); - - cairo_set_source_rgba (cairo, 0.0, 0.0, 0.0, 1.0); - cairo_fill (cairo); - cairo_paint (cairo); - cairo_destroy (cairo); - } - - data = cairo_image_surface_get_data (surface); - if (!data) { - goto fail; - } - - stride = cairo_format_stride_for_width (CAIRO_FORMAT_ARGB32, pointer->width); - if (!freerdp_image_copy_from_pointer_data (data, PIXEL_FORMAT_BGRA32, - stride, 0, 0, pointer->width, - pointer->height, - pointer->xorMaskData, - pointer->lengthXorMask, - pointer->andMaskData, - pointer->lengthAndMask, - pointer->xorBpp, - &context->gdi->palette)) - goto fail; - - fpointer->data = surface; - return TRUE; -fail: - if (surface) - cairo_surface_destroy (surface); - return FALSE; -} - -static void -frdp_Pointer_Free (rdpContext* context, rdpPointer* pointer) -{ - frdpPointer *fpointer = (frdpPointer*) pointer; - - if (fpointer && fpointer->data) { - cairo_surface_destroy (fpointer->data); - fpointer->data = NULL; - } -} - -static BOOL -frdp_Pointer_Set (rdpContext* context, - const rdpPointer* pointer) -{ - frdpContext *fcontext = (frdpContext*) context; - frdpPointer *fpointer = (frdpPointer*) pointer; - FrdpSessionPrivate *priv = fcontext->self->priv; - - priv->cursor = fpointer; - priv->cursor_null = FALSE; - - frdp_session_update_mouse_pointer (fcontext->self); - return TRUE; -} - -static BOOL -frdp_Pointer_SetNull (rdpContext* context) -{ - frdpContext *fcontext = (frdpContext*) context; - FrdpSessionPrivate *priv = fcontext->self->priv; - - priv->cursor = NULL; - priv->cursor_null = TRUE; - - frdp_session_update_mouse_pointer (fcontext->self); - - return TRUE; -} - -static BOOL -frdp_Pointer_SetDefault (rdpContext* context) -{ - frdpContext *fcontext = (frdpContext*) context; - FrdpSessionPrivate *priv = fcontext->self->priv; - - priv->cursor = NULL; - priv->cursor_null = FALSE; - frdp_session_update_mouse_pointer (fcontext->self); - return TRUE; -} - -static BOOL -frdp_Pointer_SetPosition (rdpContext* context, UINT32 x, UINT32 y) -{ - return TRUE; -} - -static void -frdp_register_pointer (rdpGraphics* graphics) -{ - rdpPointer pointer; - - pointer.size = sizeof(frdpPointer); - pointer.New = frdp_Pointer_New; - pointer.Free = frdp_Pointer_Free; - pointer.Set = frdp_Pointer_Set; - pointer.SetNull = frdp_Pointer_SetNull; - pointer.SetDefault = frdp_Pointer_SetDefault; - pointer.SetPosition = frdp_Pointer_SetPosition; - graphics_register_pointer(graphics, &pointer); -} - static guint32 frdp_session_get_best_color_depth (FrdpSession *self) { @@ -294,30 +168,75 @@ } static void +create_cairo_surface (FrdpSession *self) +{ + FrdpSessionPrivate *priv = self->priv; + rdpSettings *settings; + rdpGdi *gdi; + gint stride; + + if (priv->surface != NULL) { + cairo_surface_mark_dirty (priv->surface); + cairo_surface_destroy (priv->surface); + self->priv->surface = NULL; + } + + gdi = priv->freerdp_session->context->gdi; + settings = priv->freerdp_session->context->settings; + gdi_resize (gdi, settings->DesktopWidth, settings->DesktopHeight); + + gtk_widget_set_size_request (priv->display, + settings->DesktopWidth, + settings->DesktopHeight); + stride = cairo_format_stride_for_width (priv->cairo_format, gdi->width); + self->priv->surface = + cairo_image_surface_create_for_data ((unsigned char*) gdi->primary_buffer, + priv->cairo_format, + gdi->width, + gdi->height, + stride); + cairo_surface_flush (priv->surface); +} + +static void frdp_session_configure_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { FrdpSession *self = (FrdpSession*) user_data; - rdpSettings *settings = self->priv->freerdp_session->settings; + FrdpSessionPrivate *priv = self->priv; + GtkScrolledWindow *scrolled; + rdpSettings *settings; + rdpGdi *gdi; double width, height; - if (self->priv->scaling) { - width = (double)gtk_widget_get_allocated_width (widget); - height = (double)gtk_widget_get_allocated_height (widget); + if (priv->freerdp_session == NULL) + return; - if (width < height) - self->priv->scale = width / settings->DesktopWidth; - else - self->priv->scale = height / settings->DesktopHeight; + gdi = priv->freerdp_session->context->gdi; + if (priv->surface == NULL) { + create_cairo_surface (self); + } - settings->DesktopScaleFactor = self->priv->scale; + scrolled = gtk_widget_get_ancestor (widget, GTK_TYPE_SCROLLED_WINDOW); + width = (double)gtk_widget_get_allocated_width (scrolled); + height = (double)gtk_widget_get_allocated_height (scrolled); - self->priv->offset_x = (width - settings->DesktopWidth * self->priv->scale) / 2.0; - self->priv->offset_y = (height - settings->DesktopHeight * self->priv->scale) / 2.0; - } + if (priv->freerdp_session->settings == NULL) + return; + settings = priv->freerdp_session->settings; + + if (priv->scaling) { + priv->scale_x = width / settings->DesktopWidth; + priv->scale_y = height / settings->DesktopHeight; + + priv->offset_x = (width - settings->DesktopWidth * priv->scale_x) / 2.0; + priv->offset_y = (height - settings->DesktopHeight * priv->scale_y) / 2.0; - frdp_session_update_mouse_pointer (self); + gtk_widget_set_size_request (priv->display, settings->DesktopWidth, settings->DesktopHeight); + } else { + gtk_widget_set_size_request (priv->display, gdi->width, gdi->height); + } } static void @@ -325,8 +244,6 @@ gboolean scaling) { self->priv->scaling = scaling; - - frdp_session_configure_event (self->priv->display, NULL, self); } static gboolean @@ -336,13 +253,22 @@ { FrdpSession *self = (FrdpSession*) user_data; + // Nothing to draw if disconnected + if (!self->priv->is_connected) + return FALSE; + + create_cairo_surface (self); + if (self->priv->scaling) { cairo_translate (cr, self->priv->offset_x, self->priv->offset_y); - cairo_scale (cr, self->priv->scale, self->priv->scale); + cairo_scale (cr, self->priv->scale_x, self->priv->scale_y); } + cairo_set_source_surface (cr, self->priv->surface, 0, 0); cairo_paint (cr); + frdp_display_set_scaling (self->priv->display, self->priv->scaling); + return TRUE; } @@ -389,6 +315,13 @@ static gboolean frdp_pre_connect (freerdp *freerdp_session) { + rdpSettings *settings; + + settings = freerdp_session->context->settings; + + settings->RemoteFxCodec = TRUE; + settings->ColorDepth = 32; + return TRUE; } @@ -423,13 +356,13 @@ priv = self->priv; if (priv->scaling) { - pos_x = self->priv->offset_x + x * priv->scale; - pos_y = self->priv->offset_y + y * priv->scale; + pos_x = self->priv->offset_x + x * priv->scale_x; + pos_y = self->priv->offset_y + y * priv->scale_y; gtk_widget_queue_draw_area (priv->display, floor (pos_x), floor (pos_y), - ceil (pos_x + w * priv->scale) - floor (pos_x), - ceil (pos_y + h * priv->scale) - floor (pos_y)); + ceil (pos_x + w * priv->scale_x) - floor (pos_x), + ceil (pos_y + h * priv->scale_y) - floor (pos_y)); } else { gtk_widget_queue_draw_area (priv->display, x, y, w, h); } @@ -441,53 +374,33 @@ frdp_post_connect (freerdp *freerdp_session) { FrdpSession *self = ((frdpContext *) freerdp_session->context)->self; - cairo_format_t cairo_format; - rdpGdi *gdi; guint32 color_format; - gint stride; switch (frdp_session_get_best_color_depth (self)) { case 32: color_format = PIXEL_FORMAT_BGRA32; - cairo_format = CAIRO_FORMAT_ARGB32; + self->priv->cairo_format = CAIRO_FORMAT_ARGB32; break; case 24: color_format = PIXEL_FORMAT_BGRX32; - cairo_format = CAIRO_FORMAT_RGB24; + self->priv->cairo_format = CAIRO_FORMAT_RGB24; break; case 16: case 15: color_format = PIXEL_FORMAT_BGR16; - cairo_format = CAIRO_FORMAT_RGB16_565; + self->priv->cairo_format = CAIRO_FORMAT_RGB16_565; break; default: color_format = PIXEL_FORMAT_BGRX32; - cairo_format = CAIRO_FORMAT_RGB16_565; + self->priv->cairo_format = CAIRO_FORMAT_RGB16_565; break; } gdi_init (freerdp_session, color_format); - gdi = freerdp_session->context->gdi; - frdp_register_pointer (freerdp_session->context->graphics); - pointer_cache_register_callbacks(freerdp_session->context->update); freerdp_session->update->BeginPaint = frdp_begin_paint; freerdp_session->update->EndPaint = frdp_end_paint; - stride = cairo_format_stride_for_width (cairo_format, gdi->width); - self->priv->surface = - cairo_image_surface_create_for_data ((unsigned char*) gdi->primary_buffer, - cairo_format, - gdi->width, - gdi->height, - stride); - - gtk_widget_queue_draw_area (self->priv->display, - 0, - 0, - gdi->width, - gdi->height); - return TRUE; } @@ -505,14 +418,9 @@ if (self->priv->freerdp_session != NULL) { freerdp_disconnect (self->priv->freerdp_session); - freerdp_context_free (self->priv->freerdp_session); g_clear_pointer (&self->priv->freerdp_session, freerdp_free); } - g_clear_pointer (&self->priv->hostname, g_free); - g_clear_pointer (&self->priv->username, g_free); - g_clear_pointer (&self->priv->password, g_free); - g_signal_emit (self, signals[RDP_DISCONNECTED], 0); g_debug ("RDP client disconnected"); @@ -544,8 +452,11 @@ return FALSE; if (!freerdp_check_event_handles (priv->freerdp_session->context)) { + if (freerdp_get_last_error(priv->freerdp_session->context) == FREERDP_ERROR_SUCCESS) { g_warning ("Failed to check FreeRDP file descriptor"); - return FALSE; + } + + return TRUE; } if (freerdp_shall_disconnect (priv->freerdp_session)) { @@ -595,6 +506,11 @@ settings->UseRdpSecurityLayer = FALSE; settings->NegotiateSecurityLayer = TRUE; + + settings->DesktopResize = TRUE; + settings->DynamicResolutionUpdate = TRUE; + settings->SupportDisplayControl = TRUE; + settings->RedirectClipboard = FALSE; } static void @@ -624,6 +540,7 @@ case FREERDP_ERROR_CONNECT_TRANSPORT_FAILED: case ERRCONNECT_CONNECT_TRANSPORT_FAILED: case FREERDP_ERROR_TLS_CONNECT_FAILED: + case FREERDP_ERROR_DNS_NAME_NOT_FOUND: g_signal_emit (self, signals[RDP_AUTH_FAILURE], 0, freerdp_get_last_error_string (error_code)); @@ -648,11 +565,12 @@ return; } + gtk_widget_realize (self->priv->display); + create_cairo_surface (self); g_signal_connect (self->priv->display, "draw", G_CALLBACK (frdp_session_draw), self); g_signal_connect (self->priv->display, "configure-event", G_CALLBACK (frdp_session_configure_event), self); - frdp_session_set_scaling (self, TRUE); self->priv->update_id = g_idle_add ((GSourceFunc) update, self); @@ -932,8 +850,8 @@ input = priv->freerdp_session->input; if (priv->scaling) { - x = (x - priv->offset_x) / priv->scale; - y = (y - priv->offset_y) / priv->scale; + x = (x - priv->offset_x) / priv->scale_x; + y = (y - priv->offset_y) / priv->scale_y; } x = x < 0.0 ? 0.0 : x;