KWinInternal::Workspace Class Reference

Inheritance diagram for KWinInternal::Workspace:

KWinInterface List of all members.

Detailed Description

Definition at line 73 of file workspace.h.


Public Types

enum  FocusChainChange { FocusChainMakeFirst, FocusChainMakeLast, FocusChainUpdate }

Public Slots

void refresh ()
void slotSwitchDesktopNext ()
void slotSwitchDesktopPrevious ()
void slotSwitchDesktopRight ()
void slotSwitchDesktopLeft ()
void slotSwitchDesktopUp ()
void slotSwitchDesktopDown ()
void slotSwitchToDesktop (int)
void slotWindowToDesktop (int)
void slotWindowMaximize ()
void slotWindowMaximizeVertical ()
void slotWindowMaximizeHorizontal ()
void slotWindowMinimize ()
void slotWindowShade ()
void slotWindowRaise ()
void slotWindowLower ()
void slotWindowRaiseOrLower ()
void slotActivateAttentionWindow ()
void slotWindowPackLeft ()
void slotWindowPackRight ()
void slotWindowPackUp ()
void slotWindowPackDown ()
void slotWindowGrowHorizontal ()
void slotWindowGrowVertical ()
void slotWindowShrinkHorizontal ()
void slotWindowShrinkVertical ()
void slotWalkThroughDesktops ()
void slotWalkBackThroughDesktops ()
void slotWalkThroughDesktopList ()
void slotWalkBackThroughDesktopList ()
void slotWalkThroughWindows ()
void slotWalkBackThroughWindows ()
void slotWindowOperations ()
void slotWindowClose ()
void slotWindowMove ()
void slotWindowResize ()
void slotWindowAbove ()
void slotWindowBelow ()
void slotWindowOnAllDesktops ()
void slotWindowFullScreen ()
void slotWindowNoBorder ()
void slotWindowToNextDesktop ()
void slotWindowToPreviousDesktop ()
void slotWindowToDesktopRight ()
void slotWindowToDesktopLeft ()
void slotWindowToDesktopUp ()
void slotWindowToDesktopDown ()
void slotMouseEmulation ()
void slotDisableGlobalShortcuts ()
void slotSettingsChanged (int category)
void slotReconfigure ()
void slotKillWindow ()
void slotGrabWindow ()
void slotGrabDesktop ()
void slotSetupWindowShortcut ()
void setupWindowShortcutDone (bool)
void updateClientArea ()
void startKompmgr ()

Signals

void kompmgrStarted ()
void kompmgrStopped ()

Public Member Functions

 Workspace (bool restore=FALSE)
virtual ~Workspace ()
bool workspaceEvent (XEvent *)
KDecoration * createDecoration (KDecorationBridge *bridge)
bool hasClient (const Client *)
template<typename T>
ClientfindClient (T predicate)
template<typename T1, typename T2>
void forEachClient (T1 procedure, T2 predicate)
template<typename T>
void forEachClient (T procedure)
QRect clientArea (clientAreaOption, const QPoint &p, int desktop) const
QRect clientArea (clientAreaOption, const Client *c) const
void killWindowId (Window window)
void killWindow ()
WId rootWin () const
bool initializing () const
ClientactiveClient () const
ClientmostRecentlyActivatedClient () const
void activateClient (Client *, bool force=FALSE)
void requestFocus (Client *c, bool force=FALSE)
void takeActivity (Client *c, int flags, bool handled)
void handleTakeActivity (Client *c, Time timestamp, int flags)
bool allowClientActivation (const Client *c, Time time=-1U, bool focus_in=false)
void restoreFocus ()
void gotFocusIn (const Client *)
void setShouldGetFocus (Client *)
bool fakeRequestedActivity (Client *c)
void unfakeActivity (Client *c)
bool activateNextClient (Client *c)
bool focusChangeEnabled ()
void updateColormap ()
void setClientIsMoving (Client *c)
void place (Client *c, QRect &area)
void placeSmart (Client *c, const QRect &area)
QPoint adjustClientPosition (Client *c, QPoint pos)
QRect adjustClientSize (Client *c, QRect moveResizeGeom, int mode)
void raiseClient (Client *c)
void lowerClient (Client *c)
void raiseClientRequest (Client *c, NET::RequestSource src, Time timestamp)
void lowerClientRequest (Client *c, NET::RequestSource src, Time timestamp)
void restackClientUnderActive (Client *)
void updateClientLayer (Client *c)
void raiseOrLowerClient (Client *)
void reconfigure ()
void clientHidden (Client *)
void clientAttentionChanged (Client *c, bool set)
void clientMoved (const QPoint &pos, Time time)
int currentDesktop () const
int numberOfDesktops () const
void setNumberOfDesktops (int n)
QWidget * desktopWidget ()
ClientnextFocusChainClient (Client *) const
ClientpreviousFocusChainClient (Client *) const
ClientnextStaticClient (Client *) const
ClientpreviousStaticClient (Client *) const
int nextDesktopFocusChain (int iDesktop) const
int previousDesktopFocusChain (int iDesktop) const
void closeTabBox ()
const ClientListstackingOrder () const
ClientList ensureStackingOrder (const ClientList &clients) const
ClienttopClientOnDesktop (int desktop, bool unconstrained=false, bool only_normal=true) const
ClientfindDesktop (bool topmost, int desktop) const
void sendClientToDesktop (Client *c, int desktop, bool dont_activate)
void windowToPreviousDesktop (Client *c)
void windowToNextDesktop (Client *c)
void showWindowMenuAt (unsigned long id, int x, int y)
void showWindowMenu (const QRect &pos, Client *cl)
void showWindowMenu (int x, int y, Client *cl)
void showWindowMenu (QPoint pos, Client *cl)
void updateMinimizedOfTransients (Client *)
void updateOnAllDesktopsOfTransients (Client *)
void checkTransients (Window w)
void performWindowOperation (Client *c, WindowOperation op)
void storeSession (KConfig *config, SMSavePhase phase)
SessionInfotakeSessionInfo (Client *)
WindowRules findWindowRules (const Client *, bool)
void rulesUpdated ()
void discardUsedWindowRules (Client *c, bool withdraw)
void cascadeDesktop ()
void unclutterDesktop ()
void doNotManage (QString)
bool setCurrentDesktop (int new_desktop)
void nextDesktop ()
void previousDesktop ()
void circulateDesktopApplications ()
QString desktopName (int desk) const
void setDesktopLayout (int o, int x, int y)
void setShowingDesktop (bool showing)
void resetShowingDesktop (bool keep_hidden)
bool showingDesktop () const
bool isNotManaged (const QString &title)
void sendPingToWindow (Window w, Time timestamp)
void sendTakeActivity (Client *c, Time timestamp, long flags)
bool kompmgrIsRunning ()
void setOpacity (unsigned long winId, unsigned int opacityPercent)
void setShadowSize (unsigned long winId, unsigned int shadowSizePercent)
void setUnshadowed (unsigned long winId)
void removeClient (Client *, allowed_t)
void setActiveClient (Client *, allowed_t)
GroupfindGroup (Window leader) const
void addGroup (Group *group, allowed_t)
void removeGroup (Group *group, allowed_t)
GroupfindClientLeaderGroup (const Client *c) const
bool checkStartupNotification (Window w, KStartupInfoId &id, KStartupInfoData &data)
void focusToNull ()
void updateFocusChains (Client *c, FocusChainChange change)
bool forcedGlobalMouseGrab () const
void clientShortcutUpdated (Client *c)
bool shortcutAvailable (const KShortcut &cut, Client *ignore=NULL) const
bool globalShortcutsDisabled () const
void disableGlobalShortcuts (bool disable)
void disableGlobalShortcutsForClient (bool disable)
void sessionSaveStarted ()
void sessionSaveDone ()
void setWasUserInteraction ()
bool wasUserInteraction () const
bool sessionSaving () const
bool managingTopMenus () const
int topMenuHeight () const
void updateCurrentTopMenu ()
int packPositionLeft (const Client *cl, int oldx, bool left_edge) const
int packPositionRight (const Client *cl, int oldx, bool right_edge) const
int packPositionUp (const Client *cl, int oldy, bool top_edge) const
int packPositionDown (const Client *cl, int oldy, bool bottom_edge) const
void cancelDelayFocus ()
void requestDelayFocus (Client *)
void toggleTopDockShadows (bool on)

Static Public Member Functions

static Workspaceself ()
static QStringList configModules (bool controlCenter)

Protected Member Functions

bool keyPressMouseEmulation (XKeyEvent &ev)
bool netCheck (XEvent *e)

Friends

class StackingUpdatesBlocker
bool performTransiencyCheck ()

Member Function Documentation

bool KWinInternal::Workspace::workspaceEvent ( XEvent *  e  ) 

Handles workspace specific XEvents

Definition at line 195 of file events.cpp.

QRect KWinInternal::Workspace::clientArea ( clientAreaOption  opt,
const QPoint &  p,
int  desktop 
) const

returns the area available for clients. This is the desktop geometry minus windows on the dock. Placement algorithms should refer to this rather than geometry().

See also:
geometry()

Definition at line 208 of file geometry.cpp.

Client * KWinInternal::Workspace::activeClient (  )  const [inline]

Returns the active client, i.e.

the client that has the focus (or None if no client has the focus)

Definition at line 683 of file workspace.h.

void KWinInternal::Workspace::activateClient ( Client c,
bool  force = FALSE 
)

Tries to activate the client c. This function performs what you expect when clicking the respective entry in a taskbar: showing and raising the client (this may imply switching to the another virtual desktop) and putting the focus onto it. Once X really gave focus to the client window as requested, the client itself will call setActiveClient() and the operation is complete. This may not happen with certain focus policies, though.

See also:
stActiveClient(), requestFocus()

Definition at line 264 of file activation.cpp.

void KWinInternal::Workspace::requestFocus ( Client c,
bool  force = FALSE 
)

Tries to activate the client by asking X for the input focus. This function does not perform any show, raise or desktop switching. See Workspace::activateClient() instead.

See also:
Workspace::activateClient()

Definition at line 303 of file activation.cpp.

void KWinInternal::Workspace::updateColormap (  ) 

Updates the current colormap according to the currently active client

Definition at line 886 of file workspace.cpp.

void KWinInternal::Workspace::setClientIsMoving ( Client c  ) 

Indicates that the client c is being moved around by the user.

Marks the client as being moved around by the user.

Definition at line 579 of file geometry.cpp.

void KWinInternal::Workspace::place ( Client c,
QRect &  area 
)

Asks the internal positioning object to place a client

Definition at line 800 of file placement.cpp.

QPoint KWinInternal::Workspace::adjustClientPosition ( Client c,
QPoint  pos 
)

Client c is moved around to position pos. This gives the workspace the opportunity to interveniate and to implement snap-to-windows functionality.

Definition at line 270 of file geometry.cpp.

void KWinInternal::Workspace::clientHidden ( Client c  ) 

Informs the workspace that the client c has been hidden. If it was the active client (or to-become the active client), the workspace activates another one.

c may already be destroyed

Definition at line 381 of file activation.cpp.

int KWinInternal::Workspace::currentDesktop (  )  const [inline, virtual]

Returns the current virtual desktop of this workspace.

Implements KWinInterface.

Definition at line 693 of file workspace.h.

int KWinInternal::Workspace::numberOfDesktops (  )  const [inline]

Returns the number of virtual desktops of this workspace.

Definition at line 698 of file workspace.h.

void KWinInternal::Workspace::setNumberOfDesktops ( int  n  ) 

Sets the number of virtual desktops to n

Definition at line 1435 of file workspace.cpp.

QWidget * KWinInternal::Workspace::desktopWidget (  ) 

Returns the workspace's desktop widget. The desktop widget is sometimes required by clients to draw on it, for example outlines on moving or resizing.

Definition at line 1960 of file workspace.cpp.

Client * KWinInternal::Workspace::nextFocusChainClient ( Client c  )  const

auxiliary functions to travers all clients according the focus order. Useful for kwms Alt-tab feature.

Definition at line 1289 of file tabbox.cpp.

Client * KWinInternal::Workspace::previousFocusChainClient ( Client c  )  const

auxiliary functions to travers all clients according the focus order. Useful for kwms Alt-tab feature.

Definition at line 1306 of file tabbox.cpp.

Client * KWinInternal::Workspace::nextStaticClient ( Client c  )  const

auxiliary functions to travers all clients according the static order. Useful for the CDE-style Alt-tab feature.

Definition at line 1323 of file tabbox.cpp.

Client * KWinInternal::Workspace::previousStaticClient ( Client c  )  const

auxiliary functions to travers all clients according the static order. Useful for the CDE-style Alt-tab feature.

Definition at line 1339 of file tabbox.cpp.

const ClientList & KWinInternal::Workspace::stackingOrder (  )  const [inline]

Returns the list of clients sorted in stacking order, with topmost client at the last position.

Definition at line 713 of file workspace.h.

Client * KWinInternal::Workspace::topClientOnDesktop ( int  desktop,
bool  unconstrained = false,
bool  only_normal = true 
) const

Returns topmost visible client. Windows on the dock, the desktop or of any other special kind are excluded. Also if the window doesn't accept focus it's excluded.

Definition at line 197 of file layers.cpp.

void KWinInternal::Workspace::sendClientToDesktop ( Client c,
int  desk,
bool  dont_activate 
)

Sends client c to desktop desk.

Takes care of transients as well.

Definition at line 1492 of file workspace.cpp.

void KWinInternal::Workspace::showWindowMenu ( const QRect &  pos,
Client cl 
)

Shows the menu operations menu for the client and makes it active if it's not already.

Definition at line 1153 of file useractions.cpp.

void KWinInternal::Workspace::showWindowMenu ( int  x,
int  y,
Client cl 
) [inline]

Backwards compatibility.

Definition at line 724 of file workspace.h.

void KWinInternal::Workspace::updateOnAllDesktopsOfTransients ( Client c  ) 

Sets the client c's transient windows' on_all_desktops property to on_all_desktops.

Definition at line 401 of file group.cpp.

void KWinInternal::Workspace::storeSession ( KConfig *  config,
SMSavePhase  phase 
)

Stores the current session in the config file

See also:
loadSessionInfo()

Definition at line 70 of file sm.cpp.

SessionInfo * KWinInternal::Workspace::takeSessionInfo ( Client c  ) 

Returns a SessionInfo for client c. The returned session info is removed from the storage. It's up to the caller to delete it.

This function is called when a new window is mapped and must be managed. We try to find a matching entry in the session.

May return 0 if there's no session info for the client.

Definition at line 195 of file sm.cpp.

void KWinInternal::Workspace::cascadeDesktop (  )  [virtual]

Cascades all clients on the current desktop

Implements KWinInterface.

Definition at line 593 of file geometry.cpp.

void KWinInternal::Workspace::unclutterDesktop (  )  [virtual]

Unclutters the current desktop by smart-placing all clients again.

Implements KWinInterface.

Definition at line 615 of file geometry.cpp.

void KWinInternal::Workspace::doNotManage ( QString  title  )  [virtual]

avoids managing a window with title title

Implements KWinInterface.

Definition at line 1073 of file workspace.cpp.

bool KWinInternal::Workspace::setCurrentDesktop ( int  new_desktop  )  [virtual]

Sets the current desktop to new_desktop

Shows/Hides windows according to the stacking order and finally propages the new desktop to the world

Implements KWinInterface.

Definition at line 1182 of file workspace.cpp.

bool KWinInternal::Workspace::isNotManaged ( const QString &  title  ) 

Hack for java applets

Definition at line 1081 of file workspace.cpp.

void KWinInternal::Workspace::setActiveClient ( Client c,
allowed_t   
)

Informs the workspace about the active client, i.e. the client that has the focus (or None if no client has the focus). This functions is called by the client itself that gets focus. It has no other effect than fixing the focus chain and the return value of activeClient(). And of course, to propagate the active client to the world.

Definition at line 216 of file activation.cpp.

void KWinInternal::Workspace::focusToNull (  ) 

Puts the focus on a dummy window Just using XSetInputFocus() with None would block keyboard input

Definition at line 2370 of file workspace.cpp.

void KWinInternal::Workspace::refresh (  )  [virtual, slot]

Refreshes all the client windows

Implements KWinInterface.

Definition at line 1098 of file workspace.cpp.

void KWinInternal::Workspace::slotWindowMaximize (  )  [slot]

Maximizes the popup client

Definition at line 892 of file useractions.cpp.

void KWinInternal::Workspace::slotWindowMaximizeVertical (  )  [slot]

Maximizes the popup client vertically

Definition at line 902 of file useractions.cpp.

void KWinInternal::Workspace::slotWindowMaximizeHorizontal (  )  [slot]

Maximizes the popup client horiozontally

Definition at line 912 of file useractions.cpp.

void KWinInternal::Workspace::slotWindowMinimize (  )  [slot]

Minimizes the popup client

Definition at line 923 of file useractions.cpp.

void KWinInternal::Workspace::slotWindowShade (  )  [slot]

Shades/unshades the popup client respectively

Definition at line 932 of file useractions.cpp.

void KWinInternal::Workspace::slotWindowRaise (  )  [slot]

Raises the popup client

Definition at line 941 of file useractions.cpp.

void KWinInternal::Workspace::slotWindowLower (  )  [slot]

Lowers the popup client

Definition at line 951 of file useractions.cpp.

void KWinInternal::Workspace::slotWindowRaiseOrLower (  )  [slot]

Does a toggle-raise-and-lower on the popup client;

Definition at line 961 of file useractions.cpp.

void KWinInternal::Workspace::slotWindowPackLeft (  )  [slot]

Moves active window left until in bumps into another window or workarea edge.

Definition at line 586 of file placement.cpp.

void KWinInternal::Workspace::slotWindowOperations (  )  [slot]

Shows the window operations popup menu for the activeClient()

Definition at line 1145 of file useractions.cpp.

void KWinInternal::Workspace::slotWindowClose (  )  [slot]

Closes the popup client

Definition at line 1191 of file useractions.cpp.

void KWinInternal::Workspace::slotWindowMove (  )  [slot]

Starts keyboard move mode for the popup client

Definition at line 1202 of file useractions.cpp.

void KWinInternal::Workspace::slotWindowResize (  )  [slot]

Starts keyboard resize mode for the popup client

Definition at line 1211 of file useractions.cpp.

void KWinInternal::Workspace::slotWindowToNextDesktop (  )  [slot]

Move window to next desktop

Definition at line 1012 of file useractions.cpp.

void KWinInternal::Workspace::slotWindowToPreviousDesktop (  )  [slot]

Move window to previous desktop

Definition at line 1034 of file useractions.cpp.

void KWinInternal::Workspace::slotMouseEmulation (  )  [slot]

Invokes keyboard mouse emulation

Definition at line 1730 of file workspace.cpp.

void KWinInternal::Workspace::slotKillWindow (  )  [slot]

Kill Window feature, similar to xkill

Definition at line 1117 of file useractions.cpp.

void KWinInternal::Workspace::slotGrabWindow (  )  [slot]

Takes a screenshot of the current window and puts it in the clipboard.

Definition at line 1665 of file workspace.cpp.

void KWinInternal::Workspace::slotGrabDesktop (  )  [slot]

Takes a screenshot of the whole desktop and puts it in the clipboard.

Definition at line 1719 of file workspace.cpp.

bool KWinInternal::Workspace::keyPressMouseEmulation ( XKeyEvent &  ev  )  [protected]

Handles keypress event during mouse emulation

Definition at line 1862 of file workspace.cpp.

bool KWinInternal::Workspace::netCheck ( XEvent *  e  )  [protected]

Handles client messages sent to the workspace

Definition at line 501 of file events.cpp.


The documentation for this class was generated from the following files:
KDE Home | KDE Accessibility Home | Description of Access Keys