diff options
| author | Ox Cart | 2015-02-12 22:40:12 -0600 |
|---|---|---|
| committer | Ox Cart | 2015-02-12 22:40:12 -0600 |
| commit | d04132887e794233334a70fc261b83639e155288 (patch) | |
| tree | 949aceb8b1366be67d9a4299056107c904c67ddc | |
| parent | 4af4f1e9a36ceb6eee9a1bf6212f6be2a8354480 (diff) | |
| download | systray-d04132887e794233334a70fc261b83639e155288.tar.bz2 | |
Linux fixes
| -rw-r--r-- | systray_linux.c | 8 |
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); |
