changeset 2909:2e7fd08bfbe4

DEBUG_NAME() function for use with GTKInspector This debug function can be used with GTKInspector to provide a visual indication of where a widget is declared. This is a documentation facility to aid developers new to the project. Sample call: GTK_DEBUG=interactive src/geeqie
author Colin Clark <colin.clark@cclark.uk>
date Thu, 14 Feb 2019 12:05:04 +0000
parents ea58314bd19d
children 7d15201edf30
files CODING src/advanced_exif.c src/bar.c src/bar_gps.c src/bar_sort.c src/collect.c src/debug.h src/desktop_file.c src/dupe.c src/fullscreen.c src/image.c src/img-view.c src/layout.c src/layout_image.c src/layout_util.c src/logwindow.c src/pan-view/pan-view.c src/preferences.c src/search.c src/ui_help.c src/ui_pathsel.c src/ui_utildlg.c
diffstat 22 files changed, 106 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/CODING	Wed Feb 13 11:47:38 2019 +0000
+++ b/CODING	Thu Feb 14 12:05:04 2019 +0000
@@ -9,6 +9,15 @@
 If the first word of the message is "error" or "warning" (case insensitive)
 the message will be color-coded appropriately.
 
+
+GTKInspector:
+
+DEBUG_NAME(widget)
+For use with the GTKInspector to provide a visual indication of where objects are declared.
+
+Sample command line call:
+GTK_DEBUG=interactive src/geeqie
+
 --------------------------------------------------------------------------------
 
 GPL header, in every file, like this:
--- a/src/advanced_exif.c	Wed Feb 13 11:47:38 2019 +0000
+++ b/src/advanced_exif.c	Thu Feb 14 12:05:04 2019 +0000
@@ -382,6 +382,7 @@
 	ew = g_new0(ExifWin, 1);
 
 	ew->window = window_new(GTK_WINDOW_TOPLEVEL, "view", NULL, NULL, _("Metadata"));
+	DEBUG_NAME(ew->window);
 
 	geometry.min_width = 900;
 	geometry.min_height = 600;
--- a/src/bar.c	Wed Feb 13 11:47:38 2019 +0000
+++ b/src/bar.c	Thu Feb 14 12:05:04 2019 +0000
@@ -589,6 +589,7 @@
 	pd->bar = bar;
 
 	expander = gtk_expander_new(NULL);
+	DEBUG_NAME(expander);
 	if (pd && pd->title)
 		{
 		gtk_expander_set_label_widget(GTK_EXPANDER(expander), pd->title);
@@ -686,6 +687,7 @@
 	bd->lw = lw;
 
 	bd->widget = gtk_vbox_new(FALSE, PREF_PAD_GAP);
+	DEBUG_NAME(bd->widget);
 	g_object_set_data(G_OBJECT(bd->widget), "bar_data", bd);
 	g_signal_connect(G_OBJECT(bd->widget), "destroy",
 			 G_CALLBACK(bar_destroy), bd);
@@ -699,6 +701,7 @@
 	gtk_widget_set_size_request(bd->widget, bd->width, -1);
 
 	box = gtk_hbox_new(FALSE, 0);
+	DEBUG_NAME(box);
 
 	bd->label_file_name = gtk_label_new("");
 	gtk_label_set_ellipsize(GTK_LABEL(bd->label_file_name), PANGO_ELLIPSIZE_END);
@@ -711,6 +714,7 @@
 	gtk_widget_show(box);
 
 	scrolled = gtk_scrolled_window_new(NULL, NULL);
+	DEBUG_NAME(scrolled);
 	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),
 		GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
 	gtk_box_pack_start(GTK_BOX(bd->widget), scrolled, TRUE, TRUE, 0);
@@ -722,6 +726,7 @@
 	gtk_viewport_set_shadow_type(GTK_VIEWPORT(gtk_bin_get_child(GTK_BIN(scrolled))), GTK_SHADOW_NONE);
 
 	add_box = gtk_vbox_new(FALSE, 0);
+	DEBUG_NAME(add_box);
 	gtk_box_pack_end(GTK_BOX(bd->widget), add_box, FALSE, FALSE, 0);
 	tbar = pref_toolbar_new(add_box, GTK_TOOLBAR_ICONS);
 	bd->add_button = pref_toolbar_button(tbar, GTK_STOCK_ADD, NULL, FALSE,
--- a/src/bar_gps.c	Wed Feb 13 11:47:38 2019 +0000
+++ b/src/bar_gps.c	Thu Feb 14 12:05:04 2019 +0000
@@ -934,6 +934,7 @@
 	pgd->height = height;
 
 	frame = gtk_frame_new(NULL);
+	DEBUG_NAME(frame);
 	vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
 
 	gpswidget = gtk_champlain_embed_new();
--- a/src/bar_sort.c	Wed Feb 13 11:47:38 2019 +0000
+++ b/src/bar_sort.c	Thu Feb 14 12:05:04 2019 +0000
@@ -644,6 +644,7 @@
 	sd->undo_collection = NULL;
 
 	sd->vbox = gtk_vbox_new(FALSE, PREF_PAD_GAP);
+	DEBUG_NAME(sd->vbox);
 	g_object_set_data(G_OBJECT(sd->vbox), "bar_sort_data", sd);
 	g_signal_connect(G_OBJECT(sd->vbox), "destroy",
 			 G_CALLBACK(bar_sort_destroy), sd);
@@ -664,6 +665,7 @@
 			 G_CALLBACK(bar_sort_mode_cb), sd);
 
 	sd->folder_group = pref_box_new(sd->vbox, FALSE, GTK_ORIENTATION_VERTICAL, 0);
+	DEBUG_NAME(sd->folder_group);
 
 	buttongrp = pref_radiobutton_new(sd->folder_group, NULL,
 					 _("Copy"), (sd->action == BAR_SORT_COPY),
@@ -715,10 +717,12 @@
 			     G_CALLBACK(bar_sort_set_selection_selected_cb), sd);
 
 	sd->bookmarks = bookmark_list_new(SORT_KEY_FOLDERS, bar_sort_bookmark_select, sd);
+	DEBUG_NAME(sd->bookmarks);
 	gtk_box_pack_start(GTK_BOX(sd->vbox), sd->bookmarks, TRUE, TRUE, 0);
 	gtk_widget_show(sd->bookmarks);
 
 	tbar = pref_toolbar_new(sd->vbox, GTK_TOOLBAR_ICONS);
+	DEBUG_NAME(tbar);
 
 	sd->add_button = pref_toolbar_button(tbar, GTK_STOCK_ADD, NULL, FALSE,
 					     _("Add Bookmark"),
--- a/src/collect.c	Wed Feb 13 11:47:38 2019 +0000
+++ b/src/collect.c	Thu Feb 14 12:05:04 2019 +0000
@@ -1316,6 +1316,7 @@
 	cw->cd = collection_new(path);
 
 	cw->window = window_new(GTK_WINDOW_TOPLEVEL, "collection", PIXBUF_INLINE_ICON_BOOK, NULL, NULL);
+	DEBUG_NAME(cw->window);
 
 	geometry.min_width = DEFAULT_MINIMAL_WINDOW_SIZE;
 	geometry.min_height = DEFAULT_MINIMAL_WINDOW_SIZE;
@@ -1362,6 +1363,7 @@
 	gtk_widget_show(cw->status_box);
 
 	frame = gtk_frame_new(NULL);
+	DEBUG_NAME(frame);
 	gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
 	gtk_box_pack_start(GTK_BOX(cw->status_box), frame, TRUE, TRUE, 0);
 	gtk_widget_show(frame);
--- a/src/debug.h	Wed Feb 13 11:47:38 2019 +0000
+++ b/src/debug.h	Thu Feb 14 12:05:04 2019 +0000
@@ -61,6 +61,18 @@
 					} \
 				} while (0)
 
+/**
+ * @brief For use with the GTKInspector (>GTK 3.14)
+ *
+ * To simplify finding where objects are declared
+ * Sample command line call:
+ * GTK_DEBUG=interactive src/geeqie
+ */
+#define DEBUG_NAME(widget) do \
+				{ \
+				gtk_widget_set_name(GTK_WIDGET(widget), g_strdup_printf("%s:%d", __FILE__, __LINE__, NULL)); \
+				} while(0)
+
 #else /* DEBUG */
 
 #define get_regexp() (0)
@@ -74,6 +86,8 @@
 
 #define DEBUG_N(n, ...)  do { } while(0)
 
+#define DEBUG_NAME(widget) do { } while(0)
+
 #endif /* DEBUG */
 
 #define DEBUG_0(...) DEBUG_N(0, __VA_ARGS__)
--- a/src/desktop_file.c	Wed Feb 13 11:47:38 2019 +0000
+++ b/src/desktop_file.c	Thu Feb 14 12:05:04 2019 +0000
@@ -189,6 +189,7 @@
 
 
 	ew->window = window_new(GTK_WINDOW_TOPLEVEL, "Desktop", PIXBUF_INLINE_ICON_CONFIG, NULL, _("Desktop file"));
+	DEBUG_NAME(ew->window);
 	gtk_window_set_type_hint(GTK_WINDOW(ew->window), GDK_WINDOW_TYPE_HINT_DIALOG);
 
 	g_signal_connect(G_OBJECT(ew->window), "delete_event",
@@ -546,6 +547,7 @@
 	editor_list_window = ewl = g_new0(EditorListWindow, 1);
 
 	ewl->window = window_new(GTK_WINDOW_TOPLEVEL, "editors", PIXBUF_INLINE_ICON_CONFIG, NULL, _("Plugins"));
+	DEBUG_NAME(ewl->window);
 	gtk_window_set_type_hint(GTK_WINDOW(ewl->window), GDK_WINDOW_TYPE_HINT_DIALOG);
 	g_signal_connect(G_OBJECT(ewl->window), "delete_event",
 			 G_CALLBACK(editor_list_window_delete), NULL);
--- a/src/dupe.c	Wed Feb 13 11:47:38 2019 +0000
+++ b/src/dupe.c	Thu Feb 14 12:05:04 2019 +0000
@@ -3278,6 +3278,7 @@
 	if (options->duplicates_match == DUPE_MATCH_NAME_CI) dw->match_mask = DUPE_MATCH_NAME_CI;
 
 	dw->window = window_new(GTK_WINDOW_TOPLEVEL, "dupe", NULL, NULL, _("Find duplicates"));
+	DEBUG_NAME(dw->window);
 
 	geometry.min_width = DEFAULT_MINIMAL_WINDOW_SIZE;
 	geometry.min_height = DEFAULT_MINIMAL_WINDOW_SIZE;
@@ -3408,6 +3409,7 @@
 	gtk_widget_show(status_box);
 
 	frame = gtk_frame_new(NULL);
+	DEBUG_NAME(frame);
 	gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
 	gtk_box_pack_start(GTK_BOX(status_box), frame, TRUE, TRUE, 0);
 	gtk_widget_show(frame);
--- a/src/fullscreen.c	Wed Feb 13 11:47:38 2019 +0000
+++ b/src/fullscreen.c	Thu Feb 14 12:05:04 2019 +0000
@@ -240,6 +240,7 @@
 				      &screen, &fs->same_region);
 
 	fs->window = window_new(GTK_WINDOW_TOPLEVEL, "fullscreen", NULL, NULL, _("Full screen"));
+	DEBUG_NAME(fs->window);
 
 	g_signal_connect(G_OBJECT(fs->window), "delete_event",
 			 G_CALLBACK(fullscreen_delete_cb), fs);
@@ -655,6 +656,7 @@
 	if (!screen_value) return NULL;
 
 	vbox = gtk_vbox_new(FALSE, PREF_PAD_GAP);
+	DEBUG_NAME(vbox);
 	hbox = pref_box_new(vbox, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE);
 	if (text) pref_label_new(hbox, text);
 
--- a/src/image.c	Wed Feb 13 11:47:38 2019 +0000
+++ b/src/image.c	Thu Feb 14 12:05:04 2019 +0000
@@ -2098,6 +2098,7 @@
 	if (frame)
 		{
 		imd->frame = gtk_frame_new(NULL);
+		DEBUG_NAME(imd->frame);
         	g_object_ref(imd->pr);
 		if (imd->has_frame != -1) gtk_container_remove(GTK_CONTAINER(imd->widget), imd->pr);
 		gtk_container_add(GTK_CONTAINER(imd->frame), imd->pr);
@@ -2152,10 +2153,12 @@
 	imd->orientation = 1;
 
 	imd->pr = GTK_WIDGET(pixbuf_renderer_new());
+	DEBUG_NAME(imd->pr);
 
 	image_options_set(imd);
 
 	imd->widget = gtk_vbox_new(0, 0);
+	DEBUG_NAME(imd->widget);
 
 	image_set_frame(imd, frame);
 
--- a/src/img-view.c	Wed Feb 13 11:47:38 2019 +0000
+++ b/src/img-view.c	Thu Feb 14 12:05:04 2019 +0000
@@ -834,6 +834,7 @@
 	vw = g_new0(ViewWindow, 1);
 
 	vw->window = window_new(GTK_WINDOW_TOPLEVEL, "view", PIXBUF_INLINE_ICON_VIEW, NULL, NULL);
+	DEBUG_NAME(vw->window);
 
 	geometry.min_width = DEFAULT_MINIMAL_WINDOW_SIZE;
 	geometry.min_height = DEFAULT_MINIMAL_WINDOW_SIZE;
--- a/src/layout.c	Wed Feb 13 11:47:38 2019 +0000
+++ b/src/layout.c	Thu Feb 14 12:05:04 2019 +0000
@@ -316,12 +316,14 @@
 	box = gtk_vbox_new(FALSE, 0);
 
 	menu_tool_bar = layout_actions_menu_tool_bar(lw);
+	DEBUG_NAME(menu_tool_bar);
 	gtk_widget_show(menu_tool_bar);
 	gtk_box_pack_start(GTK_BOX(lw->main_box), lw->menu_tool_bar, FALSE, FALSE, 0);
 	if (lw->options.toolbar_hidden) gtk_widget_hide(lw->toolbar[TOOLBAR_MAIN]);
 
 	tabcomp = tab_completion_new_with_history(&lw->path_entry, NULL, "path_list", -1,
 						  layout_path_entry_cb, lw);
+	DEBUG_NAME(tabcomp);
 	tab_completion_add_tab_func(lw->path_entry, layout_path_entry_tab_cb, lw);
 	tab_completion_add_append_func(lw->path_entry, layout_path_entry_tab_append_cb, lw);
 	gtk_box_pack_start(GTK_BOX(box), tabcomp, FALSE, FALSE, 0);
@@ -338,6 +340,7 @@
 #endif
 
 	box_folders = GTK_WIDGET(gtk_hpaned_new());
+	DEBUG_NAME(box_folders);
 	gtk_box_pack_start(GTK_BOX(box), box_folders, TRUE, TRUE, 0);
 
 	lw->vd = vd_new(lw->options.dir_view_type, lw->dir_fd);
@@ -345,10 +348,12 @@
 	vd_set_select_func(lw->vd, layout_vd_select_cb, lw);
 
 	lw->dir_view = lw->vd->widget;
+	DEBUG_NAME(lw->dir_view);
 	gtk_paned_add2(GTK_PANED(box_folders), lw->dir_view);
 	gtk_widget_show(lw->dir_view);
 
 	scd = shortcuts_new_default(lw);
+	DEBUG_NAME(scd);
 	gtk_paned_add1(GTK_PANED(box_folders), scd);
 	gtk_paned_set_position(GTK_PANED(box_folders), lw->options.folder_window.vdivider_pos);
 
@@ -445,6 +450,7 @@
 	GtkWidget *button;
 
 	button = gtk_button_new_with_label(sort_type_get_text(lw->sort_method));
+	DEBUG_NAME(button);
 	g_signal_connect(G_OBJECT(button), "clicked",
 			 G_CALLBACK(layout_sort_button_press_cb), lw);
 	gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
@@ -541,6 +547,7 @@
 
 
 	frame = gtk_frame_new(NULL);
+	DEBUG_NAME(frame);
 	if (size) gtk_widget_set_size_request(frame, size, -1);
 	gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
 
@@ -735,6 +742,7 @@
 	GtkWidget *frame;
 
 	frame = gtk_frame_new(NULL);
+	DEBUG_NAME(frame);
 	if (size) gtk_widget_set_size_request(frame, size, -1);
 	gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
 	if (start)
@@ -765,10 +773,12 @@
 	if (small_format)
 		{
 		lw->info_box = gtk_vbox_new(FALSE, 0);
+		DEBUG_NAME(lw->info_box);
 		}
 	else
 		{
 		lw->info_box = gtk_hbox_new(FALSE, 0);
+		DEBUG_NAME(lw->info_box);
 		}
 	gtk_box_pack_end(GTK_BOX(box), lw->info_box, FALSE, FALSE, 0);
 	gtk_widget_show(lw->info_box);
@@ -776,6 +786,7 @@
 	if (small_format)
 		{
 		hbox = gtk_hbox_new(FALSE, 0);
+		DEBUG_NAME(hbox);
 		gtk_box_pack_start(GTK_BOX(lw->info_box), hbox, FALSE, FALSE, 0);
 		gtk_widget_show(hbox);
 		}
@@ -784,6 +795,7 @@
 		hbox = lw->info_box;
 		}
 	lw->info_progress_bar = gtk_progress_bar_new();
+	DEBUG_NAME(lw->info_progress_bar);
 	gtk_widget_set_size_request(lw->info_progress_bar, PROGRESS_WIDTH, -1);
 #if GTK_CHECK_VERSION(3,0,0)
 	gtk_progress_bar_set_text(GTK_PROGRESS_BAR(lw->info_progress_bar), "");
@@ -798,19 +810,23 @@
 	gtk_widget_show(lw->info_sort);
 
 	lw->info_status = layout_status_label(NULL, lw->info_box, TRUE, 0, (!small_format));
+	DEBUG_NAME(lw->info_status);
 	gtk_widget_set_tooltip_text(GTK_WIDGET(lw->info_status), _("Folder contents (files selected)"));
 
 	if (small_format)
 		{
 		hbox = gtk_hbox_new(FALSE, 0);
+		DEBUG_NAME(hbox);
 		gtk_box_pack_start(GTK_BOX(lw->info_box), hbox, FALSE, FALSE, 0);
 		gtk_widget_show(hbox);
 		}
 	lw->info_details = layout_status_label(NULL, hbox, TRUE, 0, TRUE);
+	DEBUG_NAME(lw->info_details);
 	gtk_widget_set_tooltip_text(GTK_WIDGET(lw->info_details), _("(Image dimensions) Image size"));
 	toolbar = layout_actions_toolbar(lw, TOOLBAR_STATUS);
 
 	toolbar_frame = gtk_frame_new(NULL);
+	DEBUG_NAME(toolbar_frame);
 	gtk_frame_set_shadow_type(GTK_FRAME(toolbar_frame), GTK_SHADOW_IN);
 	gtk_container_add(GTK_CONTAINER(toolbar_frame), toolbar);
 	gtk_widget_show(toolbar_frame);
@@ -823,10 +839,12 @@
 	if (small_format)
 		{
 		hbox = gtk_hbox_new(FALSE, 0);
+		DEBUG_NAME(hbox);
 		gtk_box_pack_start(GTK_BOX(lw->info_box), hbox, FALSE, FALSE, 0);
 		gtk_widget_show(hbox);
 		}
 	lw->info_pixel = layout_status_label(NULL, hbox, FALSE, 0, small_format); /* expand only in small format */
+	DEBUG_NAME(lw->info_pixel);
 	gtk_widget_set_tooltip_text(GTK_WIDGET(lw->info_pixel), _("[Pixel x,y coord]: (Pixel R,G,B value)"));
 	if (!lw->options.show_info_pixel) gtk_widget_hide(gtk_widget_get_parent(lw->info_pixel));
 }
@@ -1491,6 +1509,7 @@
 		GdkWindowHints hints;
 
 		lw->tools = window_new(GTK_WINDOW_TOPLEVEL, "tools", PIXBUF_INLINE_ICON_TOOLS, NULL, _("Tools"));
+		DEBUG_NAME(lw->tools);
 		g_signal_connect(G_OBJECT(lw->tools), "delete_event",
 				 G_CALLBACK(layout_tools_delete_cb), lw);
 		layout_keyboard_init(lw, lw->tools);
@@ -1528,6 +1547,7 @@
 	layout_actions_add_window(lw, lw->tools);
 
 	vbox = gtk_vbox_new(FALSE, 0);
+	DEBUG_NAME(vbox);
 	gtk_container_add(GTK_CONTAINER(lw->tools), vbox);
 	gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(lw->menu_tool_bar), FALSE, FALSE, 0);
 	gtk_widget_show(vbox);
@@ -1537,10 +1557,12 @@
 	if (vertical)
 		{
 		lw->tools_pane = gtk_vpaned_new();
+		DEBUG_NAME(lw->tools_pane);
 		}
 	else
 		{
 		lw->tools_pane = gtk_hpaned_new();
+		DEBUG_NAME(lw->tools_pane);
 		}
 	gtk_box_pack_start(GTK_BOX(vbox), lw->tools_pane, TRUE, TRUE, 0);
 	gtk_widget_show(lw->tools_pane);
@@ -1679,6 +1701,7 @@
 	layout_actions_setup(lw);
 
 	lw->group_box = gtk_vbox_new(FALSE, 0);
+	DEBUG_NAME(lw->group_box);
 	gtk_box_pack_end(GTK_BOX(lw->main_box), lw->group_box, TRUE, TRUE, 0);
 	gtk_widget_show(lw->group_box);
 
@@ -1688,16 +1711,20 @@
 		{
 		layout_split_change(lw, lw->split_mode); /* this re-creates image frame for the new configuration */
 		image_sb = lw->utility_box;
+		DEBUG_NAME(image_sb);
 		}
 	else
 		{
 		GtkWidget *image; /* image or split images together */
 		image = layout_image_setup_split(lw, lw->split_mode);
 		image_sb = layout_bars_prepare(lw, image);
+		DEBUG_NAME(image_sb);
 		}
 
 	tools = layout_tools_new(lw);
+	DEBUG_NAME(tools);
 	files = layout_list_new(lw);
+	DEBUG_NAME(files);
 
 
 	if (lw->options.tools_float || lw->options.tools_hidden)
@@ -1724,8 +1751,10 @@
 	layout_grid_compute(lw, image_sb, tools, files, &w1, &w2, &w3);
 
 	v = lw->v_pane = gtk_vpaned_new();
+	DEBUG_NAME(v);
 
 	h = lw->h_pane = gtk_hpaned_new();
+	DEBUG_NAME(h);
 
 	if (!layout_location_vertical(priority_location))
 		{
@@ -2121,6 +2150,7 @@
 	copy_layout_options(&lc->options, &lw->options);
 
 	lc->configwindow = window_new(GTK_WINDOW_TOPLEVEL, "Layout", PIXBUF_INLINE_ICON_CONFIG, NULL, _("Window options and layout"));
+	DEBUG_NAME(lc->configwindow);
 	gtk_window_set_type_hint(GTK_WINDOW(lc->configwindow), GDK_WINDOW_TYPE_HINT_DIALOG);
 
 	g_signal_connect(G_OBJECT(lc->configwindow), "delete_event",
@@ -2131,6 +2161,7 @@
 	gtk_container_set_border_width(GTK_CONTAINER(lc->configwindow), PREF_PAD_BORDER);
 
 	win_vbox = gtk_vbox_new(FALSE, PREF_PAD_SPACE);
+	DEBUG_NAME(win_vbox);
 	gtk_container_add(GTK_CONTAINER(lc->configwindow), win_vbox);
 	gtk_widget_show(win_vbox);
 
@@ -2179,8 +2210,10 @@
 		}
 
 	frame = pref_frame_new(win_vbox, TRUE, NULL, GTK_ORIENTATION_VERTICAL, PREF_PAD_GAP);
+	DEBUG_NAME(frame);
 
 	vbox = gtk_vbox_new(FALSE, PREF_PAD_SPACE);
+	DEBUG_NAME(vbox);
 	gtk_container_add(GTK_CONTAINER(frame), vbox);
 	gtk_widget_show(vbox);
 
@@ -2219,6 +2252,7 @@
 	group = pref_group_new(vbox, FALSE, _("Layout"), GTK_ORIENTATION_VERTICAL);
 
 	lc->layout_widget = layout_config_new();
+	DEBUG_NAME(lc->layout_widget);
 	layout_config_set(lc->layout_widget, lw->options.style, lw->options.order);
 	gtk_box_pack_start(GTK_BOX(group), lc->layout_widget, TRUE, TRUE, 0);
 
@@ -2388,6 +2422,7 @@
 	/* window */
 
 	lw->window = window_new(GTK_WINDOW_TOPLEVEL, GQ_APPNAME_LC, NULL, NULL, NULL);
+	DEBUG_NAME(lw->window);
 	gtk_window_set_resizable(GTK_WINDOW(lw->window), TRUE);
 	gtk_container_set_border_width(GTK_CONTAINER(lw->window), 0);
 
@@ -2434,6 +2469,7 @@
 #endif
 
 	lw->main_box = gtk_vbox_new(FALSE, 0);
+	DEBUG_NAME(lw->main_box);
 	gtk_container_add(GTK_CONTAINER(lw->window), lw->main_box);
 	gtk_widget_show(lw->main_box);
 
--- a/src/layout_image.c	Wed Feb 13 11:47:38 2019 +0000
+++ b/src/layout_image.c	Thu Feb 14 12:05:04 2019 +0000
@@ -2182,9 +2182,15 @@
 
 	/* horizontal split means vpaned and vice versa */
 	if (horizontal)
+		{
 		paned = gtk_vpaned_new();
+		DEBUG_NAME(paned);
+		}
 	else
+		{
 		paned = gtk_hpaned_new();
+		DEBUG_NAME(paned);
+		}
 
 	gtk_paned_pack1(GTK_PANED(paned), lw->split_images[0]->widget, TRUE, TRUE);
 	gtk_paned_pack2(GTK_PANED(paned), lw->split_images[1]->widget, TRUE, TRUE);
@@ -2210,8 +2216,11 @@
 	layout_image_setup_split_common(lw, 4);
 
 	hpaned = gtk_hpaned_new();
+	DEBUG_NAME(hpaned);
 	vpaned1 = gtk_vpaned_new();
+	DEBUG_NAME(vpaned1);
 	vpaned2 = gtk_vpaned_new();
+	DEBUG_NAME(vpaned2);
 
 	gtk_paned_pack1(GTK_PANED(vpaned1), lw->split_images[0]->widget, TRUE, TRUE);
 	gtk_paned_pack2(GTK_PANED(vpaned1), lw->split_images[2]->widget, TRUE, TRUE);
--- a/src/layout_util.c	Wed Feb 13 11:47:38 2019 +0000
+++ b/src/layout_util.c	Thu Feb 14 12:05:04 2019 +0000
@@ -2779,7 +2779,9 @@
 	if (lw->menu_tool_bar) return lw->menu_tool_bar;
 
 	menu_bar = layout_actions_menu_bar(lw);
+	DEBUG_NAME(menu_bar);
 	toolbar = layout_actions_toolbar(lw, TOOLBAR_MAIN);
+	DEBUG_NAME(toolbar);
 	lw->menu_tool_bar = gtk_vbox_new(FALSE, 0);
 
 	gtk_box_pack_start(GTK_BOX(lw->menu_tool_bar), menu_bar, FALSE, FALSE, 0);
@@ -3267,6 +3269,7 @@
 	if (!lw->utility_box) return;
 
 	bar = bar_new(lw);
+	DEBUG_NAME(bar);
 
 	layout_bar_set(lw, bar);
 
@@ -3472,6 +3475,7 @@
 	if (lw->utility_box) return lw->utility_box;
 	lw->utility_box = gtk_hbox_new(FALSE, PREF_PAD_GAP);
 	lw->utility_paned = gtk_hpaned_new();
+	DEBUG_NAME(lw->utility_paned);
 	gtk_box_pack_start(GTK_BOX(lw->utility_box), lw->utility_paned, TRUE, TRUE, 0);
 
 	gtk_paned_pack1(GTK_PANED(lw->utility_paned), image, TRUE, FALSE);
--- a/src/logwindow.c	Wed Feb 13 11:47:38 2019 +0000
+++ b/src/logwindow.c	Thu Feb 14 12:05:04 2019 +0000
@@ -140,6 +140,7 @@
 	logwin = g_new0(LogWindow, 1);
 
 	window = window_new(GTK_WINDOW_TOPLEVEL, "log", NULL, NULL, _("Log"));
+	DEBUG_NAME(window);
 	win_vbox = gtk_vbox_new(FALSE, PREF_PAD_SPACE);
 	gtk_container_add(GTK_CONTAINER(window), win_vbox);
 	gtk_widget_show(win_vbox);
--- a/src/pan-view/pan-view.c	Wed Feb 13 11:47:38 2019 +0000
+++ b/src/pan-view/pan-view.c	Thu Feb 14 12:05:04 2019 +0000
@@ -1809,6 +1809,7 @@
 	pw->idle_id = 0;
 
 	pw->window = window_new(GTK_WINDOW_TOPLEVEL, "panview", NULL, NULL, _("Pan View"));
+	DEBUG_NAME(pw->window);
 
 	geometry.min_width = DEFAULT_MINIMAL_WINDOW_SIZE;
 	geometry.min_height = DEFAULT_MINIMAL_WINDOW_SIZE;
@@ -1818,6 +1819,7 @@
 	gtk_container_set_border_width(GTK_CONTAINER(pw->window), 0);
 
 	vbox = gtk_vbox_new(FALSE, 0);
+	DEBUG_NAME(vbox);
 	gtk_container_add(GTK_CONTAINER(pw->window), vbox);
 	gtk_widget_show(vbox);
 
@@ -1909,6 +1911,7 @@
 	box = pref_box_new(vbox, FALSE, GTK_ORIENTATION_HORIZONTAL, 0);
 
 	frame = gtk_frame_new(NULL);
+	DEBUG_NAME(frame);
 	gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
 	gtk_widget_set_size_request(frame, ZOOM_LABEL_WIDTH, -1);
 	gtk_box_pack_start(GTK_BOX(box), frame, TRUE, TRUE, 0);
@@ -1922,6 +1925,7 @@
 	pw->label_message = pref_label_new(hbox, "");
 
 	frame = gtk_frame_new(NULL);
+	DEBUG_NAME(frame);
 	gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
 	gtk_widget_set_size_request(frame, ZOOM_LABEL_WIDTH, -1);
 	gtk_box_pack_end(GTK_BOX(box), frame, FALSE, FALSE, 0);
--- a/src/preferences.c	Wed Feb 13 11:47:38 2019 +0000
+++ b/src/preferences.c	Thu Feb 14 12:05:04 2019 +0000
@@ -3305,6 +3305,7 @@
 	if (!c_options) c_options = init_options(NULL);
 
 	configwindow = window_new(GTK_WINDOW_TOPLEVEL, "preferences", PIXBUF_INLINE_ICON_CONFIG, NULL, _("Preferences"));
+	DEBUG_NAME(configwindow);
 	gtk_window_set_type_hint(GTK_WINDOW(configwindow), GDK_WINDOW_TYPE_HINT_DIALOG);
 	g_signal_connect(G_OBJECT(configwindow), "delete_event",
 			 G_CALLBACK(config_window_delete), NULL);
--- a/src/search.c	Wed Feb 13 11:47:38 2019 +0000
+++ b/src/search.c	Thu Feb 14 12:05:04 2019 +0000
@@ -3147,6 +3147,7 @@
 		}
 
 	sd->window = window_new(GTK_WINDOW_TOPLEVEL, "search", NULL, NULL, _("Image search"));
+	DEBUG_NAME(sd->window);
 
 	gtk_window_set_resizable(GTK_WINDOW(sd->window), TRUE);
 
@@ -3473,6 +3474,7 @@
 					      G_CALLBACK(search_thumb_toggle_cb), sd);
 
 	frame = gtk_frame_new(NULL);
+	DEBUG_NAME(frame);
 	gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
 	gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, PREF_PAD_SPACE);
 	gtk_widget_show(frame);
--- a/src/ui_help.c	Wed Feb 13 11:47:38 2019 +0000
+++ b/src/ui_help.c	Thu Feb 14 12:05:04 2019 +0000
@@ -207,6 +207,7 @@
 	/* window */
 
 	window = window_new(GTK_WINDOW_TOPLEVEL, subclass, NULL, NULL, title);
+	DEBUG_NAME(window);
 	gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
 	gtk_window_set_default_size(GTK_WINDOW(window), HELP_WINDOW_WIDTH, HELP_WINDOW_HEIGHT);
 
--- a/src/ui_pathsel.c	Wed Feb 13 11:47:38 2019 +0000
+++ b/src/ui_pathsel.c	Thu Feb 14 12:05:04 2019 +0000
@@ -1068,6 +1068,7 @@
 	if (filter)
 		{
 		paned = gtk_hpaned_new();
+		DEBUG_NAME(paned);
 		gtk_table_attach(GTK_TABLE(table), paned, 0, 3, 1, 2,
 				 GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
 		gtk_widget_show(paned);
--- a/src/ui_utildlg.c	Wed Feb 13 11:47:38 2019 +0000
+++ b/src/ui_utildlg.c	Thu Feb 14 12:05:04 2019 +0000
@@ -402,6 +402,7 @@
 	gd->cancel_cb = cancel_cb;
 
 	gd->dialog = window_new(GTK_WINDOW_TOPLEVEL, role, NULL, NULL, title);
+	DEBUG_NAME(gd->dialog);
 	gtk_window_set_type_hint(GTK_WINDOW(gd->dialog), GDK_WINDOW_TYPE_HINT_DIALOG);
 
 	if (options->save_dialog_window_positions)