summaryrefslogtreecommitdiff
path: root/src/screen.hh
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-02-10 06:50:19 +0000
committerDana Jansens <danakj@orodu.net>2003-02-10 06:50:19 +0000
commit12108e16e166034cd1840627502280d9a1ab0b9e (patch)
tree54abc88e46822812c4eff78ac007ef7a5d7ddbd2 /src/screen.hh
parenta5ea4b0480c9daeb860bf3adbfc755c84d2e082d (diff)
keep track of struts for each desktop
Diffstat (limited to 'src/screen.hh')
-rw-r--r--src/screen.hh26
1 files changed, 18 insertions, 8 deletions
diff --git a/src/screen.hh b/src/screen.hh
index 9244bb2d..16a4225b 100644
--- a/src/screen.hh
+++ b/src/screen.hh
@@ -30,7 +30,9 @@ class Client;
class Screen : public otk::EventHandler {
public:
//! Holds a list of otk::Strut objects
- typedef std::list<otk::Strut*> StrutList;
+ typedef std::vector<otk::Strut> StrutList;
+ //! Holds a list of otk::Rect objects
+ typedef std::vector<otk::Rect> RectList;
static const unsigned long event_mask = ColormapChangeMask |
EnterWindowMask |
@@ -59,11 +61,13 @@ private:
//! Is the root colormap currently installed?
bool _root_cmap_installed;
- //! Area usable for placement etc (total - struts)
- otk::Rect _area;
+ //! Area usable for placement etc (total - struts), one per desktop,
+ //! plus one extra for windows on all desktops
+ RectList _area;
- //! Combined strut from all of the clients' struts
- otk::Strut _strut;
+ //! Combined strut from all of the clients' struts, one per desktop,
+ //! plus one extra for windows on all desktops
+ StrutList _struts;
//! An offscreen window which gets focus when nothing else has it
Window _focuswindow;
@@ -139,8 +143,6 @@ public:
used.
*/
inline bool managed() const { return _managed; }
- //! Returns the area of the screen not reserved by applications' Struts
- inline const otk::Rect &area() const { return _area; }
//! An offscreen window which gets focus when nothing else has it
inline Window focuswindow() const { return _focuswindow; }
//! Returns the desktop being displayed
@@ -148,11 +150,19 @@ public:
//! Returns the number of desktops
inline long numDesktops() const { return _num_desktops; }
+ //! Returns the area of the screen not reserved by applications' Struts
+ /*!
+ @param desktop The desktop number of the area to retrieve for. A value of
+ 0xffffffff will return an area that combines all struts
+ on all desktops.
+ */
+ const otk::Rect& area(long desktop) const;
+
//! Update's the screen's combined strut of all the clients.
/*!
Clients should call this whenever they change their strut.
*/
- void updateStrut();
+ void updateStruts();
//! Manage any pre-existing windows on the screen
void manageExisting();