From 2488a7c674bd74d7860b2c9732dfa122f4a335d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lubo=C5=A1=20Lu=C5=88=C3=A1k?= Date: Wed, 10 Dec 2003 11:28:31 +0000 Subject: [PATCH] Add some stuff that should be most probably done but I'm afraid to do it now in the freeze. svn path=/trunk/kdebase/kwin/; revision=272282 --- group.cpp | 27 ++++++++++++++++++++++++++- manage.cpp | 2 +- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/group.cpp b/group.cpp index dfb6072ee7..8b01e553a1 100644 --- a/group.cpp +++ b/group.cpp @@ -23,6 +23,12 @@ License. See the file "COPYING" for the exact licensing terms. #include "client.h" #include +/* + TODO + Rename as many uses of 'transient' as possible (hasTransient->hasSubwindow,etc.), + or I'll get it backwards in half of the cases again. +*/ + namespace KWinInternal { @@ -724,12 +730,31 @@ void Client::checkGroup() for( ClientList::Iterator it = transients_list.begin(); it != transients_list.end(); ) - { // it's no longer transient for group transients in the old group + { // group transients in the old group are no longer transient for it if( (*it)->groupTransient() && (*it)->group() != group()) it = transients_list.remove( it ); else ++it; } +#if 0 // TODO + if( groupTransient()) + { + if( workspace()->findGroup( old_group )) // if it still exists + { // it's no longer transient for windows in the old group + for( ClientList::ConstIterator it = old_group->members().begin(); + it != old_group->members().end(); + ++it ) + (*it)->removeTransient( this ); + } + // and it's transiet for all windows in the new group (this one is the most recent + // in the group, so it is transient only for all previous windows) + // loops are checked in checkGroupTransients() + for( ClientList::ConstIterator it = group()->members().begin(); + it != group()->members().end(); + ++it ) + (*it)->addTransient( this ); + } +#endif #if 0 // this would make group transients transient for window that were mapped later for( ClientList::ConstIterator it = group()->members().begin(); it != group()->members().end(); diff --git a/manage.cpp b/manage.cpp index 1fa01196b2..3cd36f7c5c 100644 --- a/manage.cpp +++ b/manage.cpp @@ -103,7 +103,7 @@ bool Client::manage( Window w, bool isMapped ) detectNoBorder(); fetchName(); fetchIconicName(); - getWMHints(); + getWMHints(); // needs to be done before readTransient() because of reading the group readTransient(); getIcons(); getWindowProtocols();