Summary: | Hidden modal tool windows for inactive applications never reappear | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | Karl-Johan Karlsson <creideiki+kdebugs> |
Component: | general | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | dismine |
Priority: | NOR | Flags: | thomas.luebking:
ReviewRequest+
|
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Gentoo Packages | ||
OS: | Linux | ||
URL: | https://git.reviewboard.kde.org/r/123875/ | ||
Latest Commit: | http://commits.kde.org/kwin/41be18e317155c282fa6778620903b906ada69c5 | Version Fixed In: |
Description
Karl-Johan Karlsson
2015-05-21 18:48:49 UTC
valentina bug: https://bitbucket.org/dismine/valentina/issue/303/ Out of curiosity: What (tf ;-) is the reasoning behind making a utility window modal? I mean, this is absolutely a bug in KWin (the modal window could be hidden for other reasons than being minimized or another virtual desktop) but the particular example is really weird and rather smells like a (usability) bug in valentina, because a modal (dialog) window and a utility window are contradicting concepts (and the NETWM spec even explicitly states that the utility window is *not* meant to be a transient dialog) (In reply to Thomas Lübking from comment #1) > valentina bug: > https://bitbucket.org/dismine/valentina/issue/303/ > > Out of curiosity: > What (tf ;-) is the reasoning behind making a utility window modal? > > I mean, this is absolutely a bug in KWin (the modal window could be hidden > for other reasons than being minimized or another virtual desktop) but the > particular example is really weird and rather smells like a (usability) bug > in valentina, because a modal (dialog) window and a utility window are > contradicting concepts (and the NETWM spec even explicitly states that the > utility window is *not* meant to be a transient dialog) I have one. :) Left window resizable, but hide maximize button. Just Qt::Dialog doesn't allow this. But how i see it's ugly hack. (In reply to Roman from comment #2) > I have one. :) Left window resizable, but hide maximize button. Just > Qt::Dialog doesn't allow this. But how i see it's ugly hack. That wouldn't work in KWin - if a window has a maximum size != its min size, it's maximizable. But you might be on the right track: utility windows are not minimizable (and not in the tabbox and likely not in any taskbar) - that's probably why bug #317484 was linked. From the valentina bug, the window in question sounds like it *should* be a dialog. Ie. one sought to make the modal dialog unminimizable by setting it as utility window. It's btw. maximizable AND minimizable in openbox - so it's either really a bug in valentina or a *very* crude hack =) Did you happen to git blame the line in question? Or could you? Try git blame -L96,+1 HEAD^ -- src/app/dialogs/app/configdialog.cpp @Martin netwm says: _NET_WM_STATE_MODAL indicates that this is a modal *dialog* box. If the WM_TRANSIENT_FOR hint is set to another toplevel window, the *dialog* is modal for that window; if WM_TRANSIENT_FOR is not set or set to the root window the *dialog* is modal for its window group. I feel very much tempted to resolve such contradiction, by failsafing - ie. since we cannot judge whether this should be a modal dialog or a utility window and it can hardly be both, we treat it as a non modal normal window (but still transient, that's orthogonal)? > It's btw. maximizable AND minimizable in openbox - so it's either really a bug in valentina or a *very* crude hack =)
Hi guys,
Thanks a lot for constructive criticism. I fixed this bug. Now Valentina returned to the light side. :)
Git commit 41be18e317155c282fa6778620903b906ada69c5 by Thomas Lübking. Committed on 10/06/2015 at 06:50. Pushed by luebking into branch 'master'. Robust modal activation; ensure showing activated ...window REVIEW: 123875 M +2 -0 abstract_client.h M +6 -4 activation.cpp M +1 -1 client.h M +4 -0 shell_client.cpp M +1 -0 shell_client.h http://commits.kde.org/kwin/41be18e317155c282fa6778620903b906ada69c5 |