From efdd71f35935f8b14abfb26fa852bad77dbd3f9e Mon Sep 17 00:00:00 2001 From: Alex Borisov Date: Sat, 24 Mar 2012 11:41:57 +0200 Subject: Ticket #3 fix (tray click workaround and no windown on taskbar) --- client/Dialog.cpp | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) (limited to 'client/Dialog.cpp') diff --git a/client/Dialog.cpp b/client/Dialog.cpp index 2610bea..169d33e 100644 --- a/client/Dialog.cpp +++ b/client/Dialog.cpp @@ -11,7 +11,7 @@ using namespace std; -ProxyDialog::ProxyDialog(QWidget *parent): QDialog(parent, Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint) +ProxyDialog::ProxyDialog(QWidget *parent): QDialog(parent, Qt::Tool | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint) { UpdatedConfig *cfg = UpdatedConfig::CurrentConfig(); @@ -20,8 +20,6 @@ ProxyDialog::ProxyDialog(QWidget *parent): QDialog(parent, Qt::FramelessWindowHi { Logger::Error("No valid proxifier configuration file found!\n"); } - - connect(this, SIGNAL(finished(int)), this, SLOT(Closed(int))); /* generic proxy panel */ topLabel = new QLabel(QString::fromLocal8Bit(cfg->TopPanelText.c_str())); @@ -123,6 +121,21 @@ ProxyDialog::ProxyDialog(QWidget *parent): QDialog(parent, Qt::FramelessWindowHi setLayout(mainLayout); } + +bool ProxyDialog::event(QEvent* event) +{ + if (event->type() == QEvent::ActivationChange) + { + Logger::Debug("Activation change\n"); + if(QApplication::activeWindow() != this) + { + this->close(); + } + } + return QDialog::event(event); +} + + void ProxyDialog::resizeEvent(QResizeEvent* event) { QRect availScreenRect = QApplication::desktop()->availableGeometry(); @@ -131,21 +144,6 @@ void ProxyDialog::resizeEvent(QResizeEvent* event) } -void ProxyDialog::Closed(int i) -{ - Logger::Trace("Dialog closed\n"); - Proxifier *proxifier = Proxifier::GetInstance(); - if (!proxifier->IsValid()) - { - Logger::Error("No valid proxifier configuration file found!\n"); - return; // do not restart if no config found - } - if (!proxifier->ReloadConfig()) - { - Logger::Error("Unable to restart Proxifier process!\n"); - } -} - void ProxyDialog::ProxyToggled(bool on) { QPushButton* btn = (QPushButton*) sender(); -- cgit v1.2.3