forked from AuroraMiddleware/gtk
Bug 153567 – Repaint glitches in widgets
2008-07-21 Cody Russell <bratsche@gnome.org> Bug 153567 – Repaint glitches in widgets * gdk/win32/gdkevents-win32.c: Set a sync timer when we receive WM_SYNCPAINT, and RedrawWindow() once the timer expires. svn path=/trunk/; revision=20881
This commit is contained in:
parent
b06c30bb51
commit
c8fef535b2
@ -1,3 +1,11 @@
|
|||||||
|
2008-07-21 Cody Russell <bratsche@gnome.org>
|
||||||
|
|
||||||
|
Bug 153567 – Repaint glitches in widgets
|
||||||
|
|
||||||
|
* gdk/win32/gdkevents-win32.c: Set a sync timer when
|
||||||
|
we receive WM_SYNCPAINT, and RedrawWindow() once
|
||||||
|
the timer expires.
|
||||||
|
|
||||||
2008-07-21 Michael Natterer <mitch@imendio.com>
|
2008-07-21 Michael Natterer <mitch@imendio.com>
|
||||||
|
|
||||||
* gtk/gtktoolbar.c (gtk_toolbar_class_init): use the simpler
|
* gtk/gtktoolbar.c (gtk_toolbar_class_init): use the simpler
|
||||||
|
@ -139,6 +139,7 @@ static HKL latin_locale = NULL;
|
|||||||
|
|
||||||
static gboolean in_ime_composition = FALSE;
|
static gboolean in_ime_composition = FALSE;
|
||||||
static UINT modal_timer;
|
static UINT modal_timer;
|
||||||
|
static UINT sync_timer = 0;
|
||||||
|
|
||||||
static int debug_indent = 0;
|
static int debug_indent = 0;
|
||||||
|
|
||||||
@ -2031,14 +2032,31 @@ handle_stuff_while_moving_or_resizing (void)
|
|||||||
|
|
||||||
static VOID CALLBACK
|
static VOID CALLBACK
|
||||||
modal_timer_proc (HWND hwnd,
|
modal_timer_proc (HWND hwnd,
|
||||||
UINT msg,
|
UINT msg,
|
||||||
UINT id,
|
UINT id,
|
||||||
DWORD time)
|
DWORD time)
|
||||||
{
|
{
|
||||||
if (_sizemove_in_progress)
|
if (_sizemove_in_progress)
|
||||||
handle_stuff_while_moving_or_resizing ();
|
handle_stuff_while_moving_or_resizing ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static VOID CALLBACK
|
||||||
|
sync_timer_proc (HWND hwnd,
|
||||||
|
UINT msg,
|
||||||
|
UINT id,
|
||||||
|
DWORD time)
|
||||||
|
{
|
||||||
|
MSG message;
|
||||||
|
if (PeekMessageW (&message, hwnd, WM_PAINT, WM_PAINT, PM_REMOVE))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
RedrawWindow (hwnd, NULL, NULL, RDW_INVALIDATE|RDW_UPDATENOW|RDW_ALLCHILDREN);
|
||||||
|
|
||||||
|
KillTimer (hwnd, sync_timer);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
handle_display_change (void)
|
handle_display_change (void)
|
||||||
{
|
{
|
||||||
@ -2824,6 +2842,13 @@ gdk_event_translate (MSG *msg,
|
|||||||
*ret_valp = 1;
|
*ret_valp = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case WM_SYNCPAINT:
|
||||||
|
|
||||||
|
sync_timer = SetTimer (GDK_WINDOW_HWND (window),
|
||||||
|
1,
|
||||||
|
200, sync_timer_proc);
|
||||||
|
break;
|
||||||
|
|
||||||
case WM_PAINT:
|
case WM_PAINT:
|
||||||
handle_wm_paint (msg, window, FALSE, NULL);
|
handle_wm_paint (msg, window, FALSE, NULL);
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user