diff --git a/src/crypto/twofish.cpp b/src/crypto/twofish.cpp index e0fec8e..ef1d402 100644 --- a/src/crypto/twofish.cpp +++ b/src/crypto/twofish.cpp @@ -476,7 +476,7 @@ #endif -void Twofish_fatal(char* msg){ +void Twofish_fatal(const char* msg){ qCritical("Twofish: Fatal Error: %s",msg); exit(1); } diff --git a/src/lib/AutoType_X11.cpp b/src/lib/AutoType_X11.cpp index e9fa21f..87b68f7 100644 --- a/src/lib/AutoType_X11.cpp +++ b/src/lib/AutoType_X11.cpp @@ -162,7 +162,11 @@ void AutoType::perform(IEntryHandle* entry, QString& err,bool hideWindow,int nr) #ifdef GLOBAL_AUTOTYPE void AutoType::performGlobal(){ - if (MainWin->db==NULL) return; + if (MainWin->isLocked()) + MainWin->OnUnLockWorkspace(); + + if (!MainWin->isOpened()) + return; Display* d = QX11Info::display(); Window w; diff --git a/src/mainwindow.h b/src/mainwindow.h index 70ab8ef..d20e2b0 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -34,6 +34,11 @@ class KeepassMainWindow : public QMainWindow, private Ui_MainWindow{ public: KeepassMainWindow (const QString& ArgFile,bool ArgMin,bool ArgLock,QWidget *parent=0, Qt::WFlags flags=0); IDatabase* db; + inline bool isLocked() { return IsLocked; }; + inline bool isOpened() { return FileOpen; }; + + public slots: + void OnUnLockWorkspace(); signals: void entryChanged(); @@ -76,7 +81,6 @@ class KeepassMainWindow : public QMainWindow, private Ui_MainWindow{ void OnImport(QAction*); void OnExport(QAction*); void OnDetailViewUrlClicked(const QUrl& url); - void OnUnLockWorkspace(); void OnLockClose(); void OnInactivityTimer();