X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2FWorkspace.hh;h=df0411e130645cc221360cbf06e0359748f6d656;hb=87e63d53af67d5ea98f55a27007663d4c9c8fc6c;hp=0059e293fdcd4c46d59b7e94a2b5f0dbda7be1dd;hpb=351a06655bdd7d440780b5bc5b255081c888044b;p=chaz%2Fopenbox diff --git a/src/Workspace.hh b/src/Workspace.hh index 0059e293..df0411e1 100644 --- a/src/Workspace.hh +++ b/src/Workspace.hh @@ -52,7 +52,10 @@ private: std::string name; unsigned int id; - int cascade_x, cascade_y; + unsigned int cascade_x, cascade_y; +#ifdef XINERAMA + unsigned int cascade_region; +#endif // XINERAMA Workspace(const Workspace&); Workspace& operator=(const Workspace&); @@ -62,10 +65,13 @@ private: void lowerTransients(const BlackboxWindow * const win, StackVector::iterator &stack); + typedef std::vector rectList; + rectList calcSpace(const Rect &win, const rectList &spaces) const; + void placeWindow(BlackboxWindow *win); - bool cascadePlacement(Rect& win, const Rect& availableArea); - bool smartPlacement(Rect& win, const Rect& availableArea); - bool underMousePlacement(Rect& win, const Rect& availableArea); + bool cascadePlacement(Rect& win, const int offset); + bool smartPlacement(Rect& win); + bool underMousePlacement(Rect& win); public: Workspace(BScreen *scrn, unsigned int i = 0); @@ -82,17 +88,22 @@ public: inline void setLastFocusedWindow(BlackboxWindow *w) { lastfocus = w; } + inline const BlackboxWindowList& getStackingList() const + { return stackingList; } + BlackboxWindow* getWindow(unsigned int index); BlackboxWindow* getNextWindowInList(BlackboxWindow *w); BlackboxWindow* getPrevWindowInList(BlackboxWindow *w); BlackboxWindow* getTopWindowOnStack(void) const; void sendWindowList(Netizen &n); + void focusFallback(const BlackboxWindow *old_window); + void setFocused(const BlackboxWindow *w, bool focused); bool isCurrent(void) const; bool isLastWindow(const BlackboxWindow* w) const; - void addWindow(BlackboxWindow *w, bool place = False); - unsigned int removeWindow(BlackboxWindow *w); + void addWindow(BlackboxWindow *w, bool place = False, bool sticky = False); + void removeWindow(BlackboxWindow *w, bool sticky = False); unsigned int getCount(void) const; void appendStackOrder(BlackboxWindowList &stack_order) const; @@ -103,6 +114,7 @@ public: void lowerWindow(BlackboxWindow *w); void reconfigure(void); void setCurrent(void); + void readName(); void setName(const std::string& new_name); };