aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOx Cart2015-02-12 22:40:12 -0600
committerOx Cart2015-02-12 22:40:12 -0600
commitd04132887e794233334a70fc261b83639e155288 (patch)
tree949aceb8b1366be67d9a4299056107c904c67ddc
parent4af4f1e9a36ceb6eee9a1bf6212f6be2a8354480 (diff)
downloadsystray-d04132887e794233334a70fc261b83639e155288.tar.bz2
Linux fixes
-rw-r--r--systray_linux.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/systray_linux.c b/systray_linux.c
index 834cf9b..1a07815 100644
--- a/systray_linux.c
+++ b/systray_linux.c
@@ -77,7 +77,9 @@ gboolean do_add_or_update_menu_item(gpointer data) {
// menu id doesn't exist, add new item
if(it == NULL) {
GtkWidget *menu_item = gtk_menu_item_new_with_label(mii->title);
- g_signal_connect_swapped(G_OBJECT(menu_item), "activate", G_CALLBACK(systray_menu_item_selected), mii->menu_id);
+ int *id = malloc(sizeof(int));
+ *id = mii->menu_id;
+ g_signal_connect_swapped(G_OBJECT(menu_item), "activate", G_CALLBACK(_systray_menu_item_selected), id);
gtk_menu_shell_append(GTK_MENU_SHELL(global_tray_menu), menu_item);
MenuItemNode* new_item = malloc(sizeof(MenuItemNode));
@@ -119,6 +121,10 @@ gboolean do_quit(gpointer data) {
return FALSE;
}
+void _systray_menu_item_selected(int *id) {
+ systray_menu_item_selected(*id);
+}
+
void setIcon(const char* iconBytes, int length) {
GBytes* bytes = g_bytes_new_static(iconBytes, length);
g_idle_add(do_set_icon, bytes);