Implementing desktop proxy component



I’m trying to improve the behavior of my plugin in those nasty DAWs that does not support keystrokes.
The solution suggested here viewtopic.php?f=8&t=6901&hilit=vst+keyboard works nice but it causes some flickering since it changes the active window.

My new approach is to put an invisible desktop window on top of some components in my plugin and pass them the mouse activities.
The way I do it now is just using getComponentAt() and explicitly calling mouseDown, mouseDrag, etc…

It works well, but isn’t any better way to pass the mouse actions to the component underneath? they are not child component so I can’t think of any other way.

I know it’s looks awkward but that’s also an awkward situation not to get keystrokes…



i wrote a very simple wrapper component that keeps the actual editor attached to itself, and it works well, no problems with keystrokes or mice. It is a piece of GUI on the screen but it deals with all host/plugin related problems.


That’s just too good to be true!
Too bad I can’t check it out right now…



Now I remember… I tried this approach a few month ago.
The thing that bothers me about that is that dragging the window is not smooth, even if you increase the timer rate.

The advantage is that it’s very simple and none-intrusive, I’m trying to make it work well while in the host’s window, and that’s not easy…


yes it’s not ideal but my plugin is an “editor” and a lot of input is needed so i’d rather have a non-smooth dragging window then going around the input problem with each release. it’s a matter of priorities i guess.


Yes, I agree, I’ve already worked on this issue for too many hours…

The current attempt is to create a DesktopComponent class that basically creates a desktop component and
utilities the ComponentListener to follow the original component.

But It doesn’t work well yet when it comes to passing events to the underling component like buttons , combos…


None of the approaches here allowed me to catch command keystrokes in OSX (Ableton…), can anybody detect Command + in Mac?