Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
1 files changed, 26 insertions, 0 deletions
-rw-r--r--badwolf.c26
diff --git a/badwolf.c b/badwolf.c
index 8dad798..19353d9 100644
--- a/badwolf.c
+++ b/badwolf.c
@@ -1082,6 +1082,28 @@ storeCb_finish(WebKitUserContentFilterStore *store, GAsyncResult *result, gpoint
}
}
+void
+tray_icon_on_click(GtkStatusIcon *status_icon, gpointer main_window_ptr)
+{
+ GtkWidget *main_window = GTK_WIDGET(main_window_ptr);
+ if (gtk_widget_is_visible(main_window))
+ gtk_widget_hide(main_window);
+ else
+ gtk_widget_show(main_window);
+}
+
+static GtkStatusIcon *create_tray_icon(const struct Window *window) {
+ GtkStatusIcon *tray_icon;
+
+ tray_icon = gtk_status_icon_new();
+ g_signal_connect(G_OBJECT(tray_icon), "activate", G_CALLBACK(tray_icon_on_click), window->main_window);
+ gtk_status_icon_set_from_icon_name(tray_icon, "badwolf");
+ gtk_status_icon_set_tooltip_text(tray_icon, "Badwolf");
+ gtk_status_icon_set_visible(tray_icon, TRUE);
+
+ return tray_icon;
+}
+
int
main(int argc, char *argv[])
{
@@ -1098,6 +1120,8 @@ main(int argc, char *argv[])
g_application_register(application, NULL, NULL);
//g_application_activate(application);
+ GtkStatusIcon *tray_icon;
+
gtk_init(&argc, &argv);
fprintf(stderr, _("Running Badwolf version: %s\n"), version);
@@ -1202,6 +1226,8 @@ main(int argc, char *argv[])
gtk_notebook_set_current_page(GTK_NOTEBOOK(window->notebook), 1);
+ tray_icon = create_tray_icon(window);
+
gtk_main();
g_object_unref(bookmarks_completion_model);