[gtk+/parasite2] Make the inspector available via GTK_DEBUG
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/parasite2] Make the inspector available via GTK_DEBUG
- Date: Sun, 11 May 2014 01:41:37 +0000 (UTC)
commit 40290ed18e261dbcdd3bf3a76b788791d02bd494
Author: Matthias Clasen <mclasen redhat com>
Date: Sat May 10 13:22:17 2014 -0400
Make the inspector available via GTK_DEBUG
Change things around so GTK_DEBUG=interactive also brings
up the inspector window.
gtk/gtkdebug.h | 3 ++-
gtk/gtkmain.c | 12 ++++++++++--
gtk/gtkwindow.c | 24 +++++++++++++++---------
gtk/gtkwindowprivate.h | 2 ++
4 files changed, 29 insertions(+), 12 deletions(-)
---
diff --git a/gtk/gtkdebug.h b/gtk/gtkdebug.h
index a91e6da..895520e 100644
--- a/gtk/gtkdebug.h
+++ b/gtk/gtkdebug.h
@@ -51,7 +51,8 @@ typedef enum {
GTK_DEBUG_NO_CSS_CACHE = 1 << 13,
GTK_DEBUG_BASELINES = 1 << 14,
GTK_DEBUG_PIXEL_CACHE = 1 << 15,
- GTK_DEBUG_NO_PIXEL_CACHE = 1 << 16
+ GTK_DEBUG_NO_PIXEL_CACHE = 1 << 16,
+ GTK_DEBUG_INTERACTIVE = 1 << 17
} GtkDebugFlag;
#ifdef G_ENABLE_DEBUG
diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c
index 9e8fea5..0b187d5 100644
--- a/gtk/gtkmain.c
+++ b/gtk/gtkmain.c
@@ -175,7 +175,8 @@ static const GDebugKey gtk_debug_keys[] = {
{"no-css-cache", GTK_DEBUG_NO_CSS_CACHE},
{"baselines", GTK_DEBUG_BASELINES},
{"pixel-cache", GTK_DEBUG_PIXEL_CACHE},
- {"no-pixel-cache", GTK_DEBUG_NO_PIXEL_CACHE}
+ {"no-pixel-cache", GTK_DEBUG_NO_PIXEL_CACHE},
+ {"interactive", GTK_DEBUG_INTERACTIVE}
};
#endif /* G_ENABLE_DEBUG */
@@ -976,10 +977,17 @@ gboolean
gtk_init_check (int *argc,
char ***argv)
{
+ gboolean ret;
+
if (!gtk_parse_args (argc, argv))
return FALSE;
- return gdk_display_open_default_libgtk_only () != NULL;
+ ret = gdk_display_open_default_libgtk_only () != NULL;
+
+ if (debug_flags & GTK_DEBUG_INTERACTIVE)
+ gtk_window_set_interactive_debugging (TRUE);
+
+ return ret;
}
#ifdef G_PLATFORM_WIN32
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index cfe61fa..1fcfeba 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -12432,13 +12432,12 @@ _gtk_window_get_popover_position (GtkWindow *window,
*rect = data->rect;
}
-static void
-gtk_window_toggle_debugging (GtkWindow *window)
+static GtkWidget *inspector_window = NULL;
+
+void
+gtk_window_set_interactive_debugging (gboolean enable)
{
static GType type = G_TYPE_NONE;
- static GtkWidget *inspector_window = NULL;
-
- g_debug ("toggle debugging");
if (type == G_TYPE_NONE)
{
@@ -12453,15 +12452,22 @@ gtk_window_toggle_debugging (GtkWindow *window)
if (inspector_window == NULL)
{
- g_debug ("creating a GtkInspector window");
-
inspector_window = GTK_WIDGET (g_object_new (type, NULL));
g_signal_connect (inspector_window, "delete-event",
G_CALLBACK (gtk_widget_hide_on_delete), NULL);
}
- if (gtk_widget_is_visible (inspector_window))
+ if (enable)
+ gtk_window_present (GTK_WINDOW (inspector_window));
+ else
gtk_widget_hide (inspector_window);
+}
+
+static void
+gtk_window_toggle_debugging (GtkWindow *window)
+{
+ if (GTK_IS_WIDGET (inspector_window) && gtk_widget_is_visible (inspector_window))
+ gtk_window_set_interactive_debugging (FALSE);
else
- gtk_window_present (GTK_WINDOW (inspector_window));
+ gtk_window_set_interactive_debugging (TRUE);
}
diff --git a/gtk/gtkwindowprivate.h b/gtk/gtkwindowprivate.h
index 704026d..c4f191c 100644
--- a/gtk/gtkwindowprivate.h
+++ b/gtk/gtkwindowprivate.h
@@ -110,6 +110,8 @@ void _gtk_window_get_popover_position (GtkWindow *window,
GdkPixbuf *gtk_window_get_icon_for_size (GtkWindow *window,
gint size);
+void gtk_window_set_interactive_debugging (gboolean enable);
+
G_END_DECLS
#endif /* __GTK_WINDOW_PRIVATE_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]