Viewport diagonal scrolling redraw



Hello,
It looks like gtk_viewport_adjustment_value_changed() calls gdk_window_process_updates... is that necessary? I'm trying to scroll a large (cairo drawn) image in a scrolledwindow diagonally on an older system, and I call gtk_adjustment_set_value() on each scrollbar with the new positions, and my expose callback gets called twice. I can handle laggy diagonal motion, but semi-fast interleaved vertical and horizontal jumps make me nauseus.

I could, I guess, use a raw GtkViewport and call gdk_window_move on the bin_window or something myself, but that seems a bit ugly.

Is there some straightforward way to avoid this problem? Or I might be misunderstanding things completely.

As a side note, does gdk_window_process_updates() preserve mouse motion events when the MOTION_HINT mask is set? I also had motion event queuing problems (I would stop moving the mouse but the screen would continually redraw for a few seconds until it had caught up) before I moved the gtk_adjustment_set_value()'s out of the motion handling code and into a g_idle_add callback.

Thanks!
Rendaw




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]