| View previous topic :: View next topic |
| Author |
Message |
BitFlipper Jamologist

Joined: 16 Dec 2005 Posts: 110
|
Posted: Wed Aug 22, 2007 12:35 pm Post subject: Something a little bit annoying with JS 2 |
|
|
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 |
|
 |
Ralph [RZ] Site Admin

Joined: 02 Jan 2008 Posts: 13332
|
Posted: Wed Aug 22, 2007 1:07 pm Post subject: |
|
|
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 |
|
 |
BitFlipper Jamologist

Joined: 16 Dec 2005 Posts: 110
|
Posted: Wed Aug 22, 2007 1:15 pm Post subject: |
|
|
| 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...
BitFlipper |
|
| Back to top |
|
 |
Ralph [RZ] Site Admin

Joined: 02 Jan 2008 Posts: 13332
|
Posted: Wed Aug 22, 2007 1:23 pm Post subject: |
|
|
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 |
|
 |
BitFlipper Jamologist

Joined: 16 Dec 2005 Posts: 110
|
Posted: Wed Aug 22, 2007 1:50 pm Post subject: |
|
|
| 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 |
|
 |
|