Репозитории ALT
S: | 2.1.5-alt9 |
5.1: | 2.1.5-alt3 |
4.1: | 2.1.5-alt3 |
4.0: | 2.1.5-alt1 |
3.0: | 2.0.1-alt1 |
Другие репозитории
Upstream: | 2.0.4 |
Группа :: Графика
Пакет: gqview
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: gqview-pixbuf-renderer-use-gdk_region.patch
Скачать
Скачать
From 3844ac8753051b03e7f11f4625aaf7d84a01fe29 Mon Sep 17 00:00:00 2001
From: Vladislav Zavjalov <slazav@altlinux.org>
Date: Wed, 14 Jul 2010 05:54:24 +0400
Subject: [PATCH] pixbuf-renderer: use gdk_region_get_rectangles instead of event->area
---
gqview/src/pixbuf-renderer.c | 34 ++++++++++++++++------------------
1 files changed, 16 insertions(+), 18 deletions(-)
diff --git a/gqview/src/pixbuf-renderer.c b/gqview/src/pixbuf-renderer.c
index b873010..726de7f 100644
--- a/gqview/src/pixbuf-renderer.c
+++ b/gqview/src/pixbuf-renderer.c
@@ -607,29 +607,27 @@ static void pixbuf_renderer_get_property(GObject *object, guint prop_id,
static gint pixbuf_renderer_expose(GtkWidget *widget, GdkEventExpose *event)
{
- if (GTK_WIDGET_DRAWABLE(widget))
- {
- if (!GTK_WIDGET_NO_WINDOW(widget))
- {
- if (event->window != widget->window)
- {
- GdkRectangle area;
+ GdkRectangle *rects;
+ int nrects, n;
- gdk_window_get_position(event->window, &area.x, &area.y);
+ if (!GTK_WIDGET_DRAWABLE(widget)) return FALSE;
+ if (GTK_WIDGET_NO_WINDOW(widget)) return FALSE;
- area.x += event->area.x;
- area.y += event->area.y;
- area.width = event->area.width;
- area.height = event->area.height;
- pixbuf_renderer_paint(PIXBUF_RENDERER(widget), &area);
- }
- else
- {
- pixbuf_renderer_paint(PIXBUF_RENDERER(widget), &event->area);
- }
+ gdk_region_get_rectangles(event->region, &rects, &nrects);
+
+ for (n = 0; n < nrects; n++)
+ {
+ if (event->window != widget->window)
+ {
+ GdkRectangle area;
+ gdk_window_get_position(event->window, &area.x, &area.y);
+ rects[n].x += area.x;
+ rects[n].y += area.y;
}
+ pixbuf_renderer_paint(PIXBUF_RENDERER(widget), &rects[n]);
}
+ g_free(rects);
return FALSE;
}
--
1.6.5.3