Rayzoon Technologies LLC Forum Index Rayzoon Technologies LLC
Official Online Community & Support
 
Rayzoon Web Site

 FAQFAQ   SearchSearch   http://rayzoon.com/v-web/bulletin/bb/lm.phpMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Something a little bit annoying with JS 2

 
Post new topic   Reply to topic    Rayzoon Technologies LLC Forum Index -> Jamstix - Support
View previous topic :: View next topic  
Author Message
BitFlipper
Jamologist
Jamologist


Joined: 16 Dec 2005
Posts: 110

PostPosted: Wed Aug 22, 2007 12:35 pm    Post subject: Something a little bit annoying with JS 2 Reply with quote

Don't get me wrong, I think JS 2 is a great product, and I think with some constructive criticism it will become much better.

So, about some UI conventions used in JS 2... JS 2 does a lot of UI related things in a non-standard way, and one can become used to most of those in a short while so it is not a big problem. The one that really interferes with my workflow is when you have the JS 2 window open, and then open another plugin. If you accidentally mouse over JS 2, it will pop back to the front, covering up the plugin you were working on last. This is completely non-standard and should not be like that. If there is any reason why this is a required feature for some people, can we at least get a way to disable it for those that find it annoying? I looked in the options screen but did not find anything for this, but maybe I missed it?

The support from Rayzoon so far has been fantastic. Rayzoon really listens to customers and it is much appreciated!

BitFlipper
Back to top
View user's profile Send private message
Ralph [RZ]
Site Admin
Site Admin


Joined: 02 Jan 2008
Posts: 13332

PostPosted: Wed Aug 22, 2007 1:07 pm    Post subject: Reply with quote

This is a side effect of the new mouse wheel support. Windows is very selective about who (application-wise) gets to see mouse wheel messages so we had to jump through hoops to get it to work organically. We'll add an option to the next hotfix so you can toggle it on/off.
_________________
Ralph Zeuner
Rayzoon Technologies LLC
http://www.rayzoon.com
Back to top
View user's profile Send private message Send e-mail
BitFlipper
Jamologist
Jamologist


Joined: 16 Dec 2005
Posts: 110

PostPosted: Wed Aug 22, 2007 1:15 pm    Post subject: Reply with quote

Ralph [RZ] wrote:
This is a side effect of the new mouse wheel support. Windows is very selective about who (application-wise) gets to see mouse wheel messages so we had to jump through hoops to get it to work organically. We'll add an option to the next hotfix so you can toggle it on/off.


I see. Maybe you can ignore everything between WM_KILLFOCUS and WM_SETFOCUS? I don't know what your code does so I don't really have an idea what the issues were that you encountered. It has been a while since I did Win32 development (mostly doing .Net right now) so I am just guessing here.

At least an option to disable this would be great. Although I hope it doesn't also disable the mouse wheel functionality... Crying or Very sad

BitFlipper
Back to top
View user's profile Send private message
Ralph [RZ]
Site Admin
Site Admin


Joined: 02 Jan 2008
Posts: 13332

PostPosted: Wed Aug 22, 2007 1:23 pm    Post subject: Reply with quote

Yes, it does disable the wheel.

Windows only sends mouse wheel messages to the focused control. That's what the problem is. So we need to route the focus to a hidden control when you move the mouse so we can detect where you are, intercept the messages and route them to the appropriate control.
_________________
Ralph Zeuner
Rayzoon Technologies LLC
http://www.rayzoon.com
Back to top
View user's profile Send private message Send e-mail
BitFlipper
Jamologist
Jamologist


Joined: 16 Dec 2005
Posts: 110

PostPosted: Wed Aug 22, 2007 1:50 pm    Post subject: Reply with quote

Ralph [RZ] wrote:
Yes, it does disable the wheel.

Windows only sends mouse wheel messages to the focused control. That's what the problem is. So we need to route the focus to a hidden control when you move the mouse so we can detect where you are, intercept the messages and route them to the appropriate control.


So it won't work to disable this functionality of yours while the JS 2 window (or one of it's child windows) does not have the focus?

Maybe when you detect mouse move events, do a combination of GetFocus and IsChild where you check if the focussed control is one of JS 2's child controls (or the main JS 2 window itself). If the currently focussed control is not JS 2 or one of it's decedents, then simply do not change focus like you do right now.

As I said, I am just speculating here.

BTW, quite a while ago I wrote a C++ class that can be applied to any VST plugin window. This class enabled functionality to allow resizing of plugin windows. While I know you don't want to make JS 2 resizable, I did spend a lot of time figuring out how various hosts construct their plugin windows. The whole thing is broken on most hosts, and my code added a WndProc that was inserted in the hosts' plugin window chain. This allowed some pretty nice overriding of various aspects, including fixing the whole resizing thing.

Where this could be useful in your case is to tap right into the plugin's main window proc and intercept mouse events at a higher level, maybe allowing you to work around some of these aspects.

A test plugin I wrote using this class can be found here

Source code can be found here

A thread on KVR discussing the code can be found here

EDIT: Sorry, I realized that the source code I posted were a bit out of date. If you already downloaded it, please do it again as I have updated it to the latest version.

EDIT EDIT: The version of the plugin dll itself is also pretty old. It might not work on some hosts, but the source code has those bugs fixed. For instance, on Sonar the plugin's window keep resizing itself larger and larger. That bug was exposed when Sonar 6 was released. As I said, the bug was fixed in the source code but not in the plugin DLL itself.

EDIT EDIT EDIT: I uploaded a version of the test dll that uses the up-to-date code, so now it works properly in Sonar.

EDIT EDIT EDIT EDIT: I tried the test plugin in Sonar 5 as well as Sonar 6. It works properly in both versions but I noticed that in Sonar 6 the resizing of the plugin is somewhat sluggish, while in Sonar 5 it is silky smooth. Not sure why but thought I'd mention it anyway.

BitFlipper
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Rayzoon Technologies LLC Forum Index -> Jamstix - Support All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2002 phpBB Group