widget: Remove special case in gtk_widget_queue_draw_area()

This path would only do anything where widget->window was not located at
widget->allocation.x/y but at a different position. This should never
happen in the real world. But if it does, GTK3 will break for you.
Better fix your widget.
This commit is contained in:
Benjamin Otte 2010-10-18 17:34:33 +02:00
parent d34b9ed192
commit 206b41c6f6

View File

@ -4287,42 +4287,6 @@ gtk_widget_queue_draw_area (GtkWidget *widget,
if (!gtk_widget_get_mapped (w))
return;
/* Find the correct widget */
if (gtk_widget_get_has_window (widget))
{
if (priv->parent)
{
/* Translate widget relative to window-relative */
gint wx, wy, wwidth, wheight;
gdk_window_get_position (priv->window, &wx, &wy);
x -= wx - priv->allocation.x;
y -= wy - priv->allocation.y;
wwidth = gdk_window_get_width (priv->window);
wheight = gdk_window_get_height (priv->window);
if (x + width <= 0 || y + height <= 0 ||
x >= wwidth || y >= wheight)
return;
if (x < 0)
{
width += x; x = 0;
}
if (y < 0)
{
height += y; y = 0;
}
if (x + width > wwidth)
width = wwidth - x;
if (y + height > wheight)
height = wheight - y;
}
}
invalid_rect.x = x;
invalid_rect.y = y;
invalid_rect.width = width;