summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'gnome-extra/synapse/files/synapse-0.2.10-fix-border-painting.patch')
-rw-r--r--gnome-extra/synapse/files/synapse-0.2.10-fix-border-painting.patch74
1 files changed, 74 insertions, 0 deletions
diff --git a/gnome-extra/synapse/files/synapse-0.2.10-fix-border-painting.patch b/gnome-extra/synapse/files/synapse-0.2.10-fix-border-painting.patch
new file mode 100644
index 000000000000..38dc6ed83354
--- /dev/null
+++ b/gnome-extra/synapse/files/synapse-0.2.10-fix-border-painting.patch
@@ -0,0 +1,74 @@
+Index: synapse-0.2.10/src/ui/widgets.vala
+===================================================================
+--- synapse-0.2.10.orig/src/ui/widgets.vala
++++ synapse-0.2.10/src/ui/widgets.vala
+@@ -232,7 +232,7 @@ namespace Synapse.Gui
+ real_size = real_size - 1;
+ a.value = this.size_to_scale[real_size];
+ layout.context_changed ();
+- requistion_for_size (out req, null, real_size, true);
++ requisition_for_size (out req, null, real_size, true);
+
+ if (allocation.width >= req.width)
+ {
+@@ -306,10 +306,9 @@ namespace Synapse.Gui
+ return true;
+ }
+
+- protected void requistion_for_size (out Requisition req, out int char_width, Size s, bool return_only_width = false)
++ protected void requisition_for_size (out Requisition req, out int char_width, Size s, bool return_only_width = false)
+ {
+- req.width = this.xpad * 2;
+- req.height = this.ypad * 2;
++ req = { this.xpad * 2, this.ypad * 2 };
+
+ Pango.Rectangle logical_rect;
+ layout.set_width (-1);
+@@ -334,7 +333,7 @@ namespace Synapse.Gui
+ {
+ layout.set_markup ("<span size=\"%s\">%s</span>".printf (size_to_string[_size], this.text), -1);
+ int char_width;
+- this.requistion_for_size (out req, out char_width, this._size);
++ this.requisition_for_size (out req, out char_width, this._size);
+ last_req.width = req.width;
+ last_req.height = req.height;
+ if (!this.natural_requisition && (this.ellipsize != Pango.EllipsizeMode.NONE || animate))
+@@ -755,6 +754,10 @@ namespace Synapse.Gui
+ ctx.set_operator (Cairo.Operator.OVER);
+ ctx.set_line_width (1.25);
+
++ Gdk.cairo_rectangle (ctx, event.area);
++ ctx.clip ();
++ ctx.save ();
++
+ double x = this.allocation.x + this.left_padding,
+ y = this.allocation.y + this.top_padding,
+ w = this.allocation.width - this.left_padding - this.right_padding - 3.0,
+@@ -764,16 +767,13 @@ namespace Synapse.Gui
+ ch.set_source_rgba (ctx, input_alpha, ch.StyleType.BG, StateType.NORMAL, ch.Mod.DARKER);
+ else
+ ch.set_source_rgba (ctx, input_alpha, ch.StyleType.FG, StateType.NORMAL, ch.Mod.INVERTED);
+- Cairo.Path path = ctx.copy_path ();
+- ctx.save ();
+- ctx.clip ();
+- ctx.paint ();
++ ctx.fill_preserve ();
+ var pat = new Cairo.Pattern.linear (0, y, 0, y + shadow_height);
+ ch.add_color_stop_rgba (pat, 0, 0.6 * input_alpha, ch.StyleType.FG, StateType.NORMAL);
+ ch.add_color_stop_rgba (pat, 0.3, 0.25 * input_alpha, ch.StyleType.FG, StateType.NORMAL);
+ ch.add_color_stop_rgba (pat, 1.0, 0, ch.StyleType.FG, StateType.NORMAL);
+ ctx.set_source (pat);
+- ctx.paint ();
++ ctx.fill ();
+ if (_focus_widget != null)
+ {
+ /*
+@@ -818,7 +818,7 @@ namespace Synapse.Gui
+ ctx.paint ();
+ }
+ ctx.restore ();
+- ctx.append_path (path);
++ Utils.cairo_rounded_rect (ctx, x, y, w, h, border_radius);
+ ch.set_source_rgba (ctx, 0.6 * input_alpha, ch.StyleType.FG, StateType.NORMAL);
+ ctx.stroke ();
+ }