#include "prefs_common.h"
#include "alertpanel.h"
#include "gtk/menu.h"
-#ifndef USE_NEW_ADDRBOOK
+#ifndef USE_ALT_ADDRBOOK
#include "addressbook.h"
#include "addrindex.h"
#else
static GtkStatusIcon *trayicon;
static gboolean updating_menu = FALSE;
static GtkWidget *traymenu_popup;
+static GtkWidget *focused_widget = NULL;
static GtkActionEntry trayicon_popup_menu_entries[] = {
{"SysTrayiconPopup", NULL, "SysTrayiconPopup" },
buf = g_strdup_printf(_("New %d, Unread: %d, Total: %d"),
count.new_msgs, count.unread_msgs,
count.total_msgs);
-#if GTK_CHECK_VERSION(2,16,0)
gtk_status_icon_set_tooltip_text(trayicon, buf);
-#else
- gtk_status_icon_set_tooltip(trayicon, buf);
-#endif
+
g_free(buf);
/* Pixmap */
MainWindow *mainwin = mainwindow_get_mainwindow();
*close_allowed = FALSE;
- if(mainwin && gtk_widget_get_visible(GTK_WIDGET(mainwin->window)))
+ if(mainwin && gtk_widget_get_visible(GTK_WIDGET(mainwin->window))) {
+ focused_widget = gtk_window_get_focus(GTK_WINDOW(mainwin->window));
main_window_hide(mainwin);
+ }
}
}
return FALSE;
void notification_trayicon_on_activate(GtkStatusIcon *status_icon, gpointer user_data)
{
+ MainWindow *mainwin = mainwindow_get_mainwindow();
+
+ if(mainwin && gtk_widget_get_visible(GTK_WIDGET(mainwin->window)) == TRUE)
+ focused_widget = gtk_window_get_focus(GTK_WINDOW(mainwin->window));
+
notification_toggle_hide_show_window();
+
+ if(mainwin && gtk_widget_get_visible(GTK_WIDGET(mainwin->window)) == TRUE)
+ gtk_window_set_focus(GTK_WINDOW(mainwin->window), focused_widget);
}
static void notification_trayicon_on_popup_menu(GtkStatusIcon *status_icon,
updating_menu = FALSE;
-#ifndef G_OS_WIN32
gtk_menu_popup(GTK_MENU(traymenu_popup), NULL, NULL, NULL, NULL,
button, activate_time);
-#else
- /* http://bugzilla.gnome.org/show_bug.cgi?id=552642 */
- gtk_menu_popup(GTK_MENU(traymenu_popup), NULL, NULL, NULL, NULL,
- 0, activate_time);
-#endif
}
static gboolean notification_trayicon_on_size_changed(GtkStatusIcon *icon,
static void trayicon_addressbook_cb(GtkAction *action, gpointer data)
{
-#ifndef USE_NEW_ADDRBOOK
+#ifndef USE_ALT_ADDRBOOK
addressbook_open(NULL);
#else
GError* error = NULL;
/* Icon */
pixbuf = NULL;
-#ifndef USE_NEW_ADDRBOOK
+#ifndef USE_ALT_ADDRBOOK
if(msginfo && msginfo->from) {
gchar *icon_path;
icon_path = addrindex_get_picture_file(msginfo->from);