static void on_settings_browser_position_notify (GObject *object, GParamSpec *pspec, gpointer data) { g_object_ref (G_browser); detach_browser (); attach_browser (); g_object_unref (G_browser); }
void plugin_init (GeanyData *data) { /* even though it's not really a good idea to keep all the library we load * into memory, this is needed for webkit. first, without this we creash after * module unloading, and webkitgtk inserts static data into the GLib * (g_quark_from_static_string() for example) so it's not safe to remove it */ plugin_module_make_resident (geany_plugin); /* webkit uses threads but don't initialize the thread system */ if (! g_thread_supported ()) { g_thread_init (NULL); } load_config (); gwh_keybindings_init (); G_browser = gwh_browser_new (); g_signal_connect (G_browser, "populate-popup", G_CALLBACK (on_browser_populate_popup), NULL); attach_browser (); gtk_widget_show_all (G_browser); plugin_signal_connect (geany_plugin, G_OBJECT (G_settings), "notify::browser-position", FALSE, G_CALLBACK (on_settings_browser_position_notify), NULL); plugin_signal_connect (geany_plugin, G_OBJECT (G_settings), "notify::wm-secondary-windows-skip-taskbar", FALSE, G_CALLBACK (on_settings_windows_attrs_notify), NULL); plugin_signal_connect (geany_plugin, G_OBJECT (G_settings), "notify::wm-secondary-windows-are-transient", FALSE, G_CALLBACK (on_settings_windows_attrs_notify), NULL); plugin_signal_connect (geany_plugin, G_OBJECT (G_settings), "notify::wm-secondary-windows-type", FALSE, G_CALLBACK (on_settings_windows_attrs_notify), NULL); plugin_signal_connect (geany_plugin, NULL, "document-save", TRUE, G_CALLBACK (on_document_save), NULL); /* add keybindings */ keybindings_set_item (gwh_keybindings_get_group (), GWH_KB_TOGGLE_INSPECTOR, on_kb_toggle_inspector, GDK_F12, 0, "toggle_inspector", _("Toggle Web Inspector"), NULL); keybindings_set_item (gwh_keybindings_get_group (), GWH_KB_SHOW_HIDE_SEPARATE_WINDOW, on_kb_show_hide_separate_window, 0, 0, "show_hide_separate_window", _("Show/Hide Web View's Window"), NULL); keybindings_set_item (gwh_keybindings_get_group (), GWH_KB_TOGGLE_BOOKMARK, on_kb_toggle_bookmark, 0, 0, "toggle_bookmark", _("Toggle bookmark for the current website"), NULL); }
static void on_settings_windows_attrs_notify (GObject *object, GParamSpec *pspec, gpointer data) { /* recreate the window to apply the new attributes */ if (G_container.type == CONTAINER_WINDOW) { g_object_ref (G_browser); detach_browser (); attach_browser (); g_object_unref (G_browser); } }