Merge lp:~jeremywootten/pantheon-files/fix-1658417-long-name-in-grid-view into lp:~elementary-apps/pantheon-files/trunk

Proposed by Jeremy Wootten
Status: Merged
Approved by: Danielle Foré
Approved revision: 2462
Merged at revision: 2473
Proposed branch: lp:~jeremywootten/pantheon-files/fix-1658417-long-name-in-grid-view
Merge into: lp:~elementary-apps/pantheon-files/trunk
Diff against target: 79 lines (+20/-8)
2 files modified
src/TextRenderer.vala (+19/-7)
src/View/IconView.vala (+1/-1)
To merge this branch: bzr merge lp:~jeremywootten/pantheon-files/fix-1658417-long-name-in-grid-view
Reviewer Review Type Date Requested Status
elementary Apps team Pending
Review via email: mp+315842@code.launchpad.net

Commit message

TextRenderer.vala:
* Override "preferred height for width" to prevent cells being too tall
* Code style

Description of the change

This branch implements "preferred height for width" in the custom TextRenderer, fixing the linked bug.

To post a comment you must log in.
2462. By Jeremy Wootten

Merge trunk to r2470

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/TextRenderer.vala'
2--- src/TextRenderer.vala 2016-12-31 19:42:09 +0000
3+++ src/TextRenderer.vala 2017-02-04 13:48:42 +0000
4@@ -48,6 +48,15 @@
5 entry.get_real_editable ().focus_out_event.connect_after (on_entry_focus_out_event);
6 }
7
8+ public override void get_preferred_height_for_width (Gtk.Widget widget, int width, out int minimum_size, out int natural_size) {
9+ set_widget (widget);
10+ set_up_layout (text, width);
11+
12+ int h = int.max (16, char_height) + 2 * (int)ypad;
13+
14+ natural_size = int.max (h, text_height) + h;
15+ minimum_size = natural_size;
16+ }
17
18 public override void render (Cairo.Context cr,
19 Gtk.Widget widget,
20@@ -64,7 +73,7 @@
21 else
22 state = widget.get_sensitive () ? Gtk.StateFlags.NORMAL : Gtk.StateFlags.INSENSITIVE;
23
24- set_up_layout (text, cell_area);
25+ set_up_layout (text, cell_area.width);
26
27 var style_context = widget.get_parent ().get_style_context ();
28 style_context.save ();
29@@ -98,19 +107,21 @@
30 file = null;
31 }
32
33- public void set_up_layout (string? text, Gdk.Rectangle cell_area) {
34+ public void set_up_layout (string? text, int cell_width) {
35 /* render small/normal text depending on the zoom_level */
36- if (text == null)
37+ if (text == null) {
38 text= " ";
39+ }
40
41 bool small = this.zoom_level < Marlin.ZoomLevel.NORMAL;
42- if (small)
43+ if (small) {
44 layout.set_attributes (EelPango.attr_list_small ());
45- else
46+ } else {
47 layout.set_attributes (null);
48+ }
49
50 if (wrap_width < 0) {
51- layout.set_width (cell_area.width * Pango.SCALE);
52+ layout.set_width (cell_width * Pango.SCALE);
53 layout.set_height (- 1);
54 } else {
55 layout.set_width (wrap_width * Pango.SCALE);
56@@ -120,8 +131,9 @@
57
58 layout.set_ellipsize (Pango.EllipsizeMode.END);
59
60- if (xalign == 0.5f)
61+ if (xalign == 0.5f) {
62 layout.set_alignment (Pango.Alignment.CENTER);
63+ }
64
65 layout.set_text (text, -1);
66
67
68=== modified file 'src/View/IconView.vala'
69--- src/View/IconView.vala 2017-01-28 16:15:20 +0000
70+++ src/View/IconView.vala 2017-02-04 13:48:42 +0000
71@@ -220,7 +220,7 @@
72 model.@get (iter,
73 FM.ListModel.ColumnID.FILENAME, out text);
74
75- (r as Marlin.TextRenderer).set_up_layout (text, area);
76+ (r as Marlin.TextRenderer).set_up_layout (text, area.width);
77
78 if (x >= rect.x &&
79 x <= rect.x + rect.width &&

Subscribers

People subscribed via source and target branches

to all changes: