[gitg] Render gutter separators externally to fill all expanded area
- From: Jesse van den Kieboom <jessevdk src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gitg] Render gutter separators externally to fill all expanded area
- Date: Mon, 21 Dec 2015 10:08:19 +0000 (UTC)
commit c415a0982c51e7391870341de52b95d0fd3f0d85
Author: Jesse van den Kieboom <jessevdk gnome org>
Date: Mon Dec 21 11:06:28 2015 +0100
Render gutter separators externally to fill all expanded area
libgitg/gitg-diff-view-file.vala | 28 ++++++++++++++++++++++++++
libgitg/gitg-diff-view-lines-renderer.vala | 30 ----------------------------
libgitg/resources/ui/libgitg-style.css | 7 +----
3 files changed, 30 insertions(+), 35 deletions(-)
---
diff --git a/libgitg/gitg-diff-view-file.vala b/libgitg/gitg-diff-view-file.vala
index 99c2eb8..da13975 100644
--- a/libgitg/gitg-diff-view-file.vala
+++ b/libgitg/gitg-diff-view-file.vala
@@ -221,6 +221,34 @@ class Gitg.DiffViewFile : Gtk.Grid
d_sourceview_hunks.draw.connect_after(sourceview_hunks_on_draw);
}
+ private bool sourceview_hunks_on_draw(Cairo.Context cr)
+ {
+ var win = d_sourceview_hunks.get_window(Gtk.TextWindowType.LEFT);
+
+ if (!Gtk.cairo_should_draw_window(cr, win))
+ {
+ return false;
+ }
+
+ var ctx = d_sourceview_hunks.get_style_context();
+
+ var old_lines_width = d_old_lines.size + d_old_lines.xpad * 2;
+ var new_lines_width = d_new_lines.size + d_new_lines.xpad * 2;
+ var sym_lines_width = d_sym_lines.size + d_sym_lines.xpad * 2;
+
+ ctx.save();
+ ctx.add_class("diff-lines-separator");
+ ctx.render_frame(cr, 0, 0, old_lines_width, win.get_height());
+ ctx.restore();
+
+ ctx.save();
+ ctx.add_class("diff-lines-gutter-border");
+ ctx.render_frame(cr, old_lines_width + new_lines_width, 0, sym_lines_width, win.get_height());
+ ctx.restore();
+
+ return false;
+ }
+
private void update_theme()
{
var header_attributes = new Gtk.SourceMarkAttributes();
diff --git a/libgitg/gitg-diff-view-lines-renderer.vala b/libgitg/gitg-diff-view-lines-renderer.vala
index e69f621..25614c0 100644
--- a/libgitg/gitg-diff-view-lines-renderer.vala
+++ b/libgitg/gitg-diff-view-lines-renderer.vala
@@ -186,36 +186,6 @@ class Gitg.DiffViewLinesRenderer : Gtk.SourceGutterRendererText
d_num_digits_fill = string.nfill(num_digits, ' ');
}
- public override void begin(Cairo.Context cr,
- Gdk.Rectangle background_area,
- Gdk.Rectangle cell_area,
- Gtk.TextIter start,
- Gtk.TextIter end)
- {
- base.begin(cr, background_area, cell_area, start, end);
-
- if (style == Style.OLD || style == Style.SYMBOL)
- {
- var ctx = get_view().get_style_context();
-
- ctx.save();
- ctx.add_class("diff-lines-border");
-
- if (style == Style.SYMBOL)
- {
- ctx.add_class("symbol");
- }
-
- ctx.render_frame(cr,
- background_area.x,
- background_area.y,
- background_area.width,
- background_area.height);
-
- ctx.restore();
- }
- }
-
private string[] precalculate_line_strings(Ggit.DiffHunk hunk, Gee.ArrayList<Ggit.DiffLine> lines)
{
var oldn = hunk.get_old_start();
diff --git a/libgitg/resources/ui/libgitg-style.css b/libgitg/resources/ui/libgitg-style.css
index b463d6b..b21a464 100644
--- a/libgitg/resources/ui/libgitg-style.css
+++ b/libgitg/resources/ui/libgitg-style.css
@@ -12,14 +12,11 @@
border-top: 1px solid @borders;
}
-.diff-lines-border {
- border-top: 0;
- border-left: 0;
- border-bottom: 0;
+.diff-lines-separator {
border-right: 1px solid shade(@theme_bg_color, 0.95);
}
-.diff-lines-border.symbol {
+.diff-lines-gutter-border {
border-right: 2px solid shade(@theme_bg_color, 0.95);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]