]> source.dussan.org Git - tigervnc.git/log
tigervnc.git
2 years agoAdd support for RSA-AES security types in Java viewer
pdlan [Sat, 3 Sep 2022 09:53:07 +0000 (05:53 -0400)]
Add support for RSA-AES security types in Java viewer

2 years agoIgnore whitespace around components of host-and-port specification 1521/head
Catherine Tower [Wed, 24 Aug 2022 01:39:33 +0000 (18:39 -0700)]
Ignore whitespace around components of host-and-port specification

This is to make the code more tolerant of typos when entering a hostname

2 years agoMerge branch 'morersaaes' of https://github.com/CendioOssman/tigervnc
Pierre Ossman [Thu, 1 Sep 2022 12:54:53 +0000 (14:54 +0200)]
Merge branch 'morersaaes' of https://github.com/CendioOssman/tigervnc

2 years agoAdd nettle to build documentation 1524/head
Pierre Ossman [Thu, 1 Sep 2022 09:37:02 +0000 (11:37 +0200)]
Add nettle to build documentation

2 years agoExplicitly require nettle for builds
Pierre Ossman [Thu, 1 Sep 2022 09:36:18 +0000 (11:36 +0200)]
Explicitly require nettle for builds

It is generally pulled in as a requirement from GnuTLS, but let's be
explicitly now that we make use of nettle directly.

2 years agoAdd fallback for finding gmp
Pierre Ossman [Thu, 1 Sep 2022 09:30:51 +0000 (11:30 +0200)]
Add fallback for finding gmp

pkg-config support was added very recently to gmp, so a lot of platforms
we want to support won't find gmp this way.

2 years agoSplit gmp detection to separate module
Pierre Ossman [Thu, 1 Sep 2022 09:28:23 +0000 (11:28 +0200)]
Split gmp detection to separate module

It is a (weird) dependency of nettle, and not part of nettle itself. So
split it to a separate module for clarity.

2 years agoFix incorrect nettle library references
Pierre Ossman [Thu, 1 Sep 2022 08:45:54 +0000 (10:45 +0200)]
Fix incorrect nettle library references

2 years agoFix SecurityTypes default value in man pages
Pierre Ossman [Thu, 1 Sep 2022 08:45:14 +0000 (10:45 +0200)]
Fix SecurityTypes default value in man pages

The order is important in the servers, so make sure the man pages follow
the code properly.

2 years agoAdd support for RSA-AES security types 1519/head
pdlan [Thu, 1 Sep 2022 04:58:24 +0000 (00:58 -0400)]
Add support for RSA-AES security types

2 years agoRe-enable lock key sync in viewer
Pierre Ossman [Wed, 31 Aug 2022 09:10:11 +0000 (11:10 +0200)]
Re-enable lock key sync in viewer

This was accidentally disabled in 81e114f.

2 years agoMerge branch 'rsaaesfix' of https://github.com/CendioOssman/tigervnc
Pierre Ossman [Thu, 25 Aug 2022 12:51:17 +0000 (14:51 +0200)]
Merge branch 'rsaaesfix' of https://github.com/CendioOssman/tigervnc

2 years agoFix stream check for InStream::getptr() 1522/head
Pierre Ossman [Wed, 24 Aug 2022 14:10:36 +0000 (16:10 +0200)]
Fix stream check for InStream::getptr()

This call should have been preceeded by hasData() or avail(), just like
all other accessor functions.

2 years agoMove include_directories() to proper places
Pierre Ossman [Wed, 24 Aug 2022 11:35:20 +0000 (13:35 +0200)]
Move include_directories() to proper places

We should scope these as narrowely as possible to avoid side effects.

2 years agoUse BufferedOutStream in more streams
Pierre Ossman [Wed, 24 Aug 2022 08:31:42 +0000 (10:31 +0200)]
Use BufferedOutStream in more streams

Avoid duplicating all the memory mangement, and instead use the
BufferedOutStream as a base clase for all out streams that need an
intermediate buffer.

2 years agoRemove unused CSecurity::description()
Pierre Ossman [Tue, 23 Aug 2022 13:49:22 +0000 (15:49 +0200)]
Remove unused CSecurity::description()

2 years agoMake BufferedInStream allocation more available
Pierre Ossman [Tue, 23 Aug 2022 15:09:40 +0000 (17:09 +0200)]
Make BufferedInStream allocation more available

Allow subclasses to call it, instead of it being strictly internal. This
is useful when a subclass can only provide data in minimum sized chunks.

2 years agoFix encoding group for H.264 choice
Pierre Ossman [Wed, 24 Aug 2022 14:41:52 +0000 (16:41 +0200)]
Fix encoding group for H.264 choice

It might not be compiled in, so the height needs to be dynamic.

2 years agoFix "grave" and "ISO" keys on macOS
Pierre Ossman [Tue, 23 Aug 2022 07:11:15 +0000 (09:11 +0200)]
Fix "grave" and "ISO" keys on macOS

We lacked an entry for one of these, and the magical swap that macOS
does for unknown reasons.

2 years agoSync RHEL packaging with Fedora 1520/head
Pierre Ossman [Fri, 19 Aug 2022 13:36:31 +0000 (15:36 +0200)]
Sync RHEL packaging with Fedora

Makes it easier to compare changes with what people normally run.

2 years agoAdd missing FLTK include statements 1489/head
Albrecht Schlosser [Mon, 4 Jul 2022 11:27:24 +0000 (13:27 +0200)]
Add missing FLTK include statements

Add also missing <stdlib.h> where required.

2 years agoMerge pull request #1492 from krystof1119/javaCursorFix
Brian Hinz [Thu, 7 Jul 2022 10:52:42 +0000 (06:52 -0400)]
Merge pull request #1492 from krystof1119/javaCursorFix

Fix edge of dot cursor in Java vncviewer

2 years agoFix edge of dot cursor in Java vncviewer 1492/head
Krystof Pistek [Wed, 6 Jul 2022 15:24:39 +0000 (17:24 +0200)]
Fix edge of dot cursor in Java vncviewer

This commit changes the color of the edges of the dot cursor in the Java
version of vncviewer from fully transparent to white, bringing it in
line with the C++ native version.

2 years agoMerge branch 'artifacts' of https://github.com/CendioOssman/tigervnc
Pierre Ossman [Tue, 5 Jul 2022 14:06:56 +0000 (16:06 +0200)]
Merge branch 'artifacts' of https://github.com/CendioOssman/tigervnc

2 years agoFix typo in previous commit
Pierre Ossman [Tue, 5 Jul 2022 07:50:25 +0000 (09:50 +0200)]
Fix typo in previous commit

2 years agoStore artifacts from Github actions 1490/head
Pierre Ossman [Mon, 4 Jul 2022 12:42:55 +0000 (14:42 +0200)]
Store artifacts from Github actions

Might be useful for testing in some cases. Note that the Windows and
Linux binaries will depend on libraries from the build environment. So
the user will need to match those manually.

2 years agoFix Xvnc dependency list (again)
Pierre Ossman [Tue, 5 Jul 2022 07:19:07 +0000 (09:19 +0200)]
Fix Xvnc dependency list (again)

The previous commit was incorrect in that it overrides automake's
dependency list, rather than adding to it. So we need to make sure
things are duplicated between Xvnc_DEPENDENCIES and Xvnc_LDADD as
appropriate.

Use the same approach as the Xorg binary to keep things familiar.

2 years agoAdd missing dependencies for Xvnc
Pierre Ossman [Mon, 4 Jul 2022 11:59:42 +0000 (13:59 +0200)]
Add missing dependencies for Xvnc

These aren't crucial for a clean build, but must be set for Xvnc to be
properly rebuilt if anything in the Xorg tree changes. automake doesn't
properly deduce these automatically from Xvnc_LDADD, unfortunately.

2 years agoMerge branch 'cork' of https://github.com/CendioOssman/tigervnc
Pierre Ossman [Tue, 28 Jun 2022 14:20:51 +0000 (16:20 +0200)]
Merge branch 'cork' of https://github.com/CendioOssman/tigervnc

2 years agoCork the proper output stream in the client 1488/head
Pierre Ossman [Tue, 28 Jun 2022 12:51:13 +0000 (14:51 +0200)]
Cork the proper output stream in the client

The socket might not be the stream actually used, e.g. when we are using
TLS. Make sure we cork the proper stream to get all the benefits of
corking.

2 years agoSafely discard large (extended) clipboard contents
Pierre Ossman [Tue, 28 Jun 2022 12:49:40 +0000 (14:49 +0200)]
Safely discard large (extended) clipboard contents

Avoid having to buffer everything we want to discard, and instead do it
piece by piece. This is more efficient, and avoids hitting any limits on
the buffering.

Note that this is safe here because we already know we have all the
compressed data. It would not be safe for a general input stream.

2 years agoProperly restore cork state when changed
Pierre Ossman [Tue, 28 Jun 2022 12:47:39 +0000 (14:47 +0200)]
Properly restore cork state when changed

These streams both need to change the corking state temporarily, but it
is important it is restored to the previous state or things might get
messed up.

For the zlib stream it would just leave things uncorked, which still
works but is less efficient.

But for the TLS stream it might make things very unresponsive as the
corking might be left on permanently, delaying packets indefinitely.

2 years agoRemove unnecessary flush
Pierre Ossman [Tue, 28 Jun 2022 12:47:13 +0000 (14:47 +0200)]
Remove unnecessary flush

Uncorking implicitly flushes, so we don't need this.

2 years agoOnly implicitly flush on uncorking
Pierre Ossman [Tue, 28 Jun 2022 12:46:06 +0000 (14:46 +0200)]
Only implicitly flush on uncorking

There is no point flushing when corking was enabled, as we might then
push out a small buffer that the corking otherwise would have preserved.

2 years agoMerge branch 'mft-crop-fix' of https://github.com/mmozeiko/tigervnc
Pierre Ossman [Mon, 13 Jun 2022 06:53:09 +0000 (08:53 +0200)]
Merge branch 'mft-crop-fix' of https://github.com/mmozeiko/tigervnc

2 years agoWorkaround for MFT cropping in H264 decoding 1480/head
Martins Mozeiko [Tue, 7 Jun 2022 07:37:54 +0000 (00:37 -0700)]
Workaround for MFT cropping in H264 decoding

It seems MFT h264 decoder does not support frame cropping. Which
means that if frame width or height is not multiple of 16 then
decoded output can potentially be used with wrong offset. This
code adds explicit parsing of SPS to extract cropping information
to use, and will apply cropping if reported size differs from
expected.

2 years agoAdd Romanian translation
Remus-Gabriel Chelu [Sun, 29 May 2022 22:51:00 +0000 (00:51 +0200)]
Add Romanian translation

2 years agoMerge branch 'pkgconfig' of https://github.com/CendioOssman/tigervnc
Pierre Ossman [Tue, 7 Jun 2022 09:20:31 +0000 (11:20 +0200)]
Merge branch 'pkgconfig' of https://github.com/CendioOssman/tigervnc

2 years agoFind FFMPEG using pkg-config 1473/head
Pierre Ossman [Mon, 30 May 2022 08:53:32 +0000 (10:53 +0200)]
Find FFMPEG using pkg-config

This is the standard method of finding it on Unix systems, so make sure
we use it. Still keep a fallback, though, for other systems, e.g.
Windows.

2 years agoFix up ffmpeg header and library handling
Pierre Ossman [Mon, 30 May 2022 08:52:23 +0000 (10:52 +0200)]
Fix up ffmpeg header and library handling

FFMPEG is needed by the RFB library, so all the details about it should
only be applied there and not for other components.

2 years agoUse pkg-config for pixman
Pierre Ossman [Mon, 30 May 2022 08:02:05 +0000 (10:02 +0200)]
Use pkg-config for pixman

This is the standard method of finding it on Unix systems, so make sure
we use it. Still keep a fallback, though, for other systems, e.g.
Windows.

2 years agoAdd target_link_directory() compat function
Pierre Ossman [Sat, 4 Jun 2022 12:19:07 +0000 (14:19 +0200)]
Add target_link_directory() compat function

We need this function to deal with pkgconfig files properly, but
unfortunately it doesn't exist until CMake 3.13, and we need to support
CMake 3.10. So add a hacky compatibility function for older systems.

2 years agoAvoid temporary cmake variables
Pierre Ossman [Fri, 3 Jun 2022 13:44:32 +0000 (15:44 +0200)]
Avoid temporary cmake variables

Modern cmake has better support for adding source files and libraries
incrementally, so let's use that to clean things up.

2 years agoRemove zlib copyright notice
Pierre Ossman [Thu, 12 May 2022 12:55:46 +0000 (14:55 +0200)]
Remove zlib copyright notice

Our embedded zlib got removed way back in cc8c6a2.

2 years agoMerge branch 'icons' of https://github.com/CendioOssman/tigervnc
Pierre Ossman [Wed, 11 May 2022 11:23:26 +0000 (13:23 +0200)]
Merge branch 'icons' of https://github.com/CendioOssman/tigervnc

2 years agoAdjust icon margins and rounding 1467/head
Pierre Ossman [Wed, 11 May 2022 10:43:27 +0000 (12:43 +0200)]
Adjust icon margins and rounding

Reduce the icon margins a bit to conform better with other icons. Also
dial back the rounding a bit, again to fit better with other programs.

2 years agoAutomatically generate macOS icon file
Pierre Ossman [Wed, 11 May 2022 10:42:18 +0000 (12:42 +0200)]
Automatically generate macOS icon file

2 years agoAutomatically generate Windows icon file
Pierre Ossman [Wed, 11 May 2022 10:39:58 +0000 (12:39 +0200)]
Automatically generate Windows icon file

2 years agoAdd more Unix icon sizes
Pierre Ossman [Wed, 11 May 2022 08:17:50 +0000 (10:17 +0200)]
Add more Unix icon sizes

Some desktop environment, like KDE, need more rastered sizes and cannot
make use of the SVG.

2 years agoAvoid duplicating list of icon sizes
Pierre Ossman [Wed, 11 May 2022 08:00:01 +0000 (10:00 +0200)]
Avoid duplicating list of icon sizes

2 years agoRemove redundant icon installation
Pierre Ossman [Wed, 11 May 2022 07:34:25 +0000 (09:34 +0200)]
Remove redundant icon installation

This is already done by vncviewer, so we don't need any rule here.

2 years agoSimplify icon generation
Pierre Ossman [Wed, 11 May 2022 07:30:23 +0000 (09:30 +0200)]
Simplify icon generation

Have the padding included in the SVGs to make the rules less complex.

2 years agoRemove dead code
Pierre Ossman [Wed, 11 May 2022 07:16:42 +0000 (09:16 +0200)]
Remove dead code

This code is never used on Windows, so remove it.

2 years agoSafer allocation of icon array
Pierre Ossman [Wed, 11 May 2022 07:16:01 +0000 (09:16 +0200)]
Safer allocation of icon array

Avoid the risk of the list of sizes and the list of icons getting out of
sync and causing memory corruption.

2 years agoMerge pull request #1463 from TigerVNC/accessRightsFixes
Samuel Mannehed [Mon, 2 May 2022 06:43:34 +0000 (08:43 +0200)]
Merge pull request #1463 from TigerVNC/accessRightsFixes

Minor fixes/future-proofing for SConnection::accessCheck() and 'accessRights'

2 years agoAssert that accessCheck isn't called too early 1463/head
Samuel Mannehed [Fri, 29 Apr 2022 08:18:47 +0000 (10:18 +0200)]
Assert that accessCheck isn't called too early

These checks depend on accessRights being set up, this has only happened
if we have done the QUERYING steps.

2 years agoInitialize SConnection's accessRights
Samuel Mannehed [Fri, 29 Apr 2022 08:17:02 +0000 (10:17 +0200)]
Initialize SConnection's accessRights

Properties should be initialized in order to avoid random values in
case they are used earlier than expected.

2 years agoAdd Georgian translation
Temuri Doghonadze [Mon, 18 Apr 2022 04:01:00 +0000 (06:01 +0200)]
Add Georgian translation

2 years agoUpdate Spanish translation
Cristian Othón Martínez Vera [Wed, 6 Apr 2022 16:48:00 +0000 (11:48 -0500)]
Update Spanish translation

2 years agoFix bad indentation in CConn::socketEvent()
Pierre Ossman [Wed, 6 Apr 2022 13:47:49 +0000 (15:47 +0200)]
Fix bad indentation in CConn::socketEvent()

2 years agoIgnore socket whilst processing data
Pierre Ossman [Wed, 6 Apr 2022 13:45:36 +0000 (15:45 +0200)]
Ignore socket whilst processing data

FLTK has a lot of synchronous stuff (like dialogs), which mean that the
main loop might be run recursively in some cases. If there is data
available on our socket then CConn::socketEvent() will be called
constantly in a busy loop.

Avoid this by removing socket notifications whilst we are processing
data.

2 years agoEnable stream sanity checks in debug builds
Pierre Ossman [Wed, 6 Apr 2022 13:38:45 +0000 (15:38 +0200)]
Enable stream sanity checks in debug builds

Enable this automatically for developers so we increase the chance of
these problems getting caught. There is a risk of overhead though so
keep them disabled for release builds.

2 years agoDon't trust GNUTLS_E_AGAIN
Pierre Ossman [Wed, 6 Apr 2022 13:23:50 +0000 (15:23 +0200)]
Don't trust GNUTLS_E_AGAIN

Unfortunately this error can be given by GnuTLS even though the
underlying stream still has data available. So stop trusting this value
and keep track of the underlying stream explicitly.

2 years agoPrint GnuTLS certificate status as hex
Pierre Ossman [Thu, 24 Mar 2022 13:06:05 +0000 (14:06 +0100)]
Print GnuTLS certificate status as hex

It's a bit field so it's easier to decode in hex.

2 years agoAllow exceptions for expired certificates
Pierre Ossman [Thu, 24 Mar 2022 13:03:47 +0000 (14:03 +0100)]
Allow exceptions for expired certificates

The browsers allow users to make an exception for expired certificates,
so we should probably also.

2 years agoMake sure server name is always a valid string
Pierre Ossman [Thu, 24 Mar 2022 13:02:57 +0000 (14:02 +0100)]
Make sure server name is always a valid string

Otherwise we can get crashes on NULL dereference. This should only
happen on reverse connections where we don't have a server address.

2 years agoChange vncsession startup error message
Pierre Ossman [Fri, 11 Mar 2022 07:31:25 +0000 (08:31 +0100)]
Change vncsession startup error message

We need to get to the point of starting the session script before we
consider things a success. So this can fail in many different ways, not
just the daemonization. Adjust the error message to something more
generic to reflect this.

2 years agoMerge branch 'feature/appstream-vncviewer' of https://github.com/JoachimFalk/tigervnc
Pierre Ossman [Thu, 10 Mar 2022 15:43:22 +0000 (16:43 +0100)]
Merge branch 'feature/appstream-vncviewer' of https://github.com/JoachimFalk/tigervnc

2 years agoAdded AppStream meta info file for the vncviewer 1415/head
Joachim Falk [Sat, 19 Feb 2022 23:06:38 +0000 (00:06 +0100)]
Added AppStream meta info file for the vncviewer

2 years agoFix compilation issue. 1436/head
Chris [Mon, 28 Feb 2022 17:59:15 +0000 (12:59 -0500)]
Fix compilation issue.

Ubuntu 20.04
gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
libx264-dev:amd64 2:0.155.2917+git0a84d98-2

[ 11%] Building CXX object common/rfb/CMakeFiles/rfb.dir/H264LibavDecoderContext.cxx.o
tigervnc/common/rfb/H264LibavDecoderContext.cxx: In member function ‘virtual bool rfb::H264LibavDecoderContext::initCodec()’:
tigervnc/common/rfb/H264LibavDecoderContext.cxx:50:40: error: invalid conversion from ‘const AVCodec*’ to ‘AVCodec*’ [-fpermissive]
   50 |   AVCodec *codec = avcodec_find_decoder(AV_CODEC_ID_H264);
      |                    ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
      |                                        |
      |                                        const AVCodec*
make[2]: *** [common/rfb/CMakeFiles/rfb.dir/build.make:895: common/rfb/CMakeFiles/rfb.dir/H264LibavDecoderContext.cxx.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:597: common/rfb/CMakeFiles/rfb.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

2 years agoSwitch to CentOS Stream 8 for builds 1430/head
Pierre Ossman [Fri, 18 Feb 2022 08:11:15 +0000 (09:11 +0100)]
Switch to CentOS Stream 8 for builds

CentOS 8 is EOL and is now replaced with CentOS Stream 8.

This images isn't available on Docker Hub unfortunately, so we grab it
from Quay.

2 years agoSELinux: use /root/.vnc in file context specification 1426/head
Zdenek Pytela [Mon, 7 Feb 2022 09:45:41 +0000 (10:45 +0100)]
SELinux: use /root/.vnc in file context specification

Instead of HOME_ROOT/.vnc, /root/.vnc should be used
for user root's home to specify default file context
as HOME_ROOT actually means base for home dirs (usually /home).

2 years agoFix for reflection warnings for strongly encapsulated Desktop methods in Java > 9
Brian P. Hinz [Sat, 29 Jan 2022 20:56:34 +0000 (15:56 -0500)]
Fix for reflection warnings for strongly encapsulated Desktop methods in Java > 9

2 years agoFix for #1414
Brian P. Hinz [Sat, 29 Jan 2022 18:40:28 +0000 (13:40 -0500)]
Fix for #1414

2 years agoAdded screenshots for AppStream meta info file for vncviewer
Joachim Falk [Fri, 28 Jan 2022 17:04:45 +0000 (18:04 +0100)]
Added screenshots for AppStream meta info file for vncviewer

2 years agoget rid of c++11 stuff 1419/head
Vladimir Sukhonosov [Tue, 25 Jan 2022 19:14:00 +0000 (22:14 +0300)]
get rid of c++11 stuff

2 years agoImprove logging around screen resizing
Pierre Ossman [Tue, 25 Jan 2022 08:56:31 +0000 (09:56 +0100)]
Improve logging around screen resizing

Avoid duplication, and add logging for some more error conditions so
it's possible to see in the logs why a resize has failed or produced
unexpected results.

2 years agoRemove 32-/64-bit distinctions
Pierre Ossman [Fri, 21 Jan 2022 15:40:43 +0000 (16:40 +0100)]
Remove 32-/64-bit distinctions

The migration from 32-bit to 64-bit has long passed. Let's get rid of
all distinctions as native applications it the norm now.

2 years agoUpdate packaging section of BUILDING.txt
Pierre Ossman [Fri, 21 Jan 2022 15:29:48 +0000 (16:29 +0100)]
Update packaging section of BUILDING.txt

This is obviously not maintained, so let's be more generic in the
document.

2 years agoMerge branch 'h264dec' of https://github.com/xornet-sl/tigervnc
Pierre Ossman [Fri, 21 Jan 2022 15:15:39 +0000 (16:15 +0100)]
Merge branch 'h264dec' of https://github.com/xornet-sl/tigervnc

2 years agoLog objects should be local
Pierre Ossman [Fri, 21 Jan 2022 15:15:05 +0000 (16:15 +0100)]
Log objects should be local

Otherwise things might be logged under the wrong label.

2 years agosupport H264 decoding with MediaFoundation on Windows 1194/head
Mārtiņš Možeiko [Fri, 21 Jan 2022 05:00:48 +0000 (08:00 +0300)]
support H264 decoding with MediaFoundation on Windows

2 years agoH264 Decoder
Vladimir Sukhonosov [Fri, 21 Jan 2022 04:59:02 +0000 (07:59 +0300)]
H264 Decoder

Linux implementation using ffmpeg

2 years agoAlways log screen layout if validation fails 1411/head
William Sjöblom [Wed, 19 Jan 2022 10:22:07 +0000 (11:22 +0100)]
Always log screen layout if validation fails

Unconditionally log the erroneous screen layout if it fails to
validate to simplify debugging.

2 years agoFix session resize after mirroring on Linux vncviewer
William Sjöblom [Wed, 19 Jan 2022 09:04:53 +0000 (10:04 +0100)]
Fix session resize after mirroring on Linux vncviewer

If monitor mirroring was enabled while in a session with vncviewer
running on Linux, the session would not be properly resized on the
server. This was a consequence of only looking at the size and
coordinates of each screen when matching against existing screens after
the screen layout was changed, when in fact we have two (or more)
monitors with the same coordinates and size (but differing ids). This
led to the same monitor being added twice to the layout which would
later fail layout validation, resulting in no resize request being sent
to the server.

When matching, we now also check if the existing screen is not already
present in the layout before considering it a match.

2 years agoFix handling of VMware cursors
Pierre Ossman [Tue, 18 Jan 2022 12:38:41 +0000 (13:38 +0100)]
Fix handling of VMware cursors

This is a regression from ad0f061. If a VMware cursor rect was split up
over multiple read()s then the stream would become corrupted as we set
the restore point at the wrong place.

2 years agoMerge branch 'selinux-restorecon' of https://github.com/grulja/tigervnc
Pierre Ossman [Thu, 13 Jan 2022 12:46:27 +0000 (13:46 +0100)]
Merge branch 'selinux-restorecon' of https://github.com/grulja/tigervnc

2 years agoSELinux: restore SELinux context in case of different policies 1372/head
Jan Grulich [Thu, 11 Nov 2021 12:52:41 +0000 (13:52 +0100)]
SELinux: restore SELinux context in case of different policies

2 years agoImprove full-screen workaround on connect
Pierre Ossman [Wed, 12 Jan 2022 16:44:20 +0000 (17:44 +0100)]
Improve full-screen workaround on connect

If we've explicitly requested a position (using -geometry) then we were
still triggering legacy full-screen request logic. This is very counter
intuitive as having a position that doesn't align with a monitor should
disqualify us for that.

It turns out that at least marco (and probably everything
metacity-derived) ends up ignoring the requested position and we go back
to triggering the legacy logic again.

Work around this by assuming that the window manager will adjust our
initial position and don't consider that in the workaround logic.

2 years agoMerge pull request #1405 from TigerVNC/monitorArrangementSync
Samuel Mannehed [Mon, 10 Jan 2022 15:44:32 +0000 (16:44 +0100)]
Merge pull request #1405 from TigerVNC/monitorArrangementSync

Update MonitorArrangement widget to match parameter settings after screen configuration change

2 years agoUpdate MonitorArrangement widget after change 1405/head
Samuel Mannehed [Fri, 7 Jan 2022 17:46:17 +0000 (18:46 +0100)]
Update MonitorArrangement widget after change

If the options dialog was open when a screen configuration happened the
widget could get out of sync from the settings. A scenario when this
happened was:

 1) 3 monitors, fullscreen selected on the two right-most screens
 2) disconnect the left-most screen (the one not selected)

In this case, using GNOME, vncviewer would appear in fullscreen on the
right of the two remaining monitors, but the widget would show both
monitors selected. The reason was that the MonitorArragement index
doesn't work the same way as FLTK's screen index.

It's debatable how vncviewer should behave here, but the GUI should at
least match the actual setting.

2 years agoProperly set XDG_CURRENT_DESKTOP
Pierre Ossman [Mon, 10 Jan 2022 08:34:19 +0000 (09:34 +0100)]
Properly set XDG_CURRENT_DESKTOP

There is no such thing as XDG_DESKTOP_NAMES.

2 years agoUpdate copyright year to 2022
Pierre Ossman [Wed, 5 Jan 2022 08:15:22 +0000 (09:15 +0100)]
Update copyright year to 2022

2 years agoDon't add . to error message string
Pierre Ossman [Tue, 4 Jan 2022 10:02:01 +0000 (11:02 +0100)]
Don't add . to error message string

The norm is to have error strings without punctiation, so avoid adding
one as it just confuses the translators.

2 years agoAvoid creating windows larger than current monitor
Pierre Ossman [Thu, 30 Dec 2021 12:04:59 +0000 (13:04 +0100)]
Avoid creating windows larger than current monitor

Many window managers don't have proper logic to restrict the window size
to something sane, so we have to take care of that ourselves.

2 years agoDon't move window in full-screen workaround
Pierre Ossman [Thu, 30 Dec 2021 12:03:46 +0000 (13:03 +0100)]
Don't move window in full-screen workaround

If this is done before the window is shown then it can accidentally
override the window manager's placement of the window. Reducing the size
should be sufficient to avoid trigger a full-screen request.

2 years agoBe consistent in including config.h
Pierre Ossman [Thu, 30 Dec 2021 09:20:13 +0000 (10:20 +0100)]
Be consistent in including config.h

The generally recommended way is to include it from source files, not
headers. We had a mix of both. Let's try to be consistent and follow the
recommended way.

2 years agoOnly restore level if it is wrong
Pierre Ossman [Thu, 30 Dec 2021 09:16:45 +0000 (10:16 +0100)]
Only restore level if it is wrong

Tweak the workaround from 9023a2e so that it only triggers if there
actually is a problem to fix. This is important since changing levels
also has the side effect of raising the window to the top of the level.

2 years agoRelicense MonitorArrangement widget
Pierre Ossman [Mon, 27 Dec 2021 11:29:59 +0000 (12:29 +0100)]
Relicense MonitorArrangement widget

This was designed as a general FLTK widget and we want to encourage
others to use it and improve it. So relicense these particular files in
a way that allows it to be used by anyone using FLTK.

As part of this we need to stop using other parts of TigerVNC as that
code is still covered by the GPL.

2 years agoAvoid leaking overlay memory
Pierre Ossman [Thu, 23 Dec 2021 15:06:14 +0000 (16:06 +0100)]
Avoid leaking overlay memory

Fl_RGB_Image doesn't take ownership of the pixel data, so we have to
explicitly free this as well once we are done.