aboutsummaryrefslogtreecommitdiff
path: root/src/Slit.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/Slit.hh')
-rw-r--r--src/Slit.hh19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/Slit.hh b/src/Slit.hh
index 75111d0..61a7d33 100644
--- a/src/Slit.hh
+++ b/src/Slit.hh
@@ -35,6 +35,7 @@ class Slitmenu;
35#include "Basemenu.hh" 35#include "Basemenu.hh"
36 36
37#include <list> 37#include <list>
38#include <string>
38 39
39class Slitmenu : public Basemenu { 40class Slitmenu : public Basemenu {
40public: 41public:
@@ -130,6 +131,7 @@ public:
130 void reconfigure(void); 131 void reconfigure(void);
131 void reposition(void); 132 void reposition(void);
132 void shutdown(void); 133 void shutdown(void);
134 void saveClientList(void);
133 135
134 void buttonPressEvent(XButtonEvent *); 136 void buttonPressEvent(XButtonEvent *);
135 void enterNotifyEvent(XCrossingEvent *); 137 void enterNotifyEvent(XCrossingEvent *);
@@ -145,13 +147,27 @@ public:
145private: 147private:
146 class SlitClient { 148 class SlitClient {
147 public: 149 public:
150 SlitClient(BScreen *, Window); // For adding an actual window
151 SlitClient(const char *); // For adding a placeholder
152
153 // Now we pre-initialize a list of slit clients with names for
154 // comparison with incoming client windows. This allows the slit
155 // to maintain a sorted order based on a saved window name list.
156 // Incoming windows not found in the list are appended. Matching
157 // duplicates are inserted after the last found instance of the
158 // matching name.
159 std::string match_name;
160
148 Window window, client_window, icon_window; 161 Window window, client_window, icon_window;
149 162
150 int x, y; 163 int x, y;
151 unsigned int width, height; 164 unsigned int width, height;
165
166 void initialize(BScreen * = NULL, Window = None);
152 }; 167 };
153 168
154 void removeClient(SlitClient *, bool = true); 169 void removeClient(SlitClient *, bool, bool);
170 void loadClientList(void);
155 171
156 Bool on_top, hidden, do_auto_hide; 172 Bool on_top, hidden, do_auto_hide;
157 Display *display; 173 Display *display;
@@ -164,6 +180,7 @@ private:
164 180
165 SlitClients clientList; 181 SlitClients clientList;
166 Slitmenu slitmenu; 182 Slitmenu slitmenu;
183 std::string clientListPath;
167 184
168 struct frame { 185 struct frame {
169 Pixmap pixmap; 186 Pixmap pixmap;