static void notification_trayicon_popup_default_action_cb(NotifyNotification *notification, const char *action, void *user_data) { if(strcmp("default", action)) return; MainWindow *mainwin; mainwin = mainwindow_get_mainwindow(); if(mainwin) { NotificationFolderType nftype; /* Let mainwindow pop up */ notification_show_mainwindow(mainwin); /* If there is only one new mail message, jump to this message */ nftype = (NotificationFolderType)GPOINTER_TO_INT(user_data); if((popup.count == 1) && (nftype == F_TYPE_MAIL)) { gchar *select_str; G_LOCK(trayicon_popup); select_str = g_strdup(popup.msg_path); G_UNLOCK(trayicon_popup); debug_print("Notification plugin: Select message %s\n", select_str); mainwindow_jump_to(select_str, FALSE); g_free(select_str); } } }
static gboolean notification_popup_button(GtkWidget *widget, GdkEventButton *event, gpointer data) { if(event->type == GDK_BUTTON_PRESS) { if(event->button == 1) { MainWindow *mainwin; /* Let mainwindow pop up */ mainwin = mainwindow_get_mainwindow(); if(!mainwin) return TRUE; notification_show_mainwindow(mainwin); /* If there is only one new mail message, jump to this message */ if(popup.count == 1) { gchar *select_str; G_LOCK(popup); select_str = g_strdup(popup.msg_path); G_UNLOCK(popup); debug_print("Select message %s\n", select_str); mainwindow_jump_to(select_str, FALSE); g_free(select_str); } } } return TRUE; }