Merge lp:~tintou/noise/fix-interface into lp:~elementary-apps/noise/trunk

Proposed by Corentin Noël
Status: Merged
Approved by: Danielle Foré
Approved revision: 1573
Merged at revision: 1563
Proposed branch: lp:~tintou/noise/fix-interface
Merge into: lp:~elementary-apps/noise/trunk
Diff against target: 473 lines (+77/-104)
7 files modified
CMakeLists.txt (+5/-5)
plugins/LastFM/PreferencesSection.vala (+3/-3)
src/Dialogs/MediaEditor.vala (+25/-46)
src/Dialogs/PreferencesWindow.vala (+20/-20)
src/Dialogs/SmartPlaylistEditor.vala (+22/-22)
src/LibraryWindow.vala (+2/-2)
src/Widgets/StatusBar.vala (+0/-6)
To merge this branch: bzr merge lp:~tintou/noise/fix-interface
Reviewer Review Type Date Requested Status
Danielle Foré Approve
Victor Martinez (community) Needs Information
Review via email: mp+211080@code.launchpad.net

Commit message

Fixed some problems with the interface:
 * English strings in the preference dialog
 * Lastfm string being expanded…
 * Luna padding on the statusbar
 * Media Editor dialog now uses Gtk.Dialog
 * Preference Dialog and Media Editor Dialog now uses Gtk.HeaderBar
 * Smart Playlist editor dialog now uses Gtk.HeaderBar
 * Gtk.Dialog.get_action_area has been replaced with ButtonBox
 * Set suggested action style class on "Save" buttons

Description of the change

Fixed some problems with the interface:
 * English strings in the preference dialog
 * Lastfm string being expanded…
 * Luna padding on the statusbar
 * Media Editor dialog now uses Gtk.Dialog
 * Preference Dialog and Media Editor Dialog now uses Gtk.HeaderBar

To post a comment you must log in.
Revision history for this message
Victor Martinez (victored) wrote :

This branch looks great.

I have some questions:

1. Where is the code that uses Gtk.Popover?

2. What about using the "use-header-bar" property for Gtk.Dialog? Only for GTK >= 3.12: https://developer.gnome.org/gtk3/unstable/GtkDialog.html#GtkDialog--use-header-bar

3. Gtk.Label supports text wrapping. Granite.Widgets.WrapLabel shouldn't be necessary.

4. Cast the value of Gtk.Dialog.get_content_area to Gtk.Container instead of the implementation-specific Gtk.Box.

review: Needs Information
lp:~tintou/noise/fix-interface updated
1565. By Corentin Noël

media editor: Now uses a Gtk.Dialog with HeaderBar.

1566. By Corentin Noël

preference dialog: use Headerbar for better looking and consistency

1567. By Corentin Noël

dependencies: Now required gtk+ >= 3.11.6 and vala >= 0.23.2

1568. By Corentin Noël

media editor: Using Gtk+ 3.12 integrated HeaderBar

Revision history for this message
Corentin Noël (tintou) wrote :

Thanks for the review!

1. Indeed, I wanted to say Gtk.Dialog instead of Gtk.Popover, it's fixed in trunk.

2. I didn't know that this property existed, I've pushed some revisions to use this property instead.

3. I tried with Gtk.Label but as the dialog has no size limit it doesn't wrap the label, Granite WrapLabel is needed.

4. Indeed, fixed.

Revision history for this message
Danielle Foré (danrabbit) wrote :

Hrm, I'm not sure I like removing the close button from the bottom right of dialogs. I think this creates an inconsistency since gtk.dialog retains the explicit buttons, but removes the close window decoration instead. I would agree that it's better to retain the label button since it an give a more explicit explanation of what closing the dialog does (maybe not applicable in this particular dialog, but in the scheme of platform consistency it is important in other dialogs).

I think we should:
1. revert the window decoration/close button situation in the prefs dialog
2. consider adding a "Cancel" button to the media editor and use the standard gtk dialog without a window decoration.

Revision history for this message
Victor Martinez (victored) wrote :

The code looks good at this point.

I believe you will implement Dan's suggestions before merging. If so please consider this as well:

1. Leave a single space after casts: (TypeName)var => (TypeName) var
2. Allocate the parent container size before packing the label or setting the text to avoid issues with text wrapping: https://developer.gnome.org/gtk3/unstable/GtkLabel.html#gtk-label-set-line-wrap
3. Gtk.Dialog.get_action_area has been deprecated since GTK 3.12: https://developer.gnome.org/gtk3/unstable/GtkDialog.html#gtk-dialog-get-action-area

lp:~tintou/noise/fix-interface updated
1569. By Corentin Noël

media editor and preferences dialog: reverted close button deletion

1570. By Corentin Noël

smartplaylisteditor: removed decorated window

1571. By Corentin Noël

Gtk 3.12 does pack_end on headerbar on an other way than previously, switched back to the original disposition.

1572. By Corentin Noël

fixed style

Revision history for this message
Corentin Noël (tintou) wrote :

Daniel:
 I reverted the changes, there is now a close button allowing consistency, I also added SUGGESTED_ACTION for button with a "Save" label.

Victor:
 1. Okay, changed.
 2. Hmm, it's something that could be investigated in a next branch.
 3. Yes, I replaced this with a ButtonBox in the content_area.

lp:~tintou/noise/fix-interface updated
1573. By Corentin Noël

Sync with trunk, resolved conflicts

Revision history for this message
Danielle Foré (danrabbit) wrote :

I think I'd still prefer using the regular gtk.dialog csd instead of adding a headerbar, but I'll approve this merge :)

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'CMakeLists.txt'
2--- CMakeLists.txt 2014-03-07 15:52:49 +0000
3+++ CMakeLists.txt 2014-03-16 21:07:17 +0000
4@@ -1,7 +1,7 @@
5 # check http://elementaryos.org/docs/developer-guide/cmake/simple-project
6
7-cmake_minimum_required (VERSION 2.6)
8-cmake_policy (VERSION 2.6)
9+cmake_minimum_required (VERSION 2.8)
10+cmake_policy (VERSION 2.8)
11 project (noise C)
12 list (APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
13
14@@ -74,7 +74,7 @@
15 gee-0.8
16 libpeas-1.0
17 libpeas-gtk-1.0
18- gtk+-3.0>=3.10
19+ gtk+-3.0>=3.11.6
20 granite
21 gstreamer-1.0
22 gstreamer-tag-1.0
23@@ -150,7 +150,7 @@
24
25 find_package (Vala REQUIRED)
26 include (ValaVersion)
27-ensure_vala_version ("0.22.0" MINIMUM)
28+ensure_vala_version ("0.23.2" MINIMUM)
29 include (ValaPrecompile)
30
31 set (DEPS_LIBRARIES ${DEPS_LIBRARIES} -lm)
32@@ -165,4 +165,4 @@
33 add_subdirectory (plugins)
34 add_subdirectory (po)
35 add_subdirectory (data)
36-add_subdirectory (images)
37\ No newline at end of file
38+add_subdirectory (images)
39
40=== modified file 'plugins/LastFM/PreferencesSection.vala'
41--- plugins/LastFM/PreferencesSection.vala 2013-12-01 14:35:04 +0000
42+++ plugins/LastFM/PreferencesSection.vala 2014-03-16 21:07:17 +0000
43@@ -55,10 +55,10 @@
44 login_button.set_tooltip_text(_("Click to redo the Last.fm login process"));
45 }
46
47- var label = new Gtk.Label (_("To allow for Last.fm integration, you must give permission to %s. You only need to do this once.").printf(program_name));
48+ var label = new Granite.Widgets.WrapLabel (_("To allow for Last.fm integration, you must give permission to %s. You only need to do this once.").printf(program_name));
49 label.xalign = 0.0f;
50 label.halign = Gtk.Align.START;
51- label.set_line_wrap (true);
52+ label.expand = false;
53
54 page.add_full_option (label, ref row);
55 page.add_full_option (login_button, ref row);
56@@ -107,4 +107,4 @@
57 }
58 }
59 }
60-}
61+}
62\ No newline at end of file
63
64=== modified file 'src/Dialogs/MediaEditor.vala'
65--- src/Dialogs/MediaEditor.vala 2014-03-07 13:43:48 +0000
66+++ src/Dialogs/MediaEditor.vala 2014-03-16 21:07:17 +0000
67@@ -35,11 +35,7 @@
68 * CDs before importing their media to the library).
69 */
70
71-#if USE_GRANITE_DECORATED_WINDOW
72-public class Noise.MediaEditor : Granite.Widgets.LightWindow {
73-#else
74-public class Noise.MediaEditor : Gtk.Window {
75-#endif
76+public class Noise.MediaEditor : Gtk.Dialog {
77 LyricFetcher lf;
78
79 Gee.LinkedList<int> _allMedias;
80@@ -51,7 +47,8 @@
81 private Gee.HashMap<string, FieldEditor> fields;// a hashmap with each property and corresponding editor
82 private Gtk.TextView lyricsText;
83
84- private Gtk.Button _save;
85+ private Gtk.Button save_button;
86+ private Gtk.Button close_button;
87
88 private Gtk.Label lyricsInfobarLabel;
89 private Library library;
90@@ -59,6 +56,7 @@
91 public signal void medias_saved (Gee.LinkedList<int> medias);
92
93 public MediaEditor (Gee.LinkedList<int> allMedias, Gee.LinkedList<int> medias, Library library) {
94+ Object (use_header_bar: 1);
95 this.library = library;
96 this.window_position = Gtk.WindowPosition.CENTER;
97 this.type_hint = Gdk.WindowTypeHint.DIALOG;
98@@ -75,9 +73,12 @@
99 _medias = medias;
100
101 stack = new Gtk.Stack ();
102+
103 var stack_switcher = new Gtk.StackSwitcher ();
104 stack_switcher.set_stack (stack);
105 stack_switcher.halign = Gtk.Align.CENTER;
106+
107+ ((Gtk.HeaderBar) get_header_bar ()).set_custom_title (stack_switcher);
108
109 stack.add_titled (createBasicContent (), "metadata", _("Metadata"));
110 if(_medias.size == 1)
111@@ -87,29 +88,27 @@
112
113 var arrows = new Granite.Widgets.NavigationArrows ();
114
115- _save = new Gtk.Button.with_label (_(STRING_SAVE));
116- _save.set_size_request (85, -1);
117+ save_button = new Gtk.Button.with_label (_(STRING_SAVE));
118+ save_button.get_style_context ().add_class (Gtk.STYLE_CLASS_SUGGESTED_ACTION);
119
120- _save.valign = arrows.valign = Gtk.Align.END;
121+ close_button = new Gtk.Button.with_label (_("Close"));
122
123 var buttons = new Gtk.ButtonBox (Gtk.Orientation.HORIZONTAL);
124- buttons.margin_top = 12;
125 buttons.set_layout (Gtk.ButtonBoxStyle.END);
126+ buttons.set_spacing (6);
127
128 buttons.pack_start (arrows, false, false, 0);
129- buttons.pack_end (_save, false, false, 0);
130-
131+ buttons.pack_end (close_button, false, false, 0);
132+ buttons.pack_end (save_button, false, false, 0);
133 buttons.set_child_secondary (arrows, true);
134
135- var content = new Gtk.Grid ();
136- content.orientation = Gtk.Orientation.VERTICAL;
137- content.margin = 12;
138-
139- content.add (stack_switcher);
140- content.add (stack);
141- content.add (buttons);
142-
143- this.add (content);
144+ var main_grid = new Gtk.Grid ();
145+ main_grid.attach (stack, 0, 0, 1, 1);
146+ main_grid.attach (buttons, 0, 1, 1, 1);
147+
148+ var content = get_content_area () as Gtk.Container;
149+ content.margin_left = content.margin_right = 12;
150+ content.add (main_grid);
151
152 this.show_all();
153
154@@ -122,9 +121,10 @@
155 fetch_lyrics.begin (false);
156 }
157
158- arrows.previous_clicked.connect(previousClicked);
159- arrows.next_clicked.connect(nextClicked);
160- _save.clicked.connect(saveClicked);
161+ arrows.previous_clicked.connect (previousClicked);
162+ arrows.next_clicked.connect (nextClicked);
163+ save_button.clicked.connect (saveClicked);
164+ close_button.clicked.connect (() => {destroy ();});
165 }
166
167 public Gtk.Box createBasicContent () {
168@@ -719,25 +719,4 @@
169
170 info.set_markup(text);
171 }
172-}
173-
174-/*public class Noise.DoubleSpinButton : HBox {
175- private SpinButton spin1;
176- private SpinButton spin2;
177-
178- public DoubleSpinButton(double val1, double val2, double maxVal) {
179- spin1 = new SpinButton.with_range(0.0, maxVal, 1.0);
180- spin2 = new SpinButton.with_range(0.0, maxVal, 1.0);
181-
182- spin1.set_value(val1);
183- spin2.set_value(val2);
184- }
185-
186- public double getVal1() {
187- return spin1.get_value();
188- }
189-
190- public double getVal2() {
191- return spin2.get_value();
192- }
193-}*/
194\ No newline at end of file
195+}
196\ No newline at end of file
197
198=== modified file 'src/Dialogs/PreferencesWindow.vala'
199--- src/Dialogs/PreferencesWindow.vala 2014-03-07 13:43:48 +0000
200+++ src/Dialogs/PreferencesWindow.vala 2014-03-16 21:07:17 +0000
201@@ -39,6 +39,7 @@
202 private int index = 0;
203
204 public PreferencesWindow (LibraryWindow lw) {
205+ Object (use_header_bar: 1);
206 build_ui (lw);
207
208 lw.add_preference_page.connect ((page) => {add_page (page);});
209@@ -71,34 +72,39 @@
210 return index;
211 }
212
213-
214 public void remove_section (int index) {
215 var section = sections.get (index);
216 section.destroy ();
217 sections.unset (index);
218 }
219
220-
221 private void build_ui (Gtk.Window parent_window) {
222- set_size_request (MIN_WIDTH, MIN_HEIGHT);
223-
224 // Window properties
225 title = _("Preferences");
226+ set_size_request (MIN_WIDTH, MIN_HEIGHT);
227 resizable = false;
228 window_position = Gtk.WindowPosition.CENTER;
229 type_hint = Gdk.WindowTypeHint.DIALOG;
230 transient_for = parent_window;
231- var main_grid = new Gtk.Grid ();
232+
233 main_stack = new Gtk.Stack ();
234 main_stackswitcher = new Gtk.StackSwitcher ();
235 main_stackswitcher.set_stack (main_stack);
236- main_stackswitcher.halign = Gtk.Align.CENTER;
237- main_grid.attach (main_stackswitcher, 0, 0, 1, 1);
238- main_grid.attach (main_stack, 0, 1, 1, 1);
239- main_grid.hexpand = true;
240-
241- ((Gtk.Box)get_content_area()).add (main_grid);
242- add_button (_("Close"), Gtk.ResponseType.ACCEPT);
243+
244+ var close_button = new Gtk.Button.with_label (_("Close"));
245+ close_button.clicked.connect (() => {this.destroy ();});
246+
247+ var button_box = new Gtk.ButtonBox (Gtk.Orientation.HORIZONTAL);
248+ button_box.set_layout (Gtk.ButtonBoxStyle.END);
249+ button_box.pack_end (close_button);
250+ button_box.margin_right = 12;
251+
252+ var main_grid = new Gtk.Grid ();
253+ main_grid.attach (main_stack, 0, 0, 1, 1);
254+ main_grid.attach (button_box, 0, 1, 1, 1);
255+
256+ ((Gtk.HeaderBar) get_header_bar ()).set_custom_title (main_stackswitcher);
257+ ((Gtk.Container) get_content_area ()).add (main_grid);
258 }
259 }
260
261@@ -157,18 +163,12 @@
262 #if HAVE_LIBNOTIFY
263 show_notifications_switch = new Gtk.Switch ();
264 main_settings.schema.bind("show-notifications", show_notifications_switch, "active", SettingsBindFlags.DEFAULT);
265- page.add_option (new Gtk.Label (_("Show notifications:")), show_notifications_switch, ref row);
266+ page.add_option (new Gtk.Label (_("Notifications:")), show_notifications_switch, ref row);
267 #endif
268
269- string hide_on_close_desc;
270- if (LibraryWindow.minimize_on_close ())
271- hide_on_close_desc = _("Minimize window when a song is being played:");
272- else
273- hide_on_close_desc = _("Hide window when a song is being played:");
274-
275 hide_on_close_switch = new Gtk.Switch ();
276 main_settings.schema.bind("close-while-playing", hide_on_close_switch, "active", SettingsBindFlags.INVERT_BOOLEAN);
277- page.add_option (new Gtk.Label (hide_on_close_desc), hide_on_close_switch, ref row);
278+ page.add_option (new Gtk.Label (_("Continue playback when closed:")), hide_on_close_switch, ref row);
279
280 }
281 }
282\ No newline at end of file
283
284=== modified file 'src/Dialogs/SmartPlaylistEditor.vala'
285--- src/Dialogs/SmartPlaylistEditor.vala 2014-02-02 00:10:45 +0000
286+++ src/Dialogs/SmartPlaylistEditor.vala 2014-03-16 21:07:17 +0000
287@@ -17,11 +17,7 @@
288 * Corentin Noël <tintou@mailoo.org>
289 */
290
291-#if USE_GRANITE_DECORATED_WINDOW
292-public class Noise.SmartPlaylistEditor : Granite.Widgets.LightWindow {
293-#else
294-public class Noise.SmartPlaylistEditor : Window {
295-#endif
296+public class Noise.SmartPlaylistEditor : Gtk.Dialog {
297
298 SmartPlaylist sp;
299 private bool is_new = false;
300@@ -32,13 +28,13 @@
301 private Gtk.Grid queries_grid;
302 private Gtk.CheckButton limit_check;
303 private Gtk.SpinButton limit_spin;
304- private Gtk.Button add_button;
305+ private Gtk.Button adding_button;
306 private Gee.ArrayList<SmartPlaylistEditorQuery> queries_list;
307 private int row = 0;
308 private Library library;
309
310- public SmartPlaylistEditor(SmartPlaylist? sp = null, Library library) {
311-
312+ public SmartPlaylistEditor (SmartPlaylist? sp = null, Library library) {
313+ Object (use_header_bar: 1);
314 this.title = _("Smart Playlist Editor");
315 this.library = library;
316
317@@ -68,6 +64,7 @@
318 name_entry.text = sp.name;
319
320 var match_grid = new Gtk.Grid ();
321+ match_grid.column_spacing = 12;
322 var match_label = new Gtk.Label (_("Match"));
323 match_combobox = new Gtk.ComboBoxText ();
324 match_combobox.insert_text (0, _("any"));
325@@ -85,12 +82,14 @@
326 queries_list = new Gee.ArrayList<SmartPlaylistEditorQuery> ();
327 queries_grid = new Gtk.Grid ();
328 queries_grid.column_spacing = 12;
329+ queries_grid.row_spacing = 6;
330 queries_grid.expand = true;
331
332- add_button = new Gtk.Button.with_label (_("Add"));
333+ adding_button = new Gtk.Button.with_label (_("Add"));
334
335 /* create extra option: limiter */
336 var limiter_grid = new Gtk.Grid ();
337+ limiter_grid.column_spacing = 12;
338 limit_check = new Gtk.CheckButton.with_label (_("Limit to"));
339 limit_spin = new Gtk.SpinButton.with_range (0, 500, 10);
340 var limit_label = new Gtk.Label (_("items"));
341@@ -114,6 +113,7 @@
342 var button_box = new Gtk.ButtonBox (Gtk.Orientation.HORIZONTAL);
343 button_box.spacing = 6;
344 save_button = new Gtk.Button.with_label (_(STRING_SAVE));
345+ save_button.get_style_context ().add_class (Gtk.STYLE_CLASS_SUGGESTED_ACTION);
346 var close_button = new Gtk.Button.with_label (_(STRING_CANCEL));
347 button_box.set_layout (Gtk.ButtonBoxStyle.END);
348 button_box.pack_end (close_button, false, false, 0);
349@@ -121,7 +121,7 @@
350
351 main_grid = new Gtk.Grid ();
352 main_grid.expand = true;
353- main_grid.margin = 12;
354+ main_grid.margin_left = main_grid.margin_right = 12;
355 main_grid.column_spacing = 12;
356 main_grid.row_spacing = 6;
357 main_grid.attach (name_label, 0, 0, 3, 1);
358@@ -132,7 +132,7 @@
359 main_grid.attach (options_label, 0, 5, 3, 1);
360 main_grid.attach (limiter_grid, 0, 6, 3, 1);
361 main_grid.attach (button_box, 0, 7, 3, 1);
362- add (main_grid);
363+ ((Gtk.Container) get_content_area ()).add (main_grid);
364
365 save_button.clicked.connect (save_click);
366 close_button.clicked.connect (close_click);
367@@ -152,15 +152,15 @@
368 row++;
369 }
370
371- queries_grid.attach (add_button, 0, row, 1, 1);
372+ queries_grid.attach (adding_button, 0, row, 1, 1);
373 if(sp.queries ().size == 0) {
374 add_row ();
375 }
376 foreach(SmartPlaylistEditorQuery speq in queries_list) {
377 speq.field_changed (false);
378 }
379- add_button.clicked.connect (add_button_click);
380- add_button.show ();
381+ adding_button.clicked.connect (add_button_click);
382+ adding_button.show ();
383 // Validate initial state
384 name_changed ();
385 }
386@@ -183,15 +183,15 @@
387 }
388
389 public void add_row () {
390- if (add_button.parent != null)
391- queries_grid.remove (add_button);
392+ if (adding_button.parent != null)
393+ queries_grid.remove (adding_button);
394 var editor_query = new SmartPlaylistEditorQuery (new SmartQuery());
395 editor_query.removed.connect (() => {queries_list.remove (editor_query);});
396 editor_query.changed.connect (() => {if (!queries_list.contains (editor_query)) queries_list.add (editor_query);});
397 queries_grid.attach (editor_query.grid, 0, row, 1, 1);
398 editor_query.grid.show ();
399 row++;
400- queries_grid.attach (add_button, 0, row, 1, 1);
401+ queries_grid.attach (adding_button, 0, row, 1, 1);
402 editor_query.field_changed (false);
403 }
404
405@@ -246,8 +246,7 @@
406 _q = q;
407
408 comparators = new GLib.HashTable<int, SmartQuery.ComparatorType> (null, null);
409-
410- grid = new Gtk.Grid ();
411+
412 field_combobox = new Gtk.ComboBoxText ();
413 comparator_combobox = new Gtk.ComboBoxText();
414 value_entry = new Gtk.Entry ();
415@@ -286,9 +285,10 @@
416 } else {
417 _valueNumerical.set_value (int.parse (q.value));
418 }
419-
420 _units = new Gtk.Label ("");
421-
422+
423+ grid = new Gtk.Grid ();
424+ grid.column_spacing = 12;
425 grid.hexpand = true;
426 grid.attach (field_combobox, 0, 0, 1, 1);
427 grid.attach (comparator_combobox, 1, 0, 1, 1);
428@@ -441,4 +441,4 @@
429 return (compared == SmartQuery.FieldType.LAST_PLAYED || compared == SmartQuery.FieldType.DATE_ADDED
430 || compared == SmartQuery.FieldType.DATE_RELEASED);
431 }
432-}
433+}
434\ No newline at end of file
435
436=== modified file 'src/LibraryWindow.vala'
437--- src/LibraryWindow.vala 2014-03-14 15:48:01 +0000
438+++ src/LibraryWindow.vala 2014-03-16 21:07:17 +0000
439@@ -285,8 +285,8 @@
440 headerbar.pack_start (nextButton);
441 headerbar.pack_start (viewSelector);
442 headerbar.set_custom_title (topDisplayBin);
443+ headerbar.pack_end (((Noise.App) GLib.Application.get_default ()).create_appmenu (settingsMenu));
444 headerbar.pack_end (searchField);
445- headerbar.pack_end (((Noise.App) GLib.Application.get_default ()).create_appmenu (settingsMenu));
446 headerbar.show_all ();
447
448
449@@ -1130,7 +1130,7 @@
450 preferences = new PreferencesWindow(this);
451 preferences.show_all ();
452 preferences.run ();
453- preferences.hide ();
454+ preferences = null;
455 }
456
457 public void setMusicFolder(string folder) {
458
459=== modified file 'src/Widgets/StatusBar.vala'
460--- src/Widgets/StatusBar.vala 2014-02-02 11:47:19 +0000
461+++ src/Widgets/StatusBar.vala 2014-03-16 21:07:17 +0000
462@@ -218,12 +218,6 @@
463 private class InfoPanelChooser : SimpleOptionChooser {
464
465 public InfoPanelChooser () {
466- //To avoid the InfoPanelChooser to overlap with the window resize grip
467- //Get the grip width
468- int resize_grip_width;
469- App.main_window.style_get ("resize-grip-width", out resize_grip_width);
470- //Use the actual grip width as right margin
471- margin_right = resize_grip_width;
472 var info_panel_show = Icons.PANE_SHOW_SYMBOLIC.render_image (Gtk.IconSize.MENU);
473 var info_panel_hide = Icons.PANE_HIDE_SYMBOLIC.render_image (Gtk.IconSize.MENU);
474

Subscribers

People subscribed via source and target branches