mirror of
https://github.com/debauchee/barrier.git
synced 2026-05-15 14:16:02 -06:00
[PR #841] Enhancement: X11 local input #1706
Labels
No labels
HiDPI
bounty
bsd/freebsd
bsd/openbsd
bug
bug
build-infra
cantfix
critical
doc
duplicate
enhancement
fix-available
from git
from release
good first issue
help wanted
installer/package
invalid
linux
macOS
meta
needs testing
pull-request
query
question
regression
regression
v2.4.0
windows
wontfix
work-in-progress
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/barrier#1706
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/debauchee/barrier/pull/841
Author: @florianhofhammer
Created: 8/18/2020
Status: 🔄 Open
Base:
master← Head:enhancement/x-server-client-local-input📝 Commits (2)
b891b1eAllow screen switching on local XInputb3fd233Allow XScreensaver syncing from client to server📊 Changes
17 files changed (+450 additions, -122 deletions)
View changed files
📝
src/lib/barrier/Screen.cpp(+3 -5)📝
src/lib/barrier/protocol_types.cpp(+3 -2)📝
src/lib/barrier/protocol_types.h(+19 -4)📝
src/lib/base/EventTypes.cpp(+1 -0)📝
src/lib/base/EventTypes.h(+10 -0)📝
src/lib/client/Client.cpp(+52 -10)📝
src/lib/client/Client.h(+3 -0)📝
src/lib/client/ServerProxy.cpp(+24 -9)📝
src/lib/client/ServerProxy.h(+8 -4)📝
src/lib/platform/XWindowsScreen.cpp(+86 -32)📝
src/lib/platform/XWindowsScreen.h(+6 -1)➕
src/lib/server/ClientProxy1_7.cpp(+83 -0)➕
src/lib/server/ClientProxy1_7.h(+42 -0)📝
src/lib/server/ClientProxyUnknown.cpp(+5 -0)📝
src/lib/server/PrimaryClient.cpp(+4 -4)📝
src/lib/server/Server.cpp(+97 -50)📝
src/lib/server/Server.h(+4 -1)📄 Description
This pull request targets two issues which were discovered in an environment where barrier is used to control two Linux machines with a touch screen each.
Due to the touch screen and potential other local input devices, some kind of bidirectional communication is necessary, going beyond the mainly unidirectional communication model currently employed in barrier (server -> client).
The two main problems discovered during tests of barrier as a software KVM switch and resolved by this PR are:
If the mouse cursor is located on the client and a touch input occurs on the server, the touch movement is translated to the client. Any touch input by the user thus does not appear at the location of the touch event but on the client display and may thus accidentally trigger unwanted behavior.
If the XScreensaver is currently active, input on the server deactivates the screen saver on the server and is propagated to the client. On the other hand, input on the client (touch, mouse movement, etc.) only deactivates the screen saver on the client and is not propagated to the server (or other clients).
The changes made in this PR mainly target the Linux/X11 implementation of barrier because other operating systems were not available for tests. Still, the changes should not affect functionality in other OSs or disrupt previous interoperability between OSs.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.