all repos — fluxbox @ 1ac79b97332af0fe27f3ca1a850e4989aa9389b2

custom fork of the fluxbox windowmanager

cleaning
fluxgen fluxgen
commit

1ac79b97332af0fe27f3ca1a850e4989aa9389b2

parent

128bdea1a8533b8eab68e359cd06c60084bbc24d

3 files changed, 46 insertions(+), 44 deletions(-)

jump to
M src/Screen.ccsrc/Screen.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: Screen.cc,v 1.101 2003/02/02 16:32:38 rathnor Exp $ +// $Id: Screen.cc,v 1.102 2003/02/03 13:52:31 fluxgen Exp $ #include "Screen.hh"

@@ -45,6 +45,7 @@ //#include "IntResMenuItem.hh"

#include "MacroCommand.hh" #include "XLayerItem.hh" #include "MultLayers.hh" +#include "LayeredMenu.hh" //use GNU extensions #ifndef _GNU_SOURCE

@@ -134,10 +135,10 @@ return (strcmp((*(char **) one), (*(char **) two)));

} FbTk::Menu *createMenuFromScreen(BScreen &screen) { - FbTk::Menu *menu = new FbTk::Menu(*screen.menuTheme(), screen.getScreenNumber(), *screen.getImageControl()); - menu->setLayerItem(new FbTk::XLayerItem(menu->windowID())); - - screen.setLayer(*menu->getLayerItem(), Fluxbox::instance()->getMenuLayer()); + FbTk::Menu *menu = new LayeredMenu(*screen.menuTheme(), + screen.getScreenNumber(), + *screen.getImageControl(), + *screen.layerManager().getLayer(Fluxbox::instance()->getMenuLayer())); return menu; } };

@@ -341,12 +342,12 @@ };

BScreen::BScreen(ResourceManager &rm, const string &screenname, const string &altscreenname, - int scrn) : ScreenInfo(scrn), + int scrn, int num_layers) : ScreenInfo(scrn), m_clientlist_sig(*this), // client signal m_workspacecount_sig(*this), // workspace count signal m_workspacenames_sig(*this), // workspace names signal m_currentworkspace_sig(*this), // current workspace signal - m_layermanager(0), + m_layermanager(num_layers), theme(0), m_windowtheme(scrn), m_menutheme(new FbTk::MenuTheme(scrn)), resource(rm, screenname, altscreenname),

@@ -399,7 +400,6 @@ root_colormap_installed = true;

fluxbox->load_rc(this); - m_layermanager = new FbTk::MultLayers(fluxbox->getNumberOfLayers()); image_control->setDither(*resource.image_dither); theme = new Theme(disp, getRootWindow(), colormap(), getScreenNumber(), fluxbox->getStyleFilename(), getRootCommand().c_str());

@@ -469,12 +469,12 @@

Workspace *wkspc = (Workspace *) 0; if (*resource.workspaces != 0) { for (int i = 0; i < *resource.workspaces; ++i) { - wkspc = new Workspace(this, *m_layermanager, workspacesList.size()); + wkspc = new Workspace(this, m_layermanager, workspacesList.size()); workspacesList.push_back(wkspc); workspacemenu->insert(wkspc->name().c_str(), &wkspc->menu()); } } else { - wkspc = new Workspace(this, *m_layermanager, workspacesList.size()); + wkspc = new Workspace(this, m_layermanager, workspacesList.size()); workspacesList.push_back(wkspc); workspacemenu->insert(wkspc->name().c_str(), &wkspc->menu()); }

@@ -816,7 +816,7 @@ reconfigure();

} int BScreen::addWorkspace() { - Workspace *wkspc = new Workspace(this, *m_layermanager, workspacesList.size()); + Workspace *wkspc = new Workspace(this, m_layermanager, workspacesList.size()); workspacesList.push_back(wkspc); addWorkspaceName(wkspc->name().c_str()); // update names //add workspace to workspacemenu

@@ -1086,7 +1086,8 @@ }

FluxboxWindow *BScreen::createWindow(Window client) { FluxboxWindow *win = new FluxboxWindow(client, this, getScreenNumber(), *getImageControl(), - winFrameTheme(), *menuTheme()); + winFrameTheme(), *menuTheme(), + *layerManager().getLayer(0)); #ifdef SLIT if (win->initialState() == WithdrawnState)

@@ -1946,15 +1947,14 @@ item.lower();

} void BScreen::setLayer(FbTk::XLayerItem &item, int layernum) { - m_layermanager->moveToLayer(item, layernum); + m_layermanager.moveToLayer(item, layernum); } -void BScreen::removeLayerItem(FbTk::XLayerItem *item) { - m_layermanager->remove(*item); - delete item; -} void BScreen::raiseWindow(FluxboxWindow *w) { + if (w == 0) + return; + FluxboxWindow *win = w; while (win->getTransientFor()) {

@@ -1962,16 +1962,20 @@ win = win->getTransientFor();

assert(win != win->getTransientFor()); } + if (win == 0) + win = w; + if (!win->isIconic()) { updateNetizenWindowRaise(win->getClientWindow()); - win->getLayerItem()->raise(); + win->getLayerItem().raise(); } + std::list<FluxboxWindow *>::const_iterator it = win->getTransients().begin(); std::list<FluxboxWindow *>::const_iterator it_end = win->getTransients().end(); for (; it != it_end; ++it) { if (!(*it)->isIconic()) { updateNetizenWindowRaise((*it)->getClientWindow()); - (*it)->getLayerItem()->raise(); + (*it)->getLayerItem().raise(); } } }

@@ -1988,14 +1992,14 @@ win = bottom;

if (!win->isIconic()) { updateNetizenWindowLower(win->getClientWindow()); - win->getLayerItem()->lower(); + win->getLayerItem().lower(); } std::list<FluxboxWindow *>::const_iterator it = win->getTransients().begin(); std::list<FluxboxWindow *>::const_iterator it_end = win->getTransients().end(); for (; it != it_end; ++it) { if (!(*it)->isIconic()) { updateNetizenWindowLower((*it)->getClientWindow()); - (*it)->getLayerItem()->lower(); + (*it)->getLayerItem().lower(); } }

@@ -2011,15 +2015,16 @@ }

if (!win->isIconic()) { updateNetizenWindowRaise(win->getClientWindow()); - m_layermanager->raise(*win->getLayerItem()); + win->getLayerItem().raise(); win->setLayerNum(win->getLayerNum()-1); } + std::list<FluxboxWindow *>::const_iterator it = win->getTransients().begin(); std::list<FluxboxWindow *>::const_iterator it_end = win->getTransients().end(); for (; it != it_end; ++it) { if (!(*it)->isIconic()) { updateNetizenWindowRaise((*it)->getClientWindow()); - m_layermanager->raise(*(*it)->getLayerItem()); + (*it)->getLayerItem().raise(); (*it)->setLayerNum((*it)->getLayerNum()-1); } }

@@ -2037,7 +2042,7 @@ win = bottom;

if (!win->isIconic()) { updateNetizenWindowLower(win->getClientWindow()); - m_layermanager->lower(*win->getLayerItem()); + win->getLayerItem().lower(); win->setLayerNum(win->getLayerNum()+1); } std::list<FluxboxWindow *>::const_iterator it = win->getTransients().begin();

@@ -2045,7 +2050,7 @@ std::list<FluxboxWindow *>::const_iterator it_end = win->getTransients().end();

for (; it != it_end; ++it) { if (!(*it)->isIconic()) { updateNetizenWindowLower((*it)->getClientWindow()); - m_layermanager->lower(*(*it)->getLayerItem()); + (*it)->getLayerItem().lower(); (*it)->setLayerNum((*it)->getLayerNum()+1); } }

@@ -2067,7 +2072,8 @@ }

if (!win->isIconic()) { updateNetizenWindowRaise(win->getClientWindow()); - m_layermanager->moveToLayer(*win->getLayerItem(),layernum); + //!! TODO + //anager->moveToLayer(*win->getLayerItem(),layernum); win->setLayerNum(layernum); } std::list<FluxboxWindow *>::const_iterator it = win->getTransients().begin();

@@ -2075,7 +2081,8 @@ std::list<FluxboxWindow *>::const_iterator it_end = win->getTransients().end();

for (; it != it_end; ++it) { if (!(*it)->isIconic()) { updateNetizenWindowRaise((*it)->getClientWindow()); - m_layermanager->moveToLayer(*(*it)->getLayerItem(), layernum); + //!! TODO + //m_layermanager->moveToLayer(*(*it)->getLayerItem(), layernum); (*it)->setLayerNum(layernum); } }
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.113 2003/02/02 16:32:39 rathnor Exp $ +// $Id: Window.cc,v 1.114 2003/02/03 13:55:08 fluxgen Exp $ #include "Window.hh"

@@ -95,8 +95,10 @@ }

}; -FluxboxWindow::FluxboxWindow(Window w, BScreen *s, int screen_num, FbTk::ImageControl &imgctrl, FbWinFrameTheme &tm, - FbTk::MenuTheme &menutheme): +FluxboxWindow::FluxboxWindow(Window w, BScreen *s, int screen_num, + FbTk::ImageControl &imgctrl, FbWinFrameTheme &tm, + FbTk::MenuTheme &menutheme, + FbTk::XLayer &layer): m_hintsig(*this), m_statesig(*this), m_layersig(*this),

@@ -110,11 +112,13 @@ timer(this),

display(0), lastButtonPressTime(0), m_windowmenu(menutheme, screen_num, imgctrl), - m_layeritem(0), + m_layeritem(getFrameWindow(), layer), m_layernum(4), old_decoration(DECOR_NORMAL), tab(0), m_frame(tm, imgctrl, screen_num, 0, 0, 100, 100) { + + // redirect events from frame to us m_frame.setEventHandler(*this);

@@ -252,7 +256,7 @@ grabButtons();

positionWindows(); - m_layeritem = new FbTk::XLayerItem(getFrameWindow()); + if (workspace_number < 0 || workspace_number >= screen->getCount()) workspace_number = screen->getCurrentWorkspaceID();

@@ -357,15 +361,6 @@ }

if (client.window) fluxbox->removeWindowSearch(client.window); - - if (m_layeritem) { - m_layeritem->removeWindow(getFrameWindow()); - //if (hasTab()) - // m_layeritem->removeWindow(get tab window) - if (m_layeritem->isEmpty()) { - screen->removeLayerItem(m_layeritem); - } - } #ifdef DEBUG cerr<<__FILE__<<"("<<__LINE__<<"): ~FluxboxWindow("<<this<<")"<<endl;
M src/Workspace.ccsrc/Workspace.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: Workspace.cc,v 1.44 2003/02/02 16:32:40 rathnor Exp $ +// $Id: Workspace.cc,v 1.45 2003/02/03 13:56:12 fluxgen Exp $ #include "Workspace.hh"

@@ -175,7 +175,7 @@

// this bit is pretty dodgy at present // it gets the next item down, then scans through our windowlist to see if it is // in this workspace. If not, goes down more - FbTk::XLayerItem *item = 0, *lastitem = w->getLayerItem(); + /* //!! TODO! FbTk::XLayerItem *item = 0, *lastitem = w->getLayerItem(); do { item = m_layermanager.getItemBelow(*lastitem); Windows::iterator it = m_windowlist.begin();

@@ -208,7 +208,7 @@ lastitem = item;

} while (item && !top); } - + */ if (top == 0|| !top->setInputFocus()) { Fluxbox::instance()->setFocusedWindow(0); // set focused window to none }