]> source.dussan.org Git - tigervnc.git/log
tigervnc.git
3 years agoRefresh MonitorArrangement on configuration change 1295/head
Hugo Lundin [Fri, 16 Jul 2021 14:31:16 +0000 (16:31 +0200)]
Refresh MonitorArrangement on configuration change

MonitorArrangement (in the options dialog) never changes when the system
monitor configuration changes. Therefore, the user can get into a state
where the reality doesn't match what is shown (when a monitor is
added/removed, resolution or position changed etc).

All these changes triggers an event in FLTK
(FL_SCREEN_CONFIGURATION_CHANGED). This commit adds an event handler in
MonitorArrangement and refreshes the widget whenever that event occurs.

Because Fl_Handler does not have a void*-argument (and we must be able
to access the widget from our handler callback) a static set of
instances have been added, which all will receive the events.

3 years agoMerge branch 'selected_monitors' of https://github.com/hugolundin/tigervnc
Pierre Ossman [Fri, 16 Jul 2021 14:10:36 +0000 (16:10 +0200)]
Merge branch 'selected_monitors' of https://github.com/hugolundin/tigervnc

3 years agoAdd monitor description to tooltip 1282/head
Hugo Lundin [Tue, 13 Jul 2021 13:55:54 +0000 (15:55 +0200)]
Add monitor description to tooltip

It might be useful to have more information about a monitor when
configuring its settings in the Options menu. Therefore, this commit
adds support for showing additional information about a monitor
(resolution and platform-specific name).

3 years agoExplicitly choose current monitor
Hugo Lundin [Thu, 15 Jul 2021 11:32:19 +0000 (13:32 +0200)]
Explicitly choose current monitor

There are no guarantees from the WM that calling `fullscreen_screens`
with all monitor indices set to `-1` results in the window's current
monitor being used. Because FullScreenMode uses the word "current"
we want to explicitly ask the WM to use that monitor.

3 years agoAdd fullscreen mode for selected monitors
Hugo Lundin [Tue, 13 Jul 2021 11:58:12 +0000 (13:58 +0200)]
Add fullscreen mode for selected monitors

The user might not always want to use all monitors when in fullscreen
mode, but instead only a few. This commit adds support for configuring
selected monitors from command line, in the config file and graphically
in the options menu.

Because it might be hard to guarantee the consistency of monitor
identifiers coming from third-parties (for example FLTK), it has been
decided to use our own numerical identifier. This identifier is based on
the monitor's positions. The mapping between this identifier and the
indices used by FLTK is done by MonitorIndicesParameter.

3 years agoAdd fullscreen mode parameter
Hugo Lundin [Thu, 15 Jul 2021 10:52:56 +0000 (12:52 +0200)]
Add fullscreen mode parameter

Before this commit, `FullScreen` and `FullScreenAllMonitors` could be
used to configure whether to use the current monitor in fullscreen,
or all monitors in fullscreen.

This commit deprecates `FullScreenAllMonitors` in favour of
`FullScreenMode` (which can either be `current` or `all`). This allows
for additional modes to be added, without the risk of having invalid
states (for example two activate two different fullscreen modes at the
same time).

A new concept has been added; read-only parameters. They are parameters
that will be read, but never written back. This allows for migration
paths to be constructed, where a parameter can be taken to consideration
but then for example be discarded, logged or changed into something else.

This has been used for `FullScreenAllMonitors` to provide a migration
path. On startup of vncviewer, if `FullScreenAllMonitors` is enabled,
`FullScreenMode=all` will be automatically enabled instead. The next
time the configuration file is written to disk, `FullScreenAllMonitors`
will then be removed.

3 years agoCalculate overlay position from window size
Hugo Lundin [Wed, 14 Jul 2021 12:55:56 +0000 (14:55 +0200)]
Calculate overlay position from window size

Previously, it was assumed that all monitors (and especially the primary
monitor, index 0) was inside the window when we calculate the position
of the overlay.

That might not always be the case, for example when using fullscreen
mode over a narrower set of monitors. This commit does so the overlay is
positioned correctly based on the actual window size, instead of what we
expect it to be.

3 years agoRelease displays not enclosed by the window
Hugo Lundin [Fri, 16 Jul 2021 11:26:08 +0000 (13:26 +0200)]
Release displays not enclosed by the window

cocoa_capture_displays it captures all displays enclosed by the
window_rect. If a set of displays were captured, but the configuration of
what monitors to use changed, a second call would only add to the set
of captured displays. Therefore, if the user enabled
FullScreenAllMonitors (all displays captured) and then disabled it (only
one display captured) they would get into a state were monitors not used
for the VNC session still were captured (which on macOS for example,
results in displays being unusable for other things).

This has now been fixed, resulting in monitors outside the window_rect
not being unnecessarily captured.

3 years agoFix priority string when using newer GnuTLS 1293/head
Jan Grulich [Thu, 15 Jul 2021 18:42:16 +0000 (20:42 +0200)]
Fix priority string when using newer GnuTLS

The call of gnutls_set_default_priority_append() expects a normal priority
string, which means it must not start with ':'.

3 years agoCapture all displays inside the viewport (macOS)
Hugo Lundin [Tue, 13 Jul 2021 11:07:41 +0000 (13:07 +0200)]
Capture all displays inside the viewport (macOS)

It was only possible to capture either the current, or all displays
previously. This could become an issue if you want to show a vnc session
over only a selected set of displays, because then we only want to
capture those displays.

The solution in the commit was chosen because it handles all cases - by
looking at what monitors are enclosed by the viewport the implementation
is independent on any configuration, but instead captures the monitors
actually being used.

3 years agoMerge branch 'utilize-system-wide-crypto' of https://github.com/grulja/tigervnc
Pierre Ossman [Wed, 14 Jul 2021 12:24:08 +0000 (14:24 +0200)]
Merge branch 'utilize-system-wide-crypto' of https://github.com/grulja/tigervnc

3 years agoUtilize system-wide crypto policies 1262/head
Jan Grulich [Mon, 12 Jul 2021 10:43:47 +0000 (12:43 +0200)]
Utilize system-wide crypto policies

3 years agoMerge branch 'xvfb' of https://github.com/CendioOssman/tigervnc
Pierre Ossman [Wed, 14 Jul 2021 10:26:46 +0000 (12:26 +0200)]
Merge branch 'xvfb' of https://github.com/CendioOssman/tigervnc

3 years agoRemove vfb references from symbol names 1288/head
Pierre Ossman [Tue, 13 Jul 2021 10:42:56 +0000 (12:42 +0200)]
Remove vfb references from symbol names

Xvnc was originally based on Xvfb, but it's just confusing to keep the
names. So change all prefix to "vnc" instead to clearly mark things as
part of TigerVNC.

3 years agoRemove zaphod mode from Xvnc
Pierre Ossman [Tue, 13 Jul 2021 10:36:10 +0000 (12:36 +0200)]
Remove zaphod mode from Xvnc

It isn't really useful as it behaves just like starting multiple
servers, so remove it in favour of keeping things simple.

3 years agoRemove undocumented -linebias argument
Pierre Ossman [Tue, 13 Jul 2021 08:32:42 +0000 (10:32 +0200)]
Remove undocumented -linebias argument

This is a development flag with no real use, so remove it to clean up
the code.

3 years agoClean up Xvnc screen struct
Pierre Ossman [Tue, 13 Jul 2021 07:44:00 +0000 (09:44 +0200)]
Clean up Xvnc screen struct

Remove stuff we don't use, and get it more in sync with Xvfb for easier
comparison.

3 years agoRemove unused headers
Pierre Ossman [Tue, 13 Jul 2021 07:28:06 +0000 (09:28 +0200)]
Remove unused headers

3 years agoRemove obsolete AIX hack
Pierre Ossman [Mon, 12 Jul 2021 15:35:59 +0000 (17:35 +0200)]
Remove obsolete AIX hack

3 years agoRemove obsolete comment about backing store
Pierre Ossman [Mon, 12 Jul 2021 15:35:44 +0000 (17:35 +0200)]
Remove obsolete comment about backing store

This was removed years ago.

3 years agoRemove CloseScreen() wrapper
Pierre Ossman [Mon, 12 Jul 2021 15:26:54 +0000 (17:26 +0200)]
Remove CloseScreen() wrapper

The memory leak this worked around was fixed in X.org 1.16.

3 years agoDo all RandR init in vncRandRInit()
Pierre Ossman [Mon, 12 Jul 2021 15:15:25 +0000 (17:15 +0200)]
Do all RandR init in vncRandRInit()

Keep everything in one place to make it easier to read.

This also removes the call to RRInit() as that is done implicitly
anyway.

3 years agoUse central SetRootClip()
Pierre Ossman [Mon, 12 Jul 2021 15:03:36 +0000 (17:03 +0200)]
Use central SetRootClip()

There's been a common one since X.org 1.11, so use that instead of our
own copy.

3 years agoRemove Darwin code from Xvnc
Pierre Ossman [Mon, 12 Jul 2021 14:29:55 +0000 (16:29 +0200)]
Remove Darwin code from Xvnc

We don't build for that platform anyway, so this is just a remnant from
Xvfb.

3 years agoHandle X.org patch level features
Pierre Ossman [Sun, 11 Jul 2021 18:59:48 +0000 (20:59 +0200)]
Handle X.org patch level features

With the 1.20.x releases there has been features and API changes even on
patch level versions, so we need to update our macros to handle these as
well.

3 years agoRemove shared memory framebuffer option
Pierre Ossman [Sun, 11 Jul 2021 18:33:07 +0000 (20:33 +0200)]
Remove shared memory framebuffer option

This is a pointless remnant of Xvfb. We never print the id of the shared
memory, so no other application can access this memory anyway.

3 years agoRemove more color map code from Xvnc
Pierre Ossman [Sun, 11 Jul 2021 18:19:10 +0000 (20:19 +0200)]
Remove more color map code from Xvnc

This hasn't been supported or used in many years, so clean out the final
remnants.

3 years agoRemove DDXTIME code
Pierre Ossman [Sun, 11 Jul 2021 18:05:54 +0000 (20:05 +0200)]
Remove DDXTIME code

This hasn't been used since xorg-server 1.1 so get rid of it.

3 years agoCall FatalError() on bad Xvnc arguments
Pierre Ossman [Sun, 11 Jul 2021 17:59:19 +0000 (19:59 +0200)]
Call FatalError() on bad Xvnc arguments

This is consistent with other ddx behaviour.

3 years agoUse CHECK_FOR_REQUIRED_ARGUMENTS() for arg check
Pierre Ossman [Sun, 11 Jul 2021 17:45:11 +0000 (19:45 +0200)]
Use CHECK_FOR_REQUIRED_ARGUMENTS() for arg check

This is what all the other ddx variants use, so do the same in Xvnc to
be consistent.

3 years agoApply Xorg coding style to xvnc.c
Pierre Ossman [Sun, 11 Jul 2021 17:41:34 +0000 (19:41 +0200)]
Apply Xorg coding style to xvnc.c

Makes it easier to compare with upstream files as the formatting will be
the same.

3 years agoRemove #ifdef RENDER
Pierre Ossman [Sun, 11 Jul 2021 17:21:58 +0000 (19:21 +0200)]
Remove #ifdef RENDER

RENDER has been mandatory since xorg-server 1.9, so remove these
checks.

3 years agoMove ddxInputThreadInit() to xvnc.c
Pierre Ossman [Sun, 11 Jul 2021 17:20:48 +0000 (19:20 +0200)]
Move ddxInputThreadInit() to xvnc.c

This should only be in the ddx parts of an X server, and Input.c is used
by libvnc.so as well and can cause conflicts there.

3 years agoRemove Ubuntu rethrow signals patch
Pierre Ossman [Tue, 13 Jul 2021 12:25:23 +0000 (14:25 +0200)]
Remove Ubuntu rethrow signals patch

This was removed from Ubunut's X.org packages years ago, so drop it from
our packing as well.

3 years agoCorrectly handle screen layout with offset
Pierre Ossman [Thu, 17 Jun 2021 13:39:30 +0000 (15:39 +0200)]
Correctly handle screen layout with offset

We miscalculated the screen layout if the geometry had an offset as we
adjusted the real screen layout to account for the offset, but compared
it to the unadjusted geometry.

3 years agoMerge branch 'smooth-edge-scrolling' of https://github.com/ToyKeeper/tigervnc
Pierre Ossman [Wed, 16 Jun 2021 12:13:31 +0000 (14:13 +0200)]
Merge branch 'smooth-edge-scrolling' of https://github.com/ToyKeeper/tigervnc

3 years agoMerge branch 'master' of https://github.com/jasonsikes/tigervnc
Pierre Ossman [Wed, 16 Jun 2021 12:10:47 +0000 (14:10 +0200)]
Merge branch 'master' of https://github.com/jasonsikes/tigervnc

3 years agoAvoid some variable aliasing
Pierre Ossman [Mon, 14 Jun 2021 07:43:10 +0000 (09:43 +0200)]
Avoid some variable aliasing

3 years agoRemove unnecessary header include
Pierre Ossman [Sun, 13 Jun 2021 16:29:40 +0000 (18:29 +0200)]
Remove unnecessary header include

3 years agoUse <user>@<hostname> as the default desktop name
Pierre Ossman [Sun, 13 Jun 2021 16:28:16 +0000 (18:28 +0200)]
Use <user>@<hostname> as the default desktop name

Is a lot more useful default than the previous "x11", or "x0vncserver".
At the same time give x0vncserver a parameter to change the name.

3 years agoClean up default value for X509 parameters
Pierre Ossman [Fri, 11 Jun 2021 15:40:02 +0000 (17:40 +0200)]
Clean up default value for X509 parameters

Let's avoid making this too complex and force every user to know about
magical functions.

3 years agoUse RFC7919-2048 group in GnuTLS for FIPS compliance. 1273/head
JASON SIKES [Sun, 13 Jun 2021 01:45:20 +0000 (18:45 -0700)]
Use RFC7919-2048 group in GnuTLS for FIPS compliance.

3 years agoKeep own memory for duplicate config value
Pierre Ossman [Fri, 11 Jun 2021 15:20:44 +0000 (17:20 +0200)]
Keep own memory for duplicate config value

Allows the default value to be dynamically generated in a buffer that is
reused.

3 years agoRemove unused LogParameter::setDefault()
Pierre Ossman [Fri, 11 Jun 2021 15:20:02 +0000 (17:20 +0200)]
Remove unused LogParameter::setDefault()

3 years agoDon't list clipboard parameters for x0vncserver
Pierre Ossman [Fri, 11 Jun 2021 14:54:55 +0000 (16:54 +0200)]
Don't list clipboard parameters for x0vncserver

Better to just hide these parameters rather than stating that they are
unused in the man page.

3 years agoMerge branch 'tls' of https://github.com/CendioOssman/tigervnc
Pierre Ossman [Fri, 11 Jun 2021 11:07:33 +0000 (13:07 +0200)]
Merge branch 'tls' of https://github.com/CendioOssman/tigervnc

3 years agoDon't wait for TLS close response 1272/head
Pierre Ossman [Fri, 11 Jun 2021 07:40:49 +0000 (09:40 +0200)]
Don't wait for TLS close response

Our current architecture doesn't support waiting for a response here, so
don't even try or we'll just get an error.

3 years agoHandle GnuTLS shutdown on dead session
Pierre Ossman [Thu, 10 Jun 2021 14:40:28 +0000 (16:40 +0200)]
Handle GnuTLS shutdown on dead session

The session might have died, or failed to initialise properly, so be
prepared for gnutls_bye() to be unable to do its job.

3 years agoProperly clean up client VeNCrypt handling
Pierre Ossman [Thu, 10 Jun 2021 14:37:34 +0000 (16:37 +0200)]
Properly clean up client VeNCrypt handling

We would leak the security module below the top client VeNCrypt module,
meaning that those modules would not get a chance to shut down
gracefully.

3 years agoRemove unneeded NULL checks
Pierre Ossman [Thu, 10 Jun 2021 14:36:46 +0000 (16:36 +0200)]
Remove unneeded NULL checks

It's perfectly safe to delete NULL pointers, so simplify things by
removing these checks.

3 years agoPropagate exceptions from GnuTLS push/pull functions
Pierre Ossman [Thu, 10 Jun 2021 14:34:15 +0000 (16:34 +0200)]
Propagate exceptions from GnuTLS push/pull functions

Gives us a more meaningful error rather than just "Error in push/pull
function".

3 years agoRemove early data check for TLSInStream
Pierre Ossman [Thu, 10 Jun 2021 14:32:29 +0000 (16:32 +0200)]
Remove early data check for TLSInStream

Having this early check means that we somewhat randomly get different
exception behaviours on errors in deeper layers as some exceptions are
allowed to propagate unhindered and some are not (since they are thrown
in the pull function).

3 years agoPropagate errno to GnuTLS
Pierre Ossman [Thu, 10 Jun 2021 14:31:24 +0000 (16:31 +0200)]
Propagate errno to GnuTLS

Give GnuTLS the correct errno from deeper layers, in the cases where we
know it. In most cases GnuTLS doesn't care, but just in case...

3 years agoMerge branch 'actions' of https://github.com/CendioOssman/tigervnc
Pierre Ossman [Tue, 8 Jun 2021 10:13:56 +0000 (12:13 +0200)]
Merge branch 'actions' of https://github.com/CendioOssman/tigervnc

3 years agoConvert CI to GitHub Actions 1266/head
Pierre Ossman [Mon, 7 Jun 2021 15:09:15 +0000 (17:09 +0200)]
Convert CI to GitHub Actions

Travis has unfortunately been severely rate limited by Docker Hub so we
have to switch to GitHub, which has an agreement with Docker to avoid
the rate limiting.

3 years agoDon't run container builds with a TTY
Pierre Ossman [Tue, 8 Jun 2021 08:32:57 +0000 (10:32 +0200)]
Don't run container builds with a TTY

No TTY is provided in GitHub's environment, so we cannot have this flag.

3 years agoForce update of libarchive in CentOS 8 image
Pierre Ossman [Tue, 8 Jun 2021 08:43:35 +0000 (10:43 +0200)]
Force update of libarchive in CentOS 8 image

Otherwise cmake breaks as it requires a newer version without properly
listing that in its dependencies.

3 years agoDisable nonliteral format warnings on clang
Pierre Ossman [Tue, 8 Jun 2021 08:14:17 +0000 (10:14 +0200)]
Disable nonliteral format warnings on clang

These are incompatible with functions such as gettext() as clang hasn't
implemented the function attribute function_arg.

3 years agoBoot strap github actions
Pierre Ossman [Mon, 7 Jun 2021 15:07:50 +0000 (17:07 +0200)]
Boot strap github actions

A initial workflow needs to be defined for actions to trigger on pull
requests, so just add a minimal, dummy one.

3 years agoCharArray: pre-fill empty array with zeroes
Jan Grulich [Tue, 25 May 2021 12:18:48 +0000 (14:18 +0200)]
CharArray: pre-fill empty array with zeroes

CharArray should always be null-terminated. There is a potential
scenario where this all might lead to crash. In Password we call
memset(), passing length of the array we get with strlen(), but
this won't return correct value when the array is not properly
null-terminated.

3 years agoMerge branch 'view-only-password' of https://github.com/grulja/tigervnc
Pierre Ossman [Mon, 7 Jun 2021 13:33:09 +0000 (15:33 +0200)]
Merge branch 'view-only-password' of https://github.com/grulja/tigervnc

3 years agoRefer to HOWTO.md from config comments
Pierre Ossman [Mon, 7 Jun 2021 12:29:37 +0000 (14:29 +0200)]
Refer to HOWTO.md from config comments

Give people a chance to know about the documentation.

3 years agoInclude "session" in examples instead of "desktop"
Pierre Ossman [Mon, 7 Jun 2021 12:28:25 +0000 (14:28 +0200)]
Include "session" in examples instead of "desktop"

It's almost mandatory to specify "session", but fairly rare to need to
set "desktop", so let's tweak the examples to avoid confusion and
mistakes.

3 years agoLet user know that a view-only password is not used 1260/head
Jan Grulich [Tue, 25 May 2021 12:14:33 +0000 (14:14 +0200)]
Let user know that a view-only password is not used

3 years agoUpdate RHEL package spec files 1249/head
Jan Grulich [Tue, 18 May 2021 07:16:57 +0000 (09:16 +0200)]
Update RHEL package spec files

3 years agoSELinux: Add missing compression and install policy to correct directory
Jan Grulich [Mon, 17 May 2021 11:44:32 +0000 (13:44 +0200)]
SELinux: Add missing compression and install policy to correct directory

3 years agoAvoid absolute path for vncserver.users
Pierre Ossman [Mon, 3 May 2021 13:04:45 +0000 (15:04 +0200)]
Avoid absolute path for vncserver.users

Build flags control where this file ends up, so avoid assuming a
specific path in the HOWTO.

3 years agoReflow HOWTO.md to 72 columns
Pierre Ossman [Mon, 3 May 2021 13:03:53 +0000 (15:03 +0200)]
Reflow HOWTO.md to 72 columns

The line width was very inconsitent in this file, so standardise on the
common 72 characters.

3 years agomade full-screen edge scrolling smoother and faster 1242/head
Selene ToyKeeper [Fri, 30 Apr 2021 14:34:17 +0000 (08:34 -0600)]
made full-screen edge scrolling smoother and faster

The old method used a very slow frame rate with small steps,
which made it obnoxious during use.  The new method has a few
improvements:

- Calculates "edge" region width automatically, as a ratio of
  the viewport size.  Default is 1/16th.

- Uses a different edge width for x and y, which works better
  on very wide or very tall screens.

- Increased default frame rate from 10 fps to 60 fps.

- Replaced hardcoded frame rate with a #define.

- Reduced maximum movement per frame slightly, because the
  frame rate is so much faster.  The overall result is still much
  faster, but also easier to do small adjustments with.

- Fixed off-by-one error in scroll rate calculation formula.  Left/up
  scrolls were faster than down/right, but this is fixed.

This makes it more comfortable to use TigerVNC on a small screen
to work on a larger screen for hours at a time.

3 years agoValidate translations during build
Pierre Ossman [Mon, 26 Apr 2021 07:36:46 +0000 (09:36 +0200)]
Validate translations during build

Incorrect format strings can cause crashes, so we want to catch those
early.

3 years agoUpdate Greek translation
Vangelis Skarmoutsos [Fri, 23 Apr 2021 15:00:00 +0000 (18:00 +0300)]
Update Greek translation

3 years agoMaintain static screen DPI on resize
Pierre Ossman [Thu, 1 Nov 2018 09:19:15 +0000 (10:19 +0100)]
Maintain static screen DPI on resize

Trying to dynamically track the DPI did not really work as we'd
start accumulating errors and eventually the DPI would start to
drift. Instead maintain a fixed, sensible DPI at all times.

3 years agoUpdate Finnish translation
Lauri Nurmi [Mon, 9 Dec 2019 21:16:00 +0000 (23:16 +0200)]
Update Finnish translation

3 years agoFix typo in README
Samuel Mannehed [Mon, 22 Mar 2021 08:21:00 +0000 (09:21 +0100)]
Fix typo in README

Thanks @Raulkumar for finding this in #1118

3 years agoCreate VNC homedir if it doesn't already exist
Brian P. Hinz [Fri, 12 Mar 2021 00:59:29 +0000 (19:59 -0500)]
Create VNC homedir if it doesn't already exist

3 years agoFix for issue 1215
Brian P. Hinz [Fri, 12 Mar 2021 00:31:11 +0000 (19:31 -0500)]
Fix for issue 1215

3 years agoFix for issue 1216
Brian P. Hinz [Fri, 12 Mar 2021 00:15:34 +0000 (19:15 -0500)]
Fix for issue 1216

3 years agoMerge branches 'vmware-cursor-position' and 'vmware-cursor-position-vncviewer' of...
Pierre Ossman [Thu, 11 Mar 2021 14:54:09 +0000 (15:54 +0100)]
Merge branches 'vmware-cursor-position' and 'vmware-cursor-position-vncviewer' of https://github.com/lhchavez/tigervnc

3 years agoSupport the VMware Cursor Position extension on vncviewer 1212/head
lhchavez [Mon, 8 Feb 2021 15:09:10 +0000 (07:09 -0800)]
Support the VMware Cursor Position extension on vncviewer

This change makes it possible for re-synchronizing the remote cursor on
the vncviewer when in fullscreen mode. This is done by locally moving
the cursor position to what the server thinks it should be.

Now SDL games should work!

3 years agoFix logging in daemonized tl-session
Pierre Ossman [Thu, 11 Mar 2021 09:00:05 +0000 (10:00 +0100)]
Fix logging in daemonized tl-session

stderr has been redirected to /dev/null so all logging needs to go to
syslog.

3 years agoAdd support for notifying clients about pointer movements 1198/head
lhchavez [Mon, 8 Feb 2021 00:36:47 +0000 (16:36 -0800)]
Add support for notifying clients about pointer movements

This change adds support for the VMware Mouse Position
pseudo-encoding[1], which is used to notify VNC clients when X11 clients
call `XWarpPointer()`[2]. This function is called by SDL (and other
similar libraries)  when they detect that the server does not support
native relative motion, like some RFB clients.

With this, RFB clients can choose to adjust the local cursor position
under certain circumstances to match what the server has set. For
instance, if pointer lock has been enabled on the client's machine and
the cursor is not being drawn locally, the local position of the cursor
is irrelevant, so the RFB client can use what the server sends as the
canonical absolute position of the cursor. This ultimately enables the
possibility of games (especially FPS games) to behave how users expect
(if the clients implement the corresponding change).

Part of: #619

1: https://github.com/rfbproto/rfbproto/blob/master/rfbproto.rst#vmware-cursor-position-pseudo-encoding
2: https://tronche.com/gui/x/xlib/input/XWarpPointer.html
3: https://hg.libsdl.org/SDL/file/28e3b60e2131/src/events/SDL_mouse.c#l804

3 years agoSpecify HOWTO.md in spec files
Pierre Ossman [Tue, 2 Mar 2021 13:41:08 +0000 (14:41 +0100)]
Specify HOWTO.md in spec files

Or rpmbuild gets grumpy.

3 years agoRevert "Support TCP_NOPUSH as alternative to TCP_CORK"
Pierre Ossman [Tue, 2 Mar 2021 13:36:12 +0000 (14:36 +0100)]
Revert "Support TCP_NOPUSH as alternative to TCP_CORK"

This reverts commit d6e39658ae105fca2cfe37ba736dbf0e8d8356af. Apparently
this is broken on macOS so it's not something we can make use of.

3 years agoMerge branch 'documentation' of https://github.com/grulja/tigervnc
Pierre Ossman [Tue, 2 Mar 2021 12:30:11 +0000 (13:30 +0100)]
Merge branch 'documentation' of https://github.com/grulja/tigervnc

3 years agoFix some incorrect data waits
Pierre Ossman [Tue, 2 Mar 2021 12:16:34 +0000 (13:16 +0100)]
Fix some incorrect data waits

Some of these were incorrectly calculated so the server or client would
wait too long before proceeding with decoding.

Change all of these to be a more explicit calculation to avoid such
issues in the future.

3 years agoSupport TCP_NOPUSH as alternative to TCP_CORK
Pierre Ossman [Tue, 2 Mar 2021 12:15:35 +0000 (13:15 +0100)]
Support TCP_NOPUSH as alternative to TCP_CORK

TCP_CORK is a Linux thing and BSD has TCP_NOPUSH instead.

3 years agoAdd missing headers for TCP_CORK
Pierre Ossman [Tue, 2 Mar 2021 12:14:50 +0000 (13:14 +0100)]
Add missing headers for TCP_CORK

We didn't include the proper headers to get the correct define, so
corking was never enabled.

3 years agoAdd documentation to the new systemd support 1203/head
Jan Grulich [Fri, 12 Feb 2021 09:56:41 +0000 (10:56 +0100)]
Add documentation to the new systemd support

3 years agoDrop other selection on ownership change
Pierre Ossman [Mon, 1 Mar 2021 14:46:35 +0000 (15:46 +0100)]
Drop other selection on ownership change

Otherwise we might end up owners of something we cannot deliver data on,
which can hang applications.

3 years agoAdd Hebrew translation
Yaron Shahrabani [Tue, 9 Feb 2021 23:14:00 +0000 (01:14 +0200)]
Add Hebrew translation

3 years agoMerge branch 'allow-tcp-and-unix' of https://github.com/jlesage/tigervnc
Pierre Ossman [Tue, 9 Feb 2021 08:01:22 +0000 (09:01 +0100)]
Merge branch 'allow-tcp-and-unix' of https://github.com/jlesage/tigervnc

3 years agoAdded the ability to listen on both Unix socket and TCP port. 1191/head
Jocelyn Le Sage [Sat, 23 Jan 2021 00:56:53 +0000 (19:56 -0500)]
Added the ability to listen on both Unix socket and TCP port.

Setting `rfbport` to `-1` disables TCP port listening.

3 years agoMerge branch 'autoclip' of https://github.com/CendioOssman/tigervnc
Pierre Ossman [Wed, 3 Feb 2021 08:35:44 +0000 (09:35 +0100)]
Merge branch 'autoclip' of https://github.com/CendioOssman/tigervnc

3 years agoFix overloaded function signature
Pierre Ossman [Tue, 26 Jan 2021 09:38:09 +0000 (10:38 +0100)]
Fix overloaded function signature

3 years agoRemove unused attributes
Pierre Ossman [Tue, 26 Jan 2021 09:37:44 +0000 (10:37 +0100)]
Remove unused attributes

3 years agoUpdate copyright year to 2021
Pierre Ossman [Mon, 25 Jan 2021 13:04:12 +0000 (14:04 +0100)]
Update copyright year to 2021

3 years agoHeavily reduce window for bandwidth estimate
Pierre Ossman [Mon, 18 Jan 2021 16:17:43 +0000 (17:17 +0100)]
Heavily reduce window for bandwidth estimate

It took way too long to converge on a sane value, so reduce the window
by a factor of ten. This seems to work smoothly.

3 years agoMerge branch 'noblock' of https://github.com/CendioOssman/tigervnc
Pierre Ossman [Tue, 19 Jan 2021 12:45:06 +0000 (13:45 +0100)]
Merge branch 'noblock' of https://github.com/CendioOssman/tigervnc

3 years agoAdd link to discussion groups from issues
Pierre Ossman [Fri, 15 Jan 2021 15:21:20 +0000 (16:21 +0100)]
Add link to discussion groups from issues

So that people can easily find them and not file bug reports for
things that are just questions.

3 years agoHide link to create blank issues
Pierre Ossman [Fri, 15 Jan 2021 15:18:45 +0000 (16:18 +0100)]
Hide link to create blank issues

We want users to use the templates so we don't miss any relevant
information.