Merge branch 'vncserver' of https://github.com/CendioOssman/tigervnc
diff --git a/common/rfb/CSecurityTLS.cxx b/common/rfb/CSecurityTLS.cxx
index e1a31f7..000331c 100644
--- a/common/rfb/CSecurityTLS.cxx
+++ b/common/rfb/CSecurityTLS.cxx
@@ -196,6 +196,9 @@
throw AuthFailureException("TLS Handshake failed");
}
+ vlog.debug("TLS handshake completed with %s",
+ gnutls_session_get_desc(session));
+
checkSession();
cc->setStreams(tlsis, tlsos);
diff --git a/common/rfb/SSecurityTLS.cxx b/common/rfb/SSecurityTLS.cxx
index 49532f5..d5ef47e 100644
--- a/common/rfb/SSecurityTLS.cxx
+++ b/common/rfb/SSecurityTLS.cxx
@@ -163,7 +163,8 @@
throw AuthFailureException("TLS Handshake failed");
}
- vlog.debug("Handshake completed");
+ vlog.debug("TLS handshake completed with %s",
+ gnutls_session_get_desc(session));
sc->setStreams(tlsis, tlsos);
diff --git a/common/rfb/util.h b/common/rfb/util.h
index b678b89..9e59bd3 100644
--- a/common/rfb/util.h
+++ b/common/rfb/util.h
@@ -50,7 +50,7 @@
CharArray() : buf(0) {}
CharArray(char* str) : buf(str) {} // note: assumes ownership
CharArray(int len) {
- buf = new char[len];
+ buf = new char[len]();
}
~CharArray() {
delete [] buf;
diff --git a/contrib/packages/deb/ubuntu-precise/debian/copyright b/contrib/packages/deb/ubuntu-precise/debian/copyright
index 003dcc4..290fbdf 100644
--- a/contrib/packages/deb/ubuntu-precise/debian/copyright
+++ b/contrib/packages/deb/ubuntu-precise/debian/copyright
@@ -2,7 +2,7 @@
on Tue, 02 Jul 2013 21:33:24 +0500 using the tightvnc package as a base.
It was downloaded from:
- http://www.tigervnc.org/
+ https://www.tigervnc.org/
COPYRIGHT:
==========
diff --git a/contrib/packages/deb/ubuntu-trusty/debian/copyright b/contrib/packages/deb/ubuntu-trusty/debian/copyright
index 003dcc4..290fbdf 100644
--- a/contrib/packages/deb/ubuntu-trusty/debian/copyright
+++ b/contrib/packages/deb/ubuntu-trusty/debian/copyright
@@ -2,7 +2,7 @@
on Tue, 02 Jul 2013 21:33:24 +0500 using the tightvnc package as a base.
It was downloaded from:
- http://www.tigervnc.org/
+ https://www.tigervnc.org/
COPYRIGHT:
==========
diff --git a/contrib/packages/deb/ubuntu-xenial/debian/copyright b/contrib/packages/deb/ubuntu-xenial/debian/copyright
index 003dcc4..290fbdf 100644
--- a/contrib/packages/deb/ubuntu-xenial/debian/copyright
+++ b/contrib/packages/deb/ubuntu-xenial/debian/copyright
@@ -2,7 +2,7 @@
on Tue, 02 Jul 2013 21:33:24 +0500 using the tightvnc package as a base.
It was downloaded from:
- http://www.tigervnc.org/
+ https://www.tigervnc.org/
COPYRIGHT:
==========
diff --git a/contrib/packages/rpm/el5/SPECS/tigervnc.spec b/contrib/packages/rpm/el5/SPECS/tigervnc.spec
index a6b363c..f83c15a 100644
--- a/contrib/packages/rpm/el5/SPECS/tigervnc.spec
+++ b/contrib/packages/rpm/el5/SPECS/tigervnc.spec
@@ -872,7 +872,7 @@
--prefix=%{_prefix} --libdir=%{_libdir} --mandir=%{_datadir}/man \
--sysconfdir=%{_sysconfdir} --localstatedir=%{_localstatedir} \
--with-vendor-name="The TigerVNC Project" --with-vendor-name-short="TigerVNC" \
- --with-vendor-web="http://www.tigervnc.org" \
+ --with-vendor-web="https://www.tigervnc.org" \
--disable-xorg --disable-xnest --disable-xvfb --disable-dmx \
--disable-xwin --disable-xephyr --disable-kdrive --disable-wayland \
--with-pic --enable-static --disable-shared --enable-xinerama \
diff --git a/doc/keyboard-test.txt b/doc/keyboard-test.txt
index e839177..e5fcbd7 100644
--- a/doc/keyboard-test.txt
+++ b/doc/keyboard-test.txt
@@ -4,9 +4,11 @@
Platform specific tests/issues are marked with [].
These tests are primarily about what is sent over the protocol and some
-may be difficult or impossible to test using normal applications. In
-these cases you can turn on debug logging in either the client or the
-server by specifying "-Log *:stderr:100".
+may be difficult or impossible to test using normal applications. One
+such case is that xev will see fake KeyRelease events on key repeat,
+even when no such events were sent by the client. In these cases you
+can turn on debug logging in either the client or the server by
+specifying "-Log *:stderr:100".
We currently have a limitation in Xvnc where it can run out of symbols,
resulting in nothing being sent to the applications. Just run setxkbmap
@@ -103,7 +105,7 @@
- F1-F24 (FIXME: F14-F15 broken on OS X)
- Tab, Space, Backspace, Return, Esc
- - LeftTab sends Tab [X11?]
+ - LeftTab sends Tab [X11]
- PrntScrn, ScrollLock, Pause [X11, Win]
- Help [X11?, OS X]
- Insert [X11, Win]
@@ -157,6 +159,45 @@
- CapsLock
- NumLock (hidden state on macOS)
- - ScollLock [X11, Win]
+ - ScollLock* [X11, Win]
+
+ * Usually needs to be enabled with: xmodmap -e "add mod3 = Scroll_Lock"
- Virtual keyboard (as much of the above as is possible)
+
+Server
+------
+
+- Fake key events
+
+ An extra press or release should be added before the real key press
+ in order to get the correct state to get the desired symbol. A second
+ fake event should be added after the real key press to restore state.
+ No extra events should be added for a key release.
+
+ Possible fake keys:
+
+ - Shift
+ - AltGr
+
+ - Shift+Tab bypasses this and never fake releases Shift
+
+- Alternative keys
+
+ A semantically equivalent key is sent when the desired key cannot be
+ reached in the current keyboard state:
+
+ - Left modifier <=> Right modifier (e.g. Alt_R for Alt_L)
+ - Keypad key <=> Standard key
+ - ISO_Level3_Shift <=> Mode_Switch
+
+- Meta for Shift+Alt (if server keymap agrees)
+
+- Lock key heuristics (for clients without lock key extension)
+
+ - CapsLock is corrected when A-Z or a-z are pressed
+ - CapsLock is corrected when Shift and A-Z or a-z are pressed*
+ - NumLock is corrected when 0-9 on the keypad are pressed
+
+ * Gives incorrect behaviour if the client doesn't have "Shift cancels
+ CapsLock behaviour", e.g. macOS
diff --git a/java/com/tigervnc/vncviewer/VncViewer.java b/java/com/tigervnc/vncviewer/VncViewer.java
index f96e2ec..2ef6bcf 100644
--- a/java/com/tigervnc/vncviewer/VncViewer.java
+++ b/java/com/tigervnc/vncviewer/VncViewer.java
@@ -66,7 +66,7 @@
new String("TigerVNC Java Viewer v%s (%s)%n"+
"Built on %s at %s%n"+
"Copyright (C) 1999-2018 TigerVNC Team and many others (see README.rst)%n"+
- "See http://www.tigervnc.org for information on TigerVNC.");
+ "See https://www.tigervnc.org for information on TigerVNC.");
public static String version = null;
public static String build = null;
diff --git a/po/da.po b/po/da.po
index 1859f44..1577051 100644
--- a/po/da.po
+++ b/po/da.po
@@ -1,15 +1,15 @@
# Danish translation of tigervnc.
-# Copyright (C) 2017 the TigerVNC Team (msgids)
+# Copyright (C) 2018 the TigerVNC Team (msgids)
# This file is distributed under the same license as the tigervnc package.
-# Joe Hansen <joedalton2@yahoo.dk>, 2015, 2016, 2017.
+# Joe Hansen <joedalton2@yahoo.dk>, 2015, 2016, 2017, 2018.
#
msgid ""
msgstr ""
-"Project-Id-Version: tigervnc 1.7.90\n"
+"Project-Id-Version: tigervnc 1.8.90\n"
"Report-Msgid-Bugs-To: tigervnc-devel@googlegroups.com\n"
-"POT-Creation-Date: 2017-04-19 13:05+0000\n"
-"PO-Revision-Date: 2017-05-22 15:00+0000\n"
-"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
+"POT-Creation-Date: 2018-06-13 14:22+0000\n"
+"PO-Revision-Date: 2018-08-12 13:22+0200\n"
+"Last-Translator: joe Hansen <joedalton2@yahoo.dk>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"Language: da\n"
"MIME-Version: 1.0\n"
@@ -17,133 +17,135 @@
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 1.8.11\n"
-#: vncviewer/CConn.cxx:110
+#: vncviewer/CConn.cxx:116
+#, c-format
+msgid "connected to socket %s"
+msgstr "forbundet til soklen %s"
+
+#: vncviewer/CConn.cxx:123
#, c-format
msgid "connected to host %s port %d"
msgstr "forbundet til værten %s på port %d"
-#: vncviewer/CConn.cxx:169
+#: vncviewer/CConn.cxx:184
#, c-format
msgid "Desktop name: %.80s"
msgstr "Skrivebordsnavn: %.80s"
-#: vncviewer/CConn.cxx:174
+#: vncviewer/CConn.cxx:189
#, c-format
msgid "Host: %.80s port: %d"
msgstr "Vært: %.80s port: %d"
-#: vncviewer/CConn.cxx:179
+#: vncviewer/CConn.cxx:194
#, c-format
msgid "Size: %d x %d"
msgstr "Størrelse: %d x %d"
-#: vncviewer/CConn.cxx:187
+#: vncviewer/CConn.cxx:202
#, c-format
msgid "Pixel format: %s"
msgstr "Billedformat: %s"
-#: vncviewer/CConn.cxx:194
+#: vncviewer/CConn.cxx:209
#, c-format
msgid "(server default %s)"
msgstr "(serverstandard %s)"
-#: vncviewer/CConn.cxx:199
+#: vncviewer/CConn.cxx:214
#, c-format
msgid "Requested encoding: %s"
msgstr "Anmodt kodning: %s"
-#: vncviewer/CConn.cxx:204
+#: vncviewer/CConn.cxx:219
#, c-format
msgid "Last used encoding: %s"
msgstr "Sidst anvendt kodning: %s"
-#: vncviewer/CConn.cxx:209
+#: vncviewer/CConn.cxx:224
#, c-format
msgid "Line speed estimate: %d kbit/s"
msgstr "Linjehastighedsestimat: %d kbit/s"
-#: vncviewer/CConn.cxx:214
+#: vncviewer/CConn.cxx:229
#, c-format
msgid "Protocol version: %d.%d"
msgstr "Protokolversion: %d.%d"
-#: vncviewer/CConn.cxx:219
+#: vncviewer/CConn.cxx:234
#, c-format
msgid "Security method: %s"
msgstr "Sikkerhedsmetode: %s"
-#: vncviewer/CConn.cxx:343
+#: vncviewer/CConn.cxx:358
#, c-format
msgid "SetDesktopSize failed: %d"
msgstr "SetDesktopSize fejlede: %d"
-#: vncviewer/CConn.cxx:413
+#: vncviewer/CConn.cxx:428
msgid "Invalid SetColourMapEntries from server!"
msgstr "Ugyldig SetColourMapEntries fra server!"
-#: vncviewer/CConn.cxx:489
+#: vncviewer/CConn.cxx:479
msgid "Enabling continuous updates"
msgstr "Aktiverer fortsættende opdateringer"
-#: vncviewer/CConn.cxx:559
+#: vncviewer/CConn.cxx:556
#, c-format
msgid "Throughput %d kbit/s - changing to quality %d"
msgstr "Gennemløb %d kbit/s - ændrer til kvalitet %d"
-#: vncviewer/CConn.cxx:581
+#: vncviewer/CConn.cxx:578
#, c-format
msgid "Throughput %d kbit/s - full color is now %s"
msgstr "Gennemløb %d kbit/s - fuld farve er nu %s"
-#: vncviewer/CConn.cxx:583
+#: vncviewer/CConn.cxx:580
msgid "disabled"
msgstr "deaktiveret"
-#: vncviewer/CConn.cxx:583
+#: vncviewer/CConn.cxx:580
msgid "enabled"
msgstr "aktiveret"
-#: vncviewer/CConn.cxx:593
+#: vncviewer/CConn.cxx:590
#, c-format
msgid "Using %s encoding"
msgstr "Bruger %s-kodning"
-#: vncviewer/CConn.cxx:640
+#: vncviewer/CConn.cxx:637
#, c-format
msgid "Using pixel format %s"
msgstr "Bruger billedpunktsformat %s"
-#: vncviewer/DesktopWindow.cxx:121
+#: vncviewer/DesktopWindow.cxx:122
msgid "Invalid geometry specified!"
msgstr "Ugyldig geometri angivet!"
-#: vncviewer/DesktopWindow.cxx:434
+#: vncviewer/DesktopWindow.cxx:451
msgid "Adjusting window size to avoid accidental full screen request"
msgstr "Justerer vinduesstørrelse for at undgå utilsigtet anmodning om fuld skærm"
-#: vncviewer/DesktopWindow.cxx:478
+#: vncviewer/DesktopWindow.cxx:495
#, c-format
msgid "Press %s to open the context menu"
msgstr "Tryk %s for at åbne kontekstmenuen"
-#: vncviewer/DesktopWindow.cxx:741 vncviewer/DesktopWindow.cxx:747
-#: vncviewer/DesktopWindow.cxx:760
+#: vncviewer/DesktopWindow.cxx:794 vncviewer/DesktopWindow.cxx:802
+#: vncviewer/DesktopWindow.cxx:822
msgid "Failure grabbing keyboard"
msgstr "Kunne ikke fange tastatur"
-#: vncviewer/DesktopWindow.cxx:772
+#: vncviewer/DesktopWindow.cxx:896
msgid "Failure grabbing mouse"
msgstr "Kunne ikke fange mus"
-#: vncviewer/DesktopWindow.cxx:1002
+#: vncviewer/DesktopWindow.cxx:1120
msgid "Invalid screen layout computed for resize request!"
msgstr "Ugyldig skærmlayout beregnet for anmodning om ny størrelse!"
-#: vncviewer/FLTKPixelBuffer.cxx:33
-msgid "Not enough memory for framebuffer"
-msgstr "Ikke nok hukommelse for framebuffer"
-
#: vncviewer/OptionsDialog.cxx:57
msgid "VNC Viewer: Connection Options"
msgstr "VNC-fremviser: Forbindelsesindstillinger"
@@ -338,220 +340,282 @@
msgid "Connect"
msgstr "Forbind"
-#: vncviewer/UserDialog.cxx:74
+#: vncviewer/ServerDialog.cxx:137 vncviewer/ServerDialog.cxx:171
+msgid "TigerVNC configuration (*.tigervnc)"
+msgstr "TigerVNC-konfiguration (*.tigervnc)"
+
+#: vncviewer/ServerDialog.cxx:138
+msgid "Select a TigerVNC configuration file"
+msgstr "Vælg en TigerVNC-konfigurationsfil"
+
+#: vncviewer/ServerDialog.cxx:172
+msgid "Save the TigerVNC configuration to file"
+msgstr "Gem TigerVNC-konfigurationen til fil"
+
+#: vncviewer/ServerDialog.cxx:197
+#, c-format
+msgid "%s already exists. Do you want to overwrite?"
+msgstr "%s findes allerede. Ønsker du at overskrive?"
+
+#: vncviewer/ServerDialog.cxx:198 vncviewer/vncviewer.cxx:279
+msgid "No"
+msgstr "Nej"
+
+#: vncviewer/ServerDialog.cxx:198
+msgid "Overwrite"
+msgstr "Overskriv"
+
+#: vncviewer/UserDialog.cxx:85
msgid "Opening password file failed"
msgstr "Åbning af adgangskodefil mislykkedes"
-#: vncviewer/UserDialog.cxx:86 vncviewer/UserDialog.cxx:96
+#: vncviewer/UserDialog.cxx:105
msgid "VNC authentication"
msgstr "VNC-godkendelse"
-#: vncviewer/UserDialog.cxx:87 vncviewer/UserDialog.cxx:102
-msgid "Password:"
-msgstr "Adgangskode:"
+#: vncviewer/UserDialog.cxx:112
+msgid "This connection is secure"
+msgstr "Denne forbindelse er sikker"
-#: vncviewer/UserDialog.cxx:89
-msgid "Authentication cancelled"
-msgstr "Godkendelse afbrudt"
+#: vncviewer/UserDialog.cxx:116
+msgid "This connection is not secure"
+msgstr "Denne forbindelse er ikke sikker"
-#: vncviewer/UserDialog.cxx:99
+#: vncviewer/UserDialog.cxx:133
msgid "Username:"
msgstr "Brugernavn:"
-#: vncviewer/Viewport.cxx:586
+#: vncviewer/UserDialog.cxx:140
+msgid "Password:"
+msgstr "Adgangskode:"
+
+#: vncviewer/UserDialog.cxx:179
+msgid "Authentication cancelled"
+msgstr "Godkendelse afbrudt"
+
+#: vncviewer/Viewport.cxx:377
+#, c-format
+msgid "Failed to update keyboard LED state: %lu"
+msgstr "Kunne ikke opdatere tastatur-LED-tilstand: %lu"
+
+#: vncviewer/Viewport.cxx:383 vncviewer/Viewport.cxx:389
+#, c-format
+msgid "Failed to update keyboard LED state: %d"
+msgstr "Kunne ikke opdatere tastatur-LED-tilstand: %d"
+
+#: vncviewer/Viewport.cxx:419
+msgid "Failed to update keyboard LED state"
+msgstr "Kunne ikke opdatere tastatur-LED-tilstand"
+
+#: vncviewer/Viewport.cxx:446 vncviewer/Viewport.cxx:454
+#: vncviewer/Viewport.cxx:471
+#, c-format
+msgid "Failed to get keyboard LED state: %d"
+msgstr "Kunne ikke indhente tastatur-LED-tilstand: %d"
+
+#: vncviewer/Viewport.cxx:817
+msgid "No key code specified on key press"
+msgstr "Ingen nøglekode angivet ved tastaturtryk"
+
+#: vncviewer/Viewport.cxx:959
#, c-format
msgid "No scan code for extended virtual key 0x%02x"
msgstr "Ingen skanningskode for udvidet virtuel nøgle 0x%02x"
-#: vncviewer/Viewport.cxx:588
+#: vncviewer/Viewport.cxx:961
#, c-format
msgid "No scan code for virtual key 0x%02x"
msgstr "Ingen skanningskode for virtuel nøgle 0x%02x"
-#: vncviewer/Viewport.cxx:605
+#: vncviewer/Viewport.cxx:967
+#, c-format
+msgid "Invalid scan code 0x%02x"
+msgstr "Ugyldig skanningskode 0x%02x"
+
+#: vncviewer/Viewport.cxx:997
#, c-format
msgid "No symbol for extended virtual key 0x%02x"
msgstr "Intet symbol for udvidet virtuel nøgle 0x%02x"
-#: vncviewer/Viewport.cxx:607
+#: vncviewer/Viewport.cxx:999
#, c-format
msgid "No symbol for virtual key 0x%02x"
msgstr "Intet symbol for virtuel nøgle 0x%02x"
-#: vncviewer/Viewport.cxx:645
+#: vncviewer/Viewport.cxx:1086
#, c-format
msgid "No symbol for key code 0x%02x (in the current state)"
msgstr "Intet symbol for nøglekode 0x%02x (i den nuværende tilstand)"
-#: vncviewer/Viewport.cxx:671
+#: vncviewer/Viewport.cxx:1119
#, c-format
msgid "No symbol for key code %d (in the current state)"
msgstr "Intet symbol for nøglekode %d (i den nuværende tilstand)"
-#: vncviewer/Viewport.cxx:708
+#: vncviewer/Viewport.cxx:1170
msgctxt "ContextMenu|"
msgid "E&xit viewer"
msgstr "&Afslut fremviser"
-#: vncviewer/Viewport.cxx:711
+#: vncviewer/Viewport.cxx:1173
msgctxt "ContextMenu|"
msgid "&Full screen"
msgstr "&Fuld skærm"
-#: vncviewer/Viewport.cxx:714
+#: vncviewer/Viewport.cxx:1176
msgctxt "ContextMenu|"
msgid "Minimi&ze"
msgstr "&Minimer"
-#: vncviewer/Viewport.cxx:716
+#: vncviewer/Viewport.cxx:1178
msgctxt "ContextMenu|"
msgid "Resize &window to session"
msgstr "Ændr størrelse for &vindue til session"
-#: vncviewer/Viewport.cxx:721
+#: vncviewer/Viewport.cxx:1183
msgctxt "ContextMenu|"
msgid "&Ctrl"
msgstr "&Ctrl"
-#: vncviewer/Viewport.cxx:724
+#: vncviewer/Viewport.cxx:1186
msgctxt "ContextMenu|"
msgid "&Alt"
msgstr "&Alt"
-#: vncviewer/Viewport.cxx:730
+#: vncviewer/Viewport.cxx:1192
#, c-format
msgctxt "ContextMenu|"
msgid "Send %s"
msgstr "Send %s"
-#: vncviewer/Viewport.cxx:736
+#: vncviewer/Viewport.cxx:1198
msgctxt "ContextMenu|"
msgid "Send Ctrl-Alt-&Del"
msgstr "Send Ctrl-Alt-&Slet"
-#: vncviewer/Viewport.cxx:739
+#: vncviewer/Viewport.cxx:1201
msgctxt "ContextMenu|"
msgid "&Refresh screen"
msgstr "&Opdater skærm"
-#: vncviewer/Viewport.cxx:742
+#: vncviewer/Viewport.cxx:1204
msgctxt "ContextMenu|"
msgid "&Options..."
msgstr "&Indstillinger ..."
-#: vncviewer/Viewport.cxx:744
+#: vncviewer/Viewport.cxx:1206
msgctxt "ContextMenu|"
msgid "Connection &info..."
msgstr "Forbindelses&info ..."
-#: vncviewer/Viewport.cxx:746
+#: vncviewer/Viewport.cxx:1208
msgctxt "ContextMenu|"
msgid "About &TigerVNC viewer..."
msgstr "Om &TigerVNC-fremviseren ..."
-#: vncviewer/Viewport.cxx:749
+#: vncviewer/Viewport.cxx:1211
msgctxt "ContextMenu|"
msgid "Dismiss &menu"
msgstr "Fjern %menu"
-#: vncviewer/Viewport.cxx:833
+#: vncviewer/Viewport.cxx:1300
msgid "VNC connection info"
msgstr "VNC-forbindelsesinfo"
-#: vncviewer/parameters.cxx:286 vncviewer/parameters.cxx:320
+#: vncviewer/parameters.cxx:279 vncviewer/parameters.cxx:313
#, c-format
msgid "The name of the parameter %s was too large to write to the registry"
msgstr "Navnet på parameteren %s var for lang til at kunne skrives til registret"
-#: vncviewer/parameters.cxx:292 vncviewer/parameters.cxx:299
+#: vncviewer/parameters.cxx:285 vncviewer/parameters.cxx:292
#, c-format
msgid "The parameter %s was too large to write to the registry"
msgstr "Parameteren %s var for lang til at kunne skrives til registret"
-#: vncviewer/parameters.cxx:305 vncviewer/parameters.cxx:326
+#: vncviewer/parameters.cxx:298 vncviewer/parameters.cxx:319
#, c-format
msgid "Failed to write parameter %s of type %s to the registry: %ld"
msgstr "Kunne ikke skrive parameteren %s af typen %s til registret: %ld"
-#: vncviewer/parameters.cxx:341 vncviewer/parameters.cxx:380
+#: vncviewer/parameters.cxx:334 vncviewer/parameters.cxx:373
#, c-format
msgid "The name of the parameter %s was too large to read from the registry"
msgstr "Navnet for parameteren %s var for lang til at kunne læses fra registret"
-#: vncviewer/parameters.cxx:350 vncviewer/parameters.cxx:389
+#: vncviewer/parameters.cxx:343 vncviewer/parameters.cxx:382
#, c-format
msgid "Failed to read parameter %s from the registry: %ld"
msgstr "Kunne ikke læse parameteren %s fra registret: %ld"
-#: vncviewer/parameters.cxx:359
+#: vncviewer/parameters.cxx:352
#, c-format
msgid "The parameter %s was too large to read from the registry"
msgstr "Parameteren %s var for lang til at kunne læses fra registret"
-#: vncviewer/parameters.cxx:409
+#: vncviewer/parameters.cxx:402
#, c-format
msgid "Failed to create registry key: %ld"
msgstr "Kunne ikke oprette registernøgle: %ld"
-#: vncviewer/parameters.cxx:423 vncviewer/parameters.cxx:472
-#: vncviewer/parameters.cxx:534 vncviewer/parameters.cxx:665
+#: vncviewer/parameters.cxx:416 vncviewer/parameters.cxx:465
+#: vncviewer/parameters.cxx:527 vncviewer/parameters.cxx:660
#, c-format
msgid "Unknown parameter type for parameter %s"
msgstr "Ukendt parametertype for parameteren %s"
-#: vncviewer/parameters.cxx:430 vncviewer/parameters.cxx:479
+#: vncviewer/parameters.cxx:423 vncviewer/parameters.cxx:472
#, c-format
msgid "Failed to close registry key: %ld"
msgstr "Kunne ikke lukke registernøgle: %ld"
-#: vncviewer/parameters.cxx:446
+#: vncviewer/parameters.cxx:439
#, c-format
msgid "Failed to open registry key: %ld"
msgstr "Kunne ikke åbne registernøgle: %ld"
-#: vncviewer/parameters.cxx:503
+#: vncviewer/parameters.cxx:496
msgid "Failed to write configuration file, can't obtain home directory path."
msgstr "Kunne ikke skrive konfigurationsfil, kan ikke indhente hjemmemappens sti."
-#: vncviewer/parameters.cxx:516
+#: vncviewer/parameters.cxx:509
#, c-format
msgid "Failed to write configuration file, can't open %s: %s"
msgstr "Kunne ikke skrive konfigurationsfil, kan ikke åbne %s: %s"
-#: vncviewer/parameters.cxx:559
+#: vncviewer/parameters.cxx:554
msgid "Failed to read configuration file, can't obtain home directory path."
msgstr "Kunne ikke læse konfigurationsfil, kan ikke indhente hjemmemappens sti."
-#: vncviewer/parameters.cxx:572
+#: vncviewer/parameters.cxx:567
#, c-format
msgid "Failed to read configuration file, can't open %s: %s"
msgstr "Kunne ikke læse konfigurationsfil, kan ikke åbne %s: %s"
-#: vncviewer/parameters.cxx:585 vncviewer/parameters.cxx:590
-#: vncviewer/parameters.cxx:615 vncviewer/parameters.cxx:628
-#: vncviewer/parameters.cxx:644
+#: vncviewer/parameters.cxx:580 vncviewer/parameters.cxx:585
+#: vncviewer/parameters.cxx:610 vncviewer/parameters.cxx:623
+#: vncviewer/parameters.cxx:639
#, c-format
msgid "Failed to read line %d in file %s: %s"
msgstr "Kunne ikke læse linje %d i filen %s: %s"
-#: vncviewer/parameters.cxx:591
+#: vncviewer/parameters.cxx:586
msgid "Line too long"
msgstr "Linjen er for lang"
-#: vncviewer/parameters.cxx:598
+#: vncviewer/parameters.cxx:593
#, c-format
msgid "Configuration file %s is in an invalid format"
msgstr "Konfigurationsfilen %s er i et ugyldigt format"
-#: vncviewer/parameters.cxx:616
+#: vncviewer/parameters.cxx:611
msgid "Invalid format"
msgstr "Ugyldigt format"
-#: vncviewer/parameters.cxx:629 vncviewer/parameters.cxx:645
+#: vncviewer/parameters.cxx:624 vncviewer/parameters.cxx:640
msgid "Invalid format or too large value"
msgstr "Ugyldigt format eller for stor værdi"
-#: vncviewer/parameters.cxx:672
+#: vncviewer/parameters.cxx:667
#, c-format
msgid "Unknown parameter %s on line %d in file %s"
msgstr "Ukendt parameter %s på linje %d i filen %s"
@@ -561,12 +625,12 @@
msgid ""
"TigerVNC Viewer %d-bit v%s\n"
"Built on: %s\n"
-"Copyright (C) 1999-%d TigerVNC Team and many others (see README.txt)\n"
+"Copyright (C) 1999-%d TigerVNC Team and many others (see README.rst)\n"
"See http://www.tigervnc.org for information on TigerVNC."
msgstr ""
"TigerVNC-fremviser %d-bit v%s\n"
"Bygget på: %s\n"
-"Ophavsret 1999-%d TigerVNC-holdet og mange andre (se README.txt)\n"
+"Ophavsret 1999-%d TigerVNC-holdet og mange andre (se README.rst)\n"
"Se http://www.tigervnc.org for information om TigerVNC."
#: vncviewer/vncviewer.cxx:127
@@ -587,14 +651,10 @@
msgid "Termination signal %d has been received. TigerVNC Viewer will now exit."
msgstr "Opsigelsessignalet %d er blevet modtaget. TigerVNC-fremviseren vil nu afslutte."
-#: vncviewer/vncviewer.cxx:271
+#: vncviewer/vncviewer.cxx:271 vncviewer/vncviewer.desktop.in.in:3
msgid "TigerVNC Viewer"
msgstr "TigerVNC-fremviser"
-#: vncviewer/vncviewer.cxx:279
-msgid "No"
-msgstr "Nej"
-
#: vncviewer/vncviewer.cxx:280
msgid "Yes"
msgstr "Ja"
@@ -648,15 +708,26 @@
#. TRANSLATORS: "Parameters" are command line arguments, or settings
#. from a file or the Windows registry.
-#: vncviewer/vncviewer.cxx:534 vncviewer/vncviewer.cxx:535
+#: vncviewer/vncviewer.cxx:581 vncviewer/vncviewer.cxx:583
msgid "Parameters -listen and -via are incompatible"
msgstr "Parameterne -listen og -via er ikke kompatible"
-#: vncviewer/vncviewer.cxx:550
+#: vncviewer/vncviewer.cxx:598
#, c-format
msgid "Listening on port %d"
msgstr "Lytter på port %d"
-#: vncviewer/vncviewer.desktop.in.in:6
+#: vncviewer/vncviewer.desktop.in.in:4
+msgid "Remote Desktop Viewer"
+msgstr "Ekstern skrivebordsviser"
+
+#: vncviewer/vncviewer.desktop.in.in:5
msgid "Connect to VNC server and display remote desktop"
-msgstr "Opret forbindelse til VNC-server og vis fjern-skrivebord"
+msgstr "Forbind til VNC-server og vis eksternt skrivebord"
+
+#: vncviewer/vncviewer.desktop.in.in:7
+msgid "tigervnc"
+msgstr "tigervnc"
+
+#~ msgid "Not enough memory for framebuffer"
+#~ msgstr "Ikke nok hukommelse for framebuffer"
diff --git a/release/tigervnc.iss.in b/release/tigervnc.iss.in
index 092345a..5850148 100644
--- a/release/tigervnc.iss.in
+++ b/release/tigervnc.iss.in
@@ -9,7 +9,7 @@
#endif
AppVersion=@VERSION@
AppPublisher=TigerVNC project
-AppPublisherURL=http://tigervnc.org
+AppPublisherURL=https://tigervnc.org
DefaultDirName={pf}\TigerVNC
#ifdef WIN64
DefaultGroupName=TigerVNC 64-bit
diff --git a/unix/vncconfig/vncconfig.man b/unix/vncconfig/vncconfig.man
index 06f9ca9..b685a46 100644
--- a/unix/vncconfig/vncconfig.man
+++ b/unix/vncconfig/vncconfig.man
@@ -114,7 +114,7 @@
.BR vncserver (1),
.BR Xvnc (1)
.br
-http://www.tigervnc.org
+https://www.tigervnc.org
.SH AUTHOR
Tristan Richardson, RealVNC Ltd. and others.
diff --git a/unix/vncpasswd/vncpasswd.man b/unix/vncpasswd/vncpasswd.man
index a62c0ed..9e68181 100644
--- a/unix/vncpasswd/vncpasswd.man
+++ b/unix/vncpasswd/vncpasswd.man
@@ -47,7 +47,7 @@
.BR Xvnc (1)
.BR vncconfig (1),
.br
-http://www.tigervnc.org
+https://www.tigervnc.org
.SH AUTHORS
Tristan Richardson, RealVNC Ltd., Antoine Martin, D. R. Commander and others.
diff --git a/unix/vncserver.man b/unix/vncserver.man
index 9108683..95f7960 100644
--- a/unix/vncserver.man
+++ b/unix/vncserver.man
@@ -192,7 +192,7 @@
.BR vncconfig (1),
.BR Xvnc (1)
.br
-http://www.tigervnc.org
+https://www.tigervnc.org
.SH AUTHOR
Tristan Richardson, RealVNC Ltd., D. R. Commander and others.
diff --git a/unix/x0vncserver/XDesktop.cxx b/unix/x0vncserver/XDesktop.cxx
index 9a047c8..5f71ccb 100644
--- a/unix/x0vncserver/XDesktop.cxx
+++ b/unix/x0vncserver/XDesktop.cxx
@@ -647,6 +647,8 @@
dev = (XDamageNotifyEvent*)ev;
rect.setXYWH(dev->area.x, dev->area.y, dev->area.width, dev->area.height);
+ rect = rect.translate(Point(-geometry->offsetLeft(),
+ -geometry->offsetTop()));
server->add_changed(rect);
return true;
diff --git a/unix/x0vncserver/x0vncserver.cxx b/unix/x0vncserver/x0vncserver.cxx
index 4c8f0bf..c77870d 100644
--- a/unix/x0vncserver/x0vncserver.cxx
+++ b/unix/x0vncserver/x0vncserver.cxx
@@ -387,6 +387,13 @@
TXWindow::handleXEvents(dpy);
+ // Run listener destructors; remove UNIX sockets etc
+ for (std::list<SocketListener*>::iterator i = listeners.begin();
+ i != listeners.end();
+ i++) {
+ delete *i;
+ }
+
vlog.info("Terminated");
return 0;
}
diff --git a/unix/x0vncserver/x0vncserver.man b/unix/x0vncserver/x0vncserver.man
index 5dc0b05..5f1508c 100644
--- a/unix/x0vncserver/x0vncserver.man
+++ b/unix/x0vncserver/x0vncserver.man
@@ -302,7 +302,7 @@
.BR Xvnc (1),
.BR vncpasswd (1),
.br
-http://www.tigervnc.org/
+https://www.tigervnc.org/
.SH AUTHOR
Constantin Kaplinsky and others.
diff --git a/unix/xserver/hw/vnc/Xvnc.man b/unix/xserver/hw/vnc/Xvnc.man
index 28786af..9991650 100644
--- a/unix/xserver/hw/vnc/Xvnc.man
+++ b/unix/xserver/hw/vnc/Xvnc.man
@@ -383,7 +383,7 @@
.BR Xserver (1),
.BR inetd (1)
.br
-http://www.tigervnc.org
+https://www.tigervnc.org
.SH AUTHOR
Tristan Richardson, RealVNC Ltd. and others.
diff --git a/unix/xserver/hw/vnc/xvnc.c b/unix/xserver/hw/vnc/xvnc.c
index 3b4d2f3..79b0e3d 100644
--- a/unix/xserver/hw/vnc/xvnc.c
+++ b/unix/xserver/hw/vnc/xvnc.c
@@ -89,7 +89,7 @@
#define XVNCVERSION "TigerVNC 1.9.80"
#define XVNCCOPYRIGHT ("Copyright (C) 1999-2018 TigerVNC Team and many others (see README.rst)\n" \
- "See http://www.tigervnc.org for information on TigerVNC.\n")
+ "See https://www.tigervnc.org for information on TigerVNC.\n")
#define VFB_DEFAULT_WIDTH 1024
#define VFB_DEFAULT_HEIGHT 768
diff --git a/vncviewer/CConn.cxx b/vncviewer/CConn.cxx
index 166597e..69186c5 100644
--- a/vncviewer/CConn.cxx
+++ b/vncviewer/CConn.cxx
@@ -113,14 +113,14 @@
if (strchr(vncServerName, '/') != NULL) {
sock = new network::UnixSocket(vncServerName);
serverHost = sock->getPeerAddress();
- vlog.info(_("connected to socket %s"), serverHost);
+ vlog.info(_("Connected to socket %s"), serverHost);
} else
#endif
{
getHostAndPort(vncServerName, &serverHost, &serverPort);
sock = new network::TcpSocket(serverHost, serverPort);
- vlog.info(_("connected to host %s port %d"), serverHost, serverPort);
+ vlog.info(_("Connected to host %s port %d"), serverHost, serverPort);
}
} catch (rdr::Exception& e) {
vlog.error("%s", e.str());
@@ -575,9 +575,12 @@
// Select best color level
newFullColour = (kbitsPerSecond > 256);
if (newFullColour != fullColour) {
- vlog.info(_("Throughput %d kbit/s - full color is now %s"),
- kbitsPerSecond,
- newFullColour ? _("enabled") : _("disabled"));
+ if (newFullColour)
+ vlog.info(_("Throughput %d kbit/s - full color is now enabled"),
+ kbitsPerSecond);
+ else
+ vlog.info(_("Throughput %d kbit/s - full color is now disabled"),
+ kbitsPerSecond);
fullColour.setParam(newFullColour);
formatChange = true;
}
diff --git a/vncviewer/PlatformPixelBuffer.cxx b/vncviewer/PlatformPixelBuffer.cxx
index c79b5c1..e6a054a 100644
--- a/vncviewer/PlatformPixelBuffer.cxx
+++ b/vncviewer/PlatformPixelBuffer.cxx
@@ -34,13 +34,8 @@
static rfb::LogWriter vlog("PlatformPixelBuffer");
PlatformPixelBuffer::PlatformPixelBuffer(int width, int height) :
- FullFramePixelBuffer(rfb::PixelFormat(32, 24,
-#if !defined(WIN32) && !defined(__APPLE__)
- ImageByteOrder(fl_display) == MSBFirst,
-#else
- false,
-#endif
- true, 255, 255, 255, 16, 8, 0),
+ FullFramePixelBuffer(rfb::PixelFormat(32, 24, false, true,
+ 255, 255, 255, 16, 8, 0),
width, height, 0, stride),
Surface(width, height)
#if !defined(WIN32) && !defined(__APPLE__)
diff --git a/vncviewer/Surface_X11.cxx b/vncviewer/Surface_X11.cxx
index 3523da3..6562634 100644
--- a/vncviewer/Surface_X11.cxx
+++ b/vncviewer/Surface_X11.cxx
@@ -109,6 +109,7 @@
void Surface::alloc()
{
+ XRenderPictFormat templ;
XRenderPictFormat* format;
// Might not be open at this point
@@ -117,7 +118,37 @@
pixmap = XCreatePixmap(fl_display, XDefaultRootWindow(fl_display),
width(), height(), 32);
- format = XRenderFindStandardFormat(fl_display, PictStandardARGB32);
+ // Our code assumes a BGRA byte order, regardless of what the endian
+ // of the machine is or the native byte order of XImage, so make sure
+ // we find such a format
+ templ.type = PictTypeDirect;
+ templ.depth = 32;
+#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+ templ.direct.alpha = 0;
+ templ.direct.red = 8;
+ templ.direct.green = 16;
+ templ.direct.blue = 24;
+#else
+ templ.direct.alpha = 24;
+ templ.direct.red = 16;
+ templ.direct.green = 8;
+ templ.direct.blue = 0;
+#endif
+ templ.direct.alphaMask = 0xff;
+ templ.direct.redMask = 0xff;
+ templ.direct.greenMask = 0xff;
+ templ.direct.blueMask = 0xff;
+
+ format = XRenderFindFormat(fl_display, PictFormatType | PictFormatDepth |
+ PictFormatRed | PictFormatRedMask |
+ PictFormatGreen | PictFormatGreenMask |
+ PictFormatBlue | PictFormatBlueMask |
+ PictFormatAlpha | PictFormatAlphaMask,
+ &templ, 0);
+
+ if (!format)
+ throw rdr::Exception("XRenderFindFormat");
+
picture = XRenderCreatePicture(fl_display, pixmap, format, 0, NULL);
visFormat = XRenderFindVisualFormat(fl_display, fl_visual->visual);
diff --git a/vncviewer/Viewport.cxx b/vncviewer/Viewport.cxx
index 7b5df57..18ed69e 100644
--- a/vncviewer/Viewport.cxx
+++ b/vncviewer/Viewport.cxx
@@ -936,6 +936,13 @@
keyCode = ((msg->lParam >> 16) & 0xff);
+ // Windows' touch keyboard doesn't set a scan code for the Alt
+ // portion of the AltGr sequence, so we need to help it out
+ if (!isExtended && (keyCode == 0x00) && (vKey == VK_MENU)) {
+ isExtended = true;
+ keyCode = 0x38;
+ }
+
// Windows doesn't have a proper AltGr, but handles it using fake
// Ctrl+Alt. However the remote end might not be Windows, so we need
// to merge those in to a single AltGr event. We detect this case
@@ -1040,6 +1047,12 @@
keyCode = ((msg->lParam >> 16) & 0xff);
+ // Touch keyboard AltGr (see above)
+ if (!isExtended && (keyCode == 0x00) && (vKey == VK_MENU)) {
+ isExtended = true;
+ keyCode = 0x38;
+ }
+
// We can't get a release in the middle of an AltGr sequence, so
// abort that detection
if (self->altGrArmed) {
diff --git a/vncviewer/vncviewer.cxx b/vncviewer/vncviewer.cxx
index 8d79510..ac4afca 100644
--- a/vncviewer/vncviewer.cxx
+++ b/vncviewer/vncviewer.cxx
@@ -100,7 +100,7 @@
_("TigerVNC Viewer %d-bit v%s\n"
"Built on: %s\n"
"Copyright (C) 1999-%d TigerVNC Team and many others (see README.rst)\n"
- "See http://www.tigervnc.org for information on TigerVNC."),
+ "See https://www.tigervnc.org for information on TigerVNC."),
(int)sizeof(size_t)*8, PACKAGE_VERSION,
BUILD_TIMESTAMP, 2018);
diff --git a/vncviewer/vncviewer.man b/vncviewer/vncviewer.man
index 421290f..8762dfb 100644
--- a/vncviewer/vncviewer.man
+++ b/vncviewer/vncviewer.man
@@ -320,7 +320,7 @@
.BR vncconfig (1),
.BR vncserver (1)
.br
-http://www.tigervnc.org
+https://www.tigervnc.org
.SH AUTHOR
Tristan Richardson, RealVNC Ltd. and others.
diff --git a/win/vncconfig/vncconfig.rc b/win/vncconfig/vncconfig.rc
index 8d9a6c2..781277c 100644
--- a/win/vncconfig/vncconfig.rc
+++ b/win/vncconfig/vncconfig.rc
@@ -230,7 +230,7 @@
LTEXT ">version<",IDC_VERSION,165,7,77,18
LTEXT ">buildtime<",IDC_BUILDTIME,40,25,202,15
LTEXT ">copyright<",IDC_COPYRIGHT,40,40,256,15
- LTEXT "See http://www.tigervnc.org for more information on TigerVNC.",
+ LTEXT "See https://www.tigervnc.org for more information on TigerVNC.",
IDC_STATIC,40,55,202,15
END
diff --git a/win/winvnc/winvnc.rc b/win/winvnc/winvnc.rc
index 44cb71c..91fc0f4 100644
--- a/win/winvnc/winvnc.rc
+++ b/win/winvnc/winvnc.rc
@@ -154,7 +154,7 @@
LTEXT ">version<",IDC_VERSION,170,10,72,15
LTEXT ">buildtime<",IDC_BUILDTIME,45,25,202,15
LTEXT ">copyright<",IDC_COPYRIGHT,45,40,256,15
- LTEXT "See http://www.tigervnc.org for more information on VNC.",
+ LTEXT "See https://www.tigervnc.org for more information on VNC.",
IDC_STATIC,45,55,202,15
END