From f93c501d06498f90084cf63425e78b8e77d0b662 Mon Sep 17 00:00:00 2001 From: Michele Calgaro Date: Wed, 29 Apr 2020 00:23:20 +0900 Subject: [PATCH] Fixed unresponsive behavior of the shortcut setting dialog in recent ditros. This resolves bug 2955. Signed-off-by: Michele Calgaro (cherry picked from commit 8ea3d4dd872623721abe3153cdd44d01e3cc69be) --- tdeui/tdeshortcutdialog.cpp | 23 ++++++++++------------- tdeui/tdeshortcutdialog.h | 1 - 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/tdeui/tdeshortcutdialog.cpp b/tdeui/tdeshortcutdialog.cpp index 35a7706c7..4d95970b6 100644 --- a/tdeui/tdeshortcutdialog.cpp +++ b/tdeui/tdeshortcutdialog.cpp @@ -82,7 +82,6 @@ TDEShortcutDialog::TDEShortcutDialog( const TDEShortcut& shortcut, bool bQtShort m_bQtShortcut = bQtShortcut; - m_bGrab = false; m_iSeq = 0; m_iKey = 0; m_ptxtCurrent = 0; @@ -291,22 +290,20 @@ bool TDEShortcutDialog::x11Event( XEvent *pEvent ) x11KeyReleaseEvent( pEvent ); return true; case XFocusIn: - if (!m_bGrab) { - //kdDebug(125) << "FocusIn and Grab!" << endl; - grabKeyboard(); - m_bGrab = true; + { + XFocusInEvent *fie = (XFocusInEvent*)pEvent; + if (fie->mode != NotifyGrab && fie->mode != NotifyUngrab) { + grabKeyboard(); + } } - //else - // kdDebug(125) << "FocusIn" << endl; break; case XFocusOut: - if (m_bGrab) { - //kdDebug(125) << "FocusOut and Ungrab!" << endl; - releaseKeyboard(); - m_bGrab = false; + { + XFocusOutEvent *foe = (XFocusOutEvent*)pEvent; + if (foe->mode != NotifyGrab && foe->mode != NotifyUngrab) { + releaseKeyboard(); + } } - //else - // kdDebug(125) << "FocusOut" << endl; break; default: //kdDebug(125) << "x11Event->type = " << pEvent->type << endl; diff --git a/tdeui/tdeshortcutdialog.h b/tdeui/tdeshortcutdialog.h index c0b8fa49b..afad6fda2 100644 --- a/tdeui/tdeshortcutdialog.h +++ b/tdeui/tdeshortcutdialog.h @@ -53,7 +53,6 @@ private: bool m_bQtShortcut; TDEShortcut m_shortcut; - bool m_bGrab; KPushButton* m_ptxtCurrent; uint m_iSeq; uint m_iKey;