diff options
Diffstat (limited to 'src/client/util/platform/blankscreen_X11.cpp')
| -rw-r--r-- | src/client/util/platform/blankscreen_X11.cpp | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/src/client/util/platform/blankscreen_X11.cpp b/src/client/util/platform/blankscreen_X11.cpp deleted file mode 100644 index ee644ca..0000000 --- a/src/client/util/platform/blankscreen_X11.cpp +++ /dev/null @@ -1,100 +0,0 @@ - -#include "blankscreen.h" - -#include <QApplication> -#include <QProcess> -#include <QDesktopWidget> -#include <QTimer> - -#include <X11/Xlib.h> -#include <X11/cursorfont.h> - -#include <cassert> -#include <cstring> - -struct BlankScreen_Sysdep { - Display *dpy; -}; - -BlankScreen::BlankScreen() : QDialog(NULL) -{ - _sysdep = new BlankScreen_Sysdep; - _sysdep->dpy = XOpenDisplay(NULL); - if (_sysdep->dpy == NULL) - return; - - setWindowFlags(Qt::WindowStaysOnTopHint | Qt::X11BypassWindowManagerHint | Qt::FramelessWindowHint); - setStyleSheet("background-color:#000"); - - _locked = false; - QTimer *upper = new QTimer(this); - connect(upper, SIGNAL(timeout()), this, SLOT(timer_moveToTop())); - upper->start(1111); -} - -BlankScreen::~BlankScreen() -{ - unlock(); - if (_sysdep->dpy != NULL) { - XCloseDisplay(_sysdep->dpy); - } - delete _sysdep; -} - -bool BlankScreen::lock(const QString& message) -{ - if (_locked) - return true; - if (_sysdep->dpy == NULL) - return false; - - _message = message; - - this->setGeometry(QApplication::desktop()->geometry()); - this->showFullScreen(); - this->activateWindow(); - this->raise(); - - // grabbing of keyboard and mouse - XGrabKeyboard(_sysdep->dpy, DefaultRootWindow(_sysdep->dpy) , false, GrabModeAsync, GrabModeAsync, CurrentTime); - XGrabPointer(_sysdep->dpy, DefaultRootWindow(_sysdep->dpy) , false, 0, GrabModeAsync, GrabModeAsync, None, 0, CurrentTime); - - - QProcess ungrabP; - ungrabP.start("/bin/bash", QStringList() << "/opt/openslx/pvs2/kb-lock.sh"); - ungrabP.waitForFinished(); - - _locked = true; - return true; -} - -bool BlankScreen::unlock() -{ - this->hide(); - if (!_locked) - return true; - if (_sysdep->dpy == NULL) - return false; - - // ungrabbing of keyboard and mouse - XUngrabPointer(_sysdep->dpy, CurrentTime); - XUngrabKeyboard(_sysdep->dpy, CurrentTime); - - XFlush(_sysdep->dpy); - - /* start the kb-unlock.sh script */ - QProcess regrabP; - regrabP.start("/bin/bash", QStringList() << "/opt/openslx/pvs2/kb-unlock.sh"); - regrabP.waitForFinished(); - - _locked = false; - return true; -} - -void BlankScreen::timer_moveToTop() -{ - if (this->isHidden()) - return; - activateWindow(); - raise(); -} |
