Summary: | [PATCH] Background dolphin windows goes up of one level when opening properties dialog | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | FiNeX <finex> |
Component: | general | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | NOR | ||
Version: | git master | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Attachments: |
functional patch (original code is only commented, not deleted)
Handle recursive transients |
Description
FiNeX
2009-07-12 19:33:46 UTC
confirmed, does not happen with compiz actually the other window is raised as soon as the dialog takes the focus (try increasing the focus stealing prevention to extreme) the dialog is /not/ modal and transient to the window it's opened from /only/ i nevertheless suspect it's related to the two dolphin windows being children of the same process... i assume layers.cpp:393ff is the "trouble" causer if a transient window is raised all group members are raised instead just "c->transientFor()" unfortunately i cannot test atm (need to rebuild kdelibs before...) ok, this "fixes" it - i.e. the result is as expected (only the dialog parenting dolphin window is raised in case - lilke in compiz) question: is the current behaviour intended (like helping out theGimp or so?) Created attachment 36317 [details]
functional patch (original code is only commented, not deleted)
Patch does not take into account recursive transients. Created attachment 36318 [details]
Handle recursive transients
Would it be necessary to also catch cyclic transients, i.e. e.g. A -> B -> C -> D -> B
while ((transient_parent = transient_parent->transientFor()) &&
!transient_parent.contains(transient_parent))
Patch is fine to commit. SVN commit 1030954 by luebking: don't raise the whole group with a transient, but only its ancestors BUG: 199910 M +6 -4 layers.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1030954 |