Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37542364
en ru br
Репозитории 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
www.altlinux.org/Changes

Другие репозитории
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
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin