aboutsummaryrefslogtreecommitdiff
path: root/src/trayicon.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/trayicon.c')
-rw-r--r--src/trayicon.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/trayicon.c b/src/trayicon.c
index 51d9f47c..fc1f1f15 100644
--- a/src/trayicon.c
+++ b/src/trayicon.c
@@ -41,7 +41,7 @@
#include "main.h"
#include "inc.h"
#include "compose.h"
-#include "gtkutils.h"
+#include "prefs_common.h"
#if GTK_CHECK_VERSION(2, 10, 0) || defined(GDK_WINDOWING_X11)
@@ -241,7 +241,11 @@ static void trayicon_activated(GtkStatusIcon *status_icon, gpointer data)
{
MainWindow *mainwin = (MainWindow *)data;
- main_window_popup(mainwin);
+ if (prefs_common.toggle_window_on_trayicon_click &&
+ gtk_window_is_active(GTK_WINDOW(mainwin->window)))
+ gtk_window_iconify(GTK_WINDOW(mainwin->window));
+ else
+ main_window_popup(mainwin);
}
static void trayicon_popup_menu_cb(GtkStatusIcon *status_icon, guint button,
@@ -317,9 +321,13 @@ static void trayicon_button_pressed(GtkWidget *widget, GdkEventButton *event,
if (!event)
return;
- if (event->button == 1)
- main_window_popup(mainwin);
- else if (event->button == 3) {
+ if (event->button == 1) {
+ if (prefs_common.toggle_window_on_trayicon_click &&
+ gtk_window_is_active(GTK_WINDOW(mainwin->window)))
+ gtk_window_iconify(GTK_WINDOW(mainwin->window));
+ else
+ main_window_popup(mainwin);
+ } else if (event->button == 3) {
gtk_menu_popup(GTK_MENU(trayicon_menu), NULL, NULL, NULL, NULL,
event->button, event->time);
}