I have two monitors, but both with a resolution too low to show everything needed. So I open the "Variables tool view" in detachable state when debugging and move it onto the other screen. When returning to Debug mode after working in Code mode, the tool view won't be redrawn anymore. It just "copies" the pixels underneath when opened. Since I know where the view should be, I can move and resize it but the initially copied "background pixels" stay there. To see the real content, I have to redock and detach it manually again. Perhaps this can be solved by taking bug #377934 into account?
This is still reproducible with 5.2-git.
Just reported again for 5.3.0 in #kdevelop.
Created attachment 125590 [details] screenshot of windows not repainted
This is still present in the latest version from kdesrc-build. Is there some workaround? I am using non-compositing window manager, in case that makes a difference (marco on MATE desktop).
Just managed to fix this bug. Will create a large merge request with the fix included in a few weeks.
A possibly relevant merge request was started @ https://invent.kde.org/kdevelop/kdevelop/-/merge_requests/715
Git commit b76e7a27aa2db2b0d6c2f04d63932f4859afac18 by Igor Kushnir. Committed on 10/02/2025 at 14:30. Pushed by igorkushnir into branch 'master'. Sublime::MainWindow: don't disable updates while restoring state From the documentation for the property QWidget::updatesEnabled: Disabling a widget implicitly disables all its children. Enabling a widget enables all child widgets except top-level widgets or those that have been explicitly disabled. A floating QDockWidget is a top-level widget (window). A non-floating QDockWidget is not a top-level widget. IdealController::addView() creates non-floating QDockWidget-inheriting widgets with the main window as their parent. Then Sublime::MainWindow::loadSettings() uses the HoldUpdates utility to invoke on itself setUpdatesEnabled(false) before and setUpdatesEnabled(true) - after the call to applyMainWindowSettings(). Before the call to applyMainWindowSettings() all dock widgets are non-floating, so their updates become disabled along with their parent main window's updates. KMainWindow::applyMainWindowSettings() calls QMainWindow::restoreState(), which restores the floating property of all of the main window's dock widgets. The dock widgets that are made floating during the restoration become top-level widgets, so their updates are not implicitly re-enabled after applyMainWindowSettings(). This bug manifests itself in practice as follows: when a detached tool view is or becomes visible after switching to another sublime area or after restarting KDevelop, its contents is not painted over whatever pixels are behind it. One workaround is to remove and re-add the tool view. The disabling of main window updates in Sublime::MainWindow::loadSettings() is useless, because no event loop is entered in this function. And the loadSettings() function call does not take long: 15-20 ms in a Debug build on my system. FIXED-IN: 6.2.250400 M +0 -4 kdevplatform/sublime/mainwindow.cpp https://invent.kde.org/kdevelop/kdevelop/-/commit/b76e7a27aa2db2b0d6c2f04d63932f4859afac18