diff options
author | rathnor <rathnor> | 2003-04-15 00:50:25 (GMT) |
---|---|---|
committer | rathnor <rathnor> | 2003-04-15 00:50:25 (GMT) |
commit | 58e19dc91eba51739d4b8ed2dfdbb49e28d96379 (patch) | |
tree | 1fbb529d593c1b1b1fabb76832a97783649cab23 /src/Screen.hh | |
parent | 1aa5ede1b70dfba6519eeaa38101948bbdfea8a2 (diff) | |
download | fluxbox-58e19dc91eba51739d4b8ed2dfdbb49e28d96379.zip fluxbox-58e19dc91eba51739d4b8ed2dfdbb49e28d96379.tar.bz2 |
add most recently used window cycling (Simon)
It is now the default cycling action
Diffstat (limited to 'src/Screen.hh')
-rw-r--r-- | src/Screen.hh | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/src/Screen.hh b/src/Screen.hh index b4adcbf..8be5d42 100644 --- a/src/Screen.hh +++ b/src/Screen.hh | |||
@@ -22,7 +22,7 @@ | |||
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
23 | // DEALINGS IN THE SOFTWARE. | 23 | // DEALINGS IN THE SOFTWARE. |
24 | 24 | ||
25 | // $Id: Screen.hh,v 1.74 2003/04/14 12:13:36 fluxgen Exp $ | 25 | // $Id: Screen.hh,v 1.75 2003/04/15 00:50:24 rathnor Exp $ |
26 | 26 | ||
27 | #ifndef SCREEN_HH | 27 | #ifndef SCREEN_HH |
28 | #define SCREEN_HH | 28 | #define SCREEN_HH |
@@ -151,6 +151,7 @@ public: | |||
151 | unsigned int getMaxBottom() const; | 151 | unsigned int getMaxBottom() const; |
152 | 152 | ||
153 | typedef std::vector<FluxboxWindow *> Icons; | 153 | typedef std::vector<FluxboxWindow *> Icons; |
154 | typedef std::list<WinClient *> FocusedWindows; | ||
154 | 155 | ||
155 | /// @return number of workspaces | 156 | /// @return number of workspaces |
156 | inline unsigned int getCount() const { return workspacesList.size(); } | 157 | inline unsigned int getCount() const { return workspacesList.size(); } |
@@ -158,6 +159,8 @@ public: | |||
158 | inline unsigned int getIconCount() const { return iconList.size(); } | 159 | inline unsigned int getIconCount() const { return iconList.size(); } |
159 | inline const Icons &getIconList() const { return iconList; } | 160 | inline const Icons &getIconList() const { return iconList; } |
160 | inline Icons &getIconList() { return iconList; } | 161 | inline Icons &getIconList() { return iconList; } |
162 | inline const FocusedWindows &getFocusedList() const { return focused_list; } | ||
163 | inline FocusedWindows &getFocusedList() { return focused_list; } | ||
161 | const Workspaces &getWorkspacesList() const { return workspacesList; } | 164 | const Workspaces &getWorkspacesList() const { return workspacesList; } |
162 | const WorkspaceNames &getWorkspaceNames() const { return workspaceNames; } | 165 | const WorkspaceNames &getWorkspaceNames() const { return workspaceNames; } |
163 | /** | 166 | /** |
@@ -258,6 +261,7 @@ public: | |||
258 | void removeIcon(FluxboxWindow *win); | 261 | void removeIcon(FluxboxWindow *win); |
259 | // remove window | 262 | // remove window |
260 | void removeWindow(FluxboxWindow *win); | 263 | void removeWindow(FluxboxWindow *win); |
264 | void removeClient(WinClient &client); | ||
261 | 265 | ||
262 | std::string getNameOfWorkspace(unsigned int workspace) const; | 266 | std::string getNameOfWorkspace(unsigned int workspace) const; |
263 | void changeWorkspaceID(unsigned int); | 267 | void changeWorkspaceID(unsigned int); |
@@ -269,6 +273,8 @@ public: | |||
269 | void prevFocus(int options); | 273 | void prevFocus(int options); |
270 | void nextFocus(int options); | 274 | void nextFocus(int options); |
271 | void raiseFocus(); | 275 | void raiseFocus(); |
276 | void setFocusedWindow(WinClient &winclient); | ||
277 | |||
272 | void reconfigure(); | 278 | void reconfigure(); |
273 | void rereadMenu(); | 279 | void rereadMenu(); |
274 | void shutdown(); | 280 | void shutdown(); |
@@ -276,6 +282,8 @@ public: | |||
276 | void showGeometry(unsigned int, unsigned int); | 282 | void showGeometry(unsigned int, unsigned int); |
277 | void hideGeometry(); | 283 | void hideGeometry(); |
278 | 284 | ||
285 | void notifyReleasedKeys(XKeyEvent &ke); | ||
286 | |||
279 | void setLayer(FbTk::XLayerItem &item, int layernum); | 287 | void setLayer(FbTk::XLayerItem &item, int layernum); |
280 | // remove? no, items are never removed from their layer until they die | 288 | // remove? no, items are never removed from their layer until they die |
281 | 289 | ||
@@ -306,7 +314,7 @@ public: | |||
306 | WINDOWLOWER, WINDOWSTICK, WINDOWKILL, SETSTYLE, WINDOWTAB}; | 314 | WINDOWLOWER, WINDOWSTICK, WINDOWKILL, SETSTYLE, WINDOWTAB}; |
307 | // prevFocus/nextFocus option bits | 315 | // prevFocus/nextFocus option bits |
308 | enum { CYCLESKIPLOWERTABS = 0x01, CYCLESKIPSTUCK = 0x02, CYCLESKIPSHADED = 0x04, | 316 | enum { CYCLESKIPLOWERTABS = 0x01, CYCLESKIPSTUCK = 0x02, CYCLESKIPSHADED = 0x04, |
309 | CYCLEDEFAULT = 0x00 }; | 317 | CYCLELINEAR = 0x08, CYCLEDEFAULT = 0x00 }; |
310 | 318 | ||
311 | class ScreenSubject:public FbTk::Subject { | 319 | class ScreenSubject:public FbTk::Subject { |
312 | public: | 320 | public: |
@@ -334,10 +342,8 @@ private: | |||
334 | m_currentworkspace_sig; ///< current workspace signal | 342 | m_currentworkspace_sig; ///< current workspace signal |
335 | 343 | ||
336 | FbTk::MultLayers m_layermanager; | 344 | FbTk::MultLayers m_layermanager; |
337 | //!! | ||
338 | Theme *theme; ///< obsolete | ||
339 | 345 | ||
340 | Bool root_colormap_installed, managed, geom_visible; | 346 | Bool root_colormap_installed, managed, geom_visible, cycling_focus; |
341 | GC opGC; | 347 | GC opGC; |
342 | Pixmap geom_pixmap; | 348 | Pixmap geom_pixmap; |
343 | FbTk::FbWindow geom_window; | 349 | FbTk::FbWindow geom_window; |
@@ -353,6 +359,12 @@ private: | |||
353 | Rootmenus rootmenuList; | 359 | Rootmenus rootmenuList; |
354 | Netizens netizenList; | 360 | Netizens netizenList; |
355 | Icons iconList; | 361 | Icons iconList; |
362 | |||
363 | // This list keeps the order of window focusing for this screen | ||
364 | // Screen global so it works for sticky windows too. | ||
365 | FocusedWindows focused_list; | ||
366 | FocusedWindows::iterator cycling_window; | ||
367 | |||
356 | #ifdef SLIT | 368 | #ifdef SLIT |
357 | std::auto_ptr<Slit> m_slit; | 369 | std::auto_ptr<Slit> m_slit; |
358 | #endif // SLIT | 370 | #endif // SLIT |
@@ -368,6 +380,9 @@ private: | |||
368 | 380 | ||
369 | Window auto_group_window; | 381 | Window auto_group_window; |
370 | 382 | ||
383 | //!! | ||
384 | Theme *theme; ///< obsolete | ||
385 | |||
371 | FbWinFrameTheme m_windowtheme; | 386 | FbWinFrameTheme m_windowtheme; |
372 | std::auto_ptr<FbTk::MenuTheme> m_menutheme; | 387 | std::auto_ptr<FbTk::MenuTheme> m_menutheme; |
373 | 388 | ||