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;

Reply via email to