https://bugs.kde.org/show_bug.cgi?id=427288

Igor Kushnir <igor...@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Latest Commit|                            |https://invent.kde.org/kdev
                   |                            |elop/kdevelop/-/commit/ee4e
                   |                            |13f448e2a0af69e99c4fca5983b
                   |                            |446fb4f4f
         Resolution|---                         |FIXED
   Version Fixed In|                            |6.2.250400
             Status|ASSIGNED                    |RESOLVED

--- Comment #5 from Igor Kushnir <igor...@gmail.com> ---
Git commit ee4e13f448e2a0af69e99c4fca5983b446fb4f4f by Igor Kushnir.
Committed on 10/02/2025 at 14:30.
Pushed by igorkushnir into branch 'master'.

sublime: don't hide the active tool view when another one is raised

If another tool view is active when a tool view is raised, and the two
tool views are in the same dock widget area, the active tool view
becomes hidden, but then receives the focus from
IdealController::raiseView(). A focused hidden widget is problematic,
because key presses are delivered to it, but the user is unaware that
something changes.

Also, as the added comment explains, raising a tool view in the
background should not hide the active widget, which is likely being used
at the moment. Bug 427288 complains that modifying a CMake file of an
open project via the Terminal tool view automatically raises the Build
tool view and hides the Terminal tool view, which breaks the user's
workflow.

Find the active tool view in IdealController::raiseView() and store its
address in a new dedicated data member. Each IdealButtonBarWidget stores
a permanent reference to this data member and does not uncheck the
active tool view's action in IdealButtonBarWidget::showWidget(). This
implementation is simple enough and does not require raiseView() to find
the raised tool view's IdealButtonBarWidget. Storing a reference to the
IdealController's data member in each IdealButtonBarWidget is safe,
because all these objects share the same main window parent and are
never destroyed explicitly (but only in quick succession as the main
window's children when it is destroyed).
FIXED-IN: 6.2.250400

M  +5    -3    kdevplatform/sublime/idealbuttonbarwidget.cpp
M  +7    -1    kdevplatform/sublime/idealbuttonbarwidget.h
M  +16   -4    kdevplatform/sublime/idealcontroller.cpp
M  +6    -0    kdevplatform/sublime/idealcontroller.h

https://invent.kde.org/kdevelop/kdevelop/-/commit/ee4e13f448e2a0af69e99c4fca5983b446fb4f4f

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to