aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Disable dangerous macOS SDK macrosPierre Ossman2021-08-271-0/+5
| | | | | They define macros such as "check()" which causes our code to break as we have methods with that name.
* Merge branch 'fb-session-nfs' of https://github.com/zpytela/tigervncPierre Ossman2021-08-262-32/+47
|\
| * Add vnc_home_t typeZdenek Pytela2021-05-182-15/+13
| | | | | | | | | | | | The new vnc_home_t type for HOME/.vnc directory was added to the policy, backed by a name transition. The vnc_session_t domain can manage files and directories of this type.
| * Allow vnc_session_t manage nfs dirs and files conditionallyZdenek Pytela2021-05-181-0/+5
| | | | | | | | | | | | | | The permissions set to manage directories and files with the nfs_t type is allowed when the use_nfs_home_dirs boolean is turned on. Resolves: https://github.com/TigerVNC/tigervnc/issues/1189
| * selinux: further style and comprehensibility improvementsZdenek Pytela2021-05-181-23/+36
| | | | | | | | | | | | Sections and rules blocks reordered according to the Style guide. https://github.com/TresysTechnology/refpolicy/wiki/StyleGuide
| * selinux: Fix issues reported by SELintVit Mojzis2021-05-181-4/+3
| | | | | | | | | | | | Style guide [1] issues only. No impact on policy functionality. [1] - https://github.com/TresysTechnology/refpolicy/wiki/StyleGuide
* | Expose reconnect setting in options dialogPierre Ossman2021-07-233-0/+10
| |
* | Retry connection in case of an errorJohannes2021-07-239-61/+141
| |
* | Merge branch 'x0-interface-option' of https://github.com/sotho/tigervncPierre Ossman2021-07-232-2/+14
|\ \
| * | Add -interface option to x0vncserverAlexander Elbs2021-07-232-2/+14
| | |
| | |
| \ \
| \ \
| \ \
*---. \ \ Merge branches 'host-name-max', 'fix-build-viewer-off' and ↵Pierre Ossman2021-07-2312-88/+93
|\ \ \ \ \ | |_|_|/ / |/| | | | | | | | | 'fix-case-insensitive-fs' of https://github.com/arichardson/tigervnc
| | | * | Rename Input.h to vncInput.h to fix building on case-insensitive FSAlex Richardson2021-07-156-9/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I am cross-compiling from macOS for a FreeBSD-derived system so my host file system is case insensitive but the target isn't. Without this change I get the following warnings which show that the vnc "Input.h" is being included from mi/mi.h instead of the xserver "input.h": ``` In file included from /Users/alex/cheri/xvnc-server/hw/vnc/Input.c:33: /Users/alex/cheri/xvnc-server/mi/mi.h:55:10: warning: non-portable path to file '"Input.h"'; specified path differs in case from file name on disk [-Wnonportable-include-path] #include "input.h" ^~~~~~~~~ "Input.h" ```
| | * | | Allow building with -DBUILD_VIEWER=OFFAlex Richardson2021-07-153-51/+56
| | |/ / | | | | | | | | | | | | | | | | Without this change I get CMake errors due to use of ${FLTK_INCLUDE_DIR} and references to the non-existent vncviewer target.
| * / / Fix build on systems without HOST_NAME_MAXAlex Richardson2021-07-153-28/+29
| |/ / | | | | | | | | | | | | | | | Some operating systems such as FreeBSD don't define a HOST_NAME_MAX macro. The portable approach to determine the real host name limit is calling sysconf(_SC_HOST_NAME_MAX) so do that instead.
* | | Keep ownership of second selection when first is lostPierre Ossman2021-07-202-13/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes regression introduced by the extended clipboard extension. Previously it was possible for the server to hold on to the CLIPBOARD selection even if another application took ownership of PRIMARY. This is important to handle the common use case of selecting something in order to paste over it. The new request based model doesn't readily support this as we assume the client has lost its data once we push the new PRIMARY selection to it. So to handle this we have the maintain a cache of the client's data, and make sure to fill that cache before we do anything that might cause the client to lose the data.
* | | Simply screen refresh handlerPierre Ossman2021-07-201-9/+4
| | | | | | | | | | | | | | | We only need to check the event type once, and preferably early, and avoid doing more work than necessary.
* | | Only log error when setting FullScreenSelectedMonitorsPierre Ossman2021-07-192-12/+18
| | | | | | | | | | | | | | | We don't want the log to spam every time this parameter is used so only complain from the parses when the value is changed.
* | | Don't reference specific variable in classPierre Ossman2021-07-191-3/+3
| | | | | | | | | | | | | | | This class is generic and should not reference a specific instance of it.
* | | Avoiding final period in log messagesPierre Ossman2021-07-193-10/+10
| | | | | | | | | | | | Try to be consistent with existing log messages.
* | | Clean up style in recent monitor codePierre Ossman2021-07-196-89/+89
| | | | | | | | | | | | | | | | | | | | | Fix some indentation issues and make sure everything* uses CamelCase. * MonitorArrangement is left as snake_case in order to pretend it is an independent FLTK widget class.
* | | Refresh MonitorArrangement on configuration changeHugo Lundin2021-07-162-0/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Merge branch 'selected_monitors' of https://github.com/hugolundin/tigervncPierre Ossman2021-07-1616-103/+1226
|\ \ \
| * | | Add monitor description to tooltipHugo Lundin2021-07-165-0/+226
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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).
| * | | Explicitly choose current monitorHugo Lundin2021-07-161-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | Add fullscreen mode for selected monitorsHugo Lundin2021-07-1611-11/+753
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | Add fullscreen mode parameterHugo Lundin2021-07-167-69/+182
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | Calculate overlay position from window sizeHugo Lundin2021-07-161-2/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | Release displays not enclosed by the windowHugo Lundin2021-07-162-19/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | Capture all displays inside the viewport (macOS)Hugo Lundin2021-07-163-20/+27
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* / / Fix priority string when using newer GnuTLSJan Grulich2021-07-162-2/+6
|/ / | | | | | | | | The call of gnutls_set_default_priority_append() expects a normal priority string, which means it must not start with ':'.
* | Merge branch 'utilize-system-wide-crypto' of https://github.com/grulja/tigervncPierre Ossman2021-07-144-30/+108
|\ \
| * | Utilize system-wide crypto policiesJan Grulich2021-07-144-30/+108
| | |
* | | Merge branch 'xvfb' of https://github.com/CendioOssman/tigervncPierre Ossman2021-07-1414-1084/+481
|\ \ \
| * | | Remove vfb references from symbol namesPierre Ossman2021-07-134-69/+69
| | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | Remove zaphod mode from XvncPierre Ossman2021-07-131-164/+64
| | | | | | | | | | | | | | | | | | | | It isn't really useful as it behaves just like starting multiple servers, so remove it in favour of keeping things simple.
| * | | Remove undocumented -linebias argumentPierre Ossman2021-07-131-26/+0
| | | | | | | | | | | | | | | | | | | | This is a development flag with no real use, so remove it to clean up the code.
| * | | Clean up Xvnc screen structPierre Ossman2021-07-131-18/+6
| | | | | | | | | | | | | | | | | | | | Remove stuff we don't use, and get it more in sync with Xvfb for easier comparison.
| * | | Remove unused headersPierre Ossman2021-07-131-8/+1
| | | |
| * | | Remove obsolete AIX hackPierre Ossman2021-07-131-5/+0
| | | |
| * | | Remove obsolete comment about backing storePierre Ossman2021-07-131-5/+0
| | | | | | | | | | | | | | | | This was removed years ago.
| * | | Remove CloseScreen() wrapperPierre Ossman2021-07-131-22/+0
| | | | | | | | | | | | | | | | The memory leak this worked around was fixed in X.org 1.16.
| * | | Do all RandR init in vncRandRInit()Pierre Ossman2021-07-131-20/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Keep everything in one place to make it easier to read. This also removes the call to RRInit() as that is done implicitly anyway.
| * | | Use central SetRootClip()Pierre Ossman2021-07-131-90/+4
| | | | | | | | | | | | | | | | | | | | There's been a common one since X.org 1.11, so use that instead of our own copy.
| * | | Remove Darwin code from XvncPierre Ossman2021-07-131-22/+0
| | | | | | | | | | | | | | | | | | | | We don't build for that platform anyway, so this is just a remnant from Xvfb.
| * | | Handle X.org patch level featuresPierre Ossman2021-07-136-40/+41
| | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | Remove shared memory framebuffer optionPierre Ossman2021-07-131-77/+3
| | | | | | | | | | | | | | | | | | | | 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.
| * | | Remove more color map code from XvncPierre Ossman2021-07-131-151/+0
| | | | | | | | | | | | | | | | | | | | This hasn't been supported or used in many years, so clean out the final remnants.
| * | | Remove DDXTIME codePierre Ossman2021-07-131-11/+0
| | | | | | | | | | | | | | | | This hasn't been used since xorg-server 1.1 so get rid of it.
| * | | Call FatalError() on bad Xvnc argumentsPierre Ossman2021-07-131-6/+12
| | | | | | | | | | | | | | | | This is consistent with other ddx behaviour.
| * | | Use CHECK_FOR_REQUIRED_ARGUMENTS() for arg checkPierre Ossman2021-07-131-15/+15
| | | | | | | | | | | | | | | | | | | | This is what all the other ddx variants use, so do the same in Xvnc to be consistent.