Sisyphus repositório
Última atualização: 1 outubro 2023 | SRPMs: 18631 | Visitas: 37777149
en ru br
ALT Linux repositórios
S:2.1.5-alt9
5.0: 2.1.5-alt3
4.1: 2.1.5-alt3
4.0: 2.1.5-alt1
3.0: 2.0.1-alt1

Outros repositórios
Upstream:2.0.4

Group :: Gráficos
RPM: gqview

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs e FR  Repocop 

Patch: gqview-pixbuf-renderer-use-gdk_region.patch
Download


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
 
projeto & código: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
mantenedor atual: Michael Shigorin
mantenedor da tradução: Fernando Martini aka fmartini © 2009