Bug ID 1158470
Summary synergy: Mouse pointer can't be moved back to server after switching to neighbor
Classification openSUSE
Product openSUSE Distribution
Version Leap 15.1
Hardware Other
OS Other
Status NEW
Severity Major
Priority P5 - None
Component X11 Applications
Assignee bnc-team-screening@forge.provo.novell.com
Reporter martin.wilck@suse.com
QA Contact qa-bugs@suse.de
Found By ---
Blocker ---

I'm observing erratic behavior of synergy in my setup under Leap.

TL;DR: It's fixed by upgrading to synergy-1.9.1-lp151.61.3 from X11:Utilities.

Setup:
server "artemis", left:

> eDP-1 connected primary 1368x768+0+1152 (normal left inverted right x axis y axis) 294mm x 165mm
> DP-1-1 connected 1200x1920+1368+0 left (normal left inverted right x axis y axis) 518mm x 324mm

This is the laptop screen plus one monitor in "portrait" orientation.

client "apollon", right:

> DP1-1 connected primary 1080x1920+1200+0 left (normal left inverted right x axis y axis) 530mm x 300mm
> eDP1 connected 1368x768+2280+1016 (normal left inverted right x axis y axis) 310mm x 170mm

Another vertical monitor plus the screen of the 2nd laptop.

>From left to right, I have "artemis" laptop screen, portrait monitor of
"artemis", portrait monitor of "apollon", "apollon" laptop screen.

The links section in synergy.conf looks like this:

> section: links
>    	artemis:
> 		right = apollon
> 		down = zeus
> 	apollon:
> 		left = artemis
> 		down = zeus
>         zeus:
> 		up = artemis
> 		left = artemis
> 		right = apollon
> end

(computer "zeus" is switched off).

Now I start synergys on artemis, synergyc is running on apollon. I slowly move
the pointer on artemis from left to right until it reaches the right edge of
the portrait monitor. I'd expect the cursor to move on "apollon" now, but this
does not happen. It vanishes on "artemis", but it's not visible on "apollon".
When I move the mouse back left, still nothing happens. I can't get the mouse
pointer to move back to "artemis" screen. I have to ssh to artemis and kill
synergys to get a working mouse pointer back.

Here's what happens in the synergys debug log when moving the mouse from left
to right:

> [2019-12-04T22:54:18] DEBUG2: event: MotionNotify 2563,1158
> [2019-12-04T22:54:18] DEBUG2: event: MotionNotify 2565,1158
> [2019-12-04T22:54:18] DEBUG2: event: MotionNotify 2566,1158
> [2019-12-04T22:54:18] DEBUG2: event: MotionNotify 2567,1158

at this point the right screen border of "artemis" is reached, now we start
generating events for "apollon":

> [2019-12-04T22:54:18] DEBUG2: event: MotionNotify 1368,960
> [2019-12-04T22:54:18] DEBUG2: event: MotionNotify 1368,960
> [2019-12-04T22:54:18] DEBUG2: event: MotionNotify 1284,960
> [2019-12-04T22:54:18] DEBUG2: onMouseMoveSecondary +84,+0
> [2019-12-04T22:54:18] DEBUG2: move on apollon to 84,1158
> [2019-12-04T22:54:18] DEBUG2: event: MotionNotify 1284,960
> [2019-12-04T22:54:19] DEBUG2: event: MotionNotify 1369,960
> [2019-12-04T22:54:19] DEBUG2: event: MotionNotify 1369,960
> [2019-12-04T22:54:19] DEBUG2: event: MotionNotify 1284,960
> [2019-12-04T22:54:19] DEBUG2: onMouseMoveSecondary +85,+0
> [2019-12-04T22:54:19] DEBUG2: move on apollon to 169,1158
> [2019-12-04T22:54:19] DEBUG2: event: MotionNotify 1284,960
> [2019-12-04T22:54:19] DEBUG2: event: MotionNotify 1368,960
> [2019-12-04T22:54:19] DEBUG2: event: MotionNotify 1368,960
> [2019-12-04T22:54:19] DEBUG2: event: MotionNotify 1284,960
> [2019-12-04T22:54:19] DEBUG2: onMouseMoveSecondary +84,+0
> [2019-12-04T22:54:19] DEBUG2: move on apollon to 253,1158

"onMouseMoveSecondary" gets basically the same relative step over and over
again, causing the pointer to move monotonically to the right (I made but
minimal movements with the mouse at this point), until...

> [2019-12-04T22:54:22] DEBUG2: onMouseMoveSecondary +84,+0
> [2019-12-04T22:54:22] DEBUG2: move on apollon to 3622,1155
> [2019-12-04T22:54:22] DEBUG2: warped to 1284,960
> [2019-12-04T22:54:22] DEBUG2: event: MotionNotify 1284,960
> [2019-12-04T22:54:22] DEBUG2: onMouseMoveSecondary +84,+0
> [2019-12-04T22:54:22] DEBUG2: find neighbor on right of "apollon"
> [2019-12-04T22:54:22] DEBUG2: no neighbor on right of "apollon"
> [2019-12-04T22:54:22] DEBUG1: try to leave "apollon" on right
> [2019-12-04T22:54:22] DEBUG1: no neighbor right
> [2019-12-04T22:54:22] DEBUG2: clamp to right of "apollon"

Here, the *right* edge of apollon's monitor is reached although I sure as hell
didn't move the mouse there.

Comparing the same log for synergy 1.9.1:

> [2019-12-04T23:07:51] DEBUG2: event: MotionNotify 2549,1705
> [2019-12-04T23:07:51] DEBUG2: event: MotionNotify 2564,1691
> [2019-12-04T23:07:51] DEBUG2: event: MotionNotify 2567,1683
> [2019-12-04T23:07:51] DEBUG2: event: MotionNotify 844,1440
> [2019-12-04T23:07:51] DEBUG2: event: MotionNotify 689,1531
> [2019-12-04T23:07:51] DEBUG2: event: MotionNotify 684,1536
> [2019-12-04T23:07:51] DEBUG2: event: MotionNotify 705,1518
> [2019-12-04T23:07:51] DEBUG2: event: MotionNotify 684,1536
> [2019-12-04T23:07:51] DEBUG2: event: MotionNotify 725,1505
> [2019-12-04T23:07:51] DEBUG2: event: MotionNotify 684,1536
> [2019-12-04T23:07:51] DEBUG2: event: MotionNotify 746,1492
> [2019-12-04T23:07:51] DEBUG2: event: MotionNotify 684,1536
> [2019-12-04T23:07:51] DEBUG2: event: MotionNotify 775,1479
> [2019-12-04T23:07:51] DEBUG2: event: MotionNotify 684,1536
> [2019-12-04T23:07:51] DEBUG2: event: MotionNotify 807,1461
> [2019-12-04T23:07:51] DEBUG2: event: MotionNotify 684,1536
> [2019-12-04T23:07:51] DEBUG2: event: MotionNotify 844,1440
> [2019-12-04T23:07:51] DEBUG2: event: MotionNotify 684,1536
> [2019-12-04T23:07:51] DEBUG2: onMouseMoveSecondary +160,-96
> [2019-12-04T23:07:51] DEBUG2: move on apollon to 160,1587
> [2019-12-04T23:07:51] DEBUG2: onMouseMoveSecondary -155,+91
> [2019-12-04T23:07:51] DEBUG2: move on apollon to 5,1678
> [2019-12-04T23:07:51] DEBUG2: onMouseMoveSecondary -5,+5
> [2019-12-04T23:07:51] DEBUG2: move on apollon to 0,1683
> [2019-12-04T23:07:51] DEBUG2: onMouseMoveSecondary +21,-18
> [2019-12-04T23:07:51] DEBUG2: move on apollon to 21,1665
> [2019-12-04T23:07:51] DEBUG2: onMouseMoveSecondary -21,+18
> [2019-12-04T23:07:51] DEBUG2: move on apollon to 0,1683
> [2019-12-04T23:07:51] DEBUG2: event: MotionNotify 684,1536
> [2019-12-04T23:07:51] DEBUG2: onMouseMoveSecondary +41,-31
> [2019-12-04T23:07:51] DEBUG2: move on apollon to 41,1652

Here it seems that right after entering "apollon"'s screen, a number of
MotionNotify events is discarded, and later on, onMouseMoveSecondary() calls
seem to "correct" previous movements. For the user, this feels correct. Also,
the mouse pointer is well visible in on "apollon", moves as expeted, and can be
moved back to the "artemis" screen just fine.

I've been trying to figure out which commits changed this behavior between
v1.8.8-stable and v1.9.1-stable, but nothing caught my eye.

The 1.9.1 version has already been submitted and accepted to Leap 15.2.
I'd like to suggest to submit it to 15.1, too.


You are receiving this mail because: