From 24c6b7420919234dc1e87c644276ec5137908876 Mon Sep 17 00:00:00 2001 From: Mavridis Philippe Date: Wed, 14 Apr 2021 22:07:54 +0300 Subject: [PATCH] Storing active virtual desktop in a variable is more reliable as a widget can lose its focus. Signed-off-by: Mavridis Philippe --- src/komposefullscreenwidget.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/komposefullscreenwidget.cpp b/src/komposefullscreenwidget.cpp index 04a0d3a..6b3a9a2 100644 --- a/src/komposefullscreenwidget.cpp +++ b/src/komposefullscreenwidget.cpp @@ -281,7 +281,9 @@ void KomposeFullscreenWidget::keyReleaseEvent ( TQKeyEvent *e ) bool KomposeFullscreenWidget::focusNeighbourDesk( int direction ) { bool successfull = false; - if ( !children()->containsRef(focusWidget()) ) + static TQWidget* activeDesktop; + + if ( activeDesktop == NULL ) { kdDebug() << "KomposeFullscreenWidget::keyReleaseEvent - No widget focussed. Focussing first" << endl; const TQObjectList *lst = children(); @@ -296,6 +298,7 @@ bool KomposeFullscreenWidget::focusNeighbourDesk( int direction ) { kdDebug() << "KomposeFullscreenWidget::keyReleaseEvent - Focussing " << widget->className() << endl; widget->setFocus(); + activeDesktop = widget; successfull = true; break; } @@ -306,10 +309,11 @@ bool KomposeFullscreenWidget::focusNeighbourDesk( int direction ) else { KomposeWidget *widget; - if ( ( widget = layout->getNeighbour( dynamic_cast(focusWidget()), direction, WLAYOUT_BOTH ) ) != 0 ) + if ( ( widget = layout->getNeighbour( dynamic_cast(activeDesktop), direction, WLAYOUT_BOTH ) ) != 0 ) { kdDebug() << "KomposeFullscreenWidget::keyReleaseEvent - Focussing " << widget->className() << endl; widget->setFocus(); + activeDesktop = widget; successfull = true; } }