Merge from gtk-2-0:

2002-09-12  Tor Lillqvist  <tml@iki.fi>

	Merge from gtk-2-0:

	* gdk/win32/gdkgeometry-win32.c: Add GDK_NOTE debugging output
	to some functions, related to moving and resizing and expose
	and antiexpose queue processing. Use %p to output HWNDs.

	Tentative fix for #79720 based on code by Florent Duguet:

	* gdk/win32/gdkgeometry-win32 (gdk_window_queue_append): New
	static function. Checks length of translate_queue, calls
	_gdk_window_process_expose() if length is >= 128. Then appends
	to translate_queue.
	(gdk_window_queue_translation,_gdk_windowing_window_queue_antiexpose):
	Call gdk_window_queue_append().
This commit is contained in:
Tor Lillqvist 2002-09-11 21:20:11 +00:00 committed by Tor Lillqvist
parent 1acfb9ae12
commit c06ae8c21a
7 changed files with 152 additions and 13 deletions

View File

@ -22,6 +22,10 @@
work like I think it should on non-Latin keyboards, too, use
latin_locale when looking for the corresponding keycode.
* gdk/win32/gdkgeometry-win32.c: Add GDK_NOTE debugging output
to some functions, related to moving and resizing and expose
and antiexpose queue processing. Use %p to output HWNDs.
Fix for #81831 by Tim Evans:
* gdk/win32/gdkevents-win32.c (gdk_event_translate): Don't call
@ -32,6 +36,15 @@
_gdk_event_button_generate() to perhaps append the double- or
triple-click event after that.
Tentative fix for #79720 based on code by Florent Duguet:
* gdk/win32/gdkgeometry-win32 (gdk_window_queue_append): New
static function. Checks length of translate_queue, calls
_gdk_window_process_expose() if length is >= 128. Then appends
to translate_queue.
(gdk_window_queue_translation,_gdk_windowing_window_queue_antiexpose):
Call gdk_window_queue_append().
Merge from gtk-1-3-win32-production branch:
* gdk/win32/gdkevents-win32.c (propagate): Check for parent being

View File

@ -22,6 +22,10 @@
work like I think it should on non-Latin keyboards, too, use
latin_locale when looking for the corresponding keycode.
* gdk/win32/gdkgeometry-win32.c: Add GDK_NOTE debugging output
to some functions, related to moving and resizing and expose
and antiexpose queue processing. Use %p to output HWNDs.
Fix for #81831 by Tim Evans:
* gdk/win32/gdkevents-win32.c (gdk_event_translate): Don't call
@ -32,6 +36,15 @@
_gdk_event_button_generate() to perhaps append the double- or
triple-click event after that.
Tentative fix for #79720 based on code by Florent Duguet:
* gdk/win32/gdkgeometry-win32 (gdk_window_queue_append): New
static function. Checks length of translate_queue, calls
_gdk_window_process_expose() if length is >= 128. Then appends
to translate_queue.
(gdk_window_queue_translation,_gdk_windowing_window_queue_antiexpose):
Call gdk_window_queue_append().
Merge from gtk-1-3-win32-production branch:
* gdk/win32/gdkevents-win32.c (propagate): Check for parent being

View File

@ -22,6 +22,10 @@
work like I think it should on non-Latin keyboards, too, use
latin_locale when looking for the corresponding keycode.
* gdk/win32/gdkgeometry-win32.c: Add GDK_NOTE debugging output
to some functions, related to moving and resizing and expose
and antiexpose queue processing. Use %p to output HWNDs.
Fix for #81831 by Tim Evans:
* gdk/win32/gdkevents-win32.c (gdk_event_translate): Don't call
@ -32,6 +36,15 @@
_gdk_event_button_generate() to perhaps append the double- or
triple-click event after that.
Tentative fix for #79720 based on code by Florent Duguet:
* gdk/win32/gdkgeometry-win32 (gdk_window_queue_append): New
static function. Checks length of translate_queue, calls
_gdk_window_process_expose() if length is >= 128. Then appends
to translate_queue.
(gdk_window_queue_translation,_gdk_windowing_window_queue_antiexpose):
Call gdk_window_queue_append().
Merge from gtk-1-3-win32-production branch:
* gdk/win32/gdkevents-win32.c (propagate): Check for parent being

View File

@ -22,6 +22,10 @@
work like I think it should on non-Latin keyboards, too, use
latin_locale when looking for the corresponding keycode.
* gdk/win32/gdkgeometry-win32.c: Add GDK_NOTE debugging output
to some functions, related to moving and resizing and expose
and antiexpose queue processing. Use %p to output HWNDs.
Fix for #81831 by Tim Evans:
* gdk/win32/gdkevents-win32.c (gdk_event_translate): Don't call
@ -32,6 +36,15 @@
_gdk_event_button_generate() to perhaps append the double- or
triple-click event after that.
Tentative fix for #79720 based on code by Florent Duguet:
* gdk/win32/gdkgeometry-win32 (gdk_window_queue_append): New
static function. Checks length of translate_queue, calls
_gdk_window_process_expose() if length is >= 128. Then appends
to translate_queue.
(gdk_window_queue_translation,_gdk_windowing_window_queue_antiexpose):
Call gdk_window_queue_append().
Merge from gtk-1-3-win32-production branch:
* gdk/win32/gdkevents-win32.c (propagate): Check for parent being

View File

@ -22,6 +22,10 @@
work like I think it should on non-Latin keyboards, too, use
latin_locale when looking for the corresponding keycode.
* gdk/win32/gdkgeometry-win32.c: Add GDK_NOTE debugging output
to some functions, related to moving and resizing and expose
and antiexpose queue processing. Use %p to output HWNDs.
Fix for #81831 by Tim Evans:
* gdk/win32/gdkevents-win32.c (gdk_event_translate): Don't call
@ -32,6 +36,15 @@
_gdk_event_button_generate() to perhaps append the double- or
triple-click event after that.
Tentative fix for #79720 based on code by Florent Duguet:
* gdk/win32/gdkgeometry-win32 (gdk_window_queue_append): New
static function. Checks length of translate_queue, calls
_gdk_window_process_expose() if length is >= 128. Then appends
to translate_queue.
(gdk_window_queue_translation,_gdk_windowing_window_queue_antiexpose):
Call gdk_window_queue_append().
Merge from gtk-1-3-win32-production branch:
* gdk/win32/gdkevents-win32.c (propagate): Check for parent being

View File

@ -22,6 +22,10 @@
work like I think it should on non-Latin keyboards, too, use
latin_locale when looking for the corresponding keycode.
* gdk/win32/gdkgeometry-win32.c: Add GDK_NOTE debugging output
to some functions, related to moving and resizing and expose
and antiexpose queue processing. Use %p to output HWNDs.
Fix for #81831 by Tim Evans:
* gdk/win32/gdkevents-win32.c (gdk_event_translate): Don't call
@ -32,6 +36,15 @@
_gdk_event_button_generate() to perhaps append the double- or
triple-click event after that.
Tentative fix for #79720 based on code by Florent Duguet:
* gdk/win32/gdkgeometry-win32 (gdk_window_queue_append): New
static function. Checks length of translate_queue, calls
_gdk_window_process_expose() if length is >= 128. Then appends
to translate_queue.
(gdk_window_queue_translation,_gdk_windowing_window_queue_antiexpose):
Call gdk_window_queue_append().
Merge from gtk-1-3-win32-production branch:
* gdk/win32/gdkevents-win32.c (propagate): Check for parent being

View File

@ -124,6 +124,12 @@ gdk_window_copy_area_scroll (GdkWindow *window,
GdkWindowObject *obj = GDK_WINDOW_OBJECT (window);
GList *tmp_list;
GDK_NOTE (MISC, g_print ("gdk_window_copy_area_scroll: %p %dx%d@+%d+%d %d,%d\n",
GDK_WINDOW_HWND (window),
dest_rect->width, dest_rect->height,
dest_rect->x, dest_rect->y,
dx, dy));
if (dest_rect->width > 0 && dest_rect->height > 0)
{
RECT clipRect;
@ -217,6 +223,9 @@ gdk_window_guffaw_scroll (GdkWindow *window,
GdkWindowParentPos parent_pos;
GList *tmp_list;
GDK_NOTE (EVENTS, g_print ("gdk_window_guffaw_scroll %p %d,%d\n",
GDK_WINDOW_HWND (window), dx, dy));
gdk_window_compute_parent_pos (impl, &parent_pos);
gdk_window_compute_position (impl, &parent_pos, &new_info);
@ -313,6 +322,9 @@ gdk_window_scroll (GdkWindow *window,
if (GDK_WINDOW_DESTROYED (window))
return;
GDK_NOTE (EVENTS, g_print ("gdk_window_scroll %p %d,%d\n",
GDK_WINDOW_HWND (window), dx, dy));
obj = GDK_WINDOW_OBJECT (window);
impl = GDK_WINDOW_IMPL_WIN32 (obj->impl);
@ -379,6 +391,9 @@ _gdk_window_move_resize_child (GdkWindow *window,
g_return_if_fail (window != NULL);
g_return_if_fail (GDK_IS_WINDOW (window));
GDK_NOTE (MISC, g_print ("_gdk_window_move_resize_child: %p %dx%d@+%d+%d\n",
GDK_WINDOW_HWND (window), width, height, x, y));
obj = GDK_WINDOW_OBJECT (window);
impl = GDK_WINDOW_IMPL_WIN32 (obj->impl);
@ -388,6 +403,8 @@ _gdk_window_move_resize_child (GdkWindow *window,
is_move = dx != 0 || dy != 0;
is_resize = impl->width != width || impl->height != height;
GDK_NOTE (MISC, g_print ("...is_move:%d is_resize:%d\n", is_move, is_resize));
if (!is_move && !is_resize)
return;
@ -414,6 +431,8 @@ _gdk_window_move_resize_child (GdkWindow *window,
{
GdkRectangle new_position;
GDK_NOTE (MISC, g_print ("...d_xoffset=%d d_yoffset=%d\n", d_xoffset, d_yoffset));
gdk_window_set_static_gravities (window, TRUE);
if (d_xoffset < 0 || d_yoffset < 0)
@ -422,6 +441,10 @@ _gdk_window_move_resize_child (GdkWindow *window,
compute_intermediate_position (&impl->position_info, &new_info, d_xoffset, d_yoffset,
&new_position);
GDK_NOTE (MISC, g_print ("...SetWindowPos(%p,%dx%d@+%d+%d)\n",
GDK_WINDOW_HWND (window),
new_position.width, new_position.height,
new_position.x, new_position.y));
if (!SetWindowPos (GDK_WINDOW_HWND (window), NULL,
new_position.x, new_position.y,
new_position.width, new_position.height,
@ -435,6 +458,9 @@ _gdk_window_move_resize_child (GdkWindow *window,
tmp_list = tmp_list->next;
}
GDK_NOTE (MISC, g_print ("...SetWindowPos(%p,0x0@+%d+%d)\n",
GDK_WINDOW_HWND (window),
new_position.x + dx, new_position.y + dy));
if (!SetWindowPos (GDK_WINDOW_HWND (window), NULL,
new_position.x + dx, new_position.y + dy, 0, 0,
SWP_NOACTIVATE | SWP_NOZORDER | SWP_NOSIZE | SWP_NOREDRAW))
@ -443,6 +469,10 @@ _gdk_window_move_resize_child (GdkWindow *window,
if (d_xoffset > 0 || d_yoffset > 0)
gdk_window_queue_translation (window, MAX (d_xoffset, 0), MAX (d_yoffset, 0));
GDK_NOTE (MISC, g_print ("...SetWindowPos(%p,%dx%d@+%d+%d)\n",
GDK_WINDOW_HWND (window),
new_info.width, new_info.height,
new_info.x, new_info.y));
if (!SetWindowPos (GDK_WINDOW_HWND (window), NULL,
new_info.x, new_info.y,
new_info.width, new_info.height,
@ -453,7 +483,11 @@ _gdk_window_move_resize_child (GdkWindow *window,
gdk_window_tmp_reset_bg (window);
if (!impl->position_info.mapped && new_info.mapped && GDK_WINDOW_IS_MAPPED (obj))
ShowWindow (GDK_WINDOW_HWND (window), SW_SHOWNA);
{
GDK_NOTE (MISC, g_print ("...ShowWindow(%p, SW_SHOWNA)\n",
GDK_WINDOW_HWND (window)));
ShowWindow (GDK_WINDOW_HWND (window), SW_SHOWNA);
}
impl->position_info = new_info;
@ -470,7 +504,11 @@ _gdk_window_move_resize_child (GdkWindow *window,
gdk_window_set_static_gravities (window, FALSE);
if (impl->position_info.mapped && !new_info.mapped)
ShowWindow (GDK_WINDOW_HWND (window), SW_HIDE);
{
GDK_NOTE (MISC, g_print ("...ShowWindow(%p, SW_HIDE)\n",
GDK_WINDOW_HWND (window)));
ShowWindow (GDK_WINDOW_HWND (window), SW_HIDE);
}
tmp_list = obj->children;
while (tmp_list)
@ -479,6 +517,10 @@ _gdk_window_move_resize_child (GdkWindow *window,
tmp_list = tmp_list->next;
}
GDK_NOTE (MISC, g_print ("...SetWindowPos(%p,%dx%d@+%d+%d)\n",
GDK_WINDOW_HWND (window),
new_info.width, new_info.height,
new_info.x, new_info.y));
if (!SetWindowPos (GDK_WINDOW_HWND (window), NULL,
new_info.x, new_info.y,
new_info.width, new_info.height,
@ -497,7 +539,11 @@ _gdk_window_move_resize_child (GdkWindow *window,
gdk_window_tmp_reset_bg (window);
if (!impl->position_info.mapped && new_info.mapped && GDK_WINDOW_IS_MAPPED (obj))
ShowWindow (GDK_WINDOW_HWND (window), SW_SHOWNA);
{
GDK_NOTE (MISC, g_print ("...ShowWindow(%p, SW_SHOWNA)\n",
GDK_WINDOW_HWND (window)));
ShowWindow (GDK_WINDOW_HWND (window), SW_SHOWNA);
}
impl->position_info = new_info;
}
@ -769,6 +815,21 @@ gdk_window_postmove (GdkWindow *window,
}
}
static void
gdk_window_queue_append (GdkWindow *window,
GdkWindowQueueItem *item)
{
if (g_slist_length (translate_queue) >= 128)
{
GdkWindowImplWin32 *impl = GDK_WINDOW_IMPL_WIN32 (GDK_WINDOW_OBJECT (window)->impl);
GDK_NOTE (EVENTS, g_print ("gdk_window_queue_append: length >= 128\n"));
_gdk_window_process_expose (window, GetCurrentTime (), &impl->position_info.clip_rect);
}
translate_queue = g_slist_append (translate_queue, item) ;
}
static void
gdk_window_queue_translation (GdkWindow *window,
gint dx,
@ -781,13 +842,13 @@ gdk_window_queue_translation (GdkWindow *window,
item->u.translate.dx = dx;
item->u.translate.dy = dy;
GDK_NOTE (EVENTS, g_print ("gdk_window_queue_translation %#x %ld %d,%d\n",
(guint) GDK_WINDOW_HWND (window),
GDK_NOTE (EVENTS, g_print ("gdk_window_queue_translation %p %ld %d,%d\n",
GDK_WINDOW_HWND (window),
item->serial,
dx, dy));
gdk_drawable_ref (window);
translate_queue = g_slist_append (translate_queue, item);
gdk_window_queue_append (window, item);
}
gboolean
@ -802,15 +863,15 @@ _gdk_windowing_window_queue_antiexpose (GdkWindow *window,
item->type = GDK_WINDOW_QUEUE_ANTIEXPOSE;
item->u.antiexpose.area = area;
GDK_NOTE (EVENTS, g_print ("_gdk_windowing_window_queue_antiexpose %#x %ld %dx%d@+%d+%d\n",
(guint) GDK_WINDOW_HWND (window),
GDK_NOTE (EVENTS, g_print ("_gdk_windowing_window_queue_antiexpose %p %ld %dx%d@+%d+%d\n",
GDK_WINDOW_HWND (window),
item->serial,
area->extents.x2 - area->extents.x1,
area->extents.y2 - area->extents.y1,
area->extents.x1, area->extents.y1));
gdk_drawable_ref (window);
translate_queue = g_slist_append (translate_queue, item);
gdk_window_queue_append (window, item);
return TRUE;
#else
@ -822,8 +883,8 @@ _gdk_windowing_window_queue_antiexpose (GdkWindow *window,
g_return_val_if_fail (area != NULL, FALSE);
GDK_NOTE (MISC, g_print ("_gdk_windowing_window_queue_antiexpose %#x\n",
(guint) GDK_WINDOW_HWND (window)));
GDK_NOTE (MISC, g_print ("_gdk_windowing_window_queue_antiexpose %p\n",
GDK_WINDOW_HWND (window)));
/* HB: not quite sure if this is the right thing to do.
* (Region not to be proceesed by next WM_PAINT)
@ -846,8 +907,8 @@ _gdk_window_process_expose (GdkWindow *window,
impl = GDK_WINDOW_IMPL_WIN32 (GDK_WINDOW_OBJECT (window)->impl);
GDK_NOTE (EVENTS, g_print ("_gdk_window_process_expose %#x %ld %dx%d@+%d+%d\n",
(guint) GDK_WINDOW_HWND (window), serial,
GDK_NOTE (EVENTS, g_print ("_gdk_window_process_expose %p %ld %dx%d@+%d+%d\n",
GDK_WINDOW_HWND (window), serial,
area->width, area->height, area->x, area->y));
while (tmp_list)