Chording with default simkey '{alt}{lmb}' method 8 (stiky hold)

x64 Replacement/Alternative to Microsoft's IntelliMouse application.
Forum rules
Please read the forum rules before posting for the first time.
The more information you can provide, the quicker and more accurately someone can help.
Post Reply
User avatar
Kukurykus
Fanatic
Posts: 203
Joined: Sat Jul 02, 2016 1:15 pm

Chording with default simkey '{alt}{lmb}' method 8 (stiky hold)

Post by Kukurykus » Tue Mar 06, 2018 11:13 pm

This theard I started over 3 months ago in point 8 of this post: viewtopic.php?f=6&t=2625&start=90#p14539
Few days ago I reposted it in wrong place (not separated topic): viewtopic.php?f=6&t=3802#p15900
So now to sort out things I was asked to create new topic for my problem what I do :D

Copy of post I recently submited:

I tired it months ago and now as well. Unfortunately it's not the cause of problem. Of course it helped me a lot with other simulated keystrokes I used, when 'Delay between simulated keystrokes' was too low/high. I didn't need to change that value for more than this, and other and maybe some one more simulated keys I use, however I use them really many. So the optimal for my work I found is 7ms. Increasing it may affect too slow performance while decreasing that some things don't work sometimes (actually often) as should.

As I say I tried now many values, like 10 and higher, but that doesn't made any difference. Problem exists.

I am attaching two good DEBUG logs and one bad, only extracted parts, from moment it starts to it ends.




Two parts when there is no problem differes but a little. When you look into code (I separated lines that differes to make them more radable) and compare them you will see that in first good code, this part:

Code: Select all

Obtained lock for 'SendInput::ProcessQueue' after 0ms.
CSendInput::ProcessQueue: Sending 1 INPUTS
is before:

Code: Select all

Translating Right Button Up Key state 0x0: Action 128 (Button Chording) becomes Action 28 [Simulated Keys '{alt}{lmb}' (sticky hold)]
Key Hold Sticky: Ignore button up
while in second good code it's after.




In case of bad behaviour there are more differences, like this line at beginning (of correct behaviour):

Code: Select all

Unable to enter critical section for lock 'SendInput::ProcessQueue' (TID: 00001BD0) because it is already locked by 'SendInput::SendInputDelay' - Waiting...
is replaced to this:

Code: Select all

CSendInput::ProcessQueue: Sending 1 INPUTS



Additionally this part:

Code: Select all

Obtained lock for 'SendInput::ProcessQueue' after 0ms.
CSendInput::ProcessQueue: Sending 1 INPUTS
that was in case of good parts either before/after:

Code: Select all

Translating Right Button Up Key state 0x0: Action 128 (Button Chording) becomes Action 28 [Simulated Keys '{alt}{lmb}' (sticky hold)]
Key Hold Sticky: Ignore button up
doesn't occur at all. So above code is neither preceeded nor followed by that part of code.




There is one more difference. When then we have this part of code in good and bad ones:

Code: Select all

ProcessButton: Chord active; Releasing global chord
MouseHookLLProc: Removing message 0x0205 from mouse hook queue as we have overridden it.
Ignoring key injected by X-Mouse Button Control
CSendInput::ProcessQueue: Sleeping for 7ms
only in case of bad behaviour there is additionall line of code that isn't present in good ones:

Code: Select all

CSendInput::ProcessQueue: Finished sending queue... (Flushed = 0)

Now we have private messages with Phil - started before this topic was created - and we continue them though this topic is already created :)
You do not have the required permissions to view the files attached to this post.
HAMA Roma, Rapoo 3920P
Windows 10 x64, Intel i5-4670K @ 3.40GHz, 8GB,
Intel(R) HD Graphics 4600, Intel SSD 179 GB HDD

User avatar
phil
Site Admin
Posts: 5610
Joined: Sun Apr 06, 2003 11:12 pm

Re: Chording with default simkey '{alt}{lmb}' method 8 (stiky hold)

Post by phil » Sat Mar 10, 2018 11:43 am

Just to follow up for everyone else, we have been diagnosing this over the last few days and I think I have found the problem.
I'm building a fix into 2.18 Beta 5 (Kukurykus has checked an early build for me) and we shall see how that goes (first impressions are good).

Thanks,
Phil
--[ Phil ]--
--[ Administrator & XMBC Author ]--
Logitech G9, Logitech MX518, Microsoft Intellimouse, Trust 16341 BT Mouse
Windows 10 x64, Intel i5-9600k, Asus Z390-ROG, 16GB DDR4,
nVidia GeForce GTX 970, Evo 970 500Gb NVME, 2x2TB WD Black (RAID1)

User avatar
Kukurykus
Fanatic
Posts: 203
Joined: Sat Jul 02, 2016 1:15 pm

Re: Chording with default simkey '{alt}{lmb}' method 8 (stiky hold)

Post by Kukurykus » Mon Mar 12, 2018 7:16 pm

I confirm with Beta 7 (probaby 6 and 5 as well) there is no above described problem anymore.
HAMA Roma, Rapoo 3920P
Windows 10 x64, Intel i5-4670K @ 3.40GHz, 8GB,
Intel(R) HD Graphics 4600, Intel SSD 179 GB HDD

User avatar
phil
Site Admin
Posts: 5610
Joined: Sun Apr 06, 2003 11:12 pm

Re: Chording with default simkey '{alt}{lmb}' method 8 (stiky hold)

Post by phil » Mon Mar 12, 2018 9:35 pm

Yay - thanks :)
--[ Phil ]--
--[ Administrator & XMBC Author ]--
Logitech G9, Logitech MX518, Microsoft Intellimouse, Trust 16341 BT Mouse
Windows 10 x64, Intel i5-9600k, Asus Z390-ROG, 16GB DDR4,
nVidia GeForce GTX 970, Evo 970 500Gb NVME, 2x2TB WD Black (RAID1)

Post Reply