diff options
author | Carsten Lohrke <carlo@gentoo.org> | 2006-04-17 18:52:27 +0000 |
---|---|---|
committer | Carsten Lohrke <carlo@gentoo.org> | 2006-04-17 18:52:27 +0000 |
commit | 2a95a405b657905ececf325ffef04bbe953a7169 (patch) | |
tree | 25f2087b2bb538ddb201e16cfcf08915d00e9d0d /kde-base | |
parent | Replace -O2 and -O3 with -O1 to avoid miscompilation, thanks to kenzelma in b... (diff) | |
download | historical-2a95a405b657905ececf325ffef04bbe953a7169.tar.gz historical-2a95a405b657905ececf325ffef04bbe953a7169.tar.bz2 historical-2a95a405b657905ececf325ffef04bbe953a7169.zip |
Updated patch to fix bug #127980 and #128379.
Package-Manager: portage-2.0.54
Diffstat (limited to 'kde-base')
-rw-r--r-- | kde-base/kwin/ChangeLog | 8 | ||||
-rw-r--r-- | kde-base/kwin/Manifest | 37 | ||||
-rw-r--r-- | kde-base/kwin/files/digest-kwin-3.5.2-r2 | 1 | ||||
-rw-r--r-- | kde-base/kwin/files/kwin-3.5.2-alt_tab_and_focus_chain_fix.diff | 391 | ||||
-rw-r--r-- | kde-base/kwin/kwin-3.5.2-r2.ebuild | 30 |
5 files changed, 433 insertions, 34 deletions
diff --git a/kde-base/kwin/ChangeLog b/kde-base/kwin/ChangeLog index 20917108d4ec..0002014fa7e3 100644 --- a/kde-base/kwin/ChangeLog +++ b/kde-base/kwin/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for kde-base/kwin # Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/kde-base/kwin/ChangeLog,v 1.49 2006/04/06 03:06:59 flameeyes Exp $ +# $Header: /var/cvsroot/gentoo-x86/kde-base/kwin/ChangeLog,v 1.50 2006/04/17 18:52:27 carlo Exp $ + +*kwin-3.5.2-r2 (17 Apr 2006) + + 17 Apr 2006; Carsten Lohrke <carlo@gentoo.org> + +files/kwin-3.5.2-alt_tab_and_focus_chain_fix.diff, +kwin-3.5.2-r2.ebuild: + Updated patch to fix bug #127980 and #128379. 06 Apr 2006; Diego Pettenò <flameeyes@gentoo.org> -files/kwin-3.5.1-systray.patch, -kwin-3.5.0.ebuild, -kwin-3.5.1.ebuild, diff --git a/kde-base/kwin/Manifest b/kde-base/kwin/Manifest index b1d3e4f56bd5..1e88ba45af16 100644 --- a/kde-base/kwin/Manifest +++ b/kde-base/kwin/Manifest @@ -1,43 +1,14 @@ ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA1 - -MD5 d57fd57240e1a8ad63413d4253ee4c5a ChangeLog 6077 -RMD160 6c2651e5fdc40b860914e99c35e45ce0e1933219 ChangeLog 6077 -SHA256 291391ddd0d7ddb5afdf3a93f62c4d1cfa590a7a3822bf6c3012ea7b5c0e5a58 ChangeLog 6077 +MD5 58b2a13d6c3c8eeec5335cfa05269610 ChangeLog 6278 MD5 b22a687fe2e8cf06cd5147f1ec68efb7 files/digest-kwin-3.4.1 212 -RMD160 507b5780112807385327a808ffffb5c897cbf1f4 files/digest-kwin-3.4.1 212 -SHA256 a64c99717e47d1f6143f531b9767e3e022d6c789e8d5a14aaf174814cb51a21d files/digest-kwin-3.4.1 212 MD5 7deca5e51240260b2976fbbe9326ed6d files/digest-kwin-3.4.2 287 -RMD160 db88376c4259165535f83f3529f0834fb2209612 files/digest-kwin-3.4.2 287 -SHA256 3f1b77c90587a110ffb3a1402c6f10a87ef93bfdbc1345bb2138188a52c9cb8b files/digest-kwin-3.4.2 287 MD5 b334b621242eaf5a23035e870f09dea6 files/digest-kwin-3.4.3 68 -RMD160 fe4b253b0a7c2e30a2aa1d0d796dfcb11e30590a files/digest-kwin-3.4.3 68 -SHA256 2c163305cf238b4283a2263d089f3a5cdacfe053018c1fa5d8a5879593baf1a8 files/digest-kwin-3.4.3 68 MD5 5efe75301bc0d47d1f2af0ce2feb2603 files/digest-kwin-3.5.2-r1 68 -RMD160 e75b5aeaf92e72ffb4e94df99d0f81490f287b93 files/digest-kwin-3.5.2-r1 68 -SHA256 19fc0b34e2f9464359bac8b07b2aec31b9b080ecc053164cc9bf8ee952e564a1 files/digest-kwin-3.5.2-r1 68 +MD5 5efe75301bc0d47d1f2af0ce2feb2603 files/digest-kwin-3.5.2-r2 68 +MD5 37dffebcd3f6d1641ccc80e50852fa46 files/kwin-3.5.2-alt_tab_and_focus_chain_fix.diff 15189 MD5 1ea48b1904f323b5937b4168048a5561 files/kwin-3.5.2-alt_tab_crash.diff 642 -RMD160 1872cd6d0b0c8fa3e54ff0abad7d2a17ae0dcef8 files/kwin-3.5.2-alt_tab_crash.diff 642 -SHA256 f9af5896d7c16739882eeb330d821f8b0a292fd46c2772949537bb8cc20fb21f files/kwin-3.5.2-alt_tab_crash.diff 642 MD5 2809511699650a8a076be8791e4d1567 kwin-3.4.1.ebuild 384 -RMD160 9a05f5adc449a45161e31c56572035a16fbe3242 kwin-3.4.1.ebuild 384 -SHA256 2df5424cc7c9de3f78cf0970a1ec4a5d7ae9a4b0101c8227d60aa542bc014f3d kwin-3.4.1.ebuild 384 MD5 83701c6ee016cca9476c28a71b8b6f8d kwin-3.4.2.ebuild 388 -RMD160 7ce7c0b74db6fa7a3c76018c309cd3398da9d9f5 kwin-3.4.2.ebuild 388 -SHA256 aafcc1381c3fe9bf479f3f01ecabd448c97e42cd7dac30009826c0edb44a25a7 kwin-3.4.2.ebuild 388 MD5 695a5f6ea3a7c5784b476831098018d8 kwin-3.4.3.ebuild 389 -RMD160 7928293c7f4ff1d108deb42785c31ccb4f0b2952 kwin-3.4.3.ebuild 389 -SHA256 ec86ae544ffc1b7330b1fb5de0331fe2a7620df50e9beeb9c4087f805d49c9f3 kwin-3.4.3.ebuild 389 MD5 aae40c7a7e69745391f451e8f1adf61c kwin-3.5.2-r1.ebuild 809 -RMD160 e0dbbc008dc89abcdf81fe5071db1eaf06ee4c49 kwin-3.5.2-r1.ebuild 809 -SHA256 9ad09b416ec14f60335d670d6aebaf1bb10f56ac197cfb4e4dfd0fbb02bb62c2 kwin-3.5.2-r1.ebuild 809 +MD5 f6dd03936bb305a77e5a19c69a887a92 kwin-3.5.2-r2.ebuild 809 MD5 acc03a4b12bb0433a57e95bd253b9501 metadata.xml 156 -RMD160 ecce3b981f150c45ae1e84e2d208e678d6124259 metadata.xml 156 -SHA256 2f4da28506b9d4185f320f67a6191d30c7a921217ed4447ed46ea0bc4aefc79a metadata.xml 156 ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.2.2 (GNU/Linux) - -iD8DBQFENIV4AiZjviIA2XgRAma0AJ0fz+qlyk5uzELyfsWrm2EqU51QbQCgg/hx -NyUBnmUs6YlcTFUWxBKqF3I= -=tOG3 ------END PGP SIGNATURE----- diff --git a/kde-base/kwin/files/digest-kwin-3.5.2-r2 b/kde-base/kwin/files/digest-kwin-3.5.2-r2 new file mode 100644 index 000000000000..9c5d5e23a110 --- /dev/null +++ b/kde-base/kwin/files/digest-kwin-3.5.2-r2 @@ -0,0 +1 @@ +MD5 c5685e1be34e033286aa1f37002a0552 kdebase-3.5.2.tar.bz2 23590820 diff --git a/kde-base/kwin/files/kwin-3.5.2-alt_tab_and_focus_chain_fix.diff b/kde-base/kwin/files/kwin-3.5.2-alt_tab_and_focus_chain_fix.diff new file mode 100644 index 000000000000..e21e408846ca --- /dev/null +++ b/kde-base/kwin/files/kwin-3.5.2-alt_tab_and_focus_chain_fix.diff @@ -0,0 +1,391 @@ +diff -ur kwin.orig/activation.cpp kwin/activation.cpp +--- kdebase/kwin.orig/activation.cpp 2006-04-16 14:50:58.000000000 +0200 ++++ kdebase/kwin/activation.cpp 2006-04-16 15:17:55.000000000 +0200 +@@ -231,7 +231,7 @@ + last_active_client = active_client; + if ( active_client ) + { +- updateFocusChains( active_client, true ); // make it first in focus chain ++ updateFocusChains( active_client, FocusChainMakeFirst ); + active_client->demandAttention( false ); + } + pending_take_activity = NULL; +diff -ur kwin.orig/client.cpp kwin/client.cpp +--- kdebase/kwin.orig/client.cpp 2006-04-16 14:50:58.000000000 +0200 ++++ kdebase/kwin/client.cpp 2006-04-16 15:18:17.000000000 +0200 +@@ -578,7 +578,7 @@ + updateAllowedActions(); + workspace()->updateMinimizedOfTransients( this ); + updateWindowRules(); +- workspace()->updateFocusChains( this, false ); // make it last in the focus chain ++ workspace()->updateFocusChains( this, Workspace::FocusChainMakeLast ); + } + + void Client::unminimize( bool avoid_animation ) +@@ -895,7 +895,16 @@ + } + if( show ) + { +- if( workspace()->showingDesktop()) ++ bool belongs_to_desktop = false; ++ for( ClientList::ConstIterator it = group()->members().begin(); ++ it != group()->members().end(); ++ ++it ) ++ if( (*it)->isDesktop()) ++ { ++ belongs_to_desktop = true; ++ break; ++ } ++ if( !belongs_to_desktop && workspace()->showingDesktop()) + workspace()->resetShowingDesktop( true ); + if( isShade()) + setMappingState( IconicState ); +@@ -1149,7 +1158,8 @@ + info->setState( b?NET::SkipTaskbar:0, NET::SkipTaskbar ); + updateWindowRules(); + if( was_wants_tab_focus != wantsTabFocus()) +- workspace()->updateFocusChains( this, isActive()); ++ workspace()->updateFocusChains( this, ++ isActive() ? Workspace::FocusChainMakeFirst : Workspace::FocusChainUpdate ); + } + + void Client::setSkipPager( bool b ) +@@ -1191,7 +1201,7 @@ + } + if( decoration != NULL ) + decoration->desktopChange(); +- workspace()->updateFocusChains( this, true ); ++ workspace()->updateFocusChains( this, Workspace::FocusChainMakeFirst ); + updateVisibility(); + updateWindowRules(); + } +diff -ur kwin.orig/events.cpp kwin/events.cpp +--- kdebase/kwin.orig/events.cpp 2006-04-16 14:50:58.000000000 +0200 ++++ kdebase/kwin/events.cpp 2006-04-16 15:18:35.000000000 +0200 +@@ -370,7 +370,7 @@ + if( c ) + { + c->windowEvent( e ); +- updateFocusChains( c, true ); ++ updateFocusChains( c, FocusChainUpdate ); + return true; + } + break; +@@ -402,15 +402,15 @@ + if ( e->xconfigurerequest.parent == root ) + { + XWindowChanges wc; +- unsigned int value_mask = 0; +- wc.border_width = 0; ++ wc.border_width = e->xconfigurerequest.border_width; + wc.x = e->xconfigurerequest.x; + wc.y = e->xconfigurerequest.y; + wc.width = e->xconfigurerequest.width; + wc.height = e->xconfigurerequest.height; + wc.sibling = None; + wc.stack_mode = Above; +- value_mask = e->xconfigurerequest.value_mask | CWBorderWidth; ++ unsigned int value_mask = e->xconfigurerequest.value_mask ++ & ( CWX | CWY | CWWidth | CWHeight | CWBorderWidth ); + XConfigureWindow( qt_xdisplay(), e->xconfigurerequest.window, value_mask, &wc ); + return true; + } +diff -ur kwin.orig/geometry.cpp kwin/geometry.cpp +--- kdebase/kwin.orig/geometry.cpp 2006-04-16 14:50:58.000000000 +0200 ++++ kdebase/kwin/geometry.cpp 2006-04-16 15:18:58.000000000 +0200 +@@ -1281,7 +1281,21 @@ + { // update to match restrictions + QSize new_size = adjustedSize(); + if( new_size != size() && !isFullScreen()) ++ { ++ QRect orig_geometry = geometry(); + resizeWithChecks( new_size ); ++ if( ( !isSpecialWindow() || isToolbar()) && !isFullScreen()) ++ { ++ // try to keep the window in its xinerama screen if possible, ++ // if that fails at least keep it visible somewhere ++ QRect area = workspace()->clientArea( MovementArea, this ); ++ if( area.contains( orig_geometry )) ++ keepInArea( area ); ++ area = workspace()->clientArea( WorkArea, this ); ++ if( area.contains( orig_geometry )) ++ keepInArea( area ); ++ } ++ } + } + updateAllowedActions(); // affects isResizeable() + } +@@ -1840,7 +1854,7 @@ + + // maximing one way and unmaximizing the other way shouldn't happen + Q_ASSERT( !( vertical && horizontal ) +- || (( max_mode & MaximizeVertical != 0 ) == ( max_mode & MaximizeHorizontal != 0 ))); ++ || ((( max_mode & MaximizeVertical ) != 0 ) == (( max_mode & MaximizeHorizontal ) != 0 ))); + + QRect clientArea = workspace()->clientArea( MaximizeArea, this ); + +diff -ur kwin.orig/layers.cpp kwin/layers.cpp +--- kdebase/kwin.orig/layers.cpp 2006-04-16 14:50:58.000000000 +0200 ++++ kdebase/kwin/layers.cpp 2006-04-16 15:19:23.000000000 +0200 +@@ -100,7 +100,7 @@ + { + if( block_stacking_updates > 0 ) + { +- blocked_propagating_new_clients |= propagate_new_clients; ++ blocked_propagating_new_clients = blocked_propagating_new_clients || propagate_new_clients; + return; + } + ClientList new_stacking_order = constrainedStackingOrder(); +@@ -441,6 +441,21 @@ + } + } + } ++ // the same for global_focus_chain ++ if( c->wantsTabFocus() && global_focus_chain.contains( active_client )) ++ { ++ global_focus_chain.remove( c ); ++ for( ClientList::Iterator it = global_focus_chain.fromLast(); ++ it != global_focus_chain.end(); ++ --it ) ++ { ++ if( Client::belongToSameApplication( active_client, *it )) ++ { ++ global_focus_chain.insert( it, c ); ++ break; ++ } ++ } ++ } + updateStackingOrder(); + } + +diff -ur kwin.orig/tabbox.cpp kwin/tabbox.cpp +--- kdebase/kwin.orig/tabbox.cpp 2006-04-16 14:50:58.000000000 +0200 ++++ kdebase/kwin/tabbox.cpp 2006-04-16 15:19:43.000000000 +0200 +@@ -763,7 +763,7 @@ + return; + if ( tab_grab || control_grab ) + return; +- if ( options->altTabStyle == Options::CDE ) ++ if ( options->altTabStyle == Options::CDE || !options->focusPolicyIsReasonable()) + { + //XUngrabKeyboard(qt_xdisplay(), qt_x_time); // need that because of accelerator raw mode + // CDE style raise / lower +@@ -789,7 +789,7 @@ + return; + if( tab_grab || control_grab ) + return; +- if ( options->altTabStyle == Options::CDE ) ++ if ( options->altTabStyle == Options::CDE || !options->focusPolicyIsReasonable()) + { + // CDE style raise / lower + CDEWalkThroughWindows( false ); +@@ -926,7 +926,23 @@ + + void Workspace::CDEWalkThroughWindows( bool forward ) + { +- Client* c = activeClient(); ++ Client* c = NULL; ++// this function find the first suitable client for unreasonable focus ++// policies - the topmost one, with some exceptions (can't be keepabove/below, ++// otherwise it gets stuck on them) ++ Q_ASSERT( block_stacking_updates == 0 ); ++ for( ClientList::ConstIterator it = stacking_order.fromLast(); ++ it != stacking_order.end(); ++ --it ) ++ { ++ if ( (*it)->isOnCurrentDesktop() && !(*it)->isSpecialWindow() ++ && (*it)->isShown( false ) && (*it)->wantsTabFocus() ++ && !(*it)->keepAbove() && !(*it)->keepBelow()) ++ { ++ c = *it; ++ break; ++ } ++ } + Client* nc = c; + bool options_traverse_all; + { +@@ -952,7 +968,7 @@ + } + } while (nc && nc != c && + (( !options_traverse_all && !nc->isOnDesktop(currentDesktop())) || +- nc->isMinimized() || !nc->wantsTabFocus() ) ); ++ nc->isMinimized() || !nc->wantsTabFocus() || nc->keepAbove() || nc->keepBelow() ) ); + if (nc) + { + if (c && c != nc) +@@ -1152,14 +1168,13 @@ + */ + Client* Workspace::nextFocusChainClient( Client* c ) const + { +- int desktop = c->isOnAllDesktops() ? currentDesktop() : c->desktop(); +- if ( focus_chain[desktop].isEmpty() ) ++ if ( global_focus_chain.isEmpty() ) + return 0; +- ClientList::ConstIterator it = focus_chain[desktop].find( c ); +- if ( it == focus_chain[desktop].end() ) +- return focus_chain[desktop].last(); +- if ( it == focus_chain[desktop].begin() ) +- return focus_chain[desktop].last(); ++ ClientList::ConstIterator it = global_focus_chain.find( c ); ++ if ( it == global_focus_chain.end() ) ++ return global_focus_chain.last(); ++ if ( it == global_focus_chain.begin() ) ++ return global_focus_chain.last(); + --it; + return *it; + } +@@ -1170,15 +1185,14 @@ + */ + Client* Workspace::previousFocusChainClient( Client* c ) const + { +- int desktop = c->isOnAllDesktops() ? currentDesktop() : c->desktop(); +- if ( focus_chain[desktop].isEmpty() ) ++ if ( global_focus_chain.isEmpty() ) + return 0; +- ClientList::ConstIterator it = focus_chain[desktop].find( c ); +- if ( it == focus_chain[desktop].end() ) +- return focus_chain[desktop].first(); ++ ClientList::ConstIterator it = global_focus_chain.find( c ); ++ if ( it == global_focus_chain.end() ) ++ return global_focus_chain.first(); + ++it; +- if ( it == focus_chain[desktop].end() ) +- return focus_chain[desktop].first(); ++ if ( it == global_focus_chain.end() ) ++ return global_focus_chain.first(); + return *it; + } + +diff -ur kwin.orig/workspace.cpp kwin/workspace.cpp +--- kdebase/kwin.orig/workspace.cpp 2006-04-16 14:50:58.000000000 +0200 ++++ kdebase/kwin/workspace.cpp 2006-04-16 15:20:05.000000000 +0200 +@@ -512,7 +512,7 @@ + } + else + { +- updateFocusChains( c, true ); ++ updateFocusChains( c, FocusChainUpdate ); // add to focus chain if not already there + clients.append( c ); + } + if( !unconstrained_stacking_order.contains( c )) +@@ -564,6 +564,7 @@ + i <= numberOfDesktops(); + ++i ) + focus_chain[ i ].remove( c ); ++ global_focus_chain.remove( c ); + attention_chain.remove( c ); + if( c->isTopMenu()) + removeTopMenu( c ); +@@ -590,7 +591,7 @@ + updateClientArea(); + } + +-void Workspace::updateFocusChains( Client* c, bool make_first ) ++void Workspace::updateFocusChains( Client* c, FocusChainChange change ) + { + if( !c->wantsTabFocus()) // doesn't want tab focus, remove + { +@@ -598,16 +599,21 @@ + i<= numberOfDesktops(); + ++i ) + focus_chain[i].remove(c); ++ global_focus_chain.remove( c ); + return; + } + if(c->desktop() == NET::OnAllDesktops) + { //now on all desktops, add it to focus_chains it is not already in + for( int i=1; i<= numberOfDesktops(); i++) +- { // make_first works only on current desktop, don't affect all desktops +- if( make_first && i == currentDesktop()) ++ { // making first/last works only on current desktop, don't affect all desktops ++ if( i == currentDesktop() ++ && ( change == FocusChainMakeFirst || change == FocusChainMakeLast )) + { + focus_chain[ i ].remove( c ); +- focus_chain[ i ].append( c ); ++ if( change == FocusChainMakeFirst ) ++ focus_chain[ i ].append( c ); ++ else ++ focus_chain[ i ].prepend( c ); + } + else if( !focus_chain[ i ].contains( c )) + focus_chain[ i ].prepend( c ); // otherwise add as the last one +@@ -619,11 +625,16 @@ + { + if( i == c->desktop()) + { +- if( make_first ) ++ if( change == FocusChainMakeFirst ) + { + focus_chain[ i ].remove( c ); + focus_chain[ i ].append( c ); + } ++ else if( change == FocusChainMakeLast ) ++ { ++ focus_chain[ i ].remove( c ); ++ focus_chain[ i ].prepend( c ); ++ } + else if( !focus_chain[ i ].contains( c )) + focus_chain[ i ].prepend( c ); + } +@@ -631,6 +642,18 @@ + focus_chain[ i ].remove( c ); + } + } ++ if( change == FocusChainMakeFirst ) ++ { ++ global_focus_chain.remove( c ); ++ global_focus_chain.append( c ); ++ } ++ else if( change == FocusChainMakeLast ) ++ { ++ global_focus_chain.remove( c ); ++ global_focus_chain.prepend( c ); ++ } ++ else if( !global_focus_chain.contains( c )) ++ global_focus_chain.prepend( c ); + } + + void Workspace::updateCurrentTopMenu() +diff -ur kwin.orig/workspace.h kwin/workspace.h +--- kdebase/kwin.orig/workspace.h 2006-04-16 14:50:58.000000000 +0200 ++++ kdebase/kwin/workspace.h 2006-04-16 15:20:32.000000000 +0200 +@@ -251,7 +251,8 @@ + bool checkStartupNotification( Window w, KStartupInfoId& id, KStartupInfoData& data ); + + void focusToNull(); // SELI public? +- void updateFocusChains( Client* c, bool make_first ); ++ enum FocusChainChange { FocusChainMakeFirst, FocusChainMakeLast, FocusChainUpdate }; ++ void updateFocusChains( Client* c, FocusChainChange change ); + + bool forcedGlobalMouseGrab() const; + void clientShortcutUpdated( Client* c ); +@@ -510,6 +511,7 @@ + ClientList unconstrained_stacking_order; + ClientList stacking_order; + QValueVector< ClientList > focus_chain; ++ ClientList global_focus_chain; // this one is only for things like tabbox's MRU + ClientList should_get_focus; // last is most recent + ClientList attention_chain; + +--- kdebase/kwin/utils.h 2006/02/28 13:01:47 514432 ++++ kdebase/kwin/utils.h 2006/04/11 12:49:12 528574 +@@ -232,15 +232,13 @@ + inline + int timestampCompare( Time time1, Time time2 ) // like strcmp() + { +- if( time1 == time2 ) +- return 0; +- return ( time1 - time2 ) < 1000000000 ? 1 : -1; // time1 > time2 -> 1, handle wrapping ++ return NET::timestampCompare( time1, time2 ); + } + + inline + Time timestampDiff( Time time1, Time time2 ) // returns time2 - time1 +- { // no need to handle wrapping? +- return time2 - time1; ++ { ++ return NET::timestampDiff( time1, time2 ); + } + + bool isLocalMachine( const QCString& host ); diff --git a/kde-base/kwin/kwin-3.5.2-r2.ebuild b/kde-base/kwin/kwin-3.5.2-r2.ebuild new file mode 100644 index 000000000000..c5781bc85902 --- /dev/null +++ b/kde-base/kwin/kwin-3.5.2-r2.ebuild @@ -0,0 +1,30 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/kde-base/kwin/kwin-3.5.2-r2.ebuild,v 1.1 2006/04/17 18:52:27 carlo Exp $ + +KMNAME=kdebase +MAXKDEVER=$PV +KM_DEPRANGE="$PV $MAXKDEVER" +inherit kde-meta eutils + +DESCRIPTION="KDE window manager" +KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86" +IUSE="xcomposite" +RDEPEND="xcomposite? ( || ( ( + x11-libs/libXcomposite + x11-libs/libXdamage + ) <=x11-base/xorg-x11-6.9 ) + )" +DEPEND="${RDEPEND} + xcomposite? ( || ( ( + x11-proto/compositeproto + x11-proto/damageproto + ) <=x11-base/xorg-x11-6.9 ) + )" + +PATCHES="${FILESDIR}/kwin-3.5.2-alt_tab_and_focus_chain_fix.diff" + +src_compile() { + myconf="$myconf $(use_with xcomposite composite)" + kde-meta_src_compile +} |