summaryrefslogtreecommitdiffstats
path: root/kwin/client.h
diff options
context:
space:
mode:
Diffstat (limited to 'kwin/client.h')
-rw-r--r--kwin/client.h997
1 files changed, 0 insertions, 997 deletions
diff --git a/kwin/client.h b/kwin/client.h
deleted file mode 100644
index ec94a994d..000000000
--- a/kwin/client.h
+++ /dev/null
@@ -1,997 +0,0 @@
-/*****************************************************************
- KWin - the KDE window manager
- This file is part of the KDE project.
-
-Copyright (C) 1999, 2000 Matthias Ettrich <[email protected]>
-Copyright (C) 2003 Lubos Lunak <[email protected]>
-
-You can Freely distribute this program under the GNU General Public
-License. See the file "COPYING" for the exact licensing terms.
-******************************************************************/
-
-#ifndef KWIN_CLIENT_H
-#define KWIN_CLIENT_H
-
-#include <tqframe.h>
-#include <tqvbox.h>
-#include <tqpixmap.h>
-#include <netwm.h>
-#include <kdebug.h>
-#include <assert.h>
-#include <kshortcut.h>
-#include <X11/X.h>
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include <fixx11h.h>
-
-#include "utils.h"
-#include "options.h"
-#include "workspace.h"
-#include "kdecoration.h"
-#include "rules.h"
-
-class TQTimer;
-class KProcess;
-class KStartupInfoData;
-
-namespace KWinInternal
-{
-
-class Workspace;
-class Client;
-class WinInfo;
-class SessionInfo;
-class Bridge;
-
-class Client : public TQObject, public KDecorationDefines
- {
- Q_OBJECT
- public:
- Client( Workspace *ws );
- Window window() const;
- Window frameId() const;
- Window wrapperId() const;
- Window decorationId() const;
-
- Workspace* workspace() const;
- const Client* transientFor() const;
- Client* transientFor();
- bool isTransient() const;
- bool isModalSystemNotification() const;
- bool groupTransient() const;
- bool wasOriginallyGroupTransient() const;
- ClientList mainClients() const; // call once before loop , is not indirect
- bool hasTransient( const Client* c, bool indirect ) const;
- const ClientList& transients() const; // is not indirect
- void checkTransient( Window w );
- Client* findModal();
- const Group* group() const;
- Group* group();
- void checkGroup( Group* gr = NULL, bool force = false );
- void changeClientLeaderGroup( Group* gr );
- // prefer isXXX() instead
- NET::WindowType windowType( bool direct = false, int supported_types = SUPPORTED_WINDOW_TYPES_MASK ) const;
- const WindowRules* rules() const;
- void removeRule( Rules* r );
- void setupWindowRules( bool ignore_temporary );
- void applyWindowRules();
- void updateWindowRules();
-
- TQRect geometry() const;
- TQSize size() const;
- TQSize minSize() const;
- TQSize maxSize() const;
- TQPoint pos() const;
- TQRect rect() const;
- int x() const;
- int y() const;
- int width() const;
- int height() const;
- TQPoint clientPos() const; // inside of geometry()
- TQSize clientSize() const;
-
- bool windowEvent( XEvent* e );
- virtual bool eventFilter( TQObject* o, TQEvent* e );
-
- bool manage( Window w, bool isMapped );
-
- void releaseWindow( bool on_shutdown = false );
-
- enum Sizemode // how to resize the window in order to obey constains (mainly aspect ratios)
- {
- SizemodeAny,
- SizemodeFixedW, // try not to affect width
- SizemodeFixedH, // try not to affect height
- SizemodeMax // try not to make it larger in either direction
- };
- TQSize adjustedSize( const TQSize&, Sizemode mode = SizemodeAny ) const;
- TQSize adjustedSize() const;
-
- TQPixmap icon() const;
- TQPixmap miniIcon() const;
-
- bool isActive() const;
- void setActive( bool, bool updateOpacity = true );
-
- int desktop() const;
- void setDesktop( int );
- bool isOnDesktop( int d ) const;
- bool isOnCurrentDesktop() const;
- bool isOnAllDesktops() const;
- void setOnAllDesktops( bool set );
-
- bool isOnScreen( int screen ) const; // true if it's at least partially there
- int screen() const; // the screen where the center is
-
- // !isMinimized() && not hidden, i.e. normally visible on some virtual desktop
- bool isShown( bool shaded_is_shown ) const;
-
- bool isShade() const; // true only for ShadeNormal
- ShadeMode shadeMode() const; // prefer isShade()
- void setShade( ShadeMode mode );
- bool isShadeable() const;
-
- bool isMinimized() const;
- bool isMaximizable() const;
- TQRect geometryRestore() const;
- MaximizeMode maximizeModeRestore() const;
- MaximizeMode maximizeMode() const;
- bool isMinimizable() const;
- void setMaximize( bool vertically, bool horizontally );
-
- void setFullScreen( bool set, bool user );
- bool isFullScreen() const;
- bool isFullScreenable( bool fullscreen_hack = false ) const;
- bool userCanSetFullScreen() const;
- TQRect geometryFSRestore() const { return geom_fs_restore; } // only for session saving
- int fullScreenMode() const { return fullscreen_mode; } // only for session saving
-
- bool isUserNoBorder() const;
- void setUserNoBorder( bool set );
- bool userCanSetNoBorder() const;
- bool noBorder() const;
-
- bool skipTaskbar( bool from_outside = false ) const;
- void setSkipTaskbar( bool set, bool from_outside );
-
- bool skipPager() const;
- void setSkipPager( bool );
-
- bool keepAbove() const;
- void setKeepAbove( bool );
- bool keepBelow() const;
- void setKeepBelow( bool );
- Layer layer() const;
- Layer belongsToLayer() const;
- void invalidateLayer();
-
- void setModal( bool modal );
- bool isModal() const;
-
- // auxiliary functions, depend on the windowType
- bool wantsTabFocus() const;
- bool wantsInput() const;
- bool hasNETSupport() const;
- bool isMovable() const;
- bool isDesktop() const;
- bool isDock() const;
- bool isToolbar() const;
- bool isTopMenu() const;
- bool isMenu() const;
- bool isNormalWindow() const; // normal as in 'NET::Normal or NET::Unknown non-transient'
- bool isDialog() const;
- bool isSplash() const;
- bool isUtility() const;
- // returns true for "special" windows and false for windows which are "normal"
- // (normal=window which has a border, can be moved by the user, can be closed, etc.)
- // true for Desktop, Dock, Splash, Override and TopMenu (and Toolbar??? - for now)
- // false for Normal, Dialog, Utility and Menu (and Toolbar??? - not yet) TODO
- bool isSpecialWindow() const;
-
- bool isResizable() const;
- bool isCloseable() const; // may be closed by the user (may have a close button)
-
- void takeActivity( int flags, bool handled, allowed_t ); // takes ActivityFlags as arg (in utils.h)
- void takeFocus( allowed_t );
- void demandAttention( bool set = true );
-
- void setMask( const TQRegion& r, int mode = X::Unsorted );
- TQRegion mask() const;
-
- void updateDecoration( bool check_workspace_pos, bool force = false );
- void checkBorderSizes();
-
- // drop shadow
- bool isShadowed() const;
- void setShadowed(bool shadowed);
- Window shadowId() const;
- // Aieee, a friend function! Unpleasant, yes, but it's needed by
- // raiseClient() to redraw a window's shadow when it is active prior to
- // being raised.
- friend void Workspace::raiseClient(Client *);
- // Wouldn't you know it, friend functions breed. This one's needed to
- // enable a DCOP function that causes all shadows obscuring a changed
- // window to be redrawn.
- friend void Workspace::updateOverlappingShadows(WId);
-
- // tqshape extensions
- bool tqshape() const;
- void updateShape();
-
- void setGeometry( int x, int y, int w, int h, ForceGeometry_t force = NormalGeometrySet );
- void setGeometry( const TQRect& r, ForceGeometry_t force = NormalGeometrySet );
- void move( int x, int y, ForceGeometry_t force = NormalGeometrySet );
- void move( const TQPoint & p, ForceGeometry_t force = NormalGeometrySet );
- // plainResize() simply resizes
- void plainResize( int w, int h, ForceGeometry_t force = NormalGeometrySet );
- void plainResize( const TQSize& s, ForceGeometry_t force = NormalGeometrySet );
- // resizeWithChecks() resizes according to gravity, and checks workarea position
- void resizeWithChecks( int w, int h, ForceGeometry_t force = NormalGeometrySet );
- void resizeWithChecks( const TQSize& s, ForceGeometry_t force = NormalGeometrySet );
- void keepInArea( TQRect area, bool partial = false );
-
- void growHorizontal();
- void shrinkHorizontal();
- void growVertical();
- void shrinkVertical();
-
- bool providesContextHelp() const;
- KShortcut shortcut() const;
- void setShortcut( const TQString& cut );
-
- bool performMouseCommand( Options::MouseCommand, TQPoint globalPos, bool handled = false );
-
- TQCString windowRole() const;
- TQCString sessionId();
- TQCString resourceName() const;
- TQCString resourceClass() const;
- TQCString wmCommand();
- TQCString wmClientMachine( bool use_localhost ) const;
- Window wmClientLeader() const;
- pid_t pid() const;
-
- TQRect adjustedClientArea( const TQRect& desktop, const TQRect& area ) const;
-
- Colormap colormap() const;
-
- // updates visibility depending on being shaded, virtual desktop, etc.
- void updateVisibility();
- // hides a client - basically like minimize, but without effects, it's simply hidden
- void hideClient( bool hide );
-
- TQString caption( bool full = true ) const;
- void updateCaption();
-
- void keyPressEvent( uint key_code ); // FRAME ??
- void updateMouseGrab();
- Window moveResizeGrabWindow() const;
-
- const TQPoint calculateGravitation( bool invert, int gravity = 0 ) const; // FRAME public?
-
- void NETMoveResize( int x_root, int y_root, NET::Direction direction );
- void NETMoveResizeWindow( int flags, int x, int y, int width, int height );
- void restackWindow( Window above, int detail, NET::RequestSource source, Time timestamp, bool send_event = false );
-
- void gotPing( Time timestamp );
-
- static TQCString staticWindowRole(WId);
- static TQCString staticSessionId(WId);
- static TQCString staticWmCommand(WId);
- static TQCString staticWmClientMachine(WId);
- static Window staticWmClientLeader(WId);
-
- void checkWorkspacePosition();
- void updateUserTime( Time time = CurrentTime );
- Time userTime() const;
- bool hasUserTimeSupport() const;
- bool ignoreFocusStealing() const;
-
- // does 'delete c;'
- static void deleteClient( Client* c, allowed_t );
-
- static bool resourceMatch( const Client* c1, const Client* c2 );
- static bool belongToSameApplication( const Client* c1, const Client* c2, bool active_hack = false );
- static void readIcons( Window win, TQPixmap* icon, TQPixmap* miniicon );
-
- void minimize( bool avoid_animation = false );
- void unminimize( bool avoid_animation = false );
- void closeWindow();
- void killWindow();
- void maximize( MaximizeMode );
- void toggleShade();
- void showContextHelp();
- void cancelShadeHover();
- void cancelAutoRaise();
- void destroyClient();
- void checkActiveModal();
- void setOpacity(bool translucent, uint opacity = 0);
- void setShadowSize(uint shadowSize);
- void updateOpacity();
- void updateShadowSize();
- bool hasCustomOpacity(){return custom_opacity;}
- void setCustomOpacityFlag(bool custom = true);
- bool getWindowOpacity();
- int opacityPercentage();
- void checkAndSetInitialRuledOpacity();
- uint ruleOpacityInactive();
- uint ruleOpacityActive();
- unsigned int opacity();
- bool isBMP();
- void setBMP(bool b);
- bool touches(const Client* c);
- void setShapable(bool b);
- bool hasStrut() const;
-
- private slots:
- void autoRaise();
- void shadeHover();
- void shortcutActivated();
- void updateOpacityCache();
-
-
- private:
- friend class Bridge; // FRAME
- virtual void processMousePressEvent( TQMouseEvent* e );
-
- private: // TODO cleanup the order of things in the .h file
- // use Workspace::createClient()
- virtual ~Client(); // use destroyClient() or releaseWindow()
-
- Position mousePosition( const TQPoint& ) const;
- void setCursor( Position m );
- void setCursor( const TQCursor& c );
-
- void animateMinimizeOrUnminimize( bool minimize );
- TQPixmap animationPixmap( int w );
- // transparent stuff
- void drawbound( const TQRect& geom );
- void clearbound();
- void doDrawbound( const TQRect& geom, bool clear );
-
- // handlers for X11 events
- bool mapRequestEvent( XMapRequestEvent* e );
- void unmapNotifyEvent( XUnmapEvent*e );
- void destroyNotifyEvent( XDestroyWindowEvent*e );
- void configureRequestEvent( XConfigureRequestEvent* e );
- void propertyNotifyEvent( XPropertyEvent* e );
- void clientMessageEvent( XClientMessageEvent* e );
- void enterNotifyEvent( XCrossingEvent* e );
- void leaveNotifyEvent( XCrossingEvent* e );
- void focusInEvent( XFocusInEvent* e );
- void focusOutEvent( XFocusOutEvent* e );
-
- bool buttonPressEvent( Window w, int button, int state, int x, int y, int x_root, int y_root );
- bool buttonReleaseEvent( Window w, int button, int state, int x, int y, int x_root, int y_root );
- bool motionNotifyEvent( Window w, int state, int x, int y, int x_root, int y_root );
-
- // drop shadows
- void drawIntersectingShadows();
- void drawOverlappingShadows(bool waitForMe);
- TQRegion getExposedRegion(TQRegion occludedRegion, int x, int y,
- int w, int h, int thickness, int xOffset, int yOffset);
- void imposeCachedShadow(TQPixmap &pixmap, TQRegion exposed);
- void imposeRegionShadow(TQPixmap &pixmap, TQRegion occluded,
- TQRegion exposed, int thickness, double maxOpacity = 0.75);
-
- void processDecorationButtonPress( int button, int state, int x, int y, int x_root, int y_root );
-
- private slots:
- void pingTimeout();
- void processKillerExited();
- void demandAttentionKNotify();
- void drawShadow();
- void drawShadowAfter(Client *after);
- void drawDelayedShadow();
- void removeShadow();
-
- signals:
- void shadowDrawn();
-
-
- private:
- // ICCCM 4.1.3.1, 4.1.4 , NETWM 2.5.1
- void setMappingState( int s );
- int mappingState() const;
- bool isIconicState() const;
- bool isNormalState() const;
- bool isManaged() const; // returns false if this client is not yet managed
- void updateAllowedActions( bool force = false );
- TQSize sizeForClientSize( const TQSize&, Sizemode mode = SizemodeAny, bool noframe = false ) const;
- void changeMaximize( bool horizontal, bool vertical, bool adjust );
- void checkMaximizeGeometry();
- int checkFullScreenHack( const TQRect& geom ) const; // 0 - none, 1 - one xinerama screen, 2 - full area
- void updateFullScreenHack( const TQRect& geom );
- void getWmNormalHints();
- void getMotifHints();
- void getIcons();
- void getWmClientLeader();
- void getWmClientMachine();
- void fetchName();
- void fetchIconicName();
- TQString readName() const;
- void setCaption( const TQString& s, bool force = false );
- bool hasTransientInternal( const Client* c, bool indirect, ConstClientList& set ) const;
- void finishWindowRules();
- void setShortcutInternal( const KShortcut& cut );
-
- void updateWorkareaDiffs();
- void checkDirection( int new_diff, int old_diff, TQRect& rect, const TQRect& area );
- static int computeWorkareaDiff( int left, int right, int a_left, int a_right );
- void configureRequest( int value_mask, int rx, int ry, int rw, int rh, int gravity, bool from_tool );
- NETExtendedStrut strut() const;
- int checkShadeGeometry( int w, int h );
- void postponeGeometryUpdates( bool postpone );
-
- bool startMoveResize();
- void finishMoveResize( bool cancel );
- void leaveMoveResize();
- void checkUnrestrictedMoveResize();
- void handleMoveResize( int x, int y, int x_root, int y_root );
- void positionGeometryTip();
- void grabButton( int mod );
- void ungrabButton( int mod );
- void resetMaximize();
- void resizeDecoration( const TQSize& s );
- void setDecoHashProperty(uint topHeight, uint rightWidth, uint bottomHeight, uint leftWidth);
- void unsetDecoHashProperty();
-
- void pingWindow();
- void killProcess( bool ask, Time timestamp = CurrentTime );
- void updateUrgency();
- static void sendClientMessage( Window w, Atom a, Atom protocol,
- long data1 = 0, long data2 = 0, long data3 = 0 );
-
- void embedClient( Window w, const XWindowAttributes &attr );
- void detectNoBorder();
- void detectShapable();
- void destroyDecoration();
- void updateFrameExtents();
-
- void rawShow(); // just shows it
- void rawHide(); // just hides it
-
- Time readUserTimeMapTimestamp( const KStartupInfoId* asn_id, const KStartupInfoData* asn_data,
- bool session ) const;
- Time readUserCreationTime() const;
- static bool sameAppWindowRoleMatch( const Client* c1, const Client* c2, bool active_hack );
- void startupIdChanged();
-
- Window client;
- Window wrapper;
- Window frame;
- KDecoration* decoration;
- Workspace* wspace;
- Bridge* bridge;
- int desk;
- bool buttonDown;
- bool moveResizeMode;
- bool move_faked_activity;
- Window move_resize_grab_window;
- bool unrestrictedMoveResize;
- bool isMove() const
- {
- return moveResizeMode && mode == PositionCenter;
- }
- bool isResize() const
- {
- return moveResizeMode && mode != PositionCenter;
- }
-
- Position mode;
- TQPoint moveOffset;
- TQPoint invertedMoveOffset;
- TQRect moveResizeGeom;
- TQRect initialMoveResizeGeom;
- XSizeHints xSizeHint;
- void sendSyntheticConfigureNotify();
- int mapping_state;
- void readTransient();
- Window verifyTransientFor( Window transient_for, bool set );
- void addTransient( Client* cl );
- void removeTransient( Client* cl );
- void removeFromMainClients();
- void cleanGrouping();
- void checkGroupTransients();
- void setTransient( Window new_transient_for_id );
- Client* transient_for;
- Window transient_for_id;
- Window original_transient_for_id;
- ClientList transients_list; // SELI make this ordered in stacking order?
- ShadeMode shade_mode;
- uint active :1;
- uint deleting : 1; // true when doing cleanup and destroying the client
- uint keep_above : 1; // NET::KeepAbove (was stays_on_top)
- uint is_tqshape :1;
- uint skip_taskbar :1;
- uint original_skip_taskbar :1; // unaffected by KWin
- uint Pdeletewindow :1; // does the window understand the DeleteWindow protocol?
- uint Ptakefocus :1;// does the window understand the TakeFocus protocol?
- uint Ptakeactivity : 1; // does it support _NET_WM_TAKE_ACTIVITY
- uint Pcontexthelp : 1; // does the window understand the ContextHelp protocol?
- uint Pping : 1; // does it support _NET_WM_PING?
- uint input :1; // does the window want input in its wm_hints
- uint skip_pager : 1;
- uint motif_noborder : 1;
- uint motif_may_resize : 1;
- uint motif_may_move :1;
- uint motif_may_close : 1;
- uint keep_below : 1; // NET::KeepBelow
- uint minimized : 1;
- uint hidden : 1; // forcibly hidden by calling hide()
- uint modal : 1; // NET::Modal
- uint noborder : 1;
- uint user_noborder : 1;
- uint urgency : 1; // XWMHints, UrgencyHint
- uint ignore_focus_stealing : 1; // don't apply focus stealing prevention to this client
- uint demands_attention : 1;
- WindowRules client_rules;
- void getWMHints();
- void readIcons();
- void getWindowProtocols();
- TQPixmap icon_pix;
- TQPixmap miniicon_pix;
- TQCursor cursor;
- // FullScreenHack - non-NETWM fullscreen (noborder,size of desktop)
- // DON'T reorder - saved to config files !!!
- enum FullScreenMode { FullScreenNone, FullScreenNormal, FullScreenHack };
- FullScreenMode fullscreen_mode;
- MaximizeMode max_mode;
- TQRect geom_restore;
- TQRect geom_fs_restore;
- MaximizeMode maxmode_restore;
- int workarea_diff_x, workarea_diff_y;
- WinInfo* info;
- TQTimer* autoRaiseTimer;
- TQTimer* shadeHoverTimer;
- Colormap cmap;
- TQCString resource_name;
- TQCString resource_class;
- TQCString client_machine;
- TQString cap_normal, cap_iconic, cap_suffix;
- WId wmClientLeaderWin;
- TQCString window_role;
- Group* in_group;
- Window window_group;
- Layer in_layer;
- TQTimer* ping_timer;
- KProcess* process_killer;
- Time ping_timestamp;
- Time user_time;
- unsigned long allowed_actions;
- TQRect frame_geometry;
- TQSize client_size;
- int postpone_geometry_updates; // >0 - new geometry is remembered, but not actually set
- bool pending_geometry_update;
- bool shade_geometry_change;
- int border_left, border_right, border_top, border_bottom;
-
- Client* shadowAfterClient;
- TQWidget* shadowWidget;
- TQMemArray<double> activeOpacityCache;
- TQMemArray<double> inactiveOpacityCache;
- TQMemArray<double>* opacityCache;
- TQRegion tqshapeBoundingRegion;
- TQTimer* shadowDelayTimer;
- bool shadowMe;
-
- TQRegion _mask;
- static bool check_active_modal; // see Client::checkActiveModal()
- KShortcut _shortcut;
- friend struct FetchNameInternalPredicate;
- friend struct CheckIgnoreFocusStealingProcedure;
- friend struct ResetupRulesProcedure;
- friend class GeometryUpdatesPostponer;
- void show() { assert( false ); } // SELI remove after Client is no longer TQWidget
- void hide() { assert( false ); }
- uint opacity_;
- uint savedOpacity_;
- bool custom_opacity;
- uint rule_opacity_active; //translucency rules
- uint rule_opacity_inactive; //dto.
- //int shadeOriginalHeight;
- bool isBMP_;
- TQTimer* demandAttentionKNotifyTimer;
-
- friend bool performTransiencyCheck();
- };
-
-// helper for Client::postponeGeometryUpdates() being called in pairs (true/false)
-class GeometryUpdatesPostponer
- {
- public:
- GeometryUpdatesPostponer( Client* c )
- : cl( c ) { cl->postponeGeometryUpdates( true ); }
- ~GeometryUpdatesPostponer()
- { cl->postponeGeometryUpdates( false ); }
- private:
- Client* cl;
- };
-
-
-// NET WM Protocol handler class
-class WinInfo : public NETWinInfo
- {
- private:
- typedef KWinInternal::Client Client; // because of NET::Client
- public:
- WinInfo( Client* c, Display * display, Window window,
- Window rwin, const unsigned long pr[], int pr_size );
- virtual void changeDesktop(int desktop);
- virtual void changeState( unsigned long state, unsigned long mask );
- private:
- Client * m_client;
- };
-
-inline Window Client::window() const
- {
- return client;
- }
-
-inline Window Client::frameId() const
- {
- return frame;
- }
-
-inline Window Client::wrapperId() const
- {
- return wrapper;
- }
-
-inline Window Client::decorationId() const
- {
- return decoration != NULL ? decoration->widget()->winId() : None;
- }
-
-inline Workspace* Client::workspace() const
- {
- return wspace;
- }
-
-inline const Client* Client::transientFor() const
- {
- return transient_for;
- }
-
-inline Client* Client::transientFor()
- {
- return transient_for;
- }
-
-inline bool Client::groupTransient() const
- {
- return transient_for_id == workspace()->rootWin();
- }
-
-// needed because verifyTransientFor() may set transient_for_id to root window,
-// if the original value has a problem (window doesn't exist, etc.)
-inline bool Client::wasOriginallyGroupTransient() const
- {
- return original_transient_for_id == workspace()->rootWin();
- }
-
-inline bool Client::isTransient() const
- {
- return transient_for_id != None;
- }
-
-inline const ClientList& Client::transients() const
- {
- return transients_list;
- }
-
-inline const Group* Client::group() const
- {
- return in_group;
- }
-
-inline Group* Client::group()
- {
- return in_group;
- }
-
-inline int Client::mappingState() const
- {
- return mapping_state;
- }
-
-inline TQCString Client::resourceName() const
- {
- return resource_name; // it is always lowercase
- }
-
-inline TQCString Client::resourceClass() const
- {
- return resource_class; // it is always lowercase
- }
-
-inline
-bool Client::isMinimized() const
- {
- return minimized;
- }
-
-inline bool Client::isActive() const
- {
- return active;
- }
-
-/*!
- Returns the virtual desktop within the workspace() the client window
- is located in, 0 if it isn't located on any special desktop (not mapped yet),
- or NET::OnAllDesktops. Do not use desktop() directly, use
- isOnDesktop() instead.
- */
-inline int Client::desktop() const
- {
- return desk;
- }
-
-inline bool Client::isOnAllDesktops() const
- {
- return desk == NET::OnAllDesktops;
- }
-/*!
- Returns whether the client is on the virtual desktop \a d.
- This is always TRUE for onAllDesktops clients.
- */
-inline bool Client::isOnDesktop( int d ) const
- {
- return desk == d || /*desk == 0 ||*/ isOnAllDesktops();
- }
-
-inline
-bool Client::isShown( bool shaded_is_shown ) const
- {
- return !isMinimized() && ( !isShade() || shaded_is_shown ) && !hidden;
- }
-
-inline
-bool Client::isShade() const
- {
- return shade_mode == ShadeNormal;
- }
-
-inline
-ShadeMode Client::shadeMode() const
- {
- return shade_mode;
- }
-
-inline TQPixmap Client::icon() const
- {
- return icon_pix;
- }
-
-inline TQPixmap Client::miniIcon() const
- {
- return miniicon_pix;
- }
-
-inline TQRect Client::geometryRestore() const
- {
- return geom_restore;
- }
-
-inline Client::MaximizeMode Client::maximizeModeRestore() const
- {
- return maxmode_restore;
- }
-
-inline Client::MaximizeMode Client::maximizeMode() const
- {
- return max_mode;
- }
-
-inline bool Client::skipTaskbar( bool from_outside ) const
- {
- return from_outside ? original_skip_taskbar : skip_taskbar;
- }
-
-inline bool Client::skipPager() const
- {
- return skip_pager;
- }
-
-inline bool Client::keepBelow() const
- {
- return keep_below;
- }
-
-inline bool Client::tqshape() const
- {
- return is_tqshape;
- }
-
-
-inline bool Client::isFullScreen() const
- {
- return fullscreen_mode != FullScreenNone;
- }
-
-inline bool Client::isModal() const
- {
- return modal;
- }
-
-inline bool Client::hasNETSupport() const
- {
- return info->hasNETSupport();
- }
-
-inline Colormap Client::colormap() const
- {
- return cmap;
- }
-
-inline pid_t Client::pid() const
- {
- return info->pid();
- }
-
-inline void Client::invalidateLayer()
- {
- in_layer = UnknownLayer;
- }
-
-inline bool Client::isIconicState() const
- {
- return mapping_state == IconicState;
- }
-
-inline bool Client::isNormalState() const
- {
- return mapping_state == NormalState;
- }
-
-inline bool Client::isManaged() const
- {
- return mapping_state != WithdrawnState;
- }
-
-inline TQCString Client::windowRole() const
- {
- return window_role;
- }
-
-inline TQRect Client::geometry() const
- {
- return frame_geometry;
- }
-
-inline TQSize Client::size() const
- {
- return frame_geometry.size();
- }
-
-inline TQPoint Client::pos() const
- {
- return frame_geometry.topLeft();
- }
-
-inline int Client::x() const
- {
- return frame_geometry.x();
- }
-
-inline int Client::y() const
- {
- return frame_geometry.y();
- }
-
-inline int Client::width() const
- {
- return frame_geometry.width();
- }
-
-inline int Client::height() const
- {
- return frame_geometry.height();
- }
-
-inline TQRect Client::rect() const
- {
- return TQRect( 0, 0, width(), height());
- }
-
-inline TQPoint Client::clientPos() const
- {
- return TQPoint( border_left, border_top );
- }
-
-inline TQSize Client::clientSize() const
- {
- return client_size;
- }
-
-inline void Client::setGeometry( const TQRect& r, ForceGeometry_t force )
- {
- setGeometry( r.x(), r.y(), r.width(), r.height(), force );
- }
-
-inline void Client::move( const TQPoint & p, ForceGeometry_t force )
- {
- move( p.x(), p.y(), force );
- }
-
-inline void Client::plainResize( const TQSize& s, ForceGeometry_t force )
- {
- plainResize( s.width(), s.height(), force );
- }
-
-inline bool Client::isShadowed() const
- {
- return shadowMe;
- }
-
-inline Window Client::shadowId() const
- {
- return shadowWidget != NULL ? shadowWidget->winId() : None;
- }
-
-inline void Client::resizeWithChecks( const TQSize& s, ForceGeometry_t force )
- {
- resizeWithChecks( s.width(), s.height(), force );
- }
-
-inline bool Client::hasUserTimeSupport() const
- {
- return info->userTime() != -1U;
- }
-
-inline bool Client::ignoreFocusStealing() const
- {
- return ignore_focus_stealing;
- }
-
-inline const WindowRules* Client::rules() const
- {
- return &client_rules;
- }
-
-KWIN_PROCEDURE( CheckIgnoreFocusStealingProcedure, cl->ignore_focus_stealing = options->checkIgnoreFocusStealing( cl ));
-
-inline Window Client::moveResizeGrabWindow() const
- {
- return move_resize_grab_window;
- }
-
-inline KShortcut Client::shortcut() const
- {
- return _shortcut;
- }
-
-inline bool Client::isBMP()
- {
- return isBMP_;
- }
-
-inline void Client::setBMP(bool b)
- {
- isBMP_ = b;
- }
-
-inline void Client::removeRule( Rules* rule )
- {
- client_rules.remove( rule );
- }
-
-#ifdef NDEBUG
-inline
-kndbgstream& operator<<( kndbgstream& stream, const Client* ) { return stream; }
-inline
-kndbgstream& operator<<( kndbgstream& stream, const ClientList& ) { return stream; }
-inline
-kndbgstream& operator<<( kndbgstream& stream, const ConstClientList& ) { return stream; }
-#else
-kdbgstream& operator<<( kdbgstream& stream, const Client* );
-kdbgstream& operator<<( kdbgstream& stream, const ClientList& );
-kdbgstream& operator<<( kdbgstream& stream, const ConstClientList& );
-#endif
-
-KWIN_COMPARE_PREDICATE( WindowMatchPredicate, Window, cl->window() == value );
-KWIN_COMPARE_PREDICATE( FrameIdMatchPredicate, Window, cl->frameId() == value );
-KWIN_COMPARE_PREDICATE( WrapperIdMatchPredicate, Window, cl->wrapperId() == value );
-
-} // namespace
-
-#endif