Skip to content

Commit f9becd7

Browse files
committed
Fixed: the focusable CDockWidget would lose focus when another QWindow containing a CDockManager that contains a focusable CDockWidget gains focus
1 parent a16d17a commit f9becd7

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

src/DockFocusController.cpp

100644100755
+8-5
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,8 @@ void CDockFocusController::onFocusWindowChanged(QWindow *focusWindow)
260260
return;
261261
}
262262

263-
d->updateDockWidgetFocus(DockWidget);
263+
if(DockWidget->dockManager() == d->DockManager)
264+
d->updateDockWidgetFocus(DockWidget);
264265
}
265266

266267

@@ -298,18 +299,19 @@ void CDockFocusController::onApplicationFocusChanged(QWidget* focusedOld, QWidge
298299
if (!DockWidget || DockWidget->tabWidget()->isHidden())
299300
{
300301
return;
301-
}
302+
}
302303
#endif
303304

304-
d->updateDockWidgetFocus(DockWidget);
305+
if(DockWidget->dockManager() == d->DockManager)
306+
d->updateDockWidgetFocus(DockWidget);
305307
}
306308

307309

308310
//===========================================================================
309311
void CDockFocusController::setDockWidgetTabFocused(CDockWidgetTab* Tab)
310312
{
311313
auto DockWidget = Tab->dockWidget();
312-
if (DockWidget)
314+
if (DockWidget && DockWidget->dockManager() == d->DockManager)
313315
{
314316
d->updateDockWidgetFocus(DockWidget);
315317
}
@@ -327,7 +329,8 @@ void CDockFocusController::clearDockWidgetFocus(CDockWidget* dockWidget)
327329
//===========================================================================
328330
void CDockFocusController::setDockWidgetFocused(CDockWidget* focusedNow)
329331
{
330-
d->updateDockWidgetFocus(focusedNow);
332+
if(focusedNow->dockManager() == d->DockManager)
333+
d->updateDockWidgetFocus(focusedNow);
331334
}
332335

333336

0 commit comments

Comments
 (0)