diff options
author | Laszlo Agocs <laszlo.agocs@theqtcompany.com> | 2015-09-28 17:37:55 +0200 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@theqtcompany.com> | 2015-10-02 06:32:03 +0000 |
commit | f191ba9d71bd910f205a2f41c5ac6c0d959439ed (patch) | |
tree | 88d612a1a48c22cf0087c2b17bd1059efba948cd /src/platformsupport/fbconvenience/qfbvthandler_p.h | |
parent | 918f1cd3d822eba5fcad013b1764d8b5d7f15423 (diff) |
Revamp signal handling in eglfs/linuxfb
Go back to the pipe-based signal handling. signalfd() introduces more harm than good
and is a regression for applications that install their own signal handlers.
Simplify the somewhat overcomplicated suspend (Ctrl+Z) logic too. There is no need for
requiring a callback. Just enable/disable the keyboard and cursor on suspend and resume
and emit the signals. Backends (like kms) may then perform additional steps, if they
choose to do so.
Task-number: QTBUG-48384
Change-Id: Ifd52de89c59915a2e0be6bf5ebc6f2ff1728eb50
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
Diffstat (limited to 'src/platformsupport/fbconvenience/qfbvthandler_p.h')
-rw-r--r-- | src/platformsupport/fbconvenience/qfbvthandler_p.h | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/platformsupport/fbconvenience/qfbvthandler_p.h b/src/platformsupport/fbconvenience/qfbvthandler_p.h index 3681def9f0..91eba248fe 100644 --- a/src/platformsupport/fbconvenience/qfbvthandler_p.h +++ b/src/platformsupport/fbconvenience/qfbvthandler_p.h @@ -59,23 +59,22 @@ public: QFbVtHandler(QObject *parent = 0); ~QFbVtHandler(); - void suspend(); - signals: void interrupted(); - void suspendRequested(); + void aboutToSuspend(); void resumed(); private slots: void handleSignal(); private: - void restoreKeyboard(); + void setKeyboardEnabled(bool enable); void handleInt(); + static void signalHandler(int sigNo); int m_tty; int m_oldKbdMode; - int m_signalFd; + int m_sigFd[2]; QSocketNotifier *m_signalNotifier; }; |