Compare commits

...

54 Commits

Author SHA1 Message Date
Dom Rodriguez
fabeb618a9 Remove Debug build agents for Mac CI jobs
This addresses @p12tic's feedback regarding CI CPU time.

Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-06 17:52:49 +00:00
Dom Rodriguez
20f0583c18 As per @p12tic's feedback on PR #1385, revert previous log message
@p12tic felt that we should have the log message at the end of the build
script to assist log inspections

Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-06 17:52:49 +00:00
Dom Rodriguez
0ac60d34e9 Remove Release type condition for artifact publishing (Mac)
This commit removes the 'Release' `B_BUILD_TYPE` condition for the Mac
builder, and instead just keeps the condition of the image ONLY to be
built by the Big Sur build agent.

Now, the reason for that condition is because I am future proofing the
CI configuration for when we ship M1 builds. Currently, we do not. The
other reason, but also more pressing, is to avoid multiple artifacts
being published. There *is* a possibility the Big Sur build agent
becomes incompatible with older macOS releases, but the CMake
configuration would seem to suggest there's backwards compatibility
being available.

Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-06 17:52:49 +00:00
Dom Rodriguez
275f19461d Revert artifact name to original name (Mac)
Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-06 17:52:49 +00:00
Dom Rodriguez
af99862143 Revert Mac build job name to original name
Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-06 17:52:49 +00:00
Dom Rodriguez
bafd58387f Simplify sourcing of environment overriding script
Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-06 17:52:49 +00:00
Dom Rodriguez
c61e98169c Remove obvious comments
Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-06 17:52:49 +00:00
Dom Rodriguez
09863ead1b Remove redundant exit command
Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-06 17:52:49 +00:00
Dom Rodriguez
c05efd2393 Remove experimental Rust code - what?
I was working on experimental Rust code to see if it'd be possible to glue C++ and Rust together, and didn't stash it. When I did `git add`, it added the Rust code, and ... yeah, whoops.

Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-06 17:52:49 +00:00
Dom Rodriguez
db90a85aa4 Remove file existence check for Mac environment variables
Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-06 17:52:48 +00:00
Dom Rodriguez
08128f9a07 Remove Universal Binary reference in Mac Release build
Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-06 17:52:48 +00:00
Dom Rodriguez
8ee832263b Revert back to previous building behaviour on *nix/Mac systems
This is based on the feedback from @p12tic, and I also think it might
lead to a regression on systems that don't have the correct version of CMake,
and/or a Make implementation that doesn't support "-C".

Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-06 17:52:48 +00:00
Dom Rodriguez
ac1148a8b8 Remove noisy commented-out code in CMakeLists.txt
Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-06 17:52:48 +00:00
Dom Rodriguez
21de971a94 Simplify build directory clean up
Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-06 17:52:48 +00:00
Dom Rodriguez
16b2f93bf5 Remove check for macos_environment.sh - no need for it
We can just do a one-liner here, if it fails, the script fails, and it
should do that. Also renamed macOS_environment to all lower-case (and snake_case).

Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-06 17:52:48 +00:00
Dom Rodriguez
cb754b6799 Simplify B_CMAKE_FLAGS, and declare before further configuration
Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-06 17:52:48 +00:00
Dom Rodriguez
4308e91214 Remove redundant comments and output as per @p12tic's feedback
Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-06 17:52:48 +00:00
Dom Rodriguez
61898a6509 Renamed Mac env script as per @p12tic's feedback
Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-06 17:52:48 +00:00
Dom Rodriguez
5d50eec10d Disable arm64 & x86_64 Mac builds - Qt causes build failures
Related to #1395.

Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-06 17:52:47 +00:00
Dom Rodriguez
2e0f54822e Simplify CI jobs, and merge DMG generation into one job
This commit merges the macOSRelease job into one unified Mac build job.

Using Azure Pipelines conditionals (AND), we check for the build type being an release, and the build agent being Big Sur.

Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-06 17:52:47 +00:00
Dom Rodriguez
f1c5405873 Modify CI configuration - Mac matrix dual builds
This commit changes the CI configuration to dual-build Release and Debug types
for the Mac build agents - Mojave, Catalina and Big Sur. This ensures for a double check on each build type during testing.

Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-06 17:52:47 +00:00
Dom Rodriguez
55dac2333d Remove CMAKE_OSX_ARCHITECTURES env variable, wrong place
Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-06 17:52:47 +00:00
Dom Rodriguez
464949b402 Adjust CMakeLists to compile for M1 and x86
Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-06 17:52:47 +00:00
Dom Rodriguez
f5c759a910 Refactoring of CI configurations and build scripts
Now, CI builds for macOS involve three separate builds for a range of macOS versions, and a final Universal macOS Binary made on Big Sur. It should work with the M1 chip and x86_64 Intel Macs.

I have also renamed osx_environment->macOS_environment.sh to reflect the new name change of Apple's desktop OS.

In terms of the clean_builds.sh script, this has also been refactored to be more resilient, and efficient (marginally).

Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-06 17:52:47 +00:00
Dom Rodriguez
4ed0141389 Merge pull request #1403 from shymega/fix/template/pull-request-template-clarify
Clarify PR template with regards to user-visible changes
2021-11-06 16:39:24 +00:00
Dom Rodriguez
37e7741942 Clarify PR template with regards to user-visible changes to Barrier
Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-06 16:25:57 +00:00
Dom Rodriguez
2fcffcdaa9 Merge pull request #1091 from xkr47/patch-1
ServerApp help: Describe the role of the server
2021-11-05 20:55:21 +00:00
Jonas Berlin
2c8f92206f ServerApp help: Describe the role of the server
Signed-off-by: Dom Rodriguez <shymega@shymega.org.uk>
2021-11-05 19:52:15 +00:00
Dom Rodriguez
69ec896e65 Merge pull request #1391 from p12tic/github-no-automatic-labels
github: Don't automatically add labels to bug reports
2021-11-05 14:44:27 +00:00
Povilas Kanapickas
13d8cd0d65 Merge pull request #1375 from maboroshin/master
translation: ja-JP 2.4.0
2021-11-05 14:45:39 +02:00
Povilas Kanapickas
4e082404f1 Merge pull request #1390 from p12tic/new-releases-numbers
Update releasing procedure for release numbers and add missing details
2021-11-05 14:43:50 +02:00
Povilas Kanapickas
b33af1f94c github: Don't automatically add labels to bug reports
Many bug reports are not about bugs (e.g. just hard to understand
behavior and so on) and some of the remaining are not about bugs in our
project.

It's up to the person doing bug triage to mark whether one believes this
is really a bug or no. Adding "bug" label to everything just introduces
noise.
2021-11-05 14:15:47 +02:00
maboroshin
3153062611 translation: ja-JP 2.4.0
Adjust, fix shortcut keys, translate new strings
2021-11-05 14:12:14 +02:00
Povilas Kanapickas
40d4a58b1c RELEASING: Specify that newest macOS release dmg should be used 2021-11-05 14:10:51 +02:00
Povilas Kanapickas
d874e5f729 RELEASING: Add missing details about updating version numbers 2021-11-05 14:10:51 +02:00
Povilas Kanapickas
584306bf46 github: Add new releases to new issue template dialog 2021-11-05 14:10:50 +02:00
Povilas Kanapickas
8388f229dd Merge pull request #1388 from p12tic/fix-win-build
newsfragments: Fix path that can't be checked out on Windows
2021-11-05 14:10:10 +02:00
Povilas Kanapickas
f4e2e51ce4 newsfragments: Fix path that can't be checked out on Windows 2021-11-05 13:54:07 +02:00
Dom Rodriguez
3a24a76de3 Merge pull request #1260 from jgrisham/patch-1
Modify macOS build files to only allow GUI launch on supported OS versions (and associated documentation change)
2021-11-04 22:50:23 +00:00
Jim Grisham
f8d538f29e Rename macos-launchinfo.bugfix: to 1260_macos-launchinfo.bugfix:
Updated filename to begin with issue number (per the [twisted/towncrier](https://github.com/twisted/towncrier#readme) documentation).
2021-11-04 14:45:11 -07:00
Jim Grisham
842c75747a Create 1260_update-faqs.doc 2021-11-04 14:40:44 -07:00
Jim Grisham
e46b8e558f Create macos-launchinfo.bugfix: 2021-11-04 14:35:51 -07:00
Jim Grisham
cc6067a543 Updated README.md based on PR peer-review comments
Added changes recommended by @shymega in https://github.com/debauchee/barrier/pull/1260
2021-11-04 14:29:00 -07:00
Jim Grisham
dc6ddbc246 Merge branch 'master' into patch-1 2021-11-04 16:08:33 -04:00
Povilas Kanapickas
dc7aa012d5 Merge pull request #1368 from chewi/cstddef-null
Add missing cstddef includes for NULL
2021-11-03 22:57:58 +02:00
James Le Cuirot
4b12265ae5 Add missing cstddef includes for NULL
Fixes https://github.com/debauchee/barrier/issues/1366.
2021-11-03 18:12:56 +02:00
Povilas Kanapickas
141ab9ecb4 Merge pull request #1379 from p12tic/github-pr-template
github: Add pull request template
2021-11-03 14:47:49 +02:00
Povilas Kanapickas
bfc465d477 github: Add pull request template 2021-11-03 14:15:02 +02:00
Povilas Kanapickas
ac5a1bfd3b Merge pull request #1254 from yan12125/fix-wrong-encoding-for-text-copied-between-linux-and-windows
Fix wrong encoding for text copied between linux and windows
2021-11-03 03:33:28 +02:00
Chih-Hsuan Yen
dd3ea8adfe lib/platform: Fix encoding for text copied between linux and windows
Copied from https://github.com/symless/synergy-core/pull/7029. I don't
include the application/x-moz-nativehtml part in that patch as I already
added it in https://github.com/debauchee/barrier/pull/1164.

Fixes https://github.com/debauchee/barrier/issues/1037
Fixes https://github.com/debauchee/barrier/issues/1137

Original author: Serhii Hadzhilov <serhii-external@symless.com>
2021-11-03 03:12:41 +02:00
Povilas Kanapickas
e010f89f41 Merge pull request #1371 from p12tic/doc-release-notes
doc: Add missed details to v2.3.4 and v2.4.0 release notes
2021-11-03 03:04:38 +02:00
Povilas Kanapickas
21c8fb88d0 doc: Add missed details to v2.3.4 and v2.4.0 release notes 2021-11-02 14:32:21 +02:00
Jim Grisham
feb30fafcb Update README.md
Updated OS support section, based in the discussion from issue #544.

(Also cleaned up code formatting in FAQ section)
2021-08-23 22:39:00 -07:00
Jim Grisham
747039e1cd Update Info.plist.in
Updated LSMinimumSystemVersion to prevent launch on unsupported macOS versions.

Release notes for 2.3.0[1] state that macOS 10.12 is the minimum - this has not been verified in the code, however.

[1] https://github.com/debauchee/barrier/releases/tag/v2.3.0
2021-08-23 21:33:06 -07:00
20 changed files with 255 additions and 150 deletions

View File

@@ -1,6 +1,5 @@
name: Bug Report
description: File a bug report (for questions, ideas & support, use the Discussions tab, or IRC for quick answers, but make sure to stay on the channel!)
labels: [bug, triage]
body:
- type: markdown
attributes:
@@ -30,6 +29,8 @@ body:
- v2.3.2-alpha
- v2.3.2
- v2.3.3
- v2.3.4
- v2.4.0
- From Git HEAD or commit (specify below)
validations:
required: true

4
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,4 @@
## Contributor Checklist:
* [ ] I have created a file in the `doc/newsfragments` directory *IF* it is a
user-visible change (and make sure to read the `README.md` in that directory)

View File

@@ -82,33 +82,67 @@ specific packages.
[![Packaging status](https://repology.org/badge/vertical-allrepos/barrier.svg)](https://repology.org/project/barrier/versions)
### FAQ
## FAQ - Frequently Asked Questions
Q: Does drag and drop work on linux?
**Q: Does drag and drop work on linux?**
A: No
> A: No *(see [#855](https://github.com/debauchee/barrier/issues/544) if you'd like to change that)*
Q: What OSes are supported?
A:
- Windows 7, 8, 8.1, and 10
- MacOS/OS X
- Linux
- FreeBSD
- OpenBSD
**Q: What OSes are supported?**
Q: Are 32-bit versions of Windows supported?
> A: The [most recent release](https://github.com/debauchee/barrier/releases/latest) of Barrier is known to work on:
> - Windows 7, 8, 8.1, 10, and 11
> - macOS *(previously known as OS X or Mac OS X)*
> - _The current GUI does **not** work on OS versions prior to macOS 10.12 Sierra (but see the related answer below)_
> - Linux
> - FreeBSD
> - OpenBSD
A: No
Q: How do I load my configuration on startup?
**Q: Are 32-bit versions of Windows supported?**
A: Start the binary with the argument `--config <path_to_saved_configuration>`
> A: No
Q: After loading my configuration on the client the field 'Server IP' is still empty!
A: Edit your configuration to include the server's ip address manually with
__Q: Is it possible to use Barrier on Mac OS X / OS X versions prior to 10.12?__
(...)
section: options
serverhostname=<AAA.BBB.CCC.DDD>
> A: Not officially.
> - For OS X 10.10 Yosemite and later:
> - [Barrier v2.1.0](https://github.com/debauchee/barrier/releases/tag/v2.1.0) or earlier _may_ work.
> - For Mac OS X 10.9 Mavericks _(and perhaps earlier)_:
> 1. the command-line portions of the [current release](https://github.com/debauchee/barrier/releases/latest) _should_ run fine.
> 2. The GUI will _not_ run, as that OS version does not include Apple's *Metal* framework.
> - _(For a GUI workaround for Mac OS X 10.9, see the [discussion at issue #544](https://github.com/debauchee/barrier/issues/544))_
> Note: Only versions [v2.3.4](https://github.com/debauchee/barrier/releases/tag/v2.3.4) and [later](https://github.com/debauchee/barrier/releases/latest) of Barrier can be supported by this project.
> - Anyone using an earlier version is advised to upgrade due to recently-addressed security vulnerabilities *(and other bug fixes)*.
> - This is especially important for computers accessible from the public Internet *(or from other shared/untrusted networks, such as when using shared WiFi)*.
**Q: How do I load my configuration on startup?**
> A: Start the binary with the argument `--config <path_to_saved_configuration>`
**Q: After loading my configuration on the client the field 'Server IP' is still empty!**
> A: Edit your configuration to include the server's ip address manually with
>
>```
>(...)
>
>section: options
> serverhostname=<AAA.BBB.CCC.DDD>
>```
**Q: Are there any other significant limitations with the current version of Barrier?**
> A: Currently:
> - Barrier currently has limited UTF-8 support; issues have been reported with processing various languages.
> - *(see [#860](https://github.com/debauchee/barrier/issues/860))*
> - There is interest in future support for the Wayland compositor/display server protocol *([official site](https://wayland.freedesktop.org/) | [Wikipedia article](https://en.wikipedia.org/wiki/Wayland_(display_server_protocol)))* on Linux.
> - As of late 2021, there is no expected completion date for *Wayland* support.
> - *(see [#109](https://github.com/debauchee/barrier/issues/109) and [#1251](https://github.com/debauchee/barrier/issues/1251) for status or to volunteer your talents)*
>
> The complete list of open issues can be found in the ['Issues' tab on GitHub](https://github.com/debauchee/barrier/issues?q=is%3Aissue+is%3Aopen). Help is always appreciated.

View File

@@ -27,11 +27,28 @@ Check `newsfragments` directory for any forgotten release notes
Step 3: Merge the release notes PR
----------------------------------
Step 4: Push git tag
--------------------
Step 4: Bump the version number
-------------------------------
Pull the merge commit created on the `master` branch during the step 2.
Edit the following files and update the version numbers:
- `Build.properties`
- `cmake/Version.cmake`
- `doc/barrierc.1`
- `doc/barriers.1`
- `.github/ISSUE_TEMPLATE/bug_report.yml`
Commit to the release branch with the following message `Barrier x.y.z`.
Push the commit:
git push origin master
Step 5: Push git tag
--------------------
Create a tag:
git tag -s v${VERSION} -m v${VERSION}
@@ -41,7 +58,7 @@ Push the tag:
git push origin master --tags
Step 5: Draft a new release on Github
Step 6: Draft a new release on Github
-------------------------------------
Go to https://github.com/buildbot/buildbot/releases and draft a new release.
@@ -53,7 +70,7 @@ Use the release notes generated by the `towncrier` tool as the description of th
Upload the artifacts created by Azure pipelines as the binaries of the release. The following
artifacts should be uploaded to Github:
- the Barrier-X.Y.Z-release.dmg created by the oldest Mac OS task (artifact name is
- the Barrier-X.Y.Z-release.dmg created by the newest Mac OS task (artifact name is
"Mac Release Disk Image and App XYZ").
- the BarrierSetup-X.Y.Z-release.exe (artifact name is Windows Release Installer).

View File

@@ -80,7 +80,7 @@ jobs:
displayName: Clean Build
- job: MacBuild
displayName: Mac Build
displayName: macOS builds
strategy:
matrix:
big-sur-Release:
@@ -110,8 +110,8 @@ jobs:
- script: sh -x ./clean_build.sh
displayName: Clean Build
- task: PublishBuildArtifacts@1
displayName: Publish Release DMG
condition: eq(variables['B_BUILD_TYPE'], 'Release')
displayName: Publish Release DMG if on Big Sur agent
condition: eq(variables['imageName'], 'macOS-11')
inputs:
pathtoPublish: build/bundle
artifactName: Mac Release Disk Image and App $(imageName)
artifactName: Mac Release DMG and App $(imageName)

View File

@@ -1,32 +1,47 @@
#!/bin/sh
cd "$(dirname "$0")" || exit 1
# some environments have cmake v2 as 'cmake' and v3 as 'cmake3'
# check for cmake3 first then fallback to just cmake
B_CMAKE=`type cmake3 2>/dev/null`
if [ $? -eq 0 ]; then
B_CMAKE=`echo "$B_CMAKE" | cut -d' ' -f3`
B_CMAKE=$(command -v cmake3 2>/dev/null)
if [ "$?" -eq 0 ]; then
continue
else
B_CMAKE=cmake
if command -v cmake 2>/dev/null; then
B_CMAKE=$(command -v cmake)
else
echo "ERROR: CMake not in $PATH, cannot build! Please install CMake, or if this persists, file a bug report."
exit 1
fi
fi
# default build configuration
B_BUILD_TYPE=${B_BUILD_TYPE:-Debug}
B_BUILD_TYPE="${B_BUILD_TYPE:-Debug}"
B_CMAKE_FLAGS="-DCMAKE_BUILD_TYPE=${B_BUILD_TYPE} ${B_CMAKE_FLAGS:-}"
if [ "$(uname)" = "Darwin" ]; then
# OSX needs a lot of extra help, poor thing
# run the osx_environment.sh script to fix paths
. ./osx_environment.sh
B_CMAKE_FLAGS="-DCMAKE_OSX_SYSROOT=$(xcode-select --print-path)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 $B_CMAKE_FLAGS"
# macOS needs a little help, so we source this environment script to fix paths.
. ./macos_environment.sh
B_CMAKE_FLAGS="${B_CMAKE_FLAGS} -DCMAKE_OSX_SYSROOT=$(xcode-select --print-path)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9"
fi
# allow local customizations to build environment
[ -r ./build_env.sh ] && . ./build_env.sh
# Source local build variables to the environment, if available.
# If not, continue as normal, and silently.
[ -e "./build_env.sh" ] && . "./build_env.sh"
# Initialise Git submodules
git submodule update --init --recursive
B_CMAKE_FLAGS="-DCMAKE_BUILD_TYPE=$B_BUILD_TYPE $B_CMAKE_FLAGS"
rm -rf build
mkdir build || exit 1
cd build || exit 1
echo "Starting Barrier $B_BUILD_TYPE build..."
$B_CMAKE $B_CMAKE_FLAGS .. || exit 1
make || exit 1
rm -rf ./build
mkdir build
cd ./build
$B_CMAKE "$B_CMAKE_FLAGS" .. || exit 1
echo "INFO: Now commencing Barrier build process..."
echo "INFO: We're building an $B_BUILD_TYPE output type."
$(command -v make) || exit 1
echo "Build completed successfully"

View File

@@ -31,6 +31,6 @@
<key>NSHumanReadableCopyright</key>
<string>© 2018 Debauchee Open Source Group</string>
<key>LSMinimumSystemVersion</key>
<string>10.9.0</string>
<string>10.12.0</string>
</dict>
</plist>

View File

@@ -0,0 +1 @@
Corrected macOS packaging to provide a better error message when a user attempts to launch Barrier on an incompatible macOS version. (https://github.com/debauchee/barrier/issues/1260).

View File

@@ -0,0 +1 @@
Updated FAQs in project README.md with more detail on OS support and links to issues for infrequent users. (https://github.com/debauchee/barrier/issues/1260).

View File

@@ -0,0 +1 @@
Refactor CI builds, and build scripts to be more resilient, and effective

View File

@@ -0,0 +1,2 @@
Fix wrong encoding for text copied between Linux and Windows
(https://github.com/debauchee/barrier/issues/1037, https://github.com/debauchee/barrier/issues/1137).

View File

@@ -0,0 +1 @@
Fixed build on GCC 11.2 (https://github.com/debauchee/barrier/issues/1366).

View File

@@ -0,0 +1,2 @@
Updated Japanese translation.
Add and translate strings that are not in gui.ts. Minor string adjustment, Fix wrong or duplicate shortcut keys.

View File

@@ -25,6 +25,9 @@ Security fixes
again. Client and server will show both SHA1 and SHA256 server fingerprints to allow
interoperability with older versions of Barrier.
All of the above security issues have been reported by Matthias Gerstner who was really helpful
resolving them.
Bug fixes
---------
@@ -81,7 +84,8 @@ Security fixes
Previously it was possible for a malicious client or server to send excessive length messages
leading to denial of service by resource exhaustion.
- Fixed a bug which caused Barrier to crash when disconnecting a TCP session just after sending Hello message.
- Fixed a bug which caused Barrier to crash when disconnecting a TCP session just after sending
Hello message (fixes CVE-2021-42074).
This bug allowed an unauthenticated attacker to crash Barrier with only network access.
All of the above security issues have been reported by Matthias Gerstner who was really helpful

Binary file not shown.

View File

@@ -8,34 +8,25 @@
<source>About Barrier</source>
<translation>Barrier </translation>
</message>
<message>
<message utf8="true">
<location filename="res/AboutDialogBase.ui" line="53"/>
<source>&lt;p&gt;
Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
Copyright © 2018 Debauchee Open Source Group&lt;br /&gt;
Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
Visit our website for help and info (symless.com).
The Barrier GUI is based on QSynergy by Volker Lanz.
&lt;/p&gt;</source>
<oldsource>&lt;p&gt;
Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
Visit our website for help and info (symless.com).
&lt;/p&gt;</oldsource>
<translation type="unfinished">&lt;p&gt;
<translation>&lt;p&gt;
&lt;br /&gt;&lt;br /&gt;
Copyright © 2018 Debauchee Open Source Group&lt;br /&gt;
Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
Barrier GNU General Public (GPLv2). &lt;br /&gt;&lt;br /&gt;
Barrier CosmoSynergy (Richard Lee, Adam Feder ) &lt;br /&gt;
Barrier GUI QSynergy (Volker Lanz ) &lt;br /&gt;&lt;br /&gt;
Visit our website for help and info (symless.com).
Barrier GNU General Public (GPLv2) &lt;br /&gt;&lt;br /&gt;
Barrier CosmoSynergy Richard Lee Adam Feder &lt;br /&gt;
Barrier GUI QSynergy Volker Lanz
&lt;/p&gt;</translation>
</message>
<message>
@@ -48,6 +39,11 @@ Visit our website for help and info (symless.com).
<source>Version:</source>
<translation>:</translation>
</message>
<message>
<location filename="res/AboutDialogBase.ui" line="167"/>
<source>Build Date: </source>
<translation>: </translation>
</message>
<message>
<location filename="res/AboutDialogBase.ui" line="163"/>
<source>&amp;Ok</source>
@@ -89,7 +85,7 @@ Visit our website for help and info (symless.com).
<message>
<location filename="res/ActionDialogBase.ui" line="119"/>
<source>Switch to screen</source>
<translation></translation>
<translation></translation>
</message>
<message>
<location filename="res/ActionDialogBase.ui" line="150"/>
@@ -151,18 +147,23 @@ Visit our website for help and info (symless.com).
<source>the hotkey is released</source>
<translation></translation>
</message>
<message>
<location filename="res/ActionDialogBase.ui" line="148"/>
<source>Toggle screen</source>
<translation></translation>
</message>
</context>
<context>
<name>AddClientDialog</name>
<message>
<location filename="res/AddClientDialogBase.ui" line="20"/>
<source>Dialog</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<location filename="res/AddClientDialogBase.ui" line="35"/>
<source>TextLabel</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<location filename="res/AddClientDialogBase.ui" line="83"/>
@@ -183,30 +184,12 @@ Visit our website for help and info (symless.com).
<translation>:</translation>
</message>
</context>
<context>
<name>LogWindowBase</name>
<message>
<location filename="res/LogWindowBase.ui" line="26"/>
<source>Log - Barrier</source>
<translation> - Barrier</translation>
</message>
<message>
<location filename="res/LogWindowBase.ui" line="71"/>
<source>&amp;Clear Log</source>
<translation>(&amp;C)</translation>
</message>
<message>
<location filename="res/LogWindowBase.ui" line="78"/>
<source>&amp;Hide</source>
<translation></translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="src/MainWindow.cpp" line="790"/>
<source>&amp;Start</source>
<translation type="unfinished">(&amp;S)</translation>
<translation>(&amp;S)</translation>
</message>
<message>
<location filename="src/MainWindow.cpp" line="237"/>
@@ -226,13 +209,13 @@ Visit our website for help and info (symless.com).
<message>
<location filename="src/MainWindow.cpp" line="240"/>
<source>&amp;Help</source>
<translation type="unfinished">(&amp;H)</translation>
<translation>(&amp;H)</translation>
</message>
<message>
<location filename="src/MainWindow.cpp" line="364"/>
<source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
<oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
<translation type="unfinished">&lt;p&gt;使 Barrier &lt;b&gt;%1&lt;/b&gt; &lt;a href=&quot;%2&quot;&gt;&lt;/a&gt;&lt;/p&gt;</translation>
<translation type="unfinished">&lt;p&gt;使 Barrier &lt;b&gt;%1&lt;/b&gt; &lt;a href=&quot;%2&quot;&gt;&lt;/a&gt;&lt;/p&gt;</translation>
</message>
<message>
<location filename="src/MainWindow.cpp" line="577"/>
@@ -317,7 +300,7 @@ Visit our website for help and info (symless.com).
<message>
<location filename="src/MainWindow.cpp" line="1044"/>
<source>Please drag the new client screen (%1) to the desired position on the grid.</source>
<translation type="unfinished"> (%1) </translation>
<translation type="unfinished"> (%1) </translation>
</message>
<message>
<location filename="src/MainWindow.cpp" line="1147"/>
@@ -355,12 +338,12 @@ Bonjour をインストールしますか?</translation>
<message>
<location filename="src/MainWindow.cpp" line="815"/>
<source>Barrier is starting.</source>
<translation>Barrier </translation>
<translation>Barrier ...</translation>
</message>
<message>
<location filename="src/MainWindow.cpp" line="809"/>
<source>Barrier is running.</source>
<translation>Barrier </translation>
<translation>Barrier </translation>
</message>
<message>
<location filename="src/MainWindow.cpp" line="819"/>
@@ -386,7 +369,7 @@ Bonjour をインストールしますか?</translation>
</message>
<message>
<location filename="src/MainWindow.cpp" line="408"/>
<source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
<source>Barrier is now connected. You can close the config window and Barrier will remain connected in the background.</source>
<translation> Barrier </translation>
</message>
<message>
@@ -400,14 +383,14 @@ Bonjour をインストールしますか?</translation>
%1
This is a server fingerprint. You should compare this fingerprint to the one on your server&apos;s screen. If the two don&apos;t match exactly, then it&apos;s probably not the server you&apos;re expecting (it could be a malicious user).
This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
<translation type="unfinished">
%1
2 ()
2 ()
</translation>
</message>
@@ -437,7 +420,7 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<message>
<location filename="res/MainWindowBase.ui" line="90"/>
<source>Ser&amp;ver (share this computer&apos;s mouse and keyboard):</source>
<translation> ()(&amp;V):</translation>
<translation> ()(&amp;V):</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="243"/>
@@ -460,6 +443,11 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<source>Use existing configuration:</source>
<translation>使:</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="218"/>
<source>SSL Fingerprint:</source>
<translation>SSLフィンガープリント:</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="190"/>
<source>&amp;Configuration file:</source>
@@ -478,7 +466,7 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<message>
<location filename="res/MainWindowBase.ui" line="159"/>
<source>&amp;Configure Server...</source>
<translation>(&amp;S)...</translation>
<translation>(&amp;C)...</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="350"/>
@@ -493,7 +481,7 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<message>
<location filename="res/MainWindowBase.ui" line="373"/>
<source>&amp;Reload</source>
<translation type="unfinished">(&amp;R)</translation>
<translation>(&amp;R)</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="107"/>
@@ -538,12 +526,12 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<message>
<location filename="res/MainWindowBase.ui" line="423"/>
<source>S&amp;top</source>
<translation>(&amp;S)</translation>
<translation>(&amp;T)</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="426"/>
<source>Stop</source>
<translation>(&amp;S)</translation>
<translation>(&amp;T)</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="434"/>
@@ -553,27 +541,27 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<message>
<location filename="res/MainWindowBase.ui" line="442"/>
<source>&amp;Hide</source>
<translation>(&amp;H)</translation>
<translation>(&amp;H)</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="445"/>
<source>Hide</source>
<translation>(&amp;H)</translation>
<translation>(&amp;H)</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="453"/>
<source>&amp;Show</source>
<translation>(&amp;S)</translation>
<translation>(&amp;W)</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="456"/>
<source>Show</source>
<translation>(&amp;S)</translation>
<translation>(&amp;W)</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="464"/>
<source>Save configuration &amp;as...</source>
<translation></translation>
<translation>...</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="467"/>
@@ -596,30 +584,25 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<translation></translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="367"/>
<location filename="res/MainWindowBase.ui" line="435"/>
<source>S&amp;ave configuration</source>
<translation>(&amp;A)</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="380"/>
<location filename="res/MainWindowBase.ui" line="446"/>
<source>Change &amp;Settings</source>
<translation>(&amp;S)</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="391"/>
<location filename="res/MainWindowBase.ui" line="457"/>
<source>Show &amp;Log</source>
<translation>(&amp;L)</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="394"/>
<location filename="res/MainWindowBase.ui" line="457"/>
<source>Show Log</source>
<translation>(&amp;L)</translation>
</message>
<message>
<location filename="res/MainWindowBase.ui" line="132"/>
<source>SSL Fingerprint:</source>
<translation>SSLフィンガープリント:</translation>
</message>
</context>
<context>
<name>NewScreenWidget</name>
@@ -712,13 +695,13 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<name>QObject</name>
<message>
<location filename="src/MainWindow.cpp" line="60"/>
<source>Barrier Configurations (*.sgc)</source>
<translation>Barrier (*.sgc)</translation>
<source>Barrier Configurations (*.sgc);;All files (*.*)</source>
<translation>Barrier (*.sgc);;(*.*)</translation>
</message>
<message>
<location filename="src/MainWindow.cpp" line="67"/>
<source>Barrier Configurations (*.conf)</source>
<translation>Barrier (*.conf)</translation>
<source>Barrier Configurations (*.conf);;All files (*.*)</source>
<translation>Barrier (*.conf);;(*.*)</translation>
</message>
<message>
<location filename="src/main.cpp" line="119"/>
@@ -764,7 +747,7 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<message>
<location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
<source>A&amp;liases</source>
<translation>(&amp;A)</translation>
<translation>(&amp;L)</translation>
</message>
<message>
<location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
@@ -858,7 +841,7 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<message>
<location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
<source>S&amp;uper:</source>
<translation> (&amp;S):</translation>
<translation> (&amp;U):</translation>
</message>
<message>
<location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
@@ -898,17 +881,17 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<message>
<location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
<source>Fix CAPS LOCK key</source>
<translation>CAPS </translation>
<translation>CAPS </translation>
</message>
<message>
<location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
<source>Fix NUM LOCK key</source>
<translation>NUM </translation>
<translation>NUM </translation>
</message>
<message>
<location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
<source>Fix SCROLL LOCK key</source>
<translation>SCROLL </translation>
<translation>SCROLL </translation>
</message>
<message>
<location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
@@ -918,7 +901,7 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<message>
<location filename="res/ScreenSettingsDialogBase.ui" line="468"/>
<source>Fix Preserve Focus</source>
<translation></translation>
<translation></translation>
</message>
</context>
<context>
@@ -947,7 +930,7 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<message>
<location filename="res/ServerConfigDialogBase.ui" line="24"/>
<source>Screens and links</source>
<translation></translation>
<translation></translation>
</message>
<message>
<location filename="res/ServerConfigDialogBase.ui" line="35"/>
@@ -962,7 +945,7 @@ To automatically trust this fingerprint for future connections, click Yes. To re
<message>
<location filename="res/ServerConfigDialogBase.ui" line="73"/>
<source>Drag this button to the grid to add a new screen.</source>
<translation></translation>
<translation></translation>
</message>
<message>
<location filename="res/ServerConfigDialogBase.ui" line="128"/>
@@ -1045,11 +1028,26 @@ Double click on a screen to edit its settings.</source>
<source>Switch on double &amp;tap within</source>
<translation>(&amp;T)</translation>
</message>
<message>
<location filename="res/ServerConfigDialogBase.ui" line="394"/>
<source>Bump against the screen edge with the mouse pointer twice in quick succession.</source>
<translation>2</translation>
</message>
<message>
<location filename="res/ServerConfigDialogBase.ui" line="408"/>
<source>&amp;Options</source>
<translation>(&amp;O)</translation>
</message>
<message>
<location filename="res/ServerConfigDialogBase.ui" line="416"/>
<source>Enable clipboard sharing</source>
<translation></translation>
</message>
<message>
<location filename="res/ServerConfigDialogBase.ui" line="461"/>
<source>Enable drag and drop file transfers</source>
<translation></translation>
</message>
<message>
<location filename="res/ServerConfigDialogBase.ui" line="419"/>
<source>&amp;Check clients every</source>
@@ -1105,23 +1103,13 @@ Double click on a screen to edit its settings.</source>
<source>Cor&amp;ner Size:</source>
<translation>(&amp;N):</translation>
</message>
<message>
<location filename="res/ServerConfigDialogBase.ui" line="510"/>
<source>Enable drag and drop file transfers</source>
<translation></translation>
</message>
<message>
<location filename="res/ServerConfigDialogBase.ui" line="524"/>
<source>Enable clipboard sharing</source>
<translation></translation>
</message>
</context>
<context>
<name>SettingsDialog</name>
<message>
<location filename="src/SettingsDialog.cpp" line="131"/>
<source>Save log file to...</source>
<translation></translation>
<translation>...</translation>
</message>
<message>
<location filename="src/SettingsDialog.cpp" line="151"/>
@@ -1133,8 +1121,8 @@ Double click on a screen to edit its settings.</source>
<source>Are you sure you want to elevate Barrier?
This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
<translation type="unfinished">Barrier
Barrier UAC Barrier </translation>
<translation type="unfinished">Barrier
Barrier UAC Barrier </translation>
</message>
</context>
<context>
@@ -1167,7 +1155,7 @@ This allows Barrier to interact with elevated processes and the UAC dialog, but
<message>
<location filename="res/SettingsDialogBase.ui" line="127"/>
<source>&amp;Hide on startup</source>
<translation>(&amp;H)</translation>
<translation>(&amp;H)</translation>
</message>
<message>
<location filename="res/SettingsDialogBase.ui" line="146"/>
@@ -1187,7 +1175,7 @@ This allows Barrier to interact with elevated processes and the UAC dialog, but
<message>
<location filename="res/SettingsDialogBase.ui" line="202"/>
<source>&amp;Logging level:</source>
<translation type="unfinished">(&amp;L):</translation>
<translation>(&amp;L):</translation>
</message>
<message>
<location filename="res/SettingsDialogBase.ui" line="251"/>
@@ -1297,7 +1285,30 @@ This allows Barrier to interact with elevated processes and the UAC dialog, but
<message>
<location filename="res/SettingsDialogBase.ui" line="132"/>
<source>Start &amp;Barrier on startup</source>
<translation type="unfinished"> Barrier (&amp;B)</translation>
<translation> Barrier (&amp;B)</translation>
</message>
<message>
<location filename="res/SettingsDialogBase.ui" line="201"/>
<source>Require client certificate</source>
<translation></translation>
</message>
</context>
<context>
<name>LogWindowBase</name>
<message>
<location filename="res/LogWindowBase.ui" line="26"/>
<source>Log - Barrier</source>
<translation> - Barrier</translation>
</message>
<message>
<location filename="res/LogWindowBase.ui" line="71"/>
<source>&amp;Clear Log</source>
<translation>(&amp;C)</translation>
</message>
<message>
<location filename="res/LogWindowBase.ui" line="78"/>
<source>&amp;Hide</source>
<translation></translation>
</message>
</context>
<context>
@@ -1338,7 +1349,7 @@ This allows Barrier to interact with elevated processes and the UAC dialog, but
<message>
<location filename="res/SetupWizardBase.ui" line="114"/>
<source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it&apos;s Free and Open Source. Just move your mouse off the edge of one computer&apos;s screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
<translation>Barrier Barrier Windows, Mac OS X, Linux </translation>
<translation>Barrier Barrier WindowsMac OS XLinux </translation>
</message>
<message>
<location filename="res/SetupWizardBase.ui" line="125"/>
@@ -1373,7 +1384,7 @@ This allows Barrier to interact with elevated processes and the UAC dialog, but
<message>
<location filename="res/SetupWizardBase.ui" line="277"/>
<source>&amp;Server (share this computer&apos;s mouse and keyboard)</source>
<translation> ()(&amp;V)</translation>
<translation> ()(&amp;V)</translation>
</message>
<message>
<location filename="res/SetupWizardBase.ui" line="290"/>
@@ -1386,7 +1397,7 @@ p, li { white-space: pre-wrap; }
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;使1&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;使1&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="res/SetupWizardBase.ui" line="326"/>
@@ -1404,7 +1415,7 @@ p, li { white-space: pre-wrap; }
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="res/SetupWizardBase.ui" line="262"/>

View File

@@ -137,7 +137,9 @@ ServerApp::help()
barrier::fs::u8path(SYS_CONFIG_NAME)).u8string();
std::ostringstream buffer;
buffer << "Start the barrier server component.\n"
buffer << "Start the barrier server component. The server shares the keyboard &\n"
<< "mouse of the local machine with the connected clients based on the\n"
<< "configuration file.\n"
<< "\n"
<< "Usage: " << args().m_exename
<< " [--address <address>]"

View File

@@ -21,6 +21,8 @@
#include "common/basic_types.h"
#include "common/stdmap.h"
#include <cstddef>
class EventData {
public:
EventData() { }

View File

@@ -56,10 +56,17 @@ XWindowsClipboardHTMLConverter::getDataSize() const
std::string XWindowsClipboardHTMLConverter::fromIClipboard(const std::string& data) const
{
return Unicode::UTF8ToUTF16(data);
return data;
}
std::string XWindowsClipboardHTMLConverter::toIClipboard(const std::string& data) const
{
return Unicode::UTF16ToUTF8(data);
// Older Firefox [1] and possibly other applications use UTF-16 for text/html - handle both
// [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1497580
if (Unicode::isUTF8(data)) {
return data;
} else {
return Unicode::UTF16ToUTF8(data);
}
return data;
}