X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2FWorkspace.hh;h=e0295e29b0a5f2797f7b7ed98d0b1eb8376f75d1;hb=72c56d793b21cb0dae7a6a3d0baf580dacc4a34f;hp=652e8cef574af6bbb5b38456b08a34f3abde7c22;hpb=8794d357e67abddf9fda9db77b235e294d0ec590;p=chaz%2Fopenbox diff --git a/src/Workspace.hh b/src/Workspace.hh index 652e8cef..e0295e29 100644 --- a/src/Workspace.hh +++ b/src/Workspace.hh @@ -46,12 +46,16 @@ private: BScreen *screen; BlackboxWindow *lastfocus; Clientmenu *clientmenu; + XAtom *xatom; BlackboxWindowList stackingList, windowList; 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,8 +66,9 @@ private: StackVector::iterator &stack); void placeWindow(BlackboxWindow *win); - bool cascadePlacement(Rect& win, const Rect& availableArea); - bool smartPlacement(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); @@ -80,27 +85,33 @@ 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; - void showAll(void); - void hideAll(void); + void show(void); + void hide(void); void removeAll(void); void raiseWindow(BlackboxWindow *w); void lowerWindow(BlackboxWindow *w); void reconfigure(void); - void updateFocusModel(void); void setCurrent(void); + void readName(); void setName(const std::string& new_name); };