Browse Source

Don't bother showing a status message when returning to the system tray,
but still show a one time tray message to indicate to the user that the
program is still running in the tray if they triggered the window manager
close button.

Signed-off-by: Kel Modderman <kel@otaku42.de>

Kel Modderman 16 years ago
parent
commit
89f97a1c8d
1 changed files with 13 additions and 9 deletions
  1. 13 9
      wpa_supplicant/wpa_gui-qt4/wpagui.cpp

+ 13 - 9
wpa_supplicant/wpa_gui-qt4/wpagui.cpp

@@ -1156,6 +1156,7 @@ void WpaGui::trayActivated(QSystemTrayIcon::ActivationReason how)
 	/* use close() here instead of hide() and allow the
 	 * custom closeEvent handler take care of children */
 	case QSystemTrayIcon::Trigger:
+		ackTrayIcon = true;
 		if (isVisible())
 			close();
 		else
@@ -1241,21 +1242,24 @@ void WpaGui::closeEvent(QCloseEvent *event)
 
 	if (tray_icon && tray_icon->isVisible()) {
 		/* give user a visual hint that the tray icon exists */
-		if (QSystemTrayIcon::supportsMessages()) {
+		if (!ackTrayIcon && QSystemTrayIcon::supportsMessages()) {
 			hide();
-			QTimer::singleShot(1 * 1000, this,
-					   SLOT(showTrayStatus()));
+			showTrayMessage(QSystemTrayIcon::Information, 3,
+					qAppName() + " will keep running in "
+					"the system tray.");
 		} else if (!ackTrayIcon) {
 			QMessageBox::information(this, qAppName() + " systray",
 						 "The program will keep "
-						 "running in the system tray."
-						 " To terminate the program, "
-						 "choose <b>Quit</b> in the "
-						 "context menu of the system "
-						 "tray icon.");
-			ackTrayIcon = true;
+						 "running in the system "
+						 "tray.");
 			hide();
 		}
+
+		if (ackTrayIcon)
+			hide();
+		else
+			ackTrayIcon = true;
+
 		event->ignore();
 		return;
 	}