Jumpy Resizable Window


#1

I have a window with a couple components in it, all set to change their size and placement when the window is resized. It’s working, except when I drag the corner down or up quickly, the components, as well as the title bar, jump anywhere from 10 to 100 pixels in the direction I’m dragging for just an instant and then snap back to where it’s supposed to be. And it does this over and over until I stop dragging. It creates a kind of fluttery, jumpy effect. Here’s the relevant code:

Main Window Constructor:

//some constructor code then... setContentOwned (new VideoComponent::VideoComponent(), true); centreWithSize (getWidth(), getHeight()); sizeLimit.setMinimumSize(600, 400); setConstrainer(&sizeLimit); setVisible (true); setResizable(true, true);

Main Componenent:

//some constructor code, then...
rectPlace = new RectanglePlacement(4 + 8);

// later...
void VideoComponent::resized()
{
	rect->setBounds (10, 10, getWidth() - 20, getHeight() - 50);
	videoPlayer->setBoundsWithCorrectAspectRatio (*rect, *rectPlace);
	control->setBounds(videoPlayer->getX(), videoPlayer->getBottom(), videoPlayer->getWidth(), 30);
}

Any ideas?


#2

Which corner are you dragging from?


#3

Bottom right


#4

One more pice of info: The main component is a QuickTimeVideoComponent. When I get rid of it, but keep all of the other components, the problem goes away. But since the other components were set relative to the QuickTime component, they were jumping too. So the QT component is causing the problem.

Anyone experience that issue with QuickTimeVideoComponent?


#5

You mean your contentComponent is a QuickTimeVideoComponent?


#6

No. The component set to be owned by the main window is just a regular component. It then owns two components, one of which is a QuickTimeVideoComponent.


#7

Never tried a quicktime component myself. But maybe the resizing is taking too much CPU power and JUCE has trouble keeping up?
What is your CPU meter indicating?
Are you running debug or release mode?


#8

CPU meter is running around 20-30 % when I’m resizing the window. This is pretty low compared to say, XCode, which runs at around 70% when I’m resizing the window. I’m runinng Debug mode.


#9

Quicktime uses an embedded window that I think might use its own thread for updating, so it does sometimes tear. Don’t think I can do anything about it.


#10

K. Maybe I can figure out a workaround. Thanks for the replies.