static void on_kb_toggle_bookmark (guint key_id) { const gchar *uri = gwh_browser_get_uri (GWH_BROWSER (G_browser)); if (gwh_browser_has_bookmark (GWH_BROWSER (G_browser), uri)) { gwh_browser_remove_bookmark (GWH_BROWSER (G_browser), uri); } else { gwh_browser_add_bookmark (GWH_BROWSER (G_browser), uri); } }
static void attach_browser (void) { GwhBrowserPosition position; g_object_get (G_settings, "browser-position", &position, NULL); if (position == GWH_BROWSER_POSITION_SEPARATE_WINDOW) { G_container.type = CONTAINER_WINDOW; G_container.widget = create_separate_window (); /* seems that if a window is shown before it's transient parent, bad stuff * happend. so, show our window a little later. */ g_idle_add (on_idle_widget_show, G_container.widget); } else { G_container.type = CONTAINER_NOTEBOOK; if (position == GWH_BROWSER_POSITION_SIDEBAR) { G_container.widget = geany_data->main_widgets->sidebar_notebook; } else { G_container.widget = geany_data->main_widgets->message_window_notebook; } gtk_notebook_append_page (GTK_NOTEBOOK (G_container.widget), G_browser, gtk_label_new (_("Web preview"))); gwh_browser_set_inspector_transient_for (GWH_BROWSER (G_browser), GTK_WINDOW (geany_data->main_widgets->window)); } }
static void on_separate_window_destroy (GtkWidget *widget, gpointer data) { gwh_browser_set_inspector_transient_for (GWH_BROWSER (G_browser), NULL); gtk_container_remove (GTK_CONTAINER (G_container.widget), G_browser); }
static void on_document_save (GObject *obj, GeanyDocument *doc, gpointer user_data) { gboolean auto_reload = FALSE; g_object_get (G_OBJECT (G_settings), "browser-auto-reload", &auto_reload, NULL); if (auto_reload) { gwh_browser_reload (GWH_BROWSER (G_browser)); } }
static GtkWidget * create_separate_window (void) { GtkWidget *window; gboolean skips_taskbar; gboolean is_transient; gint window_type; g_object_get (G_settings, "wm-secondary-windows-skip-taskbar", &skips_taskbar, "wm-secondary-windows-are-transient", &is_transient, "wm-secondary-windows-type", &window_type, NULL); window = g_object_new (GTK_TYPE_WINDOW, "type", GTK_WINDOW_TOPLEVEL, "skip-taskbar-hint", skips_taskbar, "title", _("Web view"), "deletable", FALSE, "type-hint", window_type, NULL); g_signal_connect (window, "delete-event", G_CALLBACK (on_separate_window_delete_event), NULL); g_signal_connect (window, "destroy", G_CALLBACK (on_separate_window_destroy), NULL); gtk_container_add (GTK_CONTAINER (window), G_browser); if (is_transient) { gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (geany_data->main_widgets->window)); } else { GList *icons; icons = gtk_window_get_icon_list (GTK_WINDOW (geany_data->main_widgets->window)); gtk_window_set_icon_list (GTK_WINDOW (window), icons); g_list_free (icons); } gwh_browser_set_inspector_transient_for (GWH_BROWSER (G_browser), GTK_WINDOW (window)); return window; }
static void on_kb_toggle_inspector (guint key_id) { gwh_browser_toggle_inspector (GWH_BROWSER (G_browser)); }