---------- Forwarded message ----------
From:
jonathan david <jodagm gmail com>
Date: Tue, May 12, 2009 at 10:48 AM
Subject: GTK win32 - g_main_context_iteration during WM_WINDOWPOSCHANGED
To:
gtk-app-devel-list gnome orgHello all,
I set a timer that calls gtk_window_move on a popup window(*1). while the popup window is moving I move the main application window.
This leads to immediate processing of WM_WINDOWPOSCHANGED message, which in turn calls g_main_context_iteration
during that iteration, additional call to the timer is made which causes unexpected behavior (the timer func expects the operation to complete before it is re-entered, and the first timer func has not yet returned from the gtk_window_move call)
should there be a limitation on functions calls that may result in premature activation of the main loop (during timeout CBs)?
Am I misusing the timer?
there is also a modal_timer_proc called when the window is being dragged, which calls g_main_context_iteration.
while tracing my problem I tried to blocked this timer and saw that all my application windows are sill redrawn while one
of them is dragged on top of the others. What should this timer execute during the modal loop?
Thanks in advance,
Jonathan
*1 - the popup window is set up as:
GTK_WINDOW(win)->type = GTK_WINDOW_POPUP;
gtk_window_set_decorated(GTK_WINDOW(win), 0);
gtk_window_set_skip_pager_hint(GTK_WINDOW(win), 1);
gtk_window_set_type_hint(GTK_WINDOW(win), GDK_WINDOW_TYPE_HINT_DIALOG);
gtk_window_stick(GTK_WINDOW(win));
gtk_window_set_skip_taskbar_hint(GTK_WINDOW(win), 1);
gtk_window_set_keep_above(GTK_WINDOW(win), 1);
gtk_window_set_accept_focus(GTK_WINDOW(win), 0);