Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commit760a9dd3288481728b13c6c6d63e7e57dfdef050 (patch)
Author
 Syndamia <kamen@syndamia.com>
2022-06-13 15:34:58 +0300
Committer
 Syndamia <kamen@syndamia.com>
2022-06-13 15:34:58 +0300
Files1a712e4b057967042e75e2373bc901ffbc13a531
goodwolf-760a9dd3288481728b13c6c6d63e7e57dfdef050.tar
goodwolf-760a9dd3288481728b13c6c6d63e7e57dfdef050.tar.gz
goodwolf-760a9dd3288481728b13c6c6d63e7e57dfdef050.zip
Parent40d363960619653d6653c686c6bcb4a5a4951ef6 (diff)
badwolf: Added tray icon
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);