all repos — fluxbox @ 06e830812e143c6fbf6838bc222ba6171f1a64e7

custom fork of the fluxbox windowmanager

fix saving of toolbar + slit layers - simon
rathnor rathnor
commit

06e830812e143c6fbf6838bc222ba6171f1a64e7

parent

b47337fca633bac22443b2a156a755e45971f6f0

M src/LayerMenu.hhsrc/LayerMenu.hh

@@ -20,13 +20,16 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING

// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: LayerMenu.hh,v 1.1 2003/02/18 22:09:02 rathnor Exp $ +// $Id: LayerMenu.hh,v 1.2 2003/04/16 13:43:41 rathnor Exp $ #ifndef LAYERMENU_HH #define LAYERMENU_HH #include "MenuItem.hh" #include "FbMenu.hh" +#include "FbCommands.hh" +#include "RefCount.hh" +#include "SimpleCommand.hh" class Fluxbox;

@@ -36,12 +39,16 @@ // this class holds the layermenu items

template <typename ItemType> class LayerMenuItem : public FbTk::MenuItem { public: + LayerMenuItem(const char *label, ItemType *object, int layernum, + FbTk::RefCount<FbTk::Command> &cmd): + FbTk::MenuItem(label,cmd), m_object(object), m_layernum(layernum) {} LayerMenuItem(const char *label, ItemType *object, int layernum): FbTk::MenuItem(label), m_object(object), m_layernum(layernum) {} bool isEnabled() const { return m_object->getLayerItem().getLayerNum() != m_layernum; } ; void click(int button, int time) { m_object->moveToLayer(m_layernum); + FbTk::MenuItem::click(button, time); } private:

@@ -55,7 +62,7 @@ template <typename ItemType>

class LayerMenu : public FbMenu { public: LayerMenu(FbTk::MenuTheme &tm, int screen_num, FbTk::ImageControl &imgctrl, - FbTk::XLayer &layer, ItemType *item); + FbTk::XLayer &layer, ItemType *item, bool save_rc); private: ItemType *m_object;

@@ -64,7 +71,7 @@

template <typename ItemType> LayerMenu<ItemType>::LayerMenu(FbTk::MenuTheme &tm, int screen_num, FbTk::ImageControl &imgctrl, - FbTk::XLayer &layer, ItemType *item): + FbTk::XLayer &layer, ItemType *item, bool save_rc): FbMenu(tm, screen_num, imgctrl, layer), m_object(item) {

@@ -86,11 +93,21 @@ {0, 0, "Bottom", fluxbox->getBottomLayer()},

{0, 0, "Desktop", fluxbox->getDesktopLayer()}, }; + FbTk::RefCount<FbTk::Command> saverc_cmd(new FbTk::SimpleCommand<Fluxbox>( + *Fluxbox::instance(), + &Fluxbox::save_rc)); + for (size_t i=0; i < 6; ++i) { // TODO: fetch nls string - insert(new LayerMenuItem<ItemType>( - layer_menuitems[i].default_str, - m_object, layer_menuitems[i].layernum)); + if (save_rc) { + insert(new LayerMenuItem<ItemType>( + layer_menuitems[i].default_str, + m_object, layer_menuitems[i].layernum, saverc_cmd)); + } else { + insert(new LayerMenuItem<ItemType>( + layer_menuitems[i].default_str, + m_object, layer_menuitems[i].layernum)); + } } update(); }
M src/Screen.hhsrc/Screen.hh

@@ -22,7 +22,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING

// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Screen.hh,v 1.77 2003/04/16 00:36:09 fluxgen Exp $ +// $Id: Screen.hh,v 1.78 2003/04/16 13:43:42 rathnor Exp $ #ifndef SCREEN_HH #define SCREEN_HH

@@ -36,7 +36,6 @@ #include "FbWinFrameTheme.hh"

#include "MultLayers.hh" #include "XLayerItem.hh" #include "ToolbarHandler.hh" -#include "fluxbox.hh" #include <X11/Xlib.h> #include <X11/Xresource.h>

@@ -206,6 +205,8 @@ inline void saveToolbarWidthPercent(int w) { *resource.toolbar_width_percent = w; }

inline void saveToolbarMode(ToolbarHandler::ToolbarMode m) { *resource.toolbar_mode = m; } inline void saveToolbarPlacement(Toolbar::Placement place) { *resource.toolbar_placement = place; } inline void saveToolbarOnHead(int head) { *resource.toolbar_on_head = head; } + inline void saveToolbarLayer(Fluxbox::Layer layer) { *resource.toolbar_layernum = layer; } + inline void saveSlitLayer(Fluxbox::Layer layer) { *resource.slit_layernum = layer; } inline void savePlacementPolicy(int p) { resource.placement_policy = p; } inline void saveRowPlacementDirection(int d) { resource.row_direction = d; }
M src/Slit.ccsrc/Slit.cc

@@ -22,7 +22,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING

// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Slit.cc,v 1.38 2003/04/14 14:53:12 fluxgen Exp $ +// $Id: Slit.cc,v 1.39 2003/04/16 13:43:43 rathnor Exp $ #include "Slit.hh"

@@ -254,7 +254,8 @@ slit_layermenu.reset(new LayerMenu<Slit>(*scr.menuTheme(),

scr.getScreenNumber(), *scr.getImageControl(), *scr.layerManager().getLayer(Fluxbox::instance()->getMenuLayer()), - this)); + this, + true)); // default placement and direction m_direction = HORIZONTAL;
M src/Slit.hhsrc/Slit.hh

@@ -22,7 +22,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING

// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -/// $Id: Slit.hh,v 1.20 2003/02/20 16:38:17 fluxgen Exp $ +/// $Id: Slit.hh,v 1.21 2003/04/16 13:43:44 rathnor Exp $ #ifndef SLIT_HH #define SLIT_HH

@@ -32,6 +32,8 @@ #include "FbWindow.hh"

#include "Timer.hh" #include "XLayerItem.hh" #include "LayerMenu.hh" +#include "fluxbox.hh" +#include "Screen.hh" #include <X11/Xlib.h> #include <X11/Xutil.h>

@@ -40,7 +42,6 @@ #include <list>

#include <string> #include <memory> -class BScreen; class SlitClient; /// Handles dock apps

@@ -102,7 +103,7 @@ void leaveNotifyEvent(XCrossingEvent &event);

void configureRequestEvent(XConfigureRequestEvent &event); //@} - void moveToLayer(int layernum) { m_layeritem->moveToLayer(layernum); } + void moveToLayer(int layernum) { m_layeritem->moveToLayer(layernum); m_screen.saveSlitLayer((Fluxbox::Layer) layernum); } FbTk::XLayerItem &getLayerItem() { return *m_layeritem; } virtual void timeout();
M src/Toolbar.ccsrc/Toolbar.cc

@@ -22,7 +22,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING

// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Toolbar.cc,v 1.71 2003/04/16 12:53:14 fluxgen Exp $ +// $Id: Toolbar.cc,v 1.72 2003/04/16 13:43:44 rathnor Exp $ #include "Toolbar.hh"

@@ -256,7 +256,8 @@ m_layermenu(*scrn.menuTheme(),

scrn.getScreenNumber(), *scrn.getImageControl(), *scrn.layerManager().getLayer(Fluxbox::instance()->getMenuLayer()), - this), + this, + true), m_theme(scrn.getScreenNumber()), m_place(BOTTOMCENTER), m_themelistener(*this),

@@ -1193,3 +1194,8 @@ } else {

toolbar->frame.window.move(toolbar->frame.x, toolbar->frame.y); } } + +void Toolbar::moveToLayer(int layernum) { + m_layeritem.moveToLayer(layernum); + m_screen.saveToolbarLayer((Fluxbox::Layer) layernum); +}
M src/Toolbar.hhsrc/Toolbar.hh

@@ -22,7 +22,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING

// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Toolbar.hh,v 1.26 2003/03/03 21:51:08 rathnor Exp $ +// $Id: Toolbar.hh,v 1.27 2003/04/16 13:43:48 rathnor Exp $ #ifndef TOOLBAR_HH #define TOOLBAR_HH

@@ -37,10 +37,11 @@ #include "Observer.hh"

#include "XLayer.hh" #include "XLayerItem.hh" #include "LayerMenu.hh" +#include "fluxbox.hh" #include <memory> - +class BScreen; namespace FbTk { class ImageControl; };

@@ -86,7 +87,7 @@

inline FbTk::Menu &layermenu() { return m_layermenu; } inline const FbTk::Menu &layermenu() const { return m_layermenu; } - void moveToLayer(int layernum) { m_layeritem.moveToLayer(layernum); } + void moveToLayer(int layernum); FbTk::XLayerItem &getLayerItem() { return m_layeritem; }
M src/ToolbarHandler.hhsrc/ToolbarHandler.hh

@@ -20,7 +20,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING

// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: ToolbarHandler.hh,v 1.1 2003/03/03 21:51:09 rathnor Exp $ +// $Id: ToolbarHandler.hh,v 1.2 2003/04/16 13:43:49 rathnor Exp $ #ifndef TOOLBARHANDLER_HH #define TOOLBARHANDLER_HH

@@ -29,8 +29,8 @@ #include "AtomHandler.hh"

#include "Menu.hh" #include "Toolbar.hh" -class FluxboxWindow; class BScreen; +class FluxboxWindow; class ToolbarHandler : public AtomHandler { public:
M src/Window.ccsrc/Window.cc

@@ -22,7 +22,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING

// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Window.cc,v 1.140 2003/04/16 12:27:49 fluxgen Exp $ +// $Id: Window.cc,v 1.141 2003/04/16 13:43:50 rathnor Exp $ #include "Window.hh"

@@ -207,7 +207,8 @@ m_layermenu(menutheme,

scr.getScreenNumber(), *scr.getImageControl(), *scr.layerManager().getLayer(Fluxbox::instance()->getMenuLayer()), - this), + this, + false), old_decoration(DECOR_NORMAL), m_client(&client), m_frame(tm, *scr.getImageControl(), scr.getScreenNumber(), 0, 0, 100, 100),

@@ -238,7 +239,8 @@ m_layermenu(menutheme,

scr.getScreenNumber(), *scr.getImageControl(), *scr.layerManager().getLayer(Fluxbox::instance()->getMenuLayer()), - this), + this, + false), old_decoration(DECOR_NORMAL), m_client(new WinClient(w, *this)), m_frame(tm, *scr.getImageControl(), scr.getScreenNumber(), 0, 0, 100, 100),