Skip to content

Commit e4bc5ed

Browse files
committed
introduce dt_gui_dialog_add and dt_gui_scroll_wrap
1 parent 70c2754 commit e4bc5ed

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
@@ -4498,13 +4498,12 @@ dt_database_t *dt_database_init(const char *alternative, const gboolean load_dat
44984498
g_free(quick_check_text);
44994499
g_free(data_status);
45004500

4501-
GtkWidget *content_area = gtk_dialog_get_content_area(GTK_DIALOG (dialog));
45024501
GtkWidget *label = gtk_label_new(NULL);
45034502
gtk_label_set_markup(GTK_LABEL(label), label_text);
45044503
g_free(label_text);
4505-
gtk_container_add(GTK_CONTAINER (content_area), label);
4504+
dt_gui_dialog_add(GTK_DIALOG(dialog), label);
45064505

4507-
gtk_widget_show_all(content_area);
4506+
gtk_widget_show_all(dialog);
45084507

45094508
const int resp = gtk_dialog_run(GTK_DIALOG(dialog));
45104509

@@ -4671,13 +4670,12 @@ dt_database_t *dt_database_init(const char *alternative, const gboolean load_dat
46714670
g_free(quick_check_text);
46724671
g_free(libdb_status);
46734672

4674-
GtkWidget *content_area = gtk_dialog_get_content_area(GTK_DIALOG (dialog));
46754673
GtkWidget *label = gtk_label_new(NULL);
46764674
gtk_label_set_markup(GTK_LABEL(label), label_text);
46774675
g_free(label_text);
4678-
gtk_container_add(GTK_CONTAINER (content_area), label);
4676+
dt_gui_dialog_add(GTK_DIALOG(dialog), label);
46794677

4680-
gtk_widget_show_all(content_area);
4678+
gtk_widget_show_all(dialog);
46814679

46824680
const int resp = gtk_dialog_run(GTK_DIALOG(dialog));
46834681

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
@@ -2549,20 +2549,17 @@ static void _restore_clicked(GtkButton *button, gpointer user_data)
25492549
NULL);
25502550
gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_REJECT);
25512551

2552-
GtkContainer *content_area =
2553-
GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG (dialog)));
25542552
GtkWidget *label = gtk_label_new(_("restore shortcuts from one of these states:\n"
25552553
" - default\n"
25562554
" - as at startup\n"
25572555
" - as when opening this dialog\n"));
25582556
gtk_widget_set_halign(label, GTK_ALIGN_START);
2559-
gtk_container_add(content_area, label);
25602557
GtkWidget *clear = gtk_check_button_new_with_label
25612558
(_("clear all newer shortcuts\n"
25622559
"(instead of just restoring changed ones)"));
2563-
gtk_container_add(content_area, clear);
2560+
dt_gui_dialog_add(GTK_DIALOG(dialog), label, clear);
25642561

2565-
gtk_widget_show_all(GTK_WIDGET(content_area));
2562+
gtk_widget_show_all(dialog);
25662563

25672564
const int resp = gtk_dialog_run(GTK_DIALOG(dialog));
25682565
const gboolean wipe = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(clear));
@@ -2632,38 +2629,28 @@ static void _export_clicked(GtkButton *button, gpointer user_data)
26322629
NULL);
26332630
gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_REJECT);
26342631

2635-
GtkContainer *content_area =
2636-
GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG (dialog)));
26372632
GtkWidget *label = gtk_label_new(_("export all shortcuts to a file\n"
26382633
"or just for one selected device\n"));
26392634
gtk_widget_set_halign(label, GTK_ALIGN_START);
2640-
gtk_container_add(content_area, label);
26412635

26422636
GtkWidget *combo_dev = gtk_combo_box_text_new();
26432637
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_dev), _("all"));
26442638
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_dev), _("keyboard"));
26452639
for(GSList *driver = darktable.control->input_drivers; driver; driver = driver->next)
26462640
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_dev),
26472641
((dt_input_driver_definition_t *)driver->data)->name);
2648-
gtk_container_add(content_area, combo_dev);
2649-
2650-
GtkWidget *device_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
26512642

26522643
GtkWidget *combo_id = gtk_combo_box_text_new();
26532644
for(gchar num[] = "0"; *num <= '9'; (*num)++)
26542645
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_id), num);
2655-
gtk_container_add(GTK_CONTAINER(device_box), combo_id);
2656-
gtk_container_add(GTK_CONTAINER(device_box), dt_ui_label_new(_("device id")));
2657-
2658-
gtk_container_add(content_area, device_box);
2659-
26602646
GtkWidget *count = gtk_label_new("");
2661-
gtk_container_add(content_area, count);
2662-
26632647
g_signal_connect(combo_dev, "changed", G_CALLBACK(_import_export_dev_changed), combo_id);
26642648
g_signal_connect(combo_id, "changed", G_CALLBACK(_export_id_changed), count);
26652649

2666-
gtk_widget_show_all(GTK_WIDGET(content_area));
2650+
dt_gui_dialog_add(GTK_DIALOG(dialog), label, combo_dev,
2651+
dt_gui_hbox(combo_id, dt_ui_label_new(_("device id"))),
2652+
count);
2653+
gtk_widget_show_all(dialog);
26672654

26682655
gtk_combo_box_set_active(GTK_COMBO_BOX(combo_dev), 0);
26692656

@@ -2714,20 +2701,16 @@ static void _import_clicked(GtkButton *button, gpointer user_data)
27142701
NULL);
27152702
gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_REJECT);
27162703

2717-
GtkContainer *content_area =
2718-
GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG (dialog)));
27192704
GtkWidget *label = gtk_label_new(_("import all shortcuts from a file\n"
27202705
"or just for one selected device\n"));
27212706
gtk_widget_set_halign(label, GTK_ALIGN_START);
2722-
gtk_container_add(content_area, label);
27232707

27242708
GtkWidget *combo_dev = gtk_combo_box_text_new();
27252709
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_dev), _("all"));
27262710
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_dev), _("keyboard"));
27272711
for(GSList *driver = darktable.control->input_drivers; driver; driver = driver->next)
27282712
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_dev),
27292713
((dt_input_driver_definition_t *)driver->data)->name);
2730-
gtk_container_add(content_area, combo_dev);
27312714

27322715
GtkWidget *device_grid = gtk_grid_new();
27332716

@@ -2743,16 +2726,15 @@ static void _import_clicked(GtkButton *button, gpointer user_data)
27432726
gtk_grid_attach(GTK_GRID(device_grid), combo_to_id, 0, 1, 1, 1);
27442727
gtk_grid_attach(GTK_GRID(device_grid), dt_ui_label_new(_("id when loaded")), 1, 1, 1, 1);
27452728

2746-
gtk_container_add(content_area, device_grid);
27472729

27482730
GtkWidget *clear = gtk_check_button_new_with_label(_("clear device first"));
2749-
gtk_container_add(content_area, clear);
27502731

27512732
g_signal_connect(combo_dev, "changed", G_CALLBACK(_import_export_dev_changed),
27522733
combo_from_id);
27532734
g_signal_connect(combo_from_id, "changed", G_CALLBACK(_import_id_changed), combo_to_id);
27542735

2755-
gtk_widget_show_all(GTK_WIDGET(content_area));
2736+
dt_gui_dialog_add(GTK_DIALOG(dialog), label, combo_dev, device_grid, clear);
2737+
gtk_widget_show_all(dialog);
27562738

27572739
gtk_combo_box_set_active(GTK_COMBO_BOX(combo_dev), 0);
27582740

@@ -2926,11 +2908,8 @@ GtkWidget *dt_shortcuts_prefs(GtkWidget *widget)
29262908
_add_prefs_column(shortcuts_view, renderer, _("instance"), SHORTCUT_VIEW_INSTANCE);
29272909

29282910
// Adding the shortcuts treeview to its containers
2929-
GtkWidget *scroll = gtk_scrolled_window_new(NULL, NULL);
2911+
GtkWidget *scroll = dt_gui_scroll_wrap(GTK_WIDGET(shortcuts_view));
29302912
gtk_widget_set_size_request(scroll, -1, 100);
2931-
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll),
2932-
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
2933-
gtk_container_add(GTK_CONTAINER(scroll), GTK_WIDGET(shortcuts_view));
29342913
gtk_paned_pack2(GTK_PANED(container), scroll, TRUE, FALSE);
29352914

29362915
// Creating the action selection treeview
@@ -3007,11 +2986,8 @@ GtkWidget *dt_shortcuts_prefs(GtkWidget *widget)
30072986
gtk_tree_view_append_column(GTK_TREE_VIEW(actions_view), column);
30082987

30092988
// Adding the action treeview to its containers
3010-
scroll = gtk_scrolled_window_new(NULL, NULL);
2989+
scroll = dt_gui_scroll_wrap(GTK_WIDGET(actions_view));
30112990
gtk_widget_set_size_request(scroll, -1, 100);
3012-
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll),
3013-
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
3014-
gtk_container_add(GTK_CONTAINER(scroll), GTK_WIDGET(actions_view));
30152991
gtk_paned_pack1(GTK_PANED(container), scroll, TRUE, FALSE);
30162992

30172993
if(found_iter.user_data)

src/gui/gtk.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4095,7 +4095,7 @@ GtkWidget *dt_ui_resize_wrap(GtkWidget *w,
40954095
}
40964096
else
40974097
{
4098-
GtkWidget *sw = gtk_scrolled_window_new(NULL, NULL);
4098+
GtkWidget *sw = dt_gui_scroll_wrap(w);
40994099
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
41004100
GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
41014101
gtk_scrolled_window_set_min_content_height
@@ -4104,7 +4104,6 @@ GtkWidget *dt_ui_resize_wrap(GtkWidget *w,
41044104
G_CALLBACK(_resize_wrap_scroll), config_str);
41054105
g_signal_connect(G_OBJECT(w), "draw",
41064106
G_CALLBACK(_resize_wrap_draw), config_str);
4107-
gtk_container_add(GTK_CONTAINER(sw), w);
41084107
gtk_widget_set_margin_bottom(sw, DT_RESIZE_HANDLE_SIZE);
41094108
w = gtk_event_box_new();
41104109
gtk_container_add(GTK_CONTAINER(w), sw);
@@ -4482,6 +4481,7 @@ void dt_gui_simulate_button_event(GtkWidget *widget,
44824481

44834482
GtkWidget *(dt_gui_box_add)(const char *file, const int line, const char *function, GtkBox *box, gpointer list[])
44844483
{
4484+
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);
44854485
int i = 1;
44864486
for(; *list != (gpointer)-1; list++, i++)
44874487
{

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)