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

            Bug ID: 438990
           Summary: Better detection of unresponsive applications
           Product: kwin
           Version: unspecified
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: kwin-bugs-n...@kde.org
          Reporter: alts...@gmail.com
  Target Milestone: ---

Created attachment 139571
  --> https://bugs.kde.org/attachment.cgi?id=139571&action=edit
Demonstation how frozen application reuses screen content and how KWin reacts
to frozen applications

SUMMARY
There is a usability problem with unresponsive/hanged/frozen applications. When
application window stops responding, it may "take" part of the screen (user may
see not application content before hang but content of the desktop or previous
window). That's especially confusing for maximized windows. So we should try to
close that window with a button on a window decoration or on the panel. Then it
may apply effect "Desaturate Unresponsive Applications" for a frozen window and
finally show a dialog that process is not responding.
I see 2 problems here:
1. Dialog is only triggered with a "close" action
2. As frozen window reuses some screen content, for a user sometimes very hard
to find that window on a screen. User must rely on a panel (Task Manager), Task
Switcher, "Present Windows" etc. Situation gets worse with CSD and variable
"KWIN_EFFECTS_FORCE_ANIMATIONS=0" which among others disables effect
"Desaturate Unresponsive Applications".
I tried to boot into GNOME 3.36 and liked how Mutter deals with this issue:
- it detects that application is frozen without user's specific interaction
with a close button/command and shows dialog with 
- It dims window and repeats showing that dialog if user selected to "Wait
Longer". Also as Mutter attaches that modal dialog to a parent window, for a
user it's really easy to identify frozen window. 

STEPS TO REPRODUCE
1. Launch Kate and maximize it's window
2. Launch Konsole and maximize it's window
3. On a Konsole find PID for a "Kate" process with
ps -ely | grep kate
(3rd collumn)
4. Simulate process hang with a command
kill -SIGSTOP <PID>
5. Minimize Kate (left click on a Kate item on a Task Manager on the panel) so
you will see Konsole window
6. Unminize Kate

OBSERVED RESULT
- KWin doesn't detect that application is unresponsive unless you press a
"close" button
- Unresponsive application reuses screen content so it's hard to identify your
frozen window, especially with programs which use CSD (e.g "Gedit)

EXPECTED RESULT
User can easily identify and close unresponsive program

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: KDE Neon 5.22 User Edition
KDE Plasma Version: 5.22.1
KDE Frameworks Version: 5.83.0
Qt Version: 5.15.3

ADDITIONAL INFORMATION
Video demonstration attached

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

Reply via email to