File kdelibs-fix-unresponsive-shortcut-dialog.patch of Package kdelibs3

diff -Naru kdelibs-3.5.10_orig/kdeui/kshortcutdialog.cpp kdelibs-3.5.10/kdeui/kshortcutdialog.cpp
--- kdelibs-3.5.10_orig/kdeui/kshortcutdialog.cpp	2005-10-11 00:06:38.000000000 +0900
+++ kdelibs-3.5.10/kdeui/kshortcutdialog.cpp	2022-05-19 15:32:29.398163526 +0900
@@ -82,7 +82,6 @@
         
 	m_bQtShortcut = bQtShortcut;
 
-	m_bGrab = false;
 	m_iSeq = 0;
 	m_iKey = 0;
 	m_ptxtCurrent = 0;
@@ -291,22 +290,20 @@
 			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;
openSUSE Build Service is sponsored by