Discussion:
[directfb-users] Animating windows with SaWMan
Johan Larsson
2012-01-09 13:31:16 UTC
Permalink
Hello.

I am trying to animate windows from various processes using a SaWMan-based
WM program, and I've run into some trouble.

The basic flow of the WM program is this:
1: Receive button press in the SaWMan InputFilter callback
2: Set a periodic timer and return.
3: Every time the timer ticks, do something like:

SaWManager->Lock(SaWManager)
for (<every window>) {
SaWManWindowConfig config;
config.bounds = windows->second.bounds;
config.bounds.x += 20;
SaWManager->SetWindowConfig(SaWManager,
window,
SWMCF_POSITION,
&config);
}
SaWManager->QueueUpdate(SaWManager, DWSC_MIDDLE, NULL);
SaWManager->Unlock(SaWManager);
SaWManager->ProcessUpdates(SaWManager, DSFLIP_NONE);

I've tried several variations of the above, but that's the theme of
it. However, this does not work. It seems the system never receives any
notification that it needs to redraw the window. I can see the window move
only if its owner process tries to redraw it. I've found no way to trigger
a redraw operation from the SaWMan process.

So I'm wondering, what is the correct method for doing animated window
transitions using SaWMan, and is there a way to trigger a redraw of a
window after calling SetWindowConfig?

Regards,
Johan L

Loading...