File indexing completed on 2024-04-28 03:54:16
0001 /* 0002 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0003 SPDX-FileCopyrightText: 2020 David Redondo <kde@david-redondo.de> 0004 */ 0005 0006 #include "keyboardgrabber_p.h" 0007 0008 #include <QWindow> 0009 0010 KeyboardGrabber::KeyboardGrabber(QWindow *window) 0011 : ShortcutInhibition() 0012 , m_grabbedWindow(window) 0013 , m_grabbingKeyboard(false) 0014 { 0015 } 0016 0017 KeyboardGrabber::~KeyboardGrabber() 0018 { 0019 disableInhibition(); 0020 } 0021 0022 void KeyboardGrabber::enableInhibition() 0023 { 0024 if (m_grabbingKeyboard || !m_grabbedWindow) { 0025 return; 0026 } 0027 m_grabbingKeyboard = m_grabbedWindow->setKeyboardGrabEnabled(true); 0028 } 0029 0030 void KeyboardGrabber::disableInhibition() 0031 { 0032 if (!m_grabbingKeyboard) { 0033 return; 0034 } 0035 m_grabbingKeyboard = !(m_grabbedWindow->setKeyboardGrabEnabled(false)); 0036 } 0037 0038 bool KeyboardGrabber::shortcutsAreInhibited() const 0039 { 0040 return m_grabbingKeyboard; 0041 }