diff options
author | Alexander Mikhaylenko <alexm@gnome.org> | 2021-12-29 04:14:03 +0500 |
---|---|---|
committer | Alexander Mikhaylenko <alexm@gnome.org> | 2021-12-29 04:42:51 +0500 |
commit | b997d1e892f2061e9773be2d3c14a9d9ea2aebc1 (patch) | |
tree | 6562d8ad527ff76d7a871bacde414218019019b9 /gtk | |
parent | 4b71fba54043a45017025b9af7af3e9275b61641 (diff) | |
download | gtk+-b997d1e892f2061e9773be2d3c14a9d9ea2aebc1.tar.gz |
inspector: Register extension on startup
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gtkmain.c | 3 | ||||
-rw-r--r-- | gtk/inspector/init.c | 37 | ||||
-rw-r--r-- | gtk/inspector/init.h | 3 |
3 files changed, 25 insertions, 18 deletions
diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c index 2ab9c68fe7..352e32fdcd 100644 --- a/gtk/gtkmain.c +++ b/gtk/gtkmain.c @@ -68,6 +68,7 @@ #include "gtknative.h" #include "gtkpopcountprivate.h" +#include "inspector/init.h" #include "inspector/window.h" #include "gdk/gdkeventsprivate.h" @@ -566,6 +567,8 @@ do_post_parse_initialization (void) g_signal_connect (display_manager, "notify::default-display", G_CALLBACK (default_display_notify_cb), NULL); + + gtk_inspector_register_extension (); } #ifdef G_PLATFORM_WIN32 diff --git a/gtk/inspector/init.c b/gtk/inspector/init.c index c951fe30fc..9a80eb6c4e 100644 --- a/gtk/inspector/init.c +++ b/gtk/inspector/init.c @@ -55,10 +55,14 @@ #include "gtkmodulesprivate.h" +static GIOExtensionPoint *extension_point = NULL; + void gtk_inspector_init (void) { - static GIOExtensionPoint *extension_point = NULL; + GIOModuleScope *scope; + char **paths; + int i; g_type_ensure (G_TYPE_LIST_STORE); @@ -89,26 +93,25 @@ gtk_inspector_init (void) g_type_ensure (GTK_TYPE_INSPECTOR_VISUAL); g_type_ensure (GTK_TYPE_INSPECTOR_WINDOW); - if (extension_point == NULL) - { - GIOModuleScope *scope; - char **paths; - int i; - - extension_point = g_io_extension_point_register ("gtk-inspector-page"); - g_io_extension_point_set_required_type (extension_point, GTK_TYPE_WIDGET); + paths = _gtk_get_module_path ("inspector"); + scope = g_io_module_scope_new (G_IO_MODULE_SCOPE_BLOCK_DUPLICATES); - paths = _gtk_get_module_path ("inspector"); - scope = g_io_module_scope_new (G_IO_MODULE_SCOPE_BLOCK_DUPLICATES); + for (i = 0; paths[i] != NULL; i++) + g_io_modules_load_all_in_directory_with_scope (paths[i], scope); - for (i = 0; paths[i] != NULL; i++) - g_io_modules_load_all_in_directory_with_scope (paths[i], scope); - - g_strfreev (paths); - g_io_module_scope_free (scope); - } + g_strfreev (paths); + g_io_module_scope_free (scope); gtk_css_provider_set_keep_css_sections (); } +void +gtk_inspector_register_extension (void) +{ + if (extension_point == NULL) { + extension_point = g_io_extension_point_register ("gtk-inspector-page"); + g_io_extension_point_set_required_type (extension_point, GTK_TYPE_WIDGET); + } +} + // vim: set et sw=2 ts=2: diff --git a/gtk/inspector/init.h b/gtk/inspector/init.h index 7fe6745fd8..04d3789bb6 100644 --- a/gtk/inspector/init.h +++ b/gtk/inspector/init.h @@ -20,7 +20,8 @@ G_BEGIN_DECLS -void gtk_inspector_init (void); +void gtk_inspector_init (void); +void gtk_inspector_register_extension (void); G_END_DECLS |