summaryrefslogtreecommitdiffstats
path: root/kwin/workspace.h
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-09-07 19:42:15 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-09-07 19:42:15 +0000
commit9cc1e2c1aa2629d499e7555acd4906d6cc989cf9 (patch)
tree2a737f47bb029688c2f5ebef76869903cf4b4eec /kwin/workspace.h
parenteaa51fec106463800192924168eaf9f03f188655 (diff)
downloadtdebase-9cc1e2c1aa2629d499e7555acd4906d6cc989cf9.tar.gz
tdebase-9cc1e2c1aa2629d499e7555acd4906d6cc989cf9.zip
Merged in remaining kdebase bugfixes from the Chakra project
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1172677 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kwin/workspace.h')
-rw-r--r--kwin/workspace.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/kwin/workspace.h b/kwin/workspace.h
index d369497da..55043276e 100644
--- a/kwin/workspace.h
+++ b/kwin/workspace.h
@@ -231,6 +231,8 @@ class Workspace : public TQObject, public KWinInterface, public KDecorationDefin
void unclutterDesktop();
void doNotManage(TQString);
bool setCurrentDesktop( int new_desktop );
+ void updateOverlappingShadows(WId window);
+ void setShadowed(WId window, bool shadowed);
void nextDesktop();
void previousDesktop();
void circulateDesktopApplications();
@@ -518,6 +520,7 @@ class Workspace : public TQObject, public KWinInterface, public KDecorationDefin
Client* active_client;
Client* last_active_client;
+ Client* next_active_client; // will be active after active_client deactivates
Client* most_recently_raised; // used _only_ by raiseOrLowerClient()
Client* movingClient;
Client* pending_take_activity;
@@ -704,7 +707,15 @@ inline bool Workspace::initializing() const
inline Client* Workspace::activeClient() const
{
- return active_client;
+ // next_active_client is a kludge for drop shadows. If a window that is
+ // activated is not also raised (i.e. when focus follows mouse), then the
+ // newly activated window and its shadow won't cover visual artifacts that
+ // might exist in the inactive window's shadow. We work around this by
+ // (re)drawing the inactive window's shadow after the active window's shadow
+ // is drawn, but to do that the inactive window needs to know which window
+ // will become active next. next_active_client is a Client pointer for that
+ // purpose.
+ return next_active_client != NULL ? next_active_client : active_client;
}
inline Client* Workspace::mostRecentlyActivatedClient() const