]> Dogcows Code - chaz/openbox/blobdiff - src/client.hh
add/lower work
[chaz/openbox] / src / client.hh
index d2a41dd7254eb31f35c8ee4bd32fc6ddb6376018..a49ccd74957c6a1d6b5374f9349d96cad0ed7d31 100644 (file)
@@ -17,11 +17,12 @@ extern "C" {
 
 #include <string>
 
+#include "screen.hh"
+#include "widget.hh"
 #include "otk/point.hh"
 #include "otk/strut.hh"
 #include "otk/rect.hh"
 #include "otk/eventhandler.hh"
-#include "widget.hh"
 
 namespace ob {
 
@@ -254,7 +255,11 @@ private:
   //! The window is a 'fullscreen' window, and should be on top of all others
   bool _fullscreen;
   //! The window should be on top of other windows of the same type
-  bool _floating;
+  bool _above;
+  //! The window should be underneath other windows of the same type
+  bool _below;
+
+  OBScreen::StackLayer _layer;
 
   //! A bitmask of values in the OBClient::Decoration enum
   /*!
@@ -293,6 +298,9 @@ private:
   //! Adjusts the window's net_state
   void setState(StateAction action, long data1, long data2);
 
+  //! Calculates the stacking layer for the client window
+  void calcLayer();
+
   //! Update the protocols that the window supports and adjusts things if they
   //! change
   void updateProtocols();
@@ -396,17 +404,8 @@ public:
   inline bool maxVert() const { return _max_vert; }
   //! Returns if the window is maximized horizontally
   inline bool maxHorz() const { return _max_horz; }
-  //! Returns if the window is fullscreen
-  /*!
-    When the window is fullscreen, it is kept above all others
-  */
-  inline bool fullscreen() const { return _fullscreen; }
-  //! Returns if the window is floating
-  /*!
-    When the window is floating, it is kept above all others in the same
-    stacking layer as it
-  */
-  inline bool floating() const { return _floating; }
+  //! Returns the window's stacking layer
+  inline OBScreen::StackLayer layer() const { return _layer; }
 
   //! Removes or reapplies the client's border to its window
   /*!
This page took 0.023256 seconds and 4 git commands to generate.