Fix ugly artifacts with upstream patches as pointed by Behdad Esfahbod. Also remove...
authorPacho Ramos <pacho@gentoo.org>
Thu, 17 Jun 2010 19:33:21 +0000 (19:33 +0000)
committerPacho Ramos <pacho@gentoo.org>
Thu, 17 Jun 2010 19:33:21 +0000 (19:33 +0000)
Package-Manager: portage-2.1.8.3/cvs/Linux x86_64

x11-libs/vte/ChangeLog
x11-libs/vte/Manifest
x11-libs/vte/files/vte-0.24.1-background-color.patch [new file with mode: 0644]
x11-libs/vte/files/vte-0.24.1-background-color2.patch [new file with mode: 0644]
x11-libs/vte/files/vte-0.24.1-cleanup-background.patch [new file with mode: 0644]
x11-libs/vte/vte-0.24.1-r1.ebuild [moved from x11-libs/vte/vte-0.24.1.ebuild with 71% similarity]

index 979edcfb0f2cec6b4db8368e3157e84a62ad03fe..e858ea77af7a40dc9663e66f0d2a44f328c8593c 100644 (file)
@@ -1,6 +1,16 @@
 # ChangeLog for x11-libs/vte
 # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/vte/ChangeLog,v 1.249 2010/06/15 08:35:54 pacho Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/vte/ChangeLog,v 1.250 2010/06/17 19:33:21 pacho Exp $
+
+*vte-0.24.1-r1 (17 Jun 2010)
+
+  17 Jun 2010; Pacho Ramos <pacho@gentoo.org> -vte-0.24.1.ebuild,
+  +vte-0.24.1-r1.ebuild, +files/vte-0.24.1-background-color.patch,
+  +files/vte-0.24.1-background-color2.patch,
+  +files/vte-0.24.1-cleanup-background.patch:
+  Apply upstream patches from master to fix ugly artifacts I were seeing in
+  some situations. Thanks a lot to Behdad Esfahbod in upstream bug #621902
+  for pointing to the proper patches.
 
   15 Jun 2010; Pacho Ramos <pacho@gentoo.org> vte-0.24.1.ebuild:
   Update glib and gtk-doc dependencies per bug #324007 (by Nathan Phillip
index 82f6a79fe818ce6eab2c8dc4ec2be1b376dfa97f..15bef0aab13daf60f8e8c202a8ca6203be85b4a3 100644 (file)
@@ -3,6 +3,9 @@ Hash: SHA1
 
 AUX vte-0.17.4-fix-highlighting-on-activity.patch 1536 RMD160 bd992b58360d082877039962dea019df7bc3fbfc SHA1 1ac3675bd937b734ebfaee04c6b56b389a0f5326 SHA256 a3ae37d0d8753a11058b9a0c3809d20384c6a5a74a1610ad89935465cb66c7c7
 AUX vte-0.17.4-no-null-backspace.patch 1704 RMD160 2c4292c7448a5ffafc10b17bde5ea3c3b0fc98b7 SHA1 8974de33ea0b80fb35c5f5658cfaff82f5fd2207 SHA256 89dffab495ad08af010e831e137f161471884ca8badc5051dae641c0c67e2742
+AUX vte-0.24.1-background-color.patch 683 RMD160 aa89a94d30455f105f12f555e6dad5830eca5c22 SHA1 78eadd3f2262963ad89fc84e485ce05d77fa77cd SHA256 1227c139a2fb827034e8d77c9f00e49eb1732ede3574c445423ead397924b196
+AUX vte-0.24.1-background-color2.patch 1406 RMD160 d3983d10a302c760edb43d894ec554afc162eb53 SHA1 f801e81c1262363f7b8d5dbade471a68d51aea45 SHA256 7be2c15995919621b0815ee4689d3f869fb931f9f905fae54a052190a3ad60d9
+AUX vte-0.24.1-cleanup-background.patch 5172 RMD160 112b01003a0e520a65a2a1897c44e65c6b1480dd SHA1 ec2bb75c27e8dda79e2b3e6e20562e960a4e7cfc SHA256 9e6535c6643b4d7fde55477d2c4f9ef0b077fb587311636ba07eca60e4461f9e
 DIST vte-0.17.4.tar.bz2 1084847 RMD160 8fa3ccc35bc9ef8c204b058b180f532ba6fe7a1a SHA1 fe4a3ec476c97d0f385249ee60edb12887b69575 SHA256 50ae10aea7fa99c9ae296031782c18ac15663e84eb6ecd94cd0a18c7843987d2
 DIST vte-0.20.5.tar.bz2 1328766 RMD160 88e2067a67eea8a6f067d4a5851c0222fde7d468 SHA1 8e3a471183258d5f0ca807465e5b86bb29a3d110 SHA256 d69ec08804eaa03beef93d39b1cb56ecb98a492f1dd091343b69303ef999681b
 DIST vte-0.22.5.tar.bz2 1351975 RMD160 4fde6a39f81eb8440d467afbb1410e03f8e83fe4 SHA1 c9dd126991cf6d50ac3c678c0e117a5b2fefc180 SHA256 c0987126347e12daf2bf9b772b6c58ddf8a922f5b8341470ed578d9fcea7b2f6
@@ -10,13 +13,13 @@ DIST vte-0.24.1.tar.bz2 1312731 RMD160 a2ee4744b144e0beab536482bce4142753bcbcf4
 EBUILD vte-0.17.4-r3.ebuild 1234 RMD160 d29ffd397d700fd4303fd1553b536015e6afaf2d SHA1 ab80da1521814d1fd0de2fca08872e501c21f6a1 SHA256 d3e6532ec8d2dcea3474f54b1faac7f4ed38a031a01efd49a1f40406b5857872
 EBUILD vte-0.20.5.ebuild 1154 RMD160 24a2875140fed6a5205cbc7de8290ee1a9a26569 SHA1 a7b1d51fbc6120018ca7a38f25db731bc740475b SHA256 5eb08b9853a67d71a29e511d587e384d8c53df160b64120732b541afa1055581
 EBUILD vte-0.22.5.ebuild 1020 RMD160 8e3f238a94338b5e77ae5c6889550e07d9901cd9 SHA1 481dd054515d2f71d5e1fd5f5d6d6875dc8fe0f7 SHA256 1d8afc6814ad26b535694e2a34884daefc93cbde04f3c2c22f75fc2ed2ca001f
-EBUILD vte-0.24.1.ebuild 1029 RMD160 74b61cb4ee3f6bf568c7db6b44cc9d4a6ada1a88 SHA1 bf4b61a5cc23028de441177568e9e9b57dd3ff5e SHA256 49c422cb7ebf9cf2772b9e194d41d6319a2658ee54e1b34634de3b9d713cb97e
-MISC ChangeLog 31283 RMD160 c69aa5bfb0fd8b56f2820bcc5517ea1cca630719 SHA1 e69cdadbe84a4ceb7ff71a69072d7be0c50bc057 SHA256 b47ff4b26d21c587a2b9d869e0464ad2fd72c74f625d6372b6d468c1e3ec5263
+EBUILD vte-0.24.1-r1.ebuild 1285 RMD160 0e6e27f613c2df7f759395fe4e0c3eaf4f22f766 SHA1 6905abb397f2fa18f887a8f48a906f6856aeffc3 SHA256 e6d2c395aceeaeb2eef82b8eb89c92c25244116f1b257dc5a1eaf5689f478ac8
+MISC ChangeLog 31727 RMD160 a0c0ce3bcdf2dcd1388898b2b977b362b40c9740 SHA1 cd109cd1611dc8bab7a3643b7b40a8e21db26908 SHA256 6bbebfb8a3b948f68ae874e6b3ceb4f719c1532a3dd626ac47424867fd0b35bf
 MISC metadata.xml 250 RMD160 4e46249cd3426e09b6f462c29ea489724464f51c SHA1 96ab3cf6c39bb44e33d788425a99ddd337a31eeb SHA256 86cd2180b3599ddb2bef78131a9c86a37fa1ee7247aa3245e11e7ff6a239e2e0
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.15 (GNU/Linux)
 
-iEYEARECAAYFAkwXO3EACgkQCaWpQKGI+9QNGQCfeGFKTU0PfGiJWjroKFbkPFi5
-0gcAn18ut+im34CWCtXbYwhZKQA6FfS3
-=0MKa
+iEYEARECAAYFAkwaeIcACgkQCaWpQKGI+9SnkACdE327cxeEr7LwFPVYq29Pd89e
+i34AnRNB1DXxv5F468MOj8DROotaNZAO
+=oiKZ
 -----END PGP SIGNATURE-----
diff --git a/x11-libs/vte/files/vte-0.24.1-background-color.patch b/x11-libs/vte/files/vte-0.24.1-background-color.patch
new file mode 100644 (file)
index 0000000..08010d3
--- /dev/null
@@ -0,0 +1,22 @@
+From 430dd34fa9532fa492ea512f226e8483d1393716 Mon Sep 17 00:00:00 2001
+From: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed, 26 May 2010 17:09:25 +0000
+Subject: Fix requires_clear setting
+
+Part of Bug 618749 - [PATCH] set terminal widget background color to terminal
+---
+diff --git a/src/vtedraw.c b/src/vtedraw.c
+index c6971e4..7a0c535 100644
+--- a/src/vtedraw.c
++++ b/src/vtedraw.c
+@@ -873,7 +873,7 @@ _vte_draw_set_background_solid(struct _vte_draw *draw,
+                              double blue,
+                              double opacity)
+ {
+-      draw->requires_clear = opacity != 0xFFFF;
++      draw->requires_clear = opacity != 1;
+ 
+       if (draw->bg_pattern)
+               cairo_pattern_destroy (draw->bg_pattern);
+--
+cgit v0.8.3.1
diff --git a/x11-libs/vte/files/vte-0.24.1-background-color2.patch b/x11-libs/vte/files/vte-0.24.1-background-color2.patch
new file mode 100644 (file)
index 0000000..a64b415
--- /dev/null
@@ -0,0 +1,41 @@
+From 9370647823ce29c1088c351381a07a5506b74c84 Mon Sep 17 00:00:00 2001
+From: Behdad Esfahbod <behdad@behdad.org>
+Date: Wed, 26 May 2010 17:09:47 +0000
+Subject: Bug 618749 - set terminal widget background color to terminal background
+
+---
+diff --git a/src/vte.c b/src/vte.c
+index 5f55335..545ad1b 100644
+--- a/src/vte.c
++++ b/src/vte.c
+@@ -12608,6 +12608,7 @@ vte_terminal_background_update(VteTerminal *terminal)
+ {
+       double saturation;
+       const PangoColor *entry;
++      GdkColor color;
+ 
+       /* If we're not realized yet, don't worry about it, because we get
+        * called when we realize. */
+@@ -12622,9 +12623,17 @@ vte_terminal_background_update(VteTerminal *terminal)
+                       "Updating background image.\n");
+ 
+       entry = &terminal->pvt->palette[VTE_DEF_BG];
+-      _vte_debug_print(VTE_DEBUG_MISC,
+-                      "Setting background color to (%d, %d, %d).\n",
+-                      entry->red, entry->green, entry->blue);
++      _vte_debug_print(VTE_DEBUG_BG,
++                       "Setting background color to (%d, %d, %d, %d).\n",
++                       entry->red, entry->green, entry->blue,
++                       terminal->pvt->bg_opacity);
++
++      /* Set the terminal widget background color since otherwise we
++       * won't draw it for VTE_BG_SOURCE_NONE. */
++      color.red = entry->red;
++      color.green = entry->green;
++      color.blue = entry->blue;
++      gtk_widget_modify_bg (terminal, GTK_STATE_NORMAL, &color);
+ 
+       _vte_draw_set_background_solid (terminal->pvt->draw, 
+                                       entry->red / 65535.,
+--
+cgit v0.8.3.1
diff --git a/x11-libs/vte/files/vte-0.24.1-cleanup-background.patch b/x11-libs/vte/files/vte-0.24.1-cleanup-background.patch
new file mode 100644 (file)
index 0000000..632462f
--- /dev/null
@@ -0,0 +1,166 @@
+From 405ed5bb3151940db0f21ff5b8e96bea94770f96 Mon Sep 17 00:00:00 2001
+From: Behdad Esfahbod <behdad@behdad.org>
+Date: Sat, 12 Jun 2010 02:51:49 +0000
+Subject: Clean up background clearing
+
+Fixes bug where lower border of the screen was not properly painted in
+fullscreen mode.
+---
+diff --git a/src/vte.c b/src/vte.c
+index 545ad1b..9c10804 100644
+--- a/src/vte.c
++++ b/src/vte.c
+@@ -10479,33 +10479,6 @@ vte_terminal_paint_area (VteTerminal *terminal, const GdkRectangle *area)
+                       row * height + terminal->pvt->inner_border.top,
+                       (col_stop - col) * width,
+                       (row_stop - row) * height);
+-      if (!GTK_WIDGET_DOUBLE_BUFFERED (terminal) ||
+-                      _vte_draw_requires_clear (terminal->pvt->draw)) {
+-              GdkRectangle rect;
+-
+-              /* expand clear area to cover borders */
+-              if (col == 0)
+-                      rect.x = 0;
+-              else
+-                      rect.x = area->x;
+-              if (col_stop == terminal->column_count)
+-                      rect.width = terminal->widget.allocation.width;
+-              else
+-                      rect.width = area->x + area->width;
+-              rect.width -= rect.x;
+-              if (row == 0)
+-                      rect.y = 0;
+-              else
+-                      rect.y = area->y;
+-              if (row_stop == terminal->row_count)
+-                      rect.height = terminal->widget.allocation.height;
+-              else
+-                      rect.height = area->y + area->height;
+-              rect.height -= rect.y;
+-
+-              _vte_draw_clear (terminal->pvt->draw,
+-                              rect.x, rect.y, rect.width, rect.height);
+-      }
+ 
+       /* Now we're ready to draw the text.  Iterate over the rows we
+        * need to draw. */
+@@ -10780,28 +10753,28 @@ vte_terminal_paint(GtkWidget *widget, GdkRegion *region)
+                               clip.x, clip.y, clip.width, clip.height);
+       }
+ 
++      _vte_draw_clip(terminal->pvt->draw, region);
++      _vte_draw_clear (terminal->pvt->draw, 0, 0, terminal->widget.allocation.width, terminal->widget.allocation.height);
++
+       /* Calculate the bounding rectangle. */
+-      if (!_vte_draw_clip(terminal->pvt->draw, region)) {
+-              vte_terminal_paint_area (terminal,
+-                              &terminal->widget.allocation);
+-      } else {
++      {
+               GdkRectangle *rectangles;
+               gint n, n_rectangles;
+               gdk_region_get_rectangles (region, &rectangles, &n_rectangles);
+               /* don't bother to enlarge an invalidate all */
+               if (!(n_rectangles == 1
+-                              && rectangles[0].width == terminal->widget.allocation.width
+-                              && rectangles[0].height == terminal->widget.allocation.height)) {
++                    && rectangles[0].width == terminal->widget.allocation.width
++                    && rectangles[0].height == terminal->widget.allocation.height)) {
+                       GdkRegion *rr = gdk_region_new ();
+-                      /* convert pixels into cells */
++                      /* convert pixels into whole cells */
+                       for (n = 0; n < n_rectangles; n++) {
+-                              vte_terminal_expand_region (
+-                                              terminal, rr, rectangles + n);
++                              vte_terminal_expand_region (terminal, rr, rectangles + n);
+                       }
+                       g_free (rectangles);
+                       gdk_region_get_rectangles (rr, &rectangles, &n_rectangles);
+                       gdk_region_destroy (rr);
+               }
++
+               /* and now paint them */
+               for (n = 0; n < n_rectangles; n++) {
+                       vte_terminal_paint_area (terminal, rectangles + n);
+diff --git a/src/vtedraw.c b/src/vtedraw.c
+index 7a0c535..3c1a13c 100644
+--- a/src/vtedraw.c
++++ b/src/vtedraw.c
+@@ -790,8 +790,6 @@ struct _vte_draw {
+ 
+       gint started;
+ 
+-      gboolean requires_clear;
+-
+       struct font_info *font;
+       struct font_info *font_bold;
+       cairo_pattern_t *bg_pattern;
+@@ -807,7 +805,6 @@ _vte_draw_new (GtkWidget *widget)
+       /* Create the structure. */
+       draw = g_slice_new0 (struct _vte_draw);
+       draw->widget = g_object_ref (widget);
+-      draw->requires_clear = FALSE;
+ 
+       _vte_debug_print (VTE_DEBUG_DRAW, "draw_new\n");
+ 
+@@ -873,8 +870,6 @@ _vte_draw_set_background_solid(struct _vte_draw *draw,
+                              double blue,
+                              double opacity)
+ {
+-      draw->requires_clear = opacity != 1;
+-
+       if (draw->bg_pattern)
+               cairo_pattern_destroy (draw->bg_pattern);
+ 
+@@ -894,9 +889,6 @@ _vte_draw_set_background_image (struct _vte_draw *draw,
+ {
+       cairo_surface_t *surface;
+ 
+-      if (type != VTE_BG_SOURCE_NONE)
+-              draw->requires_clear = TRUE;
+-
+       /* Need a valid draw->cr for cairo_get_target () */
+       _vte_draw_start (draw);
+ 
+@@ -934,14 +926,12 @@ _vte_draw_set_background_scroll (struct _vte_draw *draw,
+       cairo_pattern_set_matrix (draw->bg_pattern, &matrix);
+ }
+ 
+-gboolean
++void
+ _vte_draw_clip (struct _vte_draw *draw, GdkRegion *region)
+ {
+       _vte_debug_print (VTE_DEBUG_DRAW, "draw_clip\n");
+       gdk_cairo_region(draw->cr, region);
+       cairo_clip (draw->cr);
+-
+-      return TRUE;
+ }
+ 
+ void
+@@ -1212,9 +1202,3 @@ _vte_draw_fill_rectangle (struct _vte_draw *draw,
+       set_source_color_alpha (draw->cr, color, alpha);
+       cairo_fill (draw->cr);
+ }
+-
+-gboolean
+-_vte_draw_requires_clear (struct _vte_draw *draw)
+-{
+-      return draw->requires_clear;
+-}
+diff --git a/src/vtedraw.h b/src/vtedraw.h
+index 8b98f72..ea2198b 100644
+--- a/src/vtedraw.h
++++ b/src/vtedraw.h
+@@ -82,8 +82,7 @@ void _vte_draw_set_background_image(struct _vte_draw *draw,
+ void _vte_draw_set_background_scroll(struct _vte_draw *draw,
+                                    gint x, gint y);
+ 
+-gboolean _vte_draw_clip(struct _vte_draw *draw, GdkRegion *region);
+-gboolean _vte_draw_requires_clear (struct _vte_draw *draw);
++void _vte_draw_clip(struct _vte_draw *draw, GdkRegion *region);
+ void _vte_draw_clear(struct _vte_draw *draw,
+                    gint x, gint y, gint width, gint height);
+ 
+--
+cgit v0.8.3.1
similarity index 71%
rename from x11-libs/vte/vte-0.24.1.ebuild
rename to x11-libs/vte/vte-0.24.1-r1.ebuild
index ba374e6e9ef81f9f7a543b55a7029a8eefa2ef5c..2d93f8f6f5a49380e355bfc2a6d26c996ed308d1 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2010 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/vte/vte-0.24.1.ebuild,v 1.2 2010/06/15 08:35:54 pacho Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/vte/vte-0.24.1-r1.ebuild,v 1.1 2010/06/17 19:33:21 pacho Exp $
 
 EAPI="2"
 
@@ -39,3 +39,12 @@ pkg_setup() {
                $(use_enable python)
                --with-html-dir=/usr/share/doc/${PF}/html"
 }
+
+src_prepare() {
+       gnome2_src_prepare
+
+       # Fix ugly artifacts with upstream patches from bgo#618749
+       epatch "${FILESDIR}/${P}-background-color.patch"
+       epatch "${FILESDIR}/${P}-background-color2.patch"
+       epatch "${FILESDIR}/${P}-cleanup-background.patch"
+}