{"action":"created","issue":{"url":"https://api.github.com/repos/synergy/synergy/issues/4564","labels_url":"https://api.github.com/repos/synergy/synergy/issues/4564/labels{/name}","comments_url":"https://api.github.com/repos/synergy/synergy/issues/4564/comments","events_url":"https://api.github.com/repos/synergy/synergy/issues/4564/events","html_url":"https://github.com/synergy/synergy/pull/4564","id":70264473,"number":4564,"title":"Modifier keys often stuck down on Mac client","user":{"login":"jpmcmu","id":7181610,"avatar_url":"https://avatars.githubusercontent.com/u/7181610?v=3","gravatar_id":"","url":"https://api.github.com/users/jpmcmu","html_url":"https://github.com/jpmcmu","followers_url":"https://api.github.com/users/jpmcmu/followers","following_url":"https://api.github.com/users/jpmcmu/following{/other_user}","gists_url":"https://api.github.com/users/jpmcmu/gists{/gist_id}","starred_url":"https://api.github.com/users/jpmcmu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jpmcmu/subscriptions","organizations_url":"https://api.github.com/users/jpmcmu/orgs","repos_url":"https://api.github.com/users/jpmcmu/repos","events_url":"https://api.github.com/users/jpmcmu/events{/privacy}","received_events_url":"https://api.github.com/users/jpmcmu/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/synergy/synergy/labels/bug","name":"bug","color":"fc2929"},{"url":"https://api.github.com/repos/synergy/synergy/labels/pr-testing","name":"pr-testing","color":"eb6420"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/synergy/synergy/milestones/11","html_url":"https://github.com/synergy/synergy/milestones/v1.7.2-stable","labels_url":"https://api.github.com/repos/synergy/synergy/milestones/11/labels","id":1068270,"number":11,"title":"v1.7.2-stable","description":"","creator":{"login":"nbolton","id":313427,"avatar_url":"https://avatars.githubusercontent.com/u/313427?v=3","gravatar_id":"","url":"https://api.github.com/users/nbolton","html_url":"https://github.com/nbolton","followers_url":"https://api.github.com/users/nbolton/followers","following_url":"https://api.github.com/users/nbolton/following{/other_user}","gists_url":"https://api.github.com/users/nbolton/gists{/gist_id}","starred_url":"https://api.github.com/users/nbolton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nbolton/subscriptions","organizations_url":"https://api.github.com/users/nbolton/orgs","repos_url":"https://api.github.com/users/nbolton/repos","events_url":"https://api.github.com/users/nbolton/events{/privacy}","received_events_url":"https://api.github.com/users/nbolton/received_events","type":"User","site_admin":false},"open_issues":9,"closed_issues":4,"state":"open","created_at":"2015-04-15T06:55:03Z","updated_at":"2015-04-30T16:45:17Z","due_on":"2015-05-05T23:00:00Z","closed_at":null},"comments":13,"created_at":"2015-04-22T23:50:55Z","updated_at":"2015-05-01T15:37:57Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/synergy/synergy/pulls/4564","html_url":"https://github.com/synergy/synergy/pull/4564","diff_url":"https://github.com/synergy/synergy/pull/4564.diff","patch_url":"https://github.com/synergy/synergy/pull/4564.patch"},"body":"On MacOSX modifier keys will often stick. I was able to verify that modifier state in the Synergy client is correct and the system modifier state is incorrect. Furthermore, I was able to verify that an event is posted to the operating system for the key up event. \r\n\r\nAfter determining that Synergy is in the correct state, I attempted to fix this issue by asking the operating system what its modifier state was before every event was sent and then sending extra events to correct the systems modifier state if it was incorrect. This solution worked but after looking at the log of corrections, it became evident that this code was only required to correct mouse events. This was due to the fact that all key events pass the modifier state along with them. So the final solution was to remove the consistency check and add the modifier state to all mouse events.\r\n\r\nThis seems like an odd fix, but I have been unable to cause keys stick after these changes. \r\n\r\nSteps to cause a modifier key stick before these changes:\r\n1. Hold down a modifier key (Shift key, etc)\r\n2. Move mouse as rapidly as possible without stopping\r\n3. While continuing to move the mouse rapidly, release the modifier key\r\n4. Continue moving the mouse for another few seconds\r\n\r\nFollowing the above steps, without the changes, I was able to cause a key stick around once in every three tries. With these changes I have not been able to get a key to stick.\r\n"},"comment":{"url":"https://api.github.com/repos/synergy/synergy/issues/comments/98159579","html_url":"https://github.com/synergy/synergy/pull/4564#issuecomment-98159579","issue_url":"https://api.github.com/repos/synergy/synergy/issues/4564","id":98159579,"user":{"login":"nbolton","id":313427,"avatar_url":"https://avatars.githubusercontent.com/u/313427?v=3","gravatar_id":"","url":"https://api.github.com/users/nbolton","html_url":"https://github.com/nbolton","followers_url":"https://api.github.com/users/nbolton/followers","following_url":"https://api.github.com/users/nbolton/following{/other_user}","gists_url":"https://api.github.com/users/nbolton/gists{/gist_id}","starred_url":"https://api.github.com/users/nbolton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nbolton/subscriptions","organizations_url":"https://api.github.com/users/nbolton/orgs","repos_url":"https://api.github.com/users/nbolton/repos","events_url":"https://api.github.com/users/nbolton/events{/privacy}","received_events_url":"https://api.github.com/users/nbolton/received_events","type":"User","site_admin":false},"created_at":"2015-05-01T15:37:57Z","updated_at":"2015-05-01T15:37:57Z","body":"OK, based on @jtbraun's comment (his issue is about Windows client), I think we should merge this PR into master."}}