This App is No Longer Maintained. Visit the Replacement at StrokesPlus.net

StrokesPlus Forum
                       
StrokesPlus Forum
Home | Profile | Active Topics
Members | Search | FAQ
Username:
Password:
Save Password
Forgot your Password?

 All Forums
 General Discussion
 General Discussion
 Could S+ be transparent to mouse gestures?
 Forum Locked
 Printer Friendly
Author Previous Topic Topic Next Topic  

lkytal

15 Posts

Posted - 01/25/2014 :  05:53:24  Show Profile
Could S+ be transparent to mouse gestures? I mean, could mouse movements be transport to target programs as well? I've got used to select files with right click&drag in TOTALCMD and other programs, but s+ trapped all the right mouse movements so those programs are unable to react. It is possible to make mouse movements be received by these programs? If not, how about adding a option to s+ which enable mouse movements to go through s+'s transparent window and then function with target windows?

BTW, forgive my poor English ;-)

Rob

USA
2615 Posts

Posted - 01/25/2014 :  19:38:07  Show Profile  Visit Rob's Homepage
I am trying my best to decipher/translate what you're saying

I think you are referring to when you right-click and drag some files. The easiest thing to do is to right-click and drag like you normally would, but then stop all mouse movement (while still holding the right mouse button down) until the time in the Cancel Delay (Preferences tab) has passed. Then, S+ will release and replay the mouse events just like they happened.

You may have to move the mouse a tiny amount after the Cancel Delay has passed for the window below to pick up the mouse movement, but that is what I do in Windows Explorer all of the time and have not had any issues. The only other option is to assign a gesture to call acDisableNext() which will cause S+ to not capture the next right mouse button click, or hold the ignore key (for example, Control, defined in the Preferences tab) before you press the right mouse button to tell S+ to ignore capturing the right mouse button.

I hope this helps!
Go to Top of Page

lkytal

15 Posts

Posted - 01/25/2014 :  22:33:25  Show Profile
Thanks, But What if I want s+ could work together with other mouse gesture programs? In fact, I'm using Firegesture inside Firefox because it's more powerful for Firefox, So I have disable s+ while Firefox running. I would like s+ to handle common gestures while those gestures could be pass to firefox as well so that firegesture can react to them, is this possible?

quote:
Originally posted by Rob

I am trying my best to decipher/translate what you're saying

I think you are referring to when you right-click and drag some files. The easiest thing to do is to right-click and drag like you normally would, but then stop all mouse movement (while still holding the right mouse button down) until the time in the Cancel Delay (Preferences tab) has passed. Then, S+ will release and replay the mouse events just like they happened.

You may have to move the mouse a tiny amount after the Cancel Delay has passed for the window below to pick up the mouse movement, but that is what I do in Windows Explorer all of the time and have not had any issues. The only other option is to assign a gesture to call acDisableNext() which will cause S+ to not capture the next right mouse button click, or hold the ignore key (for example, Control, defined in the Preferences tab) before you press the right mouse button to tell S+ to ignore capturing the right mouse button.

I hope this helps!

Go to Top of Page

Rob

USA
2615 Posts

Posted - 01/25/2014 :  22:37:10  Show Profile  Visit Rob's Homepage
Unfortunately not. There's no way for S+ to know what gesture you're drawing until you've finished, which means the Firefox add-on wouldn't receive the mouse movements since S+ was watching to see what gesture you were drawing.
Go to Top of Page

gopikrish2000

34 Posts

Posted - 01/26/2014 :  01:04:29  Show Profile
@lkytal one suggestion , Previously i also used to do the same ( disable S+ for Firefox and use firegestures ) but then you will not have continuity of other S+ programs ( bcoz firegestures (FG) willnot support curvey gestures. ).

So i installed TabMixPlus addon and assigning keyboard shortcuts to each of the features and in turn drawing S+ gestures with acSendKeys(<above shortcut>) .

The only things perhaps i'm not able to do in S+, which are in FG are
1. increase only the text size ( keeping without changing zoom ) [ can do it via Greasy monkey script assign keyboard shortcut )
2. Rocker gesture for switching tabs is not smooth in S+ bcoz of design ( Right mouse then Left Mouse continously ) [ can do it by autohotkey script ]

I used to use lot of custom scripts for FG which i'm able to replicate all using above techinque . Few of the scripts are there in link http://www.strokesplus.com/forum/topic/795/dyk-some-browser-functionalities . I suggest you to use as much as Tab mix plus,S+ as possible instead of other gesture addon.

If you still want to use both FG ,S+ then assign FG trigger button to middle click and S+ as right click , and try to replicate what ever FG providing in S+ using above technique , if not possible draw those gestures with middle button ( trigger of FG ).

Edited by - gopikrish2000 on 01/26/2014 01:15:27
Go to Top of Page

lkytal

15 Posts

Posted - 01/26/2014 :  08:03:12  Show Profile
Just a little suggestion, how about add an option to s+, when you enable it, s+ will repeat your gesture on the original window without capturing so that FG(etc) could react?

quote:
Originally posted by Rob

Unfortunately not. There's no way for S+ to know what gesture you're drawing until you've finished, which means the Firefox add-on wouldn't receive the mouse movements since S+ was watching to see what gesture you were drawing.

Go to Top of Page

Rob

USA
2615 Posts

Posted - 01/26/2014 :  11:28:22  Show Profile  Visit Rob's Homepage
You can always inject the mouse sequence via S+; here's an example:

I'm going to show you how to duplicate the DRU (Down Right Up) Firegesture sequence, which opens a new window (by default).

1. Open up the S+ Actions tab
2. Add Firefox as an app (as you would any app)
3. Create a new action, call it New Window
4. If you don't already have a DRU gesture in S+, click New and draw it, name it DRU
5. Add this script for the action:
acConsumePhysicalInput(1)
acMouseMove(gsx, gsy) --move to start of gesture
acDelay(5)
acMouseClick(gsx,gsy,0,1,0) --send right button down
acDelay(5)
acMouseMove(gsx, gsy+100) --draw a line 100 pixels stright down from the start location
acDelay(5)
acMouseMove(gsx+100, gsy+100) --continue the line 100 pixels to the right
acDelay(5)
acMouseMove(gsx+100,gsy) --continue the line 100 pixels up
acDelay(5)
acMouseClick(gsx+100, gsy, 0,0,1) --send the right mouse up event
acDelay(5)
acMouseMove(gex,gey) --move mouse back to end of gesture
acConsumePhysicalInput(0)
What the script does is first tells S+ to consume all physical input, this prevents any subtle mouse movements you may make with the actual mouse from interfering with the Lua script which is moving the mouse automatically.

Next, move the mouse to the location where the gesture started and send the right-click mouse down event (which Firegesture can capture), then we just synthesize the mouse movements, manually drawing the DRU gesture (which Firegestures will receive), then send the right mouse up event, move the mouse back to where the gesture ended, and finally allow physical input to process as normal.

Since Firegestures use simple straight lines for gestures, it's very easy to recreate them and inject for Firegestures to process.

The acDelay(5) calls may or may not be needed, often times I've found that you need them between this type of sequence to allow the underlying application enough time to process the event.

I've tested the above in Firegesture and it works as expected.

Of course, your S+ gesture doesn't have to match the Firegesture mapping as the Lua action is manually drawing DRU, but it's probably easier to keep it consistent.
Go to Top of Page

lkytal

15 Posts

Posted - 01/26/2014 :  23:08:20  Show Profile
It do works, Thanks a lot.
Still, hoping that someday I'll see a new function like acDuplicateGes() (etc) that will automatically inject my mouse gestures to target window no matter what gesture was drawn, that would be great
Anyway, thanks for all your answers

quote:
Originally posted by Rob

You can always inject the mouse sequence via S+; here's an example:

I'm going to show you how to duplicate the DRU (Down Right Up) Firegesture sequence, which opens a new window (by default).

1. Open up the S+ Actions tab
2. Add Firefox as an app (as you would any app)
3. Create a new action, call it New Window
4. If you don't already have a DRU gesture in S+, click New and draw it, name it DRU
5. Add this script for the action:
acConsumePhysicalInput(1)
acMouseMove(gsx, gsy) --move to start of gesture
acDelay(5)
acMouseClick(gsx,gsy,0,1,0) --send right button down
acDelay(5)
acMouseMove(gsx, gsy+100) --draw a line 100 pixels stright down from the start location
acDelay(5)
acMouseMove(gsx+100, gsy+100) --continue the line 100 pixels to the right
acDelay(5)
acMouseMove(gsx+100,gsy) --continue the line 100 pixels up
acDelay(5)
acMouseClick(gsx+100, gsy, 0,0,1) --send the right mouse up event
acDelay(5)
acMouseMove(gex,gey) --move mouse back to end of gesture
acConsumePhysicalInput(0)
What the script does is first tells S+ to consume all physical input, this prevents any subtle mouse movements you may make with the actual mouse from interfering with the Lua script which is moving the mouse automatically.

Next, move the mouse to the location where the gesture started and send the right-click mouse down event (which Firegesture can capture), then we just synthesize the mouse movements, manually drawing the DRU gesture (which Firegestures will receive), then send the right mouse up event, move the mouse back to where the gesture ended, and finally allow physical input to process as normal.

Since Firegestures use simple straight lines for gestures, it's very easy to recreate them and inject for Firegestures to process.

The acDelay(5) calls may or may not be needed, often times I've found that you need them between this type of sequence to allow the underlying application enough time to process the event.

I've tested the above in Firegesture and it works as expected.

Of course, your S+ gesture doesn't have to match the Firegesture mapping as the Lua action is manually drawing DRU, but it's probably easier to keep it consistent.

Go to Top of Page

Rob

USA
2615 Posts

Posted - 01/26/2014 :  23:09:50  Show Profile  Visit Rob's Homepage
I agree, I think it's something worth having. I'll put it on my TO DO list :-)
Go to Top of Page

Rob

USA
2615 Posts

Posted - 01/27/2014 :  01:37:51  Show Profile  Visit Rob's Homepage
Added two ways to do this in 2.8.1.

Call acRelayGesture() and/or check the new Relay Gesture on No Match* option in Preferences.

acRelayGesture() explicitly tells S+ to replay the last gesture, while the new option only replays the gesture if there was no match found in the app or Global Actions list (but will redraw it exactly, even if it's not a defined S+ gesture).

So if you have a Global Action which would match, but you want Firegestures to receive it, you'd need to add an action under the Firefox app, using the matching Firegesture pattern and call acRelayGesture().

Other than that, if you have the option enabled and draw either an unknown gesture or there's no matching action found, S+ will replay the mouse sequence.
Go to Top of Page

lkytal

15 Posts

Posted - 01/27/2014 :  09:17:53  Show Profile
The latest version works fine, great job!
Still, a tiny frozen might happend occasionally in version, please check it out~

quote:
Originally posted by Rob

Added two ways to do this in 2.8.1.

Call acRelayGesture() and/or check the new Relay Gesture on No Match* option in Preferences.

acRelayGesture() explicitly tells S+ to replay the last gesture, while the new option only replays the gesture if there was no match found in the app or Global Actions list (but will redraw it exactly, even if it's not a defined S+ gesture).

So if you have a Global Action which would match, but you want Firegestures to receive it, you'd need to add an action under the Firefox app, using the matching Firegesture pattern and call acRelayGesture().

Other than that, if you have the option enabled and draw either an unknown gesture or there's no matching action found, S+ will replay the mouse sequence.

Go to Top of Page

Rob

USA
2615 Posts

Posted - 01/27/2014 :  09:30:47  Show Profile  Visit Rob's Homepage
What do you mean when you say "Still, a tiny frozen might happend occasionally in version, please check it out~"?
Go to Top of Page

lkytal

15 Posts

Posted - 01/27/2014 :  11:00:08  Show Profile
I mean... in this version, s+ will occasionally frozen a bit while

quote:
Originally posted by Rob

What do you mean when you say "Still, a tiny frozen might happend occasionally in version, please check it out~"?

Go to Top of Page

Rob

USA
2615 Posts

Posted - 01/27/2014 :  11:00:51  Show Profile  Visit Rob's Homepage
When does it freeze? When relaying a gesture? Or just in general?
Go to Top of Page

lkytal

15 Posts

Posted - 01/27/2014 :  11:19:19  Show Profile
In general, After release

quote:
Originally posted by Rob

When does it freeze? When relaying a gesture? Or just in general?

Go to Top of Page

Rob

USA
2615 Posts

Posted - 01/27/2014 :  11:25:13  Show Profile  Visit Rob's Homepage
Hmm, I can't reproduce that, it's not happening for me. The code changes that were made for the new feature shouldn't have introduced any sort of lag, unless you have the option enabled and draw an unknown gesture/action, then there will be a small lag as the gesture is replayed. S+ stops all input to replay the gesture, if one was drawn. I've posted to the download thread to see if anyone else if having the same issue.
Go to Top of Page
  Previous Topic Topic Next Topic  
 Forum Locked
 Printer Friendly
Jump To:
StrokesPlus Forum © 2011-2018 Rob Yapchanyk Go To Top Of Page
Snitz Forums 2000