Skip to content

Commit 674b8b6

Browse files
dterraheTurboGit
authored andcommitted
introduce dt_gui_dialog_add and dt_gui_scroll_wrap
1 parent edcecdc commit 674b8b6

29 files changed

+180
-415
lines changed

data/themes/darktable.css

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1075,8 +1075,8 @@ treeview header label
10751075
/*-------------------------------------
10761076
- Preferences dialog window options -
10771077
-------------------------------------*/
1078-
#preferences-content,
1079-
#preferences-content .dialog-action-box,
1078+
#preferences-box,
1079+
#preferences-box .dialog-action-box,
10801080
#quick-presets-manager box /* set same setting on quick preset manager dialog window ; accessible to bottom left button on footer bar in darkroom view */
10811081
{
10821082
margin: 0; /* reset default dialog margin to main items. And needed to have an hover and selected effect on all width of categories in sidebar */

src/common/database.c

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4508,13 +4508,12 @@ dt_database_t *dt_database_init(const char *alternative, const gboolean load_dat
45084508
g_free(quick_check_text);
45094509
g_free(data_status);
45104510

4511-
GtkWidget *content_area = gtk_dialog_get_content_area(GTK_DIALOG (dialog));
45124511
GtkWidget *label = gtk_label_new(NULL);
45134512
gtk_label_set_markup(GTK_LABEL(label), label_text);
45144513
g_free(label_text);
4515-
gtk_container_add(GTK_CONTAINER (content_area), label);
4514+
dt_gui_dialog_add(GTK_DIALOG(dialog), label);
45164515

4517-
gtk_widget_show_all(content_area);
4516+
gtk_widget_show_all(dialog);
45184517

45194518
const int resp = gtk_dialog_run(GTK_DIALOG(dialog));
45204519

@@ -4681,13 +4680,12 @@ dt_database_t *dt_database_init(const char *alternative, const gboolean load_dat
46814680
g_free(quick_check_text);
46824681
g_free(libdb_status);
46834682

4684-
GtkWidget *content_area = gtk_dialog_get_content_area(GTK_DIALOG (dialog));
46854683
GtkWidget *label = gtk_label_new(NULL);
46864684
gtk_label_set_markup(GTK_LABEL(label), label_text);
46874685
g_free(label_text);
4688-
gtk_container_add(GTK_CONTAINER (content_area), label);
4686+
dt_gui_dialog_add(GTK_DIALOG(dialog), label);
46894687

4690-
gtk_widget_show_all(content_area);
4688+
gtk_widget_show_all(dialog);
46914689

46924690
const int resp = gtk_dialog_run(GTK_DIALOG(dialog));
46934691

src/common/film.c

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -348,11 +348,6 @@ static gboolean ask_and_delete(gpointer user_data)
348348
ngettext("delete empty directory?",
349349
"delete empty directories?", n_empty_dirs));
350350

351-
GtkWidget *content_area = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
352-
353-
GtkWidget *scroll = gtk_scrolled_window_new(NULL, NULL);
354-
gtk_widget_set_vexpand(scroll, TRUE);
355-
356351
GtkListStore *store = gtk_list_store_new(1, G_TYPE_STRING);
357352

358353
for(GList *list_iter = empty_dirs; list_iter; list_iter = g_list_next(list_iter))
@@ -369,11 +364,11 @@ static gboolean ask_and_delete(gpointer user_data)
369364
"text", 0, NULL);
370365
gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);
371366

372-
gtk_container_add(GTK_CONTAINER(scroll), tree);
367+
GtkWidget *scroll = dt_gui_scroll_wrap(tree);
373368
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
374369
gtk_scrolled_window_set_min_content_height(GTK_SCROLLED_WINDOW(scroll), DT_PIXEL_APPLY_DPI(25));
375370

376-
gtk_container_add(GTK_CONTAINER(content_area), scroll);
371+
dt_gui_dialog_add(GTK_DIALOG(dialog), scroll);
377372

378373
gtk_widget_show_all(dialog); // needed for the content area!
379374

src/control/crawler.c

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -711,8 +711,6 @@ void dt_control_crawler_show_image_list(GList *images)
711711

712712
// a list with all the images
713713
GtkTreeViewColumn *column;
714-
GtkWidget *scroll = gtk_scrolled_window_new(NULL, NULL);
715-
gtk_widget_set_vexpand(scroll, TRUE);
716714
GtkListStore *store = gtk_list_store_new(DT_CONTROL_CRAWLER_NUM_COLS,
717715
G_TYPE_INT, // id
718716
G_TYPE_STRING, // image path
@@ -798,7 +796,7 @@ void dt_control_crawler_show_image_list(GList *images)
798796
g_object_set(renderer_date, "xalign", 1., NULL);
799797
gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);
800798

801-
gtk_container_add(GTK_CONTAINER(scroll), tree);
799+
GtkWidget *scroll = dt_gui_scroll_wrap(tree);
802800
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll),
803801
GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
804802

@@ -814,10 +812,9 @@ void dt_control_crawler_show_image_list(GList *images)
814812
#endif
815813
gtk_widget_set_size_request(dialog, -1, DT_PIXEL_APPLY_DPI(400));
816814
gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(win));
817-
GtkWidget *content_area = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
818815

819816
GtkWidget *content_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
820-
gtk_container_add(GTK_CONTAINER(content_area), content_box);
817+
dt_gui_dialog_add(GTK_DIALOG(dialog), content_box);
821818

822819
GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
823820
gtk_box_pack_start(GTK_BOX(content_box), box, FALSE, FALSE, 0);
@@ -855,10 +852,9 @@ void dt_control_crawler_show_image_list(GList *images)
855852
gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(gui->spinner), FALSE, FALSE, 0);
856853

857854
/* Log report */
858-
scroll = gtk_scrolled_window_new(NULL, NULL);
859855
gui->log = gtk_tree_view_new();
856+
scroll = dt_gui_scroll_wrap(gui->log);
860857
gtk_box_pack_start(GTK_BOX(content_box), scroll, TRUE, TRUE, 0);
861-
gtk_container_add(GTK_CONTAINER(scroll), gui->log);
862858
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll),
863859
GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
864860

src/dtgtk/range.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1027,7 +1027,6 @@ static void _popup_date_init(GtkDarktableRangeSelect *range)
10271027
gtk_box_pack_start(GTK_BOX(hbox2), pop->seconds, FALSE, TRUE, 0);
10281028

10291029
// the treeview
1030-
GtkWidget *sw = gtk_scrolled_window_new(NULL, NULL);
10311030
GtkTreeModel *model = GTK_TREE_MODEL(gtk_tree_store_new(DATETIME_NUM_COLS, G_TYPE_STRING, G_TYPE_UINT,
10321031
G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT));
10331032
pop->treeview = gtk_tree_view_new_with_model(model);
@@ -1043,10 +1042,9 @@ static void _popup_date_init(GtkDarktableRangeSelect *range)
10431042
GtkCellRenderer *renderer = gtk_cell_renderer_text_new();
10441043
gtk_tree_view_column_pack_start(col, renderer, TRUE);
10451044
gtk_tree_view_column_set_cell_data_func(col, renderer, _date_tree_count_func, NULL, NULL);
1046-
10471045
gtk_tree_view_set_tooltip_column(GTK_TREE_VIEW(pop->treeview), DATETIME_COL_TOOLTIP);
10481046

1049-
gtk_container_add(GTK_CONTAINER(sw), pop->treeview);
1047+
GtkWidget *sw = dt_gui_scroll_wrap(pop->treeview);
10501048
gtk_box_pack_start(GTK_BOX(hbox), sw, FALSE, TRUE, 0);
10511049

10521050
// the select line

src/gui/accelerators.c

Lines changed: 10 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2552,20 +2552,17 @@ static void _restore_clicked(GtkButton *button, gpointer user_data)
25522552
NULL);
25532553
gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_REJECT);
25542554

2555-
GtkContainer *content_area =
2556-
GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG (dialog)));
25572555
GtkWidget *label = gtk_label_new(_("restore shortcuts from one of these states:\n"
25582556
" - default\n"
25592557
" - as at startup\n"
25602558
" - as when opening this dialog\n"));
25612559
gtk_widget_set_halign(label, GTK_ALIGN_START);
2562-
gtk_container_add(content_area, label);
25632560
GtkWidget *clear = gtk_check_button_new_with_label
25642561
(_("clear all newer shortcuts\n"
25652562
"(instead of just restoring changed ones)"));
2566-
gtk_container_add(content_area, clear);
2563+
dt_gui_dialog_add(GTK_DIALOG(dialog), label, clear);
25672564

2568-
gtk_widget_show_all(GTK_WIDGET(content_area));
2565+
gtk_widget_show_all(dialog);
25692566

25702567
const int resp = gtk_dialog_run(GTK_DIALOG(dialog));
25712568
const gboolean wipe = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(clear));
@@ -2635,38 +2632,28 @@ static void _export_clicked(GtkButton *button, gpointer user_data)
26352632
NULL);
26362633
gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_REJECT);
26372634

2638-
GtkContainer *content_area =
2639-
GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG (dialog)));
26402635
GtkWidget *label = gtk_label_new(_("export all shortcuts to a file\n"
26412636
"or just for one selected device\n"));
26422637
gtk_widget_set_halign(label, GTK_ALIGN_START);
2643-
gtk_container_add(content_area, label);
26442638

26452639
GtkWidget *combo_dev = gtk_combo_box_text_new();
26462640
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_dev), _("all"));
26472641
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_dev), _("keyboard"));
26482642
for(GSList *driver = darktable.control->input_drivers; driver; driver = driver->next)
26492643
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_dev),
26502644
((dt_input_driver_definition_t *)driver->data)->name);
2651-
gtk_container_add(content_area, combo_dev);
2652-
2653-
GtkWidget *device_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
26542645

26552646
GtkWidget *combo_id = gtk_combo_box_text_new();
26562647
for(gchar num[] = "0"; *num <= '9'; (*num)++)
26572648
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_id), num);
2658-
gtk_container_add(GTK_CONTAINER(device_box), combo_id);
2659-
gtk_container_add(GTK_CONTAINER(device_box), dt_ui_label_new(_("device id")));
2660-
2661-
gtk_container_add(content_area, device_box);
2662-
26632649
GtkWidget *count = gtk_label_new("");
2664-
gtk_container_add(content_area, count);
2665-
26662650
g_signal_connect(combo_dev, "changed", G_CALLBACK(_import_export_dev_changed), combo_id);
26672651
g_signal_connect(combo_id, "changed", G_CALLBACK(_export_id_changed), count);
26682652

2669-
gtk_widget_show_all(GTK_WIDGET(content_area));
2653+
dt_gui_dialog_add(GTK_DIALOG(dialog), label, combo_dev,
2654+
dt_gui_hbox(combo_id, dt_ui_label_new(_("device id"))),
2655+
count);
2656+
gtk_widget_show_all(dialog);
26702657

26712658
gtk_combo_box_set_active(GTK_COMBO_BOX(combo_dev), 0);
26722659

@@ -2717,20 +2704,16 @@ static void _import_clicked(GtkButton *button, gpointer user_data)
27172704
NULL);
27182705
gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_REJECT);
27192706

2720-
GtkContainer *content_area =
2721-
GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG (dialog)));
27222707
GtkWidget *label = gtk_label_new(_("import all shortcuts from a file\n"
27232708
"or just for one selected device\n"));
27242709
gtk_widget_set_halign(label, GTK_ALIGN_START);
2725-
gtk_container_add(content_area, label);
27262710

27272711
GtkWidget *combo_dev = gtk_combo_box_text_new();
27282712
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_dev), _("all"));
27292713
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_dev), _("keyboard"));
27302714
for(GSList *driver = darktable.control->input_drivers; driver; driver = driver->next)
27312715
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_dev),
27322716
((dt_input_driver_definition_t *)driver->data)->name);
2733-
gtk_container_add(content_area, combo_dev);
27342717

27352718
GtkWidget *device_grid = gtk_grid_new();
27362719

@@ -2746,16 +2729,15 @@ static void _import_clicked(GtkButton *button, gpointer user_data)
27462729
gtk_grid_attach(GTK_GRID(device_grid), combo_to_id, 0, 1, 1, 1);
27472730
gtk_grid_attach(GTK_GRID(device_grid), dt_ui_label_new(_("id when loaded")), 1, 1, 1, 1);
27482731

2749-
gtk_container_add(content_area, device_grid);
27502732

27512733
GtkWidget *clear = gtk_check_button_new_with_label(_("clear device first"));
2752-
gtk_container_add(content_area, clear);
27532734

27542735
g_signal_connect(combo_dev, "changed", G_CALLBACK(_import_export_dev_changed),
27552736
combo_from_id);
27562737
g_signal_connect(combo_from_id, "changed", G_CALLBACK(_import_id_changed), combo_to_id);
27572738

2758-
gtk_widget_show_all(GTK_WIDGET(content_area));
2739+
dt_gui_dialog_add(GTK_DIALOG(dialog), label, combo_dev, device_grid, clear);
2740+
gtk_widget_show_all(dialog);
27592741

27602742
gtk_combo_box_set_active(GTK_COMBO_BOX(combo_dev), 0);
27612743

@@ -2929,11 +2911,8 @@ GtkWidget *dt_shortcuts_prefs(GtkWidget *widget)
29292911
_add_prefs_column(shortcuts_view, renderer, _("instance"), SHORTCUT_VIEW_INSTANCE);
29302912

29312913
// Adding the shortcuts treeview to its containers
2932-
GtkWidget *scroll = gtk_scrolled_window_new(NULL, NULL);
2914+
GtkWidget *scroll = dt_gui_scroll_wrap(GTK_WIDGET(shortcuts_view));
29332915
gtk_widget_set_size_request(scroll, -1, 100);
2934-
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll),
2935-
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
2936-
gtk_container_add(GTK_CONTAINER(scroll), GTK_WIDGET(shortcuts_view));
29372916
gtk_paned_pack2(GTK_PANED(container), scroll, TRUE, FALSE);
29382917

29392918
// Creating the action selection treeview
@@ -3010,11 +2989,8 @@ GtkWidget *dt_shortcuts_prefs(GtkWidget *widget)
30102989
gtk_tree_view_append_column(GTK_TREE_VIEW(actions_view), column);
30112990

30122991
// Adding the action treeview to its containers
3013-
scroll = gtk_scrolled_window_new(NULL, NULL);
2992+
scroll = dt_gui_scroll_wrap(GTK_WIDGET(actions_view));
30142993
gtk_widget_set_size_request(scroll, -1, 100);
3015-
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll),
3016-
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
3017-
gtk_container_add(GTK_CONTAINER(scroll), GTK_WIDGET(actions_view));
30182994
gtk_paned_pack1(GTK_PANED(container), scroll, TRUE, FALSE);
30192995

30202996
if(found_iter.user_data)

src/gui/gtk.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4102,7 +4102,7 @@ GtkWidget *dt_ui_resize_wrap(GtkWidget *w,
41024102
}
41034103
else
41044104
{
4105-
GtkWidget *sw = gtk_scrolled_window_new(NULL, NULL);
4105+
GtkWidget *sw = dt_gui_scroll_wrap(w);
41064106
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
41074107
GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
41084108
gtk_scrolled_window_set_min_content_height
@@ -4111,7 +4111,6 @@ GtkWidget *dt_ui_resize_wrap(GtkWidget *w,
41114111
G_CALLBACK(_resize_wrap_scroll), config_str);
41124112
g_signal_connect(G_OBJECT(w), "draw",
41134113
G_CALLBACK(_resize_wrap_draw), config_str);
4114-
gtk_container_add(GTK_CONTAINER(sw), w);
41154114
gtk_widget_set_margin_bottom(sw, DT_RESIZE_HANDLE_SIZE);
41164115
w = gtk_event_box_new();
41174116
gtk_container_add(GTK_CONTAINER(w), sw);
@@ -4489,6 +4488,7 @@ void dt_gui_simulate_button_event(GtkWidget *widget,
44894488

44904489
GtkWidget *(dt_gui_box_add)(const char *file, const int line, const char *function, GtkBox *box, gpointer list[])
44914490
{
4491+
if(!GTK_IS_BOX(box)) dt_print(DT_DEBUG_ALWAYS, "%s:%d %s: trying to add widgets to non-box container using dt_gui_box_add", file, line, function);
44924492
int i = 1;
44934493
for(; *list != (gpointer)-1; list++, i++)
44944494
{

src/gui/gtk.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -549,6 +549,7 @@ GtkWidget *(dt_gui_box_add)(const char *file, const int line, const char *functi
549549
#define dt_gui_box_add(box, ...) dt_gui_box_add(__FILE__, __LINE__, __FUNCTION__, GTK_BOX(box), (gpointer[]){ __VA_ARGS__, (gpointer)-1 })
550550
#define dt_gui_hbox(...) dt_gui_box_add(gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0), __VA_ARGS__)
551551
#define dt_gui_vbox(...) dt_gui_box_add(gtk_box_new(GTK_ORIENTATION_VERTICAL, 0), __VA_ARGS__)
552+
#define dt_gui_dialog_add(dialog, ...) dt_gui_box_add(gtk_dialog_get_content_area(GTK_DIALOG(dialog)), __VA_ARGS__)
552553
#define dt_gui_expand(widget) dt_gui_expand(GTK_WIDGET(widget))
553554
#define dt_gui_align_right(widget) dt_gui_align_right(GTK_WIDGET(widget))
554555

@@ -564,6 +565,14 @@ static inline GtkWidget *(dt_gui_align_right)(GtkWidget *widget)
564565
return dt_gui_expand(widget);
565566
}
566567

568+
static inline GtkWidget *dt_gui_scroll_wrap(GtkWidget *widget)
569+
{
570+
GtkWidget *scrolled_window = gtk_scrolled_window_new(NULL, NULL);
571+
gtk_widget_set_vexpand(scrolled_window, TRUE);
572+
gtk_container_add(GTK_CONTAINER(scrolled_window), widget);
573+
return scrolled_window;
574+
}
575+
567576
// Simulate a mouse button event (button is 1, 2, 3 - mouse button) sent to a Widget
568577
void dt_gui_simulate_button_event(GtkWidget *widget,
569578
const GdkEventType eventtype,

src/gui/hist_dialog.c

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -231,19 +231,12 @@ int dt_gui_hist_dialog_new(dt_history_copy_item_t *d,
231231
dt_osx_disallow_fullscreen(GTK_WIDGET(dialog));
232232
#endif
233233

234-
GtkContainer *content_area =
235-
GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(dialog)));
236-
237-
GtkWidget *scroll = gtk_scrolled_window_new(NULL, NULL);
238-
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll),
239-
GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
240-
gtk_scrolled_window_set_min_content_height(GTK_SCROLLED_WINDOW(scroll),
241-
DT_PIXEL_APPLY_DPI(450));
242-
243234
/* create the list of items */
244235
d->items = GTK_TREE_VIEW(gtk_tree_view_new());
245-
gtk_container_add(GTK_CONTAINER(scroll), GTK_WIDGET(d->items));
246-
gtk_box_pack_start(GTK_BOX(content_area), GTK_WIDGET(scroll), TRUE, TRUE, 0);
236+
GtkWidget *scroll = dt_gui_scroll_wrap(GTK_WIDGET(d->items));
237+
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll),
238+
GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
239+
dt_gui_dialog_add(GTK_DIALOG(dialog), scroll);
247240

248241
GtkListStore *liststore
249242
= gtk_list_store_new(DT_HIST_ITEMS_NUM_COLS,

src/gui/metadata_tags.c

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,6 @@ GtkWidget *dt_metadata_tags_dialog(GtkWidget *parent, gpointer metadata_activate
9393
_("_done"), GTK_RESPONSE_NONE, NULL);
9494
gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_NONE);
9595
gtk_window_set_default_size(GTK_WINDOW(dialog), DT_PIXEL_APPLY_DPI(500), DT_PIXEL_APPLY_DPI(300));
96-
GtkWidget *area = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
97-
GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 8);
98-
gtk_container_set_border_width(GTK_CONTAINER(vbox), 8);
99-
gtk_box_pack_start(GTK_BOX(area), vbox, TRUE, TRUE, 0);
10096

10197
// keep a reference to the "add" button to toggle its sensitivity
10298
add_button = gtk_dialog_get_widget_for_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT);
@@ -105,14 +101,10 @@ GtkWidget *dt_metadata_tags_dialog(GtkWidget *parent, gpointer metadata_activate
105101
gtk_entry_set_text(GTK_ENTRY(sel_entry), "");
106102
gtk_widget_set_tooltip_text(sel_entry, _("list filter"));
107103
gtk_entry_set_activates_default(GTK_ENTRY(sel_entry), TRUE);
108-
gtk_box_pack_start(GTK_BOX(vbox), sel_entry, FALSE, TRUE, 0);
109104
g_signal_connect(G_OBJECT(sel_entry), "changed", G_CALLBACK(_tag_name_changed), NULL);
110105

111-
GtkWidget *w = gtk_scrolled_window_new(NULL, NULL);
112-
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(w), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
113-
gtk_box_pack_start(GTK_BOX(vbox), w, TRUE, TRUE, 0);
114106
sel_view = GTK_TREE_VIEW(gtk_tree_view_new());
115-
gtk_container_add(GTK_CONTAINER(w), GTK_WIDGET(sel_view));
107+
GtkWidget *w = dt_gui_scroll_wrap(GTK_WIDGET(sel_view));
116108
gtk_widget_set_tooltip_text(GTK_WIDGET(sel_view), _("list of available tags. click 'add' button or double-click on tag to add the selected one"));
117109
GtkTreeSelection *selection = gtk_tree_view_get_selection(sel_view);
118110
gtk_tree_selection_set_mode(selection, GTK_SELECTION_SINGLE);
@@ -162,6 +154,7 @@ GtkWidget *dt_metadata_tags_dialog(GtkWidget *parent, gpointer metadata_activate
162154
g_object_unref(model);
163155
g_signal_connect(G_OBJECT(sel_view), "row-activated", G_CALLBACK(metadata_activated_callback), user_data);
164156

157+
dt_gui_dialog_add(GTK_DIALOG(dialog), sel_entry, w);
165158
return dialog;
166159
}
167160

0 commit comments

Comments
 (0)