diff options
author | Ciaran McCreesh <ciaranm@gentoo.org> | 2004-05-06 17:09:34 +0000 |
---|---|---|
committer | Ciaran McCreesh <ciaranm@gentoo.org> | 2004-05-06 17:09:34 +0000 |
commit | 3ca160620c2a4fcdc7c484915d29a257d5c813b1 (patch) | |
tree | 3606ebddc66ad4ab71ec1e161e54ac9e9290d2d2 /x11-wm/fluxbox | |
parent | Remove explicit S= (Manifest recommit) (diff) | |
download | gentoo-2-3ca160620c2a4fcdc7c484915d29a257d5c813b1.tar.gz gentoo-2-3ca160620c2a4fcdc7c484915d29a257d5c813b1.tar.bz2 gentoo-2-3ca160620c2a4fcdc7c484915d29a257d5c813b1.zip |
cleanup
Diffstat (limited to 'x11-wm/fluxbox')
19 files changed, 13 insertions, 3518 deletions
diff --git a/x11-wm/fluxbox/ChangeLog b/x11-wm/fluxbox/ChangeLog index 852d8dc9e82d..684e8bed28c4 100644 --- a/x11-wm/fluxbox/ChangeLog +++ b/x11-wm/fluxbox/ChangeLog @@ -1,6 +1,18 @@ # ChangeLog for x11-wm/fluxbox # Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/x11-wm/fluxbox/ChangeLog,v 1.102 2004/05/06 16:53:42 geoman Exp $ +# $Header: /var/cvsroot/gentoo-x86/x11-wm/fluxbox/ChangeLog,v 1.103 2004/05/06 17:09:34 ciaranm Exp $ + + 06 May 2004; Ciaran McCreesh <ciaranm@gentoo.org> + -files/fluxbox-0.1.13-Xft2.patch, -files/fluxbox-0.1.13-aa2.patch, + -files/fluxbox-0.1.13-menukey.patch, -files/fluxbox-0.1.13-nls.patch, + -files/fluxbox-0.1.13-openoffice.patch, + -files/fluxbox-0.1.13-remember.patch, -files/fluxbox-0.1.14-gcc33.patch, + -files/fluxbox-0.1.14-ja.patch, -files/fluxbox-0.1.14-menukey.patch, + -files/fluxbox-0.1.14-remember.patch, + -files/fluxbox-0.1.14-toggledecor.patch, -files/fluxbox-vano-gentoo.patch, + -files/0.9.7/01_cache-bugfix.patch, -files/0.9.7/02_iconbar-bugfix.patch, + -fluxbox-0.1.14-r2.ebuild, -fluxbox-0.9.8.ebuild: + Tidy up old versions, clean up unneeded patches 06 May 2004; Stephen P. Becker <geoman@gentoo.org> fluxbox-0.9.8-r1.ebuild: Stable on mips. diff --git a/x11-wm/fluxbox/files/0.9.7/01_cache-bugfix.patch b/x11-wm/fluxbox/files/0.9.7/01_cache-bugfix.patch deleted file mode 100644 index 220773e391d0..000000000000 --- a/x11-wm/fluxbox/files/0.9.7/01_cache-bugfix.patch +++ /dev/null @@ -1,93 +0,0 @@ -Index: src/FbTk/ImageControl.cc -=================================================================== -RCS file: /cvsroot/fluxbox/fluxbox/src/FbTk/ImageControl.cc,v -retrieving revision 1.10 -retrieving revision 1.11 -diff -r1.10 -r1.11 -148a149 -> -170c171 -< Cache tmp; ---- -> /* Cache tmp; -177,182c178,195 -< CacheList::iterator it = cache.find(&tmp); -< if (it == cache.end()) { -< return None; -< } else { -< (*it)->count++; -< return (*it)->pixmap; ---- -> */ -> CacheList::iterator it = cache.begin(); -> CacheList::iterator it_end = cache.end(); -> for (; it != it_end; ++it) { -> if (((*it)->width == width) && -> ((*it)->height == height) && -> ((*it)->texture == text.type()) && -> ((*it)->pixel1 == text.color().pixel())) { -> if (text.type() & FbTk::Texture::GRADIENT) { -> if ((*it)->pixel2 == text.colorTo().pixel()) { -> (*it)->count++; -> return (*it)->pixmap; -> } -> } else { -> (*it)->count++; -> return (*it)->pixmap; -> } -> } -224c237 -< cache.insert(tmp); ---- -> cache.push_back(tmp); -246,247c259 -< -< if (s_timed_cache) ---- -> if (s_timed_cache) { -249,251c261,262 -< else if (! (*it)->count) -< cleanCache(); -< ---- -> return; -> } -253a265,267 -> if ((*it)->count <= 0) -> cleanCache(); -> -364a379 -> std::list<CacheList::iterator> deadlist; -369d383 -< -371,372d384 -< CacheList::iterator tmp_it = it; -< ++tmp_it; -374c386 -< cache.erase(it); ---- -> deadlist.push_back(it); -377,379c389 -< it = tmp_it; -< if (it == it_end) break; -< } ---- -> } -380a391,397 -> -> std::list<CacheList::iterator>::iterator dead_it = deadlist.begin(); -> std::list<CacheList::iterator>::iterator dead_it_end = deadlist.end(); -> for (; dead_it != dead_it_end; ++dead_it) { -> cache.erase(*dead_it); -> } -> -Index: src/FbTk/ImageControl.hh -=================================================================== -RCS file: /cvsroot/fluxbox/fluxbox/src/FbTk/ImageControl.hh,v -retrieving revision 1.8 -retrieving revision 1.9 -diff -r1.8 -r1.9 -130c130 -< typedef std::set<Cache *, ltCacheEntry> CacheList; ---- -> typedef std::list<Cache *> CacheList; diff --git a/x11-wm/fluxbox/files/0.9.7/02_iconbar-bugfix.patch b/x11-wm/fluxbox/files/0.9.7/02_iconbar-bugfix.patch deleted file mode 100644 index 28f053951029..000000000000 --- a/x11-wm/fluxbox/files/0.9.7/02_iconbar-bugfix.patch +++ /dev/null @@ -1,20 +0,0 @@ -Index: src/IconbarTool.cc -=================================================================== -RCS file: /cvsroot/fluxbox/fluxbox/src/IconbarTool.cc,v -retrieving revision 1.26 -diff -r1.26 IconbarTool.cc -383c383 -< void IconbarTool::update(FbTk::Subject *subj) { ---- -> void IconbarTool::update(FbTk::Subject *subj) { -385c385,390 -< if (m_screen.isShuttingdown()) ---- -> if (m_screen.isShuttingdown()) { -> m_screen.clientListSig().detach(this); -> m_screen.iconListSig().detach(this); -> m_screen.currentWorkspaceSig().detach(this); -> if (!m_icon_list.empty()) -> deleteIcons(); -386a392 -> } diff --git a/x11-wm/fluxbox/files/digest-fluxbox-0.1.14-r2 b/x11-wm/fluxbox/files/digest-fluxbox-0.1.14-r2 deleted file mode 100644 index 05ff01a8d2ea..000000000000 --- a/x11-wm/fluxbox/files/digest-fluxbox-0.1.14-r2 +++ /dev/null @@ -1 +0,0 @@ -MD5 66b72e10fc595e8531547046ad22f5a1 fluxbox-0.1.14.tar.bz2 375499 diff --git a/x11-wm/fluxbox/files/digest-fluxbox-0.9.8 b/x11-wm/fluxbox/files/digest-fluxbox-0.9.8 deleted file mode 100644 index abcc6ec7c3bb..000000000000 --- a/x11-wm/fluxbox/files/digest-fluxbox-0.9.8 +++ /dev/null @@ -1 +0,0 @@ -MD5 bee6a71fe57be7b31cbcdaf72816130b fluxbox-0.9.8.tar.gz 687539 diff --git a/x11-wm/fluxbox/files/fluxbox-0.1.13-Xft2.patch b/x11-wm/fluxbox/files/fluxbox-0.1.13-Xft2.patch deleted file mode 100644 index ab24a44fd3d4..000000000000 --- a/x11-wm/fluxbox/files/fluxbox-0.1.13-Xft2.patch +++ /dev/null @@ -1,49 +0,0 @@ ---- configure.in.orig 2002-11-18 11:59:23.000000000 +0100 -+++ configure.in 2002-11-20 01:43:36.000000000 +0100 -@@ -235,35 +235,35 @@ - ) - AM_CONDITIONAL(GNOME, test x$GNOME = xtrue) - --AC_MSG_CHECKING([whether to have Xft support]) -+AC_MSG_CHECKING([whether to have Xft2 support]) - AC_ARG_ENABLE( - xft, --[ --enable-xft Xft (antialias) support [default=yes]], -+[ --enable-xft Xft2 (antialias) support [default=yes]], - if test x$enableval = "xyes"; then -- AC_CHECK_LIB(Xft, XftFontOpen, -- LIBS="$LIBS -lXft" -+ AC_CHECK_LIB(Xft2, XftFontOpen, -+ LIBS="$LIBS -lXft2" - XFT=true - AC_DEFINE(USE_XFT, 1, "antialias support"), - AC_MSG_RESULT([no]) - XFT=false - ) -- AC_CHECK_LIB(Xft, XftDrawStringUtf8, -- LIBS="$LIBS -lXft" -- AC_DEFINE(HAVE_XFT_UTF8_STRING, 1, "Xft UTF8 support"), -+ AC_CHECK_LIB(Xft2, XftDrawStringUtf8, -+ LIBS="$LIBS -lXft2" -+ AC_DEFINE(HAVE_XFT_UTF8_STRING, 1, "Xft2 UTF8 support"), - ) - else - AC_MSG_RESULT([no]) - XFT=false - fi, -- AC_CHECK_LIB(Xft, XftFontOpen, -- LIBS="$LIBS -lXft" -+ AC_CHECK_LIB(Xft2, XftFontOpen, -+ LIBS="$LIBS -lXft2" - XFT=true - AC_DEFINE(USE_XFT, 1, "antialias support"), - AC_MSG_RESULT([no]) - XFT=false - ) -- AC_CHECK_LIB(Xft, XftDrawStringUtf8, -- LIBS="$LIBS -lXft" -+ AC_CHECK_LIB(Xft2, XftDrawStringUtf8, -+ LIBS="$LIBS -lXft2" - AC_DEFINE(HAVE_XFT_UTF8_STRING, 1, "Xft UTF8 support"), - ) - ) diff --git a/x11-wm/fluxbox/files/fluxbox-0.1.13-aa2.patch b/x11-wm/fluxbox/files/fluxbox-0.1.13-aa2.patch deleted file mode 100644 index 69273fbc0e63..000000000000 --- a/x11-wm/fluxbox/files/fluxbox-0.1.13-aa2.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff -Naur fluxbox-0.1.13/src/Font.cc fluxbox/src/Font.cc
---- fluxbox-0.1.13/src/Font.cc Sat Oct 26 07:07:07 2002
-+++ fluxbox/src/Font.cc Sun Nov 24 15:52:42 2002
-@@ -139,14 +139,8 @@
- bool Font::load(const char *name) {
- if (name == 0)
- return false;
-- bool ret_val = m_fontimp->load(name);
-- if (ret_val && name == 0) { //prevent from having a bad fontimp
-- m_fontstr = name; // if the load really succeded then set font string
-- } else {
-- m_fontstr = "";
-- }
--
-- return ret_val;
-+ m_fontstr = name;
-+ return m_fontimp->load(name);
- }
-
- unsigned int Font::textWidth(const char * const text, unsigned int size) const {
-diff -Naur fluxbox-0.1.13/src/Screen.cc fluxbox/src/Screen.cc
---- fluxbox-0.1.13/src/Screen.cc Sun Nov 17 22:27:50 2002
-+++ fluxbox/src/Screen.cc Sun Nov 24 15:51:52 2002
-@@ -284,7 +284,7 @@
- image_control->setDither(*resource.image_dither);
- theme = new Theme(getBaseDisplay()->getXDisplay(), getRootWindow(), colormap(), getScreenNumber(),
- image_control, fluxbox->getStyleFilename(), getRootCommand().c_str());
--
-+ theme->reconfigure(*resource.antialias);
-
- const char *s = i18n->getMessage(
- FBNLS::ScreenSet, FBNLS::ScreenPositionLength,
-@@ -447,7 +447,6 @@
-
- XFree(children);
- XFlush(getBaseDisplay()->getXDisplay());
-- theme->reconfigure(*resource.antialias);
- }
-
- namespace {
diff --git a/x11-wm/fluxbox/files/fluxbox-0.1.13-menukey.patch b/x11-wm/fluxbox/files/fluxbox-0.1.13-menukey.patch deleted file mode 100644 index 4917879ee144..000000000000 --- a/x11-wm/fluxbox/files/fluxbox-0.1.13-menukey.patch +++ /dev/null @@ -1,222 +0,0 @@ -diff -uNr fluxbox-0.1.13-orig/src/Basemenu.cc fluxbox-0.1.13/src/Basemenu.cc ---- fluxbox-0.1.13-orig/src/Basemenu.cc 2002-11-15 23:24:59.000000000 +0900 -+++ fluxbox-0.1.13/src/Basemenu.cc 2002-11-20 14:11:11.000000000 +0900 -@@ -136,6 +136,8 @@ - m_screen->getDepth(), InputOutput, - m_screen->getVisual(), attrib_mask, &attrib); - m_fluxbox->saveMenuSearch(menu.frame, this); -+ -+ menu.highlighted = -1; - - } - -@@ -428,6 +430,7 @@ - - torn = visible = false; - which_sub = which_press = which_sub = -1; -+ menu.highlighted = -1; - - XUnmapWindow(m_display, menu.window); - } -@@ -759,6 +762,11 @@ - break; - } - } -+ if (highlight) { -+ if (menu.highlighted != (int)index) -+ drawItem(menu.highlighted, False, True); -+ menu.highlighted = index; -+ } - } - - -@@ -1078,3 +1086,41 @@ - menu.bevel_w = m_screen->getBevelWidth(); - update(); - } -+ -+void Basemenu::highlightNextItem() { -+ if (menu.highlighted >= 0) -+ drawItem(menu.highlighted, False, True); -+ -+ menu.highlighted++; -+ if (menu.highlighted >= (int)menuitems.size()) -+ menu.highlighted = 0; -+ -+ drawItem(menu.highlighted, True); -+} -+ -+void Basemenu::highlightPrevItem() { -+ if (menu.highlighted >= 0) -+ drawItem(menu.highlighted, False, True); -+ -+ menu.highlighted--; -+ if (menu.highlighted < 0) -+ menu.highlighted = menuitems.size() - 1; -+ -+ drawItem(menu.highlighted, True); -+} -+ -+void Basemenu::selectMenuItem() { -+ if (menu.highlighted >= 0) -+ itemSelected(1, menu.highlighted); -+} -+ -+void Basemenu::openSubmenu() { -+ if (menu.highlighted >= 0) -+ if (hasSubmenu(menu.highlighted)) { -+ drawSubmenu(menu.highlighted); -+ } -+} -+ -+void Basemenu::closeMenu() { -+ internal_hide(); -+} -diff -uNr fluxbox-0.1.13-orig/src/Basemenu.hh fluxbox-0.1.13/src/Basemenu.hh ---- fluxbox-0.1.13-orig/src/Basemenu.hh 2002-11-04 03:45:30.000000000 +0900 -+++ fluxbox-0.1.13/src/Basemenu.hh 2002-11-20 14:11:11.000000000 +0900 -@@ -88,6 +88,11 @@ - virtual void drawSubmenu(unsigned int index); - virtual void show(); - virtual void hide(); -+ virtual void highlightNextItem(); -+ virtual void highlightPrevItem(); -+ virtual void selectMenuItem(); -+ virtual void openSubmenu(); -+ virtual void closeMenu(); - /*@}*/ - - /** -@@ -153,6 +158,7 @@ - grab_x, grab_y; - unsigned int width, height, title_h, frame_h, item_w, item_h, bevel_w, - bevel_h; -+ int highlighted; - } menu; - - }; -diff -uNr fluxbox-0.1.13-orig/src/Keys.cc fluxbox-0.1.13/src/Keys.cc ---- fluxbox-0.1.13-orig/src/Keys.cc 2002-11-13 23:34:24.000000000 +0900 -+++ fluxbox-0.1.13/src/Keys.cc 2002-11-20 14:11:11.000000000 +0900 -@@ -122,6 +122,12 @@ - {"ToggleDecor", TOGGLEDECOR}, - {"ToggleTab", TOGGLETAB}, - {"RootMenu", ROOTMENU}, -+ {"WindowMenu", WINDOWMENU}, -+ {"NextMenuItem", NEXTMENUITEM}, -+ {"PrevMenuItem", PREVMENUITEM}, -+ {"SelectMenuItem", SELECTMENUITEM}, -+ {"OpenSubmenu", OPENSUBMENU}, -+ {"CloseMenu", CLOSEMENU}, - {0, LASTKEYGRAB} - }; - -diff -uNr fluxbox-0.1.13-orig/src/Keys.hh fluxbox-0.1.13/src/Keys.hh ---- fluxbox-0.1.13-orig/src/Keys.hh 2002-11-13 23:35:01.000000000 +0900 -+++ fluxbox-0.1.13/src/Keys.hh 2002-11-20 14:11:11.000000000 +0900 -@@ -59,6 +59,10 @@ - TOGGLEDECOR,// toggle visibility of decor (title, frame, handles) - TOGGLETAB, // toggle visibilty of tab - ROOTMENU, // pop up rootmenu -+ WINDOWMENU, // pop up windowmenu -+ NEXTMENUITEM, PREVMENUITEM, // navigate to next/prev item -+ SELECTMENUITEM, // select current menu item -+ OPENSUBMENU, CLOSEMENU, // open/close (sub)menu - LASTKEYGRAB //mark end of keygrabbs - }; - /** -diff -uNr fluxbox-0.1.13-orig/src/fluxbox.cc fluxbox-0.1.13/src/fluxbox.cc ---- fluxbox-0.1.13-orig/src/fluxbox.cc 2002-11-15 21:19:17.000000000 +0900 -+++ fluxbox-0.1.13/src/fluxbox.cc 2002-11-20 14:11:48.000000000 +0900 -@@ -1391,6 +1391,25 @@ - } - } - break; -+ case Keys::NEXTMENUITEM: -+ case Keys::PREVMENUITEM: -+ case Keys::SELECTMENUITEM: -+ case Keys::OPENSUBMENU: -+ case Keys::CLOSEMENU: -+ { -+ Basemenu *target = 0; -+ std::map<Window, Basemenu *>::iterator it = menuSearch.begin(); -+ std::map<Window, Basemenu *>::iterator it_end = menuSearch.end(); -+ for (int i = 0; it != it_end; ++it, ++i) { -+ Basemenu *menu = it->second; -+ if (menu != target && menu->isVisible() && menu->currentSubmenu() < 0) { -+ target = menu; -+ } -+ } -+ if (target != 0) -+ doMenuAction(target, action); -+ } -+ break; - default: //try to see if its a window action - doWindowAction(action, key->getParam()); - } -@@ -1404,6 +1423,27 @@ - - - } -+void Fluxbox::doMenuAction(Basemenu *target, Keys::KeyAction action) { -+ switch (action) { -+ case Keys::NEXTMENUITEM: -+ target->highlightNextItem(); -+ break; -+ case Keys::PREVMENUITEM: -+ target->highlightPrevItem(); -+ break; -+ case Keys::SELECTMENUITEM: -+ target->selectMenuItem(); -+ break; -+ case Keys::OPENSUBMENU: -+ target->openSubmenu(); -+ break; -+ case Keys::CLOSEMENU: -+ target->closeMenu(); -+ break; -+ default: -+ break; -+ } -+} - void Fluxbox::doWindowAction(Keys::KeyAction action, const int param) { - if (!focused_window) - return; -@@ -1551,6 +1591,26 @@ - case Keys::TOGGLETAB: - focused_window->setTab(!focused_window->hasTab()); - break; -+ case Keys::WINDOWMENU: -+ { -+ Windowmenu *menu = 0; -+ -+ menu = focused_window->getWindowmenu(); -+ if (menu) { -+ int x, y; -+ x = focused_window->getXFrame(); -+ y = focused_window->getYFrame(); -+ focused_window->showMenu(x, y); -+// menu->move(x, y); -+// if (! menu->isVisible()) { -+// menu->show(); -+// XRaiseWindow(getXDisplay(), menu->windowID()); -+// XRaiseWindow(getXDisplay(), menu->getSendToMenu()->windowID()); -+// XRaiseWindow(getXDisplay(), menu->getSendGroupToMenu()->windowID()); -+// } -+ } -+ } -+ break; - default: //do nothing - break; - } -diff -uNr fluxbox-0.1.13-orig/src/fluxbox.hh fluxbox-0.1.13/src/fluxbox.hh ---- fluxbox-0.1.13-orig/src/fluxbox.hh 2002-10-24 06:47:59.000000000 +0900 -+++ fluxbox-0.1.13/src/fluxbox.hh 2002-11-20 14:11:11.000000000 +0900 -@@ -221,6 +221,7 @@ - void handleClientMessage(XClientMessageEvent &ce); - void handleKeyEvent(XKeyEvent &ke); - void doWindowAction(Keys::KeyAction action, const int param); -+ void doMenuAction(Basemenu *menu, Keys::KeyAction action); - - ResourceManager m_resourcemanager, m_screen_rm; - diff --git a/x11-wm/fluxbox/files/fluxbox-0.1.13-nls.patch b/x11-wm/fluxbox/files/fluxbox-0.1.13-nls.patch deleted file mode 100644 index 5fa5ccf0f330..000000000000 --- a/x11-wm/fluxbox/files/fluxbox-0.1.13-nls.patch +++ /dev/null @@ -1,22 +0,0 @@ -$OpenBSD: patch-configure_in,v 1.1 2002/11/21 14:56:31 brad Exp $ ---- configure.in.orig Mon Nov 18 05:59:23 2002 -+++ configure.in Wed Nov 20 19:35:23 2002 -@@ -171,10 +171,12 @@ AC_ARG_ENABLE(nls, - if test x$enableval = "xyes"; then - AC_MSG_RESULT([yes]) - AC_DEFINE(NLS, 1, "Natural language support") -+ NLS="-DNLS" - else - AC_MSG_RESULT([no]) - fi, - AC_MSG_RESULT([yes]) -+ NLS="-DNLS" - AC_DEFINE(NLS, 1, "Natural language support") - ) - -@@ -184,6 +186,8 @@ AC_CHECK_PROGS(gencat_cmd, gencat) - if test x$gencat_cmd = "x"; then - NLS="" - fi -+ -+AC_SUBST(NLS) diff --git a/x11-wm/fluxbox/files/fluxbox-0.1.13-openoffice.patch b/x11-wm/fluxbox/files/fluxbox-0.1.13-openoffice.patch deleted file mode 100644 index 649220dbe2ab..000000000000 --- a/x11-wm/fluxbox/files/fluxbox-0.1.13-openoffice.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- fluxbox.orig/src/Ewmh.cc Thu Oct 17 22:45:14 2002 -+++ fluxbox.real/src/Ewmh.cc Sun Nov 24 01:54:50 2002 -@@ -329,6 +329,9 @@ - m_net_virtual_roots = XInternAtom(disp, "_NET_VIRTUAL_ROOTS", False); - - m_net_close_window = XInternAtom(disp, "_NET_CLOSE_WINDOW", False); -+ m_net_moveresize_window = XInternAtom(disp, "_NET_MOVERESIZE_WINDOW", False); -+ -+ // TODO: implement this one - m_net_wm_moveresize = XInternAtom(disp, "_NET_WM_MOVERESIZE", False); - - m_net_properties = XInternAtom(disp, "_NET_PROPERTIES", False); diff --git a/x11-wm/fluxbox/files/fluxbox-0.1.13-remember.patch b/x11-wm/fluxbox/files/fluxbox-0.1.13-remember.patch deleted file mode 100644 index 53c95ff9e497..000000000000 --- a/x11-wm/fluxbox/files/fluxbox-0.1.13-remember.patch +++ /dev/null @@ -1,1149 +0,0 @@ -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x configure fluxbox-0.1.13/doc/fluxbox.1.in fluxbox-0.1.13-remember/doc/fluxbox.1.in ---- fluxbox-0.1.13/doc/fluxbox.1.in Sun Sep 22 15:52:11 2002 -+++ fluxbox-0.1.13-remember/doc/fluxbox.1.in Wed Nov 20 12:37:08 2002 -@@ -323,6 +323,9 @@ - An - .B [end] - tag is required to end the submenu. -+.IP -+If you create a submenu labelled 'Startup', applications located in this -+submenu will be launched on fluxbox startup. - .TP - .B [reconfig] (label) - When selected, this item rereads the current style and menu files and -@@ -375,6 +378,12 @@ - [exec] (edit) {mozilla -edit} - [exec] (compose) {mozilla -compose} - [end] -+ [submenu] (Startup) -+ [exec] (gkrellm) {gkrellm -w} -+ [exec] (xmms) {xmms -p} -+ [exec] (galeon) {galeon -s} -+ [exec] (kdeinit) {kdeinit} -+ [end] - [submenu] (Window Manager) - [exec] (Edit Menus) {nedit ~/.fluxbox/menu} - [submenu] (Style) {Which Style?} -@@ -1069,6 +1078,66 @@ - This way the main workspace (screen0) has the maximum amount of space available - and the secondary workspace could show the time and run some withrawn apps like - gkrellm in the slit, always visible yet out of the way of real work. -+.SH APPLICATIONS SETTINGS -+Sometimes, you want to force an application to have always the same dimensions, -+position, and other settings. It is now possible with the new window-submenu -+called 'Remember...'. Settings are saved in the -+.I ~/.fluxbox/apps -+file. You don't have to edit the file yourself as all manipulations can be -+done using the 'Remember...' submenu. -+.TP -+.B Workspace [0-N] -+Force the workspace of the application to be the current one, even if you launch -+the application from another workspace. -+.TP -+.B Dimensions [Width Height] -+Remember the current dimensions. -+.TP -+.B Position [X Y] -+Remember the current position. -+.TP -+.B Shaded state [yes|no] -+Remember the current shaded state. -+.TP -+.B Tab state [yes|no] -+Remember the current tab state. -+.TP -+.B Decoration state [NONE|NORMAL|TOOL|TINY] -+Remember the current decoration state. -+.TP -+.B Sticky state [yes|no] -+Remember the current sticky state. -+.TP -+.B Jump to workspace [yes|no] -+This one is only useful if 'Workspace' is set too. The workspace is changed -+to the workspace containing the application being launched. -+.TP -+.B Save settings on close [yes|no] -+By default, application settings are not saved when a window is closed. Set -+this option if you want previous settings to be saved when the window is closed. -+.SS Applications example -+Here is a short example of an apps file: -+.PP -+.nf -+[app] (kate) -+ [Dimensions] {1022 747} -+ [Position] {0 0} -+ [Close] {yes} -+[end] -+[app] (konqueror) -+ [Workspace] {1} -+ [Dimensions] {1006 749} -+ [Position] {16 0} -+ [Jump] {yes} -+[end] -+[app] (xterm) -+ [Deco] {NONE} -+[end] -+.fi -+ -+Parameters in the 'apps' file are case-sensitive. Application names are taken -+from the first X-Window WM_CLASS attribute. You can see this attribute by using -+the xprop command. Transient windows are not affected by application settings. - .SH ENVIRONMENT - .TP - .B HOME -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x configure fluxbox-0.1.13/nls/C/Windowmenu.m fluxbox-0.1.13-remember/nls/C/Windowmenu.m ---- fluxbox-0.1.13/nls/C/Windowmenu.m Mon Dec 17 20:49:45 2001 -+++ fluxbox-0.1.13-remember/nls/C/Windowmenu.m Wed Nov 20 12:37:08 2002 -@@ -22,3 +22,23 @@ - # Close - $ #Tab - # Tab -+$ #Remember -+# Remember ... -+$ #RememberWorkspace -+# Workspace -+$ #RememberDimensions -+# Dimensions -+$ #RememberPosition -+# Position -+$ #RememberShaded -+# Shaded state -+$ #RememberTab -+# Tab state -+$ #RememberDeco -+# Decoration state -+$ #RememberSticky -+# Sticky state -+$ #RememberJump -+# Jump to Workspace -+$ #RememberSave -+# Save settings on close -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x configure fluxbox-0.1.13/nls/blackbox-nls.hh fluxbox-0.1.13-remember/nls/blackbox-nls.hh ---- fluxbox-0.1.13/nls/blackbox-nls.hh Sun May 19 23:28:36 2002 -+++ fluxbox-0.1.13-remember/nls/blackbox-nls.hh Wed Nov 20 12:37:08 2002 -@@ -124,6 +124,16 @@ - WindowmenuKillClient = 0x9, - WindowmenuClose = 0xa, - WindowmenuTab = 0xb, -+ WindowmenuRemember = 0xc, -+ WindowmenuRememberWorkspace = 0xd, -+ WindowmenuRememberDimensions = 0xe, -+ WindowmenuRememberPosition = 0xf, -+ WindowmenuRememberShaded = 0x10, -+ WindowmenuRememberTab = 0x11, -+ WindowmenuRememberDeco = 0x12, -+ WindowmenuRememberSticky = 0x13, -+ WindowmenuRememberJump = 0x14, -+ WindowmenuRememberSave = 0x15, - - WorkspaceSet = 0xb, - WorkspaceDefaultNameFormat = 0x1, -@@ -176,6 +186,6 @@ - bsetrootMustSpecify = 0x1, - bsetrootUsage = 0x2, - dummy_not_used = 0 //just for the ending --}; //end enum\n --}; //end namespace\n --#endif //BLACKBOX_NLS_HH\n -+}; //end enum -+}; //end namespace -+#endif //BLACKBOX_NLS_HH -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x configure fluxbox-0.1.13/nls/fr_FR/Windowmenu.m fluxbox-0.1.13-remember/nls/fr_FR/Windowmenu.m ---- fluxbox-0.1.13/nls/fr_FR/Windowmenu.m Sat Jan 5 17:23:31 2002 -+++ fluxbox-0.1.13-remember/nls/fr_FR/Windowmenu.m Wed Nov 20 12:37:08 2002 -@@ -22,3 +22,23 @@ - # Fermer - $ #Tab - # Onglet -+$ #Remember -+# Retenir ... -+$ #RememberWorkspace -+# Bureau -+$ #RememberDimensions -+# Dimensions -+$ #RememberPosition -+# Position -+$ #RememberShaded -+# Etat ombré -+$ #RememberTab -+# Etat de l'onglet -+$ #RememberDeco -+# Etat des décorations -+$ #RememberSticky -+# Etat collant -+$ #RememberJump -+# Aller au bureau -+$ #RememberSave -+# Sauver les paramètres à la fermeture -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x configure fluxbox-0.1.13/src/Application.cc fluxbox-0.1.13-remember/src/Application.cc ---- fluxbox-0.1.13/src/Application.cc Thu Jan 1 01:00:00 1970 -+++ fluxbox-0.1.13-remember/src/Application.cc Wed Nov 20 12:37:08 2002 -@@ -0,0 +1,227 @@ -+// Application.cc for Fluxbox Window Manager -+// Copyright (c) 2002 Xavier Brouckaert -+// -+// Permission is hereby granted, free of charge, to any person obtaining a -+// copy of this software and associated documentation files (the "Software"), -+// to deal in the Software without restriction, including without limitation -+// the rights to use, copy, modify, merge, publish, distribute, sublicense, -+// and/or sell copies of the Software, and to permit persons to whom the -+// Software is furnished to do so, subject to the following conditions: -+// -+// The above copyright notice and this permission notice shall be included in -+// all copies or substantial portions of the Software. -+// -+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -+// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+// 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. -+ -+//use GNU extensions -+#ifndef _GNU_SOURCE -+#define _GNU_SOURCE -+#endif // _GNU_SOURCE -+ -+#include <iostream> -+#include <string> -+#include <memory> -+#include <sstream> -+#include <fstream> -+#include <stdio.h> -+ -+#include "Application.hh" -+#include "fluxbox.hh" -+ -+#ifndef MAXPATHLEN -+#define MAXPATHLEN 255 -+#endif // MAXPATHLEN -+ -+Application::Application() { -+ workspace_remember = -+ dimensions_remember = -+ position_remember = -+ stuckstate_remember = -+ decostate_remember = -+ shadedstate_remember = -+ tabstate_remember = -+ jumpworkspace_remember = -+ save_on_close_remember = false; -+} -+ -+Applications::Applications() { -+ load(); -+} -+ -+Application* Applications::add(char* app_name) { -+ if (!app_name) -+ return NULL; -+ Application* a = new Application(); -+ apps[app_name] = a; -+ return a; -+} -+ -+Application* Applications::find(char* app_name) { -+ if (!app_name) -+ return NULL; -+ Apps::iterator i = apps.find(app_name); -+ if (i!=apps.end()) -+ return i->second; -+ else -+ return NULL; -+} -+ -+void Applications::parseApp(ifstream &file, Application *a) { -+ string line; -+ -+ while (! file.eof()) { -+ if (getline(file, line)) { -+ if (line[0] != '#') { //the line is commented -+ int parse_pos = 0, err = 0; -+ std::string str_key, str_label; -+ err = StringUtil::getStringBetween(str_key, line.c_str(), '[', ']'); -+ if (err > 0 ) { -+ parse_pos += err; -+ err = StringUtil::getStringBetween(str_label, line.c_str() + parse_pos, '{', '}'); -+ if (err>0) { -+ parse_pos += err; -+ } -+ } else -+ continue; //read next line -+ if (!str_key.size()) -+ continue; //read next line -+ if (str_key == "Workspace") { -+ unsigned int w; -+ istringstream iss(str_label.c_str()); -+ iss >> w; -+ a->rememberWorkspace(w); -+ } else if (str_key == "Dimensions") { -+ unsigned int h,w; -+ istringstream iss(str_label.c_str()); -+ iss >> w >> h; -+ a->rememberDimensions(w,h); -+ } else if (str_key == "Position") { -+ unsigned int x,y; -+ istringstream iss(str_label); -+ iss >> x >> y; -+ a->rememberPosition(x,y); -+ } else if (str_key == "Shaded") { -+ a->rememberShadedstate((str_label=="yes")); -+ } else if (str_key == "Tab") { -+ a->rememberTabstate((str_label=="yes")); -+ } else if (str_key == "Deco") { -+ if (str_label == "NONE") { -+ a->rememberDecostate(FluxboxWindow::DECOR_NONE); -+ } else if (str_label == "NORMAL") { -+ a->rememberDecostate(FluxboxWindow::DECOR_NORMAL); -+ } else if (str_label == "TINY") { -+ a->rememberDecostate(FluxboxWindow::DECOR_TINY); -+ } else if (str_label == "TOOL") { -+ a->rememberDecostate(FluxboxWindow::DECOR_TOOL); -+ } -+ } else if (str_key == "Sticky") { -+ a->rememberStuckstate((str_label=="yes")); -+ } else if (str_key == "Jump") { -+ a->rememberJumpworkspace((str_label=="yes")); -+ } else if (str_key == "Close") { -+ a->rememberSave((str_label=="yes")); -+ } else if (str_key == "end") { -+ return; -+ } else { -+ cerr << "Unsupported apps key = " << str_key << endl; -+ } -+ } -+ } -+ } -+} -+ -+void Applications::load() { -+ cerr << "Loading apps file..." << endl; -+ string apps_string = getenv("HOME")+string("/.")+RC_PATH+string("/")+"apps"; -+ ifstream apps_file(apps_string.c_str()); -+ if (!apps_file.fail()) { -+ if (!apps_file.eof()) { -+ string line; -+ int row = 0; -+ while (getline(apps_file, line) && ! apps_file.eof()) { -+ row++; -+ if (line[0] != '#') { -+ string key; -+ int pos=0; -+ int err = StringUtil::getStringBetween(key, line.c_str(), '[', ']'); -+ -+ if (key == "app") { -+ pos += err; -+ string label; -+ err = StringUtil::getStringBetween(label, line.c_str()+pos, '(', ')'); -+ if (err>0) { -+ Application *a; -+ Apps::iterator i = apps.find(label); -+ if (i==apps.end()) { -+ a = new Application(); -+ apps[label] = a; -+ } else -+ a = i->second; -+ parseApp(apps_file, a); -+ } else -+ cerr<<"Error in apps file. Line("<<row<<")"<<endl; -+ } -+ } -+ } -+ } else { -+ cerr<<__FILE__<<"("<<__LINE__<< "Empty apps file" << endl; -+ } -+ } else { -+ cerr << "apps file failure" << endl; -+ } -+} -+ -+void Applications::save() { -+ cerr << "Saving apps file..." << endl; -+ string apps_string = getenv("HOME")+string("/.")+RC_PATH+string("/")+"apps"; -+ ofstream apps_file(apps_string.c_str()); -+ Apps::iterator it = apps.begin(); -+ Apps::iterator it_end = apps.end(); -+ for (; it != it_end; ++it) { -+ apps_file << "[app] (" << it->first << ")" << endl; -+ Application *a = it->second; -+ if (a->workspace_remember) { -+ apps_file << " [Workspace]\t{" << a->workspace << "}" << endl; -+ } -+ if (a->dimensions_remember) { -+ apps_file << " [Dimensions]\t{" << a->w << " " << a->h << "}" << endl; -+ } -+ if (a->position_remember) { -+ apps_file << " [Position]\t{" << a->x << " " << a->y << "}" << endl; -+ } -+ if (a->shadedstate_remember) { -+ apps_file << " [Shaded]\t{" << ((a->shadedstate)?"yes":"no") << "}" << endl; -+ } -+ if (a->tabstate_remember) { -+ apps_file << " [Tab]\t\t{" << ((a->tabstate)?"yes":"no") << "}" << endl; -+ } -+ if (a->decostate_remember) { -+ switch (a->decostate) { -+ case (FluxboxWindow::DECOR_NONE) : -+ apps_file << " [Deco]\t{NONE}" << endl; break; -+ case (FluxboxWindow::DECOR_NORMAL) : -+ apps_file << " [Deco]\t{NORMAL}" << endl; break; -+ case (FluxboxWindow::DECOR_TINY) : -+ apps_file << " [Deco]\t{TINY}" << endl; break; -+ case (FluxboxWindow::DECOR_TOOL) : -+ apps_file << " [Deco]\t{TOOL}" << endl; break; -+ } -+ } -+ if (a->stuckstate_remember) { -+ apps_file << " [Sticky]\t{" << ((a->stuckstate)?"yes":"no") << "}" << endl; -+ } -+ if (a->jumpworkspace_remember) { -+ apps_file << " [Jump]\t{" << ((a->jumpworkspace)?"yes":"no") << "}" << endl; -+ } -+ if (a->save_on_close_remember) { -+ apps_file << " [Close]\t{" << ((a->save_on_close)?"yes":"no") << "}" << endl; -+ } -+ apps_file << "[end]" << endl; -+ } -+} -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x configure fluxbox-0.1.13/src/Application.hh fluxbox-0.1.13-remember/src/Application.hh ---- fluxbox-0.1.13/src/Application.hh Thu Jan 1 01:00:00 1970 -+++ fluxbox-0.1.13-remember/src/Application.hh Wed Nov 20 12:37:08 2002 -@@ -0,0 +1,103 @@ -+// Application.hh for Fluxbox Window Manager -+// Copyright (c) 2002 Xavier Brouckaert -+// -+// Permission is hereby granted, free of charge, to any person obtaining a -+// copy of this software and associated documentation files (the "Software"), -+// to deal in the Software without restriction, including without limitation -+// the rights to use, copy, modify, merge, publish, distribute, sublicense, -+// and/or sell copies of the Software, and to permit persons to whom the -+// Software is furnished to do so, subject to the following conditions: -+// -+// The above copyright notice and this permission notice shall be included in -+// all copies or substantial portions of the Software. -+// -+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -+// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+// 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. -+ -+#ifndef APPLICATION_HH -+#define APPLICATION_HH -+ -+#include <iostream> -+#include <fstream> -+#include <string> -+#include <map> -+#include "Window.hh" -+#include "StringUtil.hh" -+ -+using namespace std; -+ -+class Application { -+public: -+ Application(); -+ inline void forgetWorkspace() { workspace_remember = false; } -+ inline void forgetDimensions() { dimensions_remember = false; } -+ inline void forgetPosition() { position_remember = false; } -+ inline void forgetShadedstate() { shadedstate_remember = false; } -+ inline void forgetTabstate() { tabstate_remember = false; } -+ inline void forgetDecostate() { decostate_remember = false; } -+ inline void forgetStuckstate() { stuckstate_remember = false; } -+ inline void forgetJumpworkspace() { jumpworkspace_remember = false; } -+ inline void forgetSave() { save_on_close_remember = false; } -+ -+ inline void rememberWorkspace(int ws) { workspace = ws; workspace_remember = true; } -+ inline void rememberDimensions(int width, int height) { w = width; h = height; dimensions_remember = true; } -+ inline void rememberPosition(int posx, int posy) { x = posx; y = posy; position_remember = true; } -+ inline void rememberShadedstate(bool state) { shadedstate = state; shadedstate_remember = true; } -+ inline void rememberTabstate(bool state) { tabstate = state; tabstate_remember = true; } -+ inline void rememberDecostate(FluxboxWindow::Decoration state) { decostate = state; decostate_remember = true; } -+ inline void rememberStuckstate(bool state) { stuckstate = state; stuckstate_remember = true; } -+ inline void rememberJumpworkspace(bool state) { jumpworkspace = state; jumpworkspace_remember = true; } -+ inline void rememberSave(bool state) { save_on_close = state; save_on_close_remember = true; } -+ -+ -+ bool workspace_remember; -+ unsigned int workspace; -+ -+ bool dimensions_remember; -+ int w,h; // width, height -+ -+ bool position_remember; -+ int x,y; -+ -+ bool shadedstate_remember; -+ bool shadedstate; -+ -+ bool tabstate_remember; -+ bool tabstate; -+ -+ bool decostate_remember; -+ FluxboxWindow::Decoration decostate; -+ -+ bool stuckstate_remember; -+ bool stuckstate; -+ -+ bool jumpworkspace_remember; -+ bool jumpworkspace; -+ -+ bool save_on_close_remember; -+ bool save_on_close; -+}; -+ -+typedef std::map<string,Application *> Apps; -+ -+class Applications { -+private: -+ void parseApp(ifstream &file, Application *a); -+ Apps apps; -+ -+public: -+ Applications(); -+ -+ Application* find(char* app_name); -+ Application* add(char* app_name); -+ -+ void load(); -+ void save(); -+}; -+ -+#endif -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x configure fluxbox-0.1.13/src/Basemenu.hh fluxbox-0.1.13-remember/src/Basemenu.hh ---- fluxbox-0.1.13/src/Basemenu.hh Sun Nov 3 19:45:30 2002 -+++ fluxbox-0.1.13-remember/src/Basemenu.hh Wed Nov 20 12:37:08 2002 -@@ -110,6 +110,8 @@ - bool hasSubmenu(unsigned int index) const; - bool isItemSelected(unsigned int index) const; - bool isItemEnabled(unsigned int index) const; -+ typedef std::vector<BasemenuItem *> Menuitems; -+ inline Menuitems *getMenuitems() { return &menuitems; } - //@} - - protected: -@@ -130,7 +132,7 @@ - - private: - -- typedef std::vector<BasemenuItem *> Menuitems; -+// typedef std::vector<BasemenuItem *> Menuitems; - Fluxbox *m_fluxbox; //< fluxbox object, obsolete - BScreen *m_screen; - Display *m_display; -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x configure fluxbox-0.1.13/src/Makefile.am fluxbox-0.1.13-remember/src/Makefile.am ---- fluxbox-0.1.13/src/Makefile.am Tue Nov 12 14:39:51 2002 -+++ fluxbox-0.1.13-remember/src/Makefile.am Wed Nov 20 12:52:38 2002 -@@ -50,7 +50,8 @@ - xmb_SOURCE= XmbFontImp.hh XmbFontImp.cc - endif - --fluxbox_SOURCES = BaseDisplay.cc BaseDisplay.hh Basemenu.cc Basemenu.hh \ -+fluxbox_SOURCES = Application.cc Application.hh \ -+ BaseDisplay.cc BaseDisplay.hh Basemenu.cc Basemenu.hh \ - Clientmenu.cc Clientmenu.hh Configmenu.cc Configmenu.hh \ - Iconmenu.cc Iconmenu.hh Image.cc Image.hh \ - Netizen.cc Netizen.hh Rootmenu.cc Rootmenu.hh Screen.cc Screen.hh\ -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x configure fluxbox-0.1.13/src/Rootmenu.cc fluxbox-0.1.13-remember/src/Rootmenu.cc ---- fluxbox-0.1.13/src/Rootmenu.cc Thu Nov 14 11:19:24 2002 -+++ fluxbox-0.1.13-remember/src/Rootmenu.cc Wed Nov 20 12:37:08 2002 -@@ -155,4 +155,14 @@ - return w; - } - -+Basemenu* Rootmenu::getStartupMenu() { -+ for (unsigned int i=0;i<numberOfItems();i++) { -+ BasemenuItem *item = find(i); -+ if (item->label()=="Startup") { -+ return item->submenu(); -+ } -+ } -+ return NULL; -+} -+ - -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x configure fluxbox-0.1.13/src/Rootmenu.hh fluxbox-0.1.13-remember/src/Rootmenu.hh ---- fluxbox-0.1.13/src/Rootmenu.hh Thu Nov 14 11:15:49 2002 -+++ fluxbox-0.1.13-remember/src/Rootmenu.hh Wed Nov 20 12:37:08 2002 -@@ -32,6 +32,7 @@ - explicit Rootmenu(BScreen *scr); - void setAutoGroupWindow(Window window); - void show(); -+ Basemenu* getStartupMenu(); - - protected: - virtual void itemSelected(int button, unsigned int index); -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x configure fluxbox-0.1.13/src/Screen.cc fluxbox-0.1.13-remember/src/Screen.cc ---- fluxbox-0.1.13/src/Screen.cc Sun Nov 17 12:27:50 2002 -+++ fluxbox-0.1.13-remember/src/Screen.cc Wed Nov 20 12:37:08 2002 -@@ -280,6 +280,7 @@ - root_colormap_installed = true; - - fluxbox->load_rc(this); -+ fluxbox->getApplications()->load(); - - image_control->setDither(*resource.image_dither); - theme = new Theme(getBaseDisplay()->getXDisplay(), getRootWindow(), colormap(), getScreenNumber(), -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x configure fluxbox-0.1.13/src/Window.cc fluxbox-0.1.13-remember/src/Window.cc ---- fluxbox-0.1.13/src/Window.cc Sun Nov 17 14:19:01 2002 -+++ fluxbox-0.1.13-remember/src/Window.cc Wed Nov 20 12:37:08 2002 -@@ -34,6 +34,7 @@ - #include "Windowmenu.hh" - #include "StringUtil.hh" - #include "Netizen.hh" -+#include "Application.hh" - - #ifdef HAVE_CONFIG_H - #include "config.h" -@@ -71,6 +72,7 @@ - lastButtonPressTime(0), - m_windowmenu(0), - m_layer(LAYER_NORMAL), -+decor(false), - tab(0) { - - lastFocusTime.tv_sec = lastFocusTime.tv_usec = 0; -@@ -305,11 +307,6 @@ - m_windowmenu = tmp; - } - -- if (workspace_number < 0 || workspace_number >= screen->getCount()) -- screen->getCurrentWorkspace()->addWindow(this, place_window); -- else -- screen->getWorkspace(workspace_number)->addWindow(this, place_window); -- - configure(frame.x, frame.y, frame.width, frame.height); - - if (shaded) { -@@ -335,6 +332,61 @@ - fprintf(stderr, "%s(%d): FluxboxWindow(this=%p)\n", __FILE__, __LINE__, this); - #endif // DEBUG - -+ char *app_name = getWMClass(); -+ bool workspace_set = false; -+ if ((app_name) && (!checkTransient2())) { -+ Application* a = Fluxbox::instance()->getApplications()->find(app_name); -+ if (a) { // Information exists about this application -+ if (a->workspace_remember) { -+ screen->getWorkspace(a->workspace)->addWindow(this, place_window); -+ workspace_set = true; -+ if ((a->jumpworkspace_remember) && (a->jumpworkspace)) { -+ screen->changeWorkspaceID(a->workspace); -+ } else { -+ if ((screen->getCurrentWorkspaceID() != a->workspace) && (tab)) -+ tab->withdraw(); -+ } -+ } -+ if (a->dimensions_remember) { -+ place_window = false; -+ configure(frame.x, frame.y, a->w, a->h); -+ } -+ if (a->position_remember) { -+ place_window = false; -+ configure(a->x, a->y, frame.width, frame.height); -+ } -+ if (a->shadedstate_remember) { -+ if (a->shadedstate) { -+ shade(); -+ if (tab) -+ tab->shade(); -+ } else { -+ // Do nothing by now : default is not shaded -+ } -+ } -+ if (a->tabstate_remember) { -+ setTab(a->tabstate); -+ } -+ if (a->decostate_remember) { -+ setDecoration(a->decostate); -+ } -+ if (a->stuckstate_remember) { -+ if (a->stuckstate) -+ stick(); -+ // FIXME: unstick() has been defined in -+ // Window.hh but not implemented !!! -+ // else -+ // unstick(); -+ } -+ } -+ } -+ if (!workspace_set) { -+ if (workspace_number < 0 || workspace_number >= screen->getCount()) -+ screen->getCurrentWorkspace()->addWindow(this, place_window); -+ else -+ screen->getWorkspace(workspace_number)->addWindow(this, place_window); -+ } -+ - fluxbox->ungrab(); - } - -@@ -1067,6 +1119,17 @@ - tab->setPosition(); - } - -+char* FluxboxWindow::getWMClass(void) { -+ XClassHint xch; -+ -+ if (XGetClassHint(display, client.window, &xch)) { -+ char *app_name = StringUtil::strdup(xch.res_name); -+ XFree((char *)xch.res_name); -+ XFree((char *)xch.res_class); -+ return app_name; -+ } else -+ return NULL; -+} - - void FluxboxWindow::getWMName() { - -@@ -1640,8 +1703,35 @@ - } - } - -+void FluxboxWindow::save_on_close() { -+ Fluxbox *fluxbox = Fluxbox::instance(); -+ Applications *apps = fluxbox->getApplications(); -+ Application *a = apps->find(getWMClass()); -+ if (a!=NULL) { -+ if ((a->save_on_close_remember) && (a->save_on_close)) { -+ if (a->workspace_remember) -+ a->rememberWorkspace(screen->getCurrentWorkspaceID()); -+ if (a->dimensions_remember) -+ a->rememberDimensions(getWidth(),getHeight()); -+ if (a->position_remember) -+ a->rememberPosition(getXFrame(),getYFrame()); -+ if (a->shadedstate_remember) -+ a->rememberShadedstate(isShaded()); -+ if (a->shadedstate_remember) -+ a->rememberTabstate(hasTab()); -+ if (a->decostate_remember) -+ a->rememberDecostate(getDecoration()); -+ if (a->stuckstate_remember) -+ a->rememberStuckstate(isStuck()); -+ if (a->jumpworkspace_remember) -+ a->rememberJumpworkspace(true); -+ apps->save(); -+ } -+ } -+} - - void FluxboxWindow::close() { -+ save_on_close(); - Fluxbox *fluxbox = Fluxbox::instance(); - XEvent ce; - ce.xclient.type = ClientMessage; -@@ -2356,7 +2446,8 @@ - m_windowmenu->show(); - m_windowmenu->raise(); - m_windowmenu->getSendToMenu().raise(); -- m_windowmenu->getSendGroupToMenu().raise(); -+ m_windowmenu->getSendGroupToMenu().raise(); -+ m_windowmenu->getRememberMenu().raise(); - } - - void FluxboxWindow::restoreGravity() { -@@ -3175,7 +3266,6 @@ - } - - void FluxboxWindow::toggleDecoration() { -- static bool decor = false; - //don't toggle decor if the window is shaded - if (isShaded()) - return; -@@ -3486,6 +3576,17 @@ - frame.handle = 0; - } - -+} -+ -+bool FluxboxWindow::checkTransient2() { -+ Window win; -+ if (XGetTransientForHint(display, client.window, &win)) -+ if (win) -+ return true; -+ else -+ return false; -+ else -+ return false; - } - - void FluxboxWindow::checkTransient() { -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x configure fluxbox-0.1.13/src/Window.hh fluxbox-0.1.13-remember/src/Window.hh ---- fluxbox-0.1.13/src/Window.hh Fri Nov 15 13:14:39 2002 -+++ fluxbox-0.1.13-remember/src/Window.hh Wed Nov 20 12:37:08 2002 -@@ -55,6 +55,8 @@ - class FluxboxWindow : public TimeoutHandler { - public: - -+ char* getWMClass(void); -+ - enum WinLayer { - LAYER_BOTTOM = 0x01, - LAYER_BELOW = 0x02, -@@ -204,6 +206,16 @@ - //@} - - void setDecoration(Decoration decoration); -+ inline Decoration getDecoration() { -+ if (!decor) { -+ #ifdef DEBUG -+ if ((old_decoration!=DECOR_NONE) && (old_decoration!=DECOR_NORMAL) && (old_decoration!=DECOR_TINY) && (old_decoration!=DECOR_TOOL)) -+ cerr<<__FILE__<<"("<<__LINE__<< "DEBUG: old_decoration fucked up" << endl; -+ #endif //DEBUG -+ return old_decoration; -+ } else -+ return DECOR_NONE; -+ } - void toggleDecoration(); - - #ifdef SHAPE -@@ -276,6 +288,8 @@ - - } client; - -+ bool decor; -+ - struct _decorations { - bool titlebar, handle, border, iconify, - maximize, close, menu, sticky, shade, tab; -@@ -333,12 +347,15 @@ - void stopResizing(Window win=0); - void updateIcon(); - -+ void save_on_close(); -+ - // Decoration functions - void createTitlebar(); - void destroyTitlebar(); - void createHandle(); - void destroyHandle(); - void checkTransient(); -+ bool checkTransient2(); - - Window findTitleButton(int type); - -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x configure fluxbox-0.1.13/src/Windowmenu.cc fluxbox-0.1.13-remember/src/Windowmenu.cc ---- fluxbox-0.1.13/src/Windowmenu.cc Thu Oct 24 00:02:13 2002 -+++ fluxbox-0.1.13-remember/src/Windowmenu.cc Wed Nov 20 12:37:08 2002 -@@ -38,6 +38,7 @@ - #include "Window.hh" - #include "Windowmenu.hh" - #include "Workspace.hh" -+#include "Application.hh" - - #include <cstring> - -@@ -45,7 +46,8 @@ - window(win), - screen(win.getScreen()), - sendToMenu(win), --sendGroupToMenu(win) { -+sendGroupToMenu(win), -+rememberMenu(win) { - - setTitleVisibility(False); - setMovable(False); -@@ -63,6 +65,11 @@ - WindowmenuSet, WindowmenuSendGroupTo, - "Send Group To ..."), - &sendGroupToMenu); -+ -+ insert(i18n->getMessage( -+ WindowmenuSet, WindowmenuRemember, -+ "Remember ..."), -+ &rememberMenu); - - insert(i18n->getMessage( - WindowmenuSet, WindowmenuShade, -@@ -199,7 +206,8 @@ - setItemEnabled(10, window.isResizable()); // tab option only enabled if resizable - - sendToMenu.reconfigure(); -- sendGroupToMenu.reconfigure(); -+ sendGroupToMenu.reconfigure(); -+ rememberMenu.reconfigure(); - - Basemenu::reconfigure(); - } -@@ -299,5 +307,135 @@ - hide(); - } - -+Windowmenu::Remembermenu::Remembermenu(FluxboxWindow &win): Basemenu(win.getScreen()), -+m_fbwindow(win) -+{ -+ setTitleVisibility(false); -+ setMovable(false); -+ setInternalMenu(); -+ update(); -+} -+ -+void Windowmenu::Remembermenu::show() { -+ update(); -+ -+ Basemenu::show(); -+} -+ -+void Windowmenu::Remembermenu::itemSelected(int button, unsigned int index) { -+ if (button > 1) { -+ hide(); -+ return; -+ } -+ -+ if (button == 1) { -+ char* app_name = fbwin().getWMClass(); -+ if (app_name) { -+ Applications *apps = Fluxbox::instance()->getApplications(); -+ Application *a = apps->find(app_name); -+ if (a==NULL) -+ a = apps->add(app_name); -+ if (!isItemSelected(index)) { -+ switch (index) { -+ case 0 : // Workspace -+ a->rememberWorkspace(screen()->getCurrentWorkspaceID()); -+ break; -+ case 1 : // Dimensions -+ a->rememberDimensions(fbwin().getWidth(), -+ fbwin().getHeight()); -+ break; -+ case 2 : // Position -+ a->rememberPosition(fbwin().getXFrame(), -+ fbwin().getYFrame()); -+ break; -+ case 3 : // Shaded state -+ a->rememberShadedstate(fbwin().isShaded()); -+ break; -+ case 4 : // Tab state -+ a->rememberTabstate(fbwin().hasTab()); -+ break; -+ case 5 : // Deco state -+ a->rememberDecostate(fbwin().getDecoration()); -+ break; -+ case 6 : // Stuck state -+ a->rememberStuckstate(fbwin().isStuck()); -+ break; -+ case 7 : // Jump to workspace -+ a->rememberJumpworkspace(true); -+ break; -+ case 8 : // Save on close -+ a->rememberSave(true); -+ } -+ } else { -+ switch (index) { -+ case 0 : // Workspace -+ a->forgetWorkspace(); -+ break; -+ case 1 : // Dimensions -+ a->forgetDimensions(); -+ break; -+ case 2 : // Position -+ a->forgetPosition(); -+ break; -+ case 3 : // Shaded state -+ a->forgetShadedstate(); -+ break; -+ case 4 : // Tab state -+ a->forgetTabstate(); -+ break; -+ case 5 : // Deco state -+ a->forgetDecostate(); -+ break; -+ case 6 : // Stuck state -+ a->forgetStuckstate(); -+ break; -+ case 7 : // Jump to workspace -+ a->forgetJumpworkspace(); -+ break; -+ case 8 : // Save on close -+ a->forgetSave(); -+ break; -+ } -+ } -+ setItemSelected(index,!isItemSelected(index)); -+ apps->save(); -+ } -+ } -+ Basemenu::update(); -+} -+ - -+void Windowmenu::Remembermenu::update(void) { -+ if (numberOfItems() == 0) { -+ I18n *i18n = I18n::instance(); -+ using namespace FBNLS; -+ insert(i18n->getMessage(WindowmenuSet, WindowmenuRememberWorkspace, "Workspace")); -+ insert(i18n->getMessage(WindowmenuSet, WindowmenuRememberDimensions, "Dimensions")); -+ insert(i18n->getMessage(WindowmenuSet, WindowmenuRememberPosition, "Position")); -+ insert(i18n->getMessage(WindowmenuSet, WindowmenuRememberShaded, "Shaded state")); -+ insert(i18n->getMessage(WindowmenuSet, WindowmenuRememberTab, "Tab state")); -+ insert(i18n->getMessage(WindowmenuSet, WindowmenuRememberDeco, "Decoration state")); -+ insert(i18n->getMessage(WindowmenuSet, WindowmenuRememberSticky, "Sticky state")); -+ insert(i18n->getMessage(WindowmenuSet, WindowmenuRememberJump, "Jump to Workspace")); -+ insert(i18n->getMessage(WindowmenuSet, WindowmenuRememberSave, "Save settings on close")); -+ -+ // Set Selected when needed -+ char *app_name = fbwin().getWMClass(); -+ if (app_name) { -+ Application *a = Fluxbox::instance()->getApplications()->find(app_name); -+ if (a) { -+ setItemSelected(0,a->workspace_remember); -+ setItemSelected(1,a->dimensions_remember); -+ setItemSelected(2,a->position_remember); -+ setItemSelected(3,a->shadedstate_remember); -+ setItemSelected(4,a->tabstate_remember); -+ setItemSelected(5,a->decostate_remember); -+ setItemSelected(6,a->stuckstate_remember); -+ setItemSelected(7,a->jumpworkspace_remember); -+ setItemSelected(8,a->save_on_close_remember); -+ } -+ } -+ } -+ Basemenu::update(); -+} - -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x configure fluxbox-0.1.13/src/Windowmenu.hh fluxbox-0.1.13-remember/src/Windowmenu.hh ---- fluxbox-0.1.13/src/Windowmenu.hh Wed Oct 23 23:34:46 2002 -+++ fluxbox-0.1.13-remember/src/Windowmenu.hh Wed Nov 20 12:37:08 2002 -@@ -36,6 +36,8 @@ - Basemenu &getSendToMenu() { return sendToMenu; } - const Basemenu &getSendGroupToMenu() const { return sendGroupToMenu; } - Basemenu &getSendGroupToMenu() { return sendGroupToMenu; } -+ const Basemenu &getRememberMenu() const { return rememberMenu; } -+ Basemenu &getRememberMenu() { return rememberMenu; } - - void reconfigure(); - void setClosable(); -@@ -70,11 +72,24 @@ - protected: - virtual void itemSelected(int button, unsigned int index); - -- }; -- -+ }; -+ -+ class Remembermenu : public Basemenu { -+ public: -+ Remembermenu(FluxboxWindow &win); -+ void update(); -+ -+ virtual void show(); -+ FluxboxWindow &fbwin() { return m_fbwindow; } -+ protected: -+ virtual void itemSelected(int button, unsigned int index); -+ private: -+ FluxboxWindow &m_fbwindow; -+ }; -+ - SendtoWorkspacemenu sendToMenu; - SendGroupToWorkspacemenu sendGroupToMenu; -- -+ Remembermenu rememberMenu; - }; - - -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x configure fluxbox-0.1.13/src/fluxbox.cc fluxbox-0.1.13-remember/src/fluxbox.cc ---- fluxbox-0.1.13/src/fluxbox.cc Fri Nov 15 13:19:17 2002 -+++ fluxbox-0.1.13-remember/src/fluxbox.cc Wed Nov 20 12:37:08 2002 -@@ -142,10 +142,6 @@ - - #endif // HAVE_BASENAME - --#define RC_PATH "fluxbox" --#define RC_INIT_FILE "init" -- -- - // X event scanner for enter/leave notifies - adapted from twm - typedef struct scanargs { - Window w; -@@ -2586,4 +2582,38 @@ - if (old_screen && old_screen != screen) - old_screen->updateNetizenWindowFocus(); - -+} -+ -+void Fluxbox::launchStartupProgs(void) { -+ ScreenList::iterator it = screenList.begin(); -+ ScreenList::iterator it_end = screenList.end(); -+ -+ for (; it != it_end; ++it) { -+ BScreen *screen = (*it); -+ Basemenu* startupmenu = screen->getRootmenu()->getStartupMenu(); -+ -+ if (!startupmenu) -+ return; -+ -+ Basemenu::Menuitems* mi = startupmenu->getMenuitems(); -+ Basemenu::Menuitems::iterator mit = mi->begin(); -+ Basemenu::Menuitems::iterator mit_end = mi->end(); -+ for (; mit != mit_end; ++mit) { -+ BasemenuItem *app = (*mit); -+ cerr << app->label() << endl; -+ if (app->exec().size()) { -+#ifndef __EMX__ -+ char displaystring[MAXPATHLEN]; -+ sprintf(displaystring, "DISPLAY=%s", -+ DisplayString(screen->getBaseDisplay()->getXDisplay())); -+ sprintf(displaystring + strlen(displaystring) - 1, "%d", -+ screen->getScreenNumber()); -+ -+ bexec(app->exec().c_str(), displaystring); -+#else // __EMX__ -+ spawnlp(P_NOWAIT, "cmd.exe", "cmd.exe", "/c", app->exec().c_str(), NULL); -+#endif // !__EMX__ -+ } -+ } -+ } - } -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x configure fluxbox-0.1.13/src/fluxbox.hh fluxbox-0.1.13-remember/src/fluxbox.hh ---- fluxbox-0.1.13/src/fluxbox.hh Wed Oct 23 23:47:59 2002 -+++ fluxbox-0.1.13-remember/src/fluxbox.hh Wed Nov 20 12:37:08 2002 -@@ -27,6 +27,7 @@ - #ifndef FLUXBOX_HH - #define FLUXBOX_HH - -+#include "Application.hh" - #include "Resource.hh" - #include "Keys.hh" - #include "BaseDisplay.hh" -@@ -72,6 +73,9 @@ - - class AtomHandler; - -+#define RC_PATH "fluxbox" -+#define RC_INIT_FILE "init" -+ - /** - main class for the window manager. - singleton type -@@ -189,6 +193,9 @@ - - typedef std::vector<Fluxbox::Titlebar> TitlebarList; - -+ inline Applications* getApplications() { return &applications; } -+ void launchStartupProgs(void); -+ - private: - struct cursor { - Cursor session, move, ll_angle, lr_angle; -@@ -204,6 +211,8 @@ - timeval auto_raise_delay; - } resource; - -+ -+ Applications applications; - - std::string getRcFilename(); - void getDefaultDataFilename(char *, std::string &); -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x configure fluxbox-0.1.13/src/main.cc fluxbox-0.1.13-remember/src/main.cc ---- fluxbox-0.1.13/src/main.cc Fri Nov 15 12:46:41 2002 -+++ fluxbox-0.1.13-remember/src/main.cc Wed Nov 20 12:37:08 2002 -@@ -200,6 +200,7 @@ - try { - - fluxbox = new Fluxbox(argc, argv, session_display, rc_file); -+ fluxbox->launchStartupProgs(); - fluxbox->eventLoop(); - - } catch (std::out_of_range oor) { diff --git a/x11-wm/fluxbox/files/fluxbox-0.1.14-gcc33.patch b/x11-wm/fluxbox/files/fluxbox-0.1.14-gcc33.patch deleted file mode 100644 index f66f30a1ca85..000000000000 --- a/x11-wm/fluxbox/files/fluxbox-0.1.14-gcc33.patch +++ /dev/null @@ -1,147 +0,0 @@ -diff -I'^// \$Id' -Naur --exclude-from diff-exclude fluxbox-0.1.14.orig/configure fluxbox-0.1.14/configure ---- fluxbox-0.1.14.orig/configure 2002-12-08 12:39:59.000000000 +1100 -+++ fluxbox-0.1.14/configure 2003-09-11 00:45:43.000000000 +1000 -@@ -8322,7 +8322,7 @@ - - - --for ac_func in getpid setlocale sigaction strftime strcasestr snprintf vsnprintf catopen catgets catclose -+for ac_func in getpid setlocale sigaction strcasestr snprintf vsnprintf catopen catgets catclose - do - as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` - echo "$as_me:$LINENO: checking for $ac_func" >&5 -@@ -8397,6 +8397,61 @@ - fi - done - -+echo "$as_me:$LINENO: checking for strftime" >&5 -+echo $ECHO_N "checking for strftime... $ECHO_C" >&6 -+ -+cat >conftest.$ac_ext <<_ACEOF -+#line $LINENO "configure" -+/* confdefs.h. */ -+_ACEOF -+cat confdefs.h >>conftest.$ac_ext -+cat >>conftest.$ac_ext <<_ACEOF -+/* end confdefs.h. */ -+#include <time.h> -+int -+main () -+{ -+ -+char * s; -+time_t t = time(NULL); -+size_t x = strftime(s, 5, "%a", localtime(&t)); -+ -+ -+ ; -+ return 0; -+} -+_ACEOF -+rm -f conftest.$ac_objext -+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -+ (eval $ac_compile) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); } && -+ { ac_try='test -s conftest.$ac_objext' -+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -+ (eval $ac_try) 2>&5 -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&5 -+ (exit $ac_status); }; }; then -+ -+ -+cat >>confdefs.h <<\_ACEOF -+#define HAVE_STRFTIME 1 -+_ACEOF -+ -+ echo "$as_me:$LINENO: result: yes" >&5 -+echo "${ECHO_T}yes" >&6 -+ -+else -+ echo "$as_me: failed program was:" >&5 -+sed 's/^/| /' conftest.$ac_ext >&5 -+ -+echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6 -+fi -+rm -f conftest.$ac_objext conftest.$ac_ext -+ -+ - echo "$as_me:$LINENO: checking for t_open in -lnsl" >&5 - echo $ECHO_N "checking for t_open in -lnsl... $ECHO_C" >&6 - if test "${ac_cv_lib_nsl_t_open+set}" = set; then -diff -I'^// \$Id' -Naur --exclude-from diff-exclude fluxbox-0.1.14.orig/configure.in fluxbox-0.1.14/configure.in ---- fluxbox-0.1.14.orig/src/Toolbar.cc 2002-12-08 14:41:57.000000000 +1100 -+++ fluxbox-0.1.14/src/Toolbar.cc 2003-09-11 00:32:52.000000000 +1000 -@@ -65,6 +65,7 @@ - #include <iostream> - - using namespace std; -+using namespace FBNLS; - - Toolbar::Toolbar(BScreen *scrn): - on_top(scrn->isToolbarOnTop()), -@@ -204,6 +205,7 @@ - } - - void Toolbar::reconfigure() { -+ I18n *i18n = I18n::instance(); - int head_x = 0, - head_y = 0, - head_w, -@@ -519,6 +521,7 @@ - - - void Toolbar::checkClock(bool redraw, bool date) { -+ I18n *i18n = I18n::instance(); - time_t tmp = 0; - struct tm *tt = 0; - -@@ -547,7 +550,7 @@ - char t[9]; - if (date) { - // format the date... with special consideration for y2k ;) -- if (screen()->getDateFormat() == Blackbox::B_EuropeanDate) { -+ if (screen()->getDateFormat() == Fluxbox::B_EUROPEANDATE) { - sprintf(t, - i18n->getMessage( - ToolbarSet, ToolbarNoStrftimeDateFormatEu, -diff -I'^// \$Id' -Naur --exclude-from diff-exclude fluxbox-0.1.14.orig/src/fluxbox.cc fluxbox-0.1.14/src/fluxbox.cc ---- fluxbox-0.1.14.orig/src/fluxbox.cc 2002-12-09 02:55:32.000000000 +1100 -+++ fluxbox-0.1.14/src/fluxbox.cc 2003-09-11 00:28:35.000000000 +1000 -@@ -1973,7 +1973,7 @@ - XrmPutLineResource(&new_blackboxrc, rc_string); - #else // !HAVE_STRFTIME - sprintf(rc_string, "session.screen%d.dateFormat: %s", screen_number, -- ((screen->getDateFormat() == B_EuropeanDate) ? -+ ((screen->getDateFormat() == B_EUROPEANDATE) ? - "European" : "American")); - XrmPutLineResource(&new_blackboxrc, rc_string); - -@@ -2321,11 +2321,11 @@ - if (XrmGetResource(*database, name_lookup, class_lookup, &value_type, - &value)) { - if (strncasecmp(value.addr, "european", value.size)) -- screen->saveDateFormat(B_AmericanDate); -+ screen->saveDateFormat(B_AMERICANDATE); - else -- screen->saveDateFormat(B_EuropeanDate); -+ screen->saveDateFormat(B_EUROPEANDATE); - } else -- screen->saveDateFormat(B_AmericanDate); -+ screen->saveDateFormat(B_AMERICANDATE); - - sprintf(name_lookup, "session.screen%d.clockFormat", screen_number); - sprintf(class_lookup, "Session.Screen%d.ClockFormat", screen_number); ---- fluxbox-0.1.14.orig/util/fbrun/FbRun.cc 2002-12-08 01:15:27.000000000 +1100 -+++ fluxbox-0.1.14/util/fbrun/FbRun.cc 2003-09-11 01:07:42.000000000 +1000 -@@ -34,6 +34,7 @@ - - #include <iostream> - #include <fstream> -+#include <cassert> - - using namespace std; - FbRun::FbRun(int x, int y, size_t width): diff --git a/x11-wm/fluxbox/files/fluxbox-0.1.14-ja.patch b/x11-wm/fluxbox/files/fluxbox-0.1.14-ja.patch deleted file mode 100644 index 37ae4284eb4d..000000000000 --- a/x11-wm/fluxbox/files/fluxbox-0.1.14-ja.patch +++ /dev/null @@ -1,105 +0,0 @@ -diff -uNr fluxbox-0.1.14-orig/src/FbTk/XftFontImp.cc fluxbox-0.1.14/src/FbTk/XftFontImp.cc ---- fluxbox-0.1.14-orig/src/FbTk/XftFontImp.cc 2002-11-27 01:01:27.000000000 +0900 -+++ fluxbox-0.1.14/src/FbTk/XftFontImp.cc 2002-12-10 08:56:04.000000000 +0900 -@@ -24,11 +24,46 @@ - #include "XftFontImp.hh" - #include "App.hh" - -+#include <langinfo.h> -+#include <iconv.h> -+#include <errno.h> -+ - #ifdef HAVE_CONFIG_H - #include "config.h" - #endif //HAVE_CONFIG_H - namespace FbTk { - -+extern "C" { -+ -+static char * locale_to_utf8 (const char *text) -+{ -+ char *loc; -+ char *utf_str, *from, *to; -+ static iconv_t conv = (iconv_t)-1; -+ size_t from_len, to_len; -+ size_t r; -+ if (conv == (iconv_t)-1) { -+ loc = (char *)strdup (nl_langinfo (CODESET)); -+ conv = iconv_open ("UTF-8", loc); -+ free (loc); -+ } -+ from = (char *)text; -+ from_len = strlen (text); -+ to_len = from_len * 6 + 1; -+ utf_str = to = (char *)malloc ((sizeof (char)) * from_len * 6 + 1); -+ r = iconv (conv, &from, &from_len, &to, &to_len); -+ // success or incomplete sequence -+ if (r != (size_t)-1 || errno == EINVAL) { -+ *to = '\0'; -+ utf_str = (char *)realloc (utf_str, strlen (utf_str) + 1); -+ return utf_str; -+ } -+ free (utf_str); -+ return strdup (text); -+} -+ -+} -+ - XftFontImp::XftFontImp(const char *name, bool utf8):m_xftfont(0), - m_utf8mode(utf8) { - if (name != 0) -@@ -99,7 +134,17 @@ - x, y, - (XftChar8 *)(text), len); - } else --#endif // HAVE_XFT_UTF8_STRING -+ { -+ char *utf_str = locale_to_utf8 (text); -+ size_t utf_len = strlen (utf_str); -+ XftDrawStringUtf8(draw, -+ &xftcolor, -+ m_xftfont, -+ x, y, -+ (XftChar8 *)(utf_str), utf_len); -+ free (utf_str); -+ } -+#else - { - XftDrawString8(draw, - &xftcolor, -@@ -107,6 +152,7 @@ - x, y, - (XftChar8 *)(text), len); - } -+#endif // HAVE_XFT_UTF8_STRING - - XftColorFree(disp, DefaultVisual(disp, screen), - DefaultColormap(disp, screen), &xftcolor); -@@ -124,13 +170,26 @@ - (XftChar8 *)text, len, - &ginfo); - } else --#endif //HAVE_XFT_UTF8_STRING -+ { -+ char *tmp = strdup(text); -+ tmp[len] = '\0'; -+ char *utf_str = locale_to_utf8 (tmp); -+ size_t utf_len = strlen (utf_str); -+ XftTextExtentsUtf8(App::instance()->display(), -+ m_xftfont, -+ (XftChar8 *)utf_str, utf_len, -+ &ginfo); -+ free (utf_str); -+ free (tmp); -+ } -+#else - { - XftTextExtents8(App::instance()->display(), - m_xftfont, - (XftChar8 *)text, len, - &ginfo); - } -+#endif //HAVE_XFT_UTF8_STRING - return ginfo.xOff; - } - diff --git a/x11-wm/fluxbox/files/fluxbox-0.1.14-menukey.patch b/x11-wm/fluxbox/files/fluxbox-0.1.14-menukey.patch deleted file mode 100644 index 759bb31dc935..000000000000 --- a/x11-wm/fluxbox/files/fluxbox-0.1.14-menukey.patch +++ /dev/null @@ -1,222 +0,0 @@ -diff -uNr fluxbox-0.1.13-orig/src/Basemenu.cc fluxbox-0.1.13/src/Basemenu.cc ---- fluxbox-0.1.13-orig/src/Basemenu.cc 2002-11-15 23:24:59.000000000 +0900 -+++ fluxbox-0.1.13/src/Basemenu.cc 2002-11-20 14:11:11.000000000 +0900 -@@ -136,6 +136,8 @@ - m_screen->getDepth(), InputOutput, - m_screen->getVisual(), attrib_mask, &attrib); - fluxbox->saveMenuSearch(menu.frame, this); -+ -+ menu.highlighted = -1; - - } - -@@ -428,6 +430,7 @@ - - torn = visible = false; - which_sub = which_press = which_sub = -1; -+ menu.highlighted = -1; - - XUnmapWindow(m_display, menu.window); - } -@@ -759,6 +762,11 @@ - break; - } - } -+ if (highlight) { -+ if (menu.highlighted != (int)index) -+ drawItem(menu.highlighted, False, True); -+ menu.highlighted = index; -+ } - } - - -@@ -1078,3 +1086,41 @@ - menu.bevel_w = m_screen->getBevelWidth(); - update(); - } -+ -+void Basemenu::highlightNextItem() { -+ if (menu.highlighted >= 0) -+ drawItem(menu.highlighted, False, True); -+ -+ menu.highlighted++; -+ if (menu.highlighted >= (int)menuitems.size()) -+ menu.highlighted = 0; -+ -+ drawItem(menu.highlighted, True); -+} -+ -+void Basemenu::highlightPrevItem() { -+ if (menu.highlighted >= 0) -+ drawItem(menu.highlighted, False, True); -+ -+ menu.highlighted--; -+ if (menu.highlighted < 0) -+ menu.highlighted = menuitems.size() - 1; -+ -+ drawItem(menu.highlighted, True); -+} -+ -+void Basemenu::selectMenuItem() { -+ if (menu.highlighted >= 0) -+ itemSelected(1, menu.highlighted); -+} -+ -+void Basemenu::openSubmenu() { -+ if (menu.highlighted >= 0) -+ if (hasSubmenu(menu.highlighted)) { -+ drawSubmenu(menu.highlighted); -+ } -+} -+ -+void Basemenu::closeMenu() { -+ internal_hide(); -+} -diff -uNr fluxbox-0.1.13-orig/src/Basemenu.hh fluxbox-0.1.13/src/Basemenu.hh ---- fluxbox-0.1.13-orig/src/Basemenu.hh 2002-11-04 03:45:30.000000000 +0900 -+++ fluxbox-0.1.13/src/Basemenu.hh 2002-11-20 14:11:11.000000000 +0900 -@@ -88,6 +88,11 @@ - virtual void drawSubmenu(unsigned int index); - virtual void show(); - virtual void hide(); -+ virtual void highlightNextItem(); -+ virtual void highlightPrevItem(); -+ virtual void selectMenuItem(); -+ virtual void openSubmenu(); -+ virtual void closeMenu(); - /*@}*/ - - /** -@@ -153,6 +158,7 @@ - grab_x, grab_y; - unsigned int width, height, title_h, frame_h, item_w, item_h, bevel_w, - bevel_h; -+ int highlighted; - } menu; - - }; -diff -uNr fluxbox-0.1.13-orig/src/Keys.cc fluxbox-0.1.13/src/Keys.cc ---- fluxbox-0.1.13-orig/src/Keys.cc 2002-11-13 23:34:24.000000000 +0900 -+++ fluxbox-0.1.13/src/Keys.cc 2002-11-20 14:11:11.000000000 +0900 -@@ -122,6 +122,12 @@ - {"ToggleDecor", TOGGLEDECOR}, - {"ToggleTab", TOGGLETAB}, - {"RootMenu", ROOTMENU}, -+ {"WindowMenu", WINDOWMENU}, -+ {"NextMenuItem", NEXTMENUITEM}, -+ {"PrevMenuItem", PREVMENUITEM}, -+ {"SelectMenuItem", SELECTMENUITEM}, -+ {"OpenSubmenu", OPENSUBMENU}, -+ {"CloseMenu", CLOSEMENU}, - {0, LASTKEYGRAB} - }; - -diff -uNr fluxbox-0.1.13-orig/src/Keys.hh fluxbox-0.1.13/src/Keys.hh ---- fluxbox-0.1.13-orig/src/Keys.hh 2002-11-13 23:35:01.000000000 +0900 -+++ fluxbox-0.1.13/src/Keys.hh 2002-11-20 14:11:11.000000000 +0900 -@@ -59,6 +59,10 @@ - TOGGLEDECOR,// toggle visibility of decor (title, frame, handles) - TOGGLETAB, // toggle visibilty of tab - ROOTMENU, // pop up rootmenu -+ WINDOWMENU, // pop up windowmenu -+ NEXTMENUITEM, PREVMENUITEM, // navigate to next/prev item -+ SELECTMENUITEM, // select current menu item -+ OPENSUBMENU, CLOSEMENU, // open/close (sub)menu - LASTKEYGRAB //mark end of keygrabbs - }; - /** -diff -uNr fluxbox-0.1.13-orig/src/fluxbox.cc fluxbox-0.1.13/src/fluxbox.cc ---- fluxbox-0.1.13-orig/src/fluxbox.cc 2002-11-15 21:19:17.000000000 +0900 -+++ fluxbox-0.1.13/src/fluxbox.cc 2002-11-20 14:11:48.000000000 +0900 -@@ -1391,6 +1391,25 @@ - } - } - break; -+ case Keys::NEXTMENUITEM: -+ case Keys::PREVMENUITEM: -+ case Keys::SELECTMENUITEM: -+ case Keys::OPENSUBMENU: -+ case Keys::CLOSEMENU: -+ { -+ Basemenu *target = 0; -+ std::map<Window, Basemenu *>::iterator it = menuSearch.begin(); -+ std::map<Window, Basemenu *>::iterator it_end = menuSearch.end(); -+ for (int i = 0; it != it_end; ++it, ++i) { -+ Basemenu *menu = it->second; -+ if (menu != target && menu->isVisible() && menu->currentSubmenu() < 0) { -+ target = menu; -+ } -+ } -+ if (target != 0) -+ doMenuAction(target, action); -+ } -+ break; - default: //try to see if its a window action - doWindowAction(action, key->getParam()); - } -@@ -1404,6 +1423,27 @@ - - - } -+void Fluxbox::doMenuAction(Basemenu *target, Keys::KeyAction action) { -+ switch (action) { -+ case Keys::NEXTMENUITEM: -+ target->highlightNextItem(); -+ break; -+ case Keys::PREVMENUITEM: -+ target->highlightPrevItem(); -+ break; -+ case Keys::SELECTMENUITEM: -+ target->selectMenuItem(); -+ break; -+ case Keys::OPENSUBMENU: -+ target->openSubmenu(); -+ break; -+ case Keys::CLOSEMENU: -+ target->closeMenu(); -+ break; -+ default: -+ break; -+ } -+} - void Fluxbox::doWindowAction(Keys::KeyAction action, const int param) { - if (!focused_window) - return; -@@ -1551,6 +1591,26 @@ - case Keys::TOGGLETAB: - focused_window->setTab(!focused_window->hasTab()); - break; -+ case Keys::WINDOWMENU: -+ { -+ Windowmenu *menu = 0; -+ -+ menu = focused_window->getWindowmenu(); -+ if (menu) { -+ int x, y; -+ x = focused_window->getXFrame(); -+ y = focused_window->getYFrame(); -+ focused_window->showMenu(x, y); -+// menu->move(x, y); -+// if (! menu->isVisible()) { -+// menu->show(); -+// XRaiseWindow(getXDisplay(), menu->windowID()); -+// XRaiseWindow(getXDisplay(), menu->getSendToMenu()->windowID()); -+// XRaiseWindow(getXDisplay(), menu->getSendGroupToMenu()->windowID()); -+// } -+ } -+ } -+ break; - default: //do nothing - break; - } -diff -uNr fluxbox-0.1.13-orig/src/fluxbox.hh fluxbox-0.1.13/src/fluxbox.hh ---- fluxbox-0.1.13-orig/src/fluxbox.hh 2002-10-24 06:47:59.000000000 +0900 -+++ fluxbox-0.1.13/src/fluxbox.hh 2002-11-20 14:11:11.000000000 +0900 -@@ -221,6 +221,7 @@ - void handleClientMessage(XClientMessageEvent &ce); - void handleKeyEvent(XKeyEvent &ke); - void doWindowAction(Keys::KeyAction action, const int param); -+ void doMenuAction(Basemenu *menu, Keys::KeyAction action); - - ResourceManager m_resourcemanager, m_screen_rm; - diff --git a/x11-wm/fluxbox/files/fluxbox-0.1.14-remember.patch b/x11-wm/fluxbox/files/fluxbox-0.1.14-remember.patch deleted file mode 100644 index 16ca0fcafe77..000000000000 --- a/x11-wm/fluxbox/files/fluxbox-0.1.14-remember.patch +++ /dev/null @@ -1,1251 +0,0 @@ -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x Translation.m -x configure fluxbox-0.1.14/autogen.sh fluxbox-0.1.14-remember/autogen.sh ---- fluxbox-0.1.14/autogen.sh Thu Jan 1 01:00:00 1970 -+++ fluxbox-0.1.14-remember/autogen.sh Fri Nov 15 13:47:27 2002 -@@ -0,0 +1,10 @@ -+#!/bin/sh -+libtoolize --copy --force --automake -+rm -f config.cache -+aclocal -+autoheader -+automake -a -+autoconf -+echo "Done." -+ -+ -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x Translation.m -x configure fluxbox-0.1.14/doc/fluxbox.1.in fluxbox-0.1.14-remember/doc/fluxbox.1.in ---- fluxbox-0.1.14/doc/fluxbox.1.in Sun Sep 22 15:55:22 2002 -+++ fluxbox-0.1.14-remember/doc/fluxbox.1.in Mon Dec 9 15:46:12 2002 -@@ -323,6 +323,9 @@ - An - .B [end] - tag is required to end the submenu. -+.IP -+If you create a submenu labelled 'Startup', applications located in this -+submenu will be launched on fluxbox startup. - .TP - .B [reconfig] (label) - When selected, this item rereads the current style and menu files and -@@ -375,6 +378,12 @@ - [exec] (edit) {mozilla -edit} - [exec] (compose) {mozilla -compose} - [end] -+ [submenu] (Startup) -+ [exec] (gkrellm) {gkrellm -w} -+ [exec] (xmms) {xmms -p} -+ [exec] (galeon) {galeon -s} -+ [exec] (kdeinit) {kdeinit} -+ [end] - [submenu] (Window Manager) - [exec] (Edit Menus) {nedit ~/.fluxbox/menu} - [submenu] (Style) {Which Style?} -@@ -1069,6 +1078,66 @@ - This way the main workspace (screen0) has the maximum amount of space available - and the secondary workspace could show the time and run some withrawn apps like - gkrellm in the slit, always visible yet out of the way of real work. -+.SH APPLICATIONS SETTINGS -+Sometimes, you want to force an application to have always the same dimensions, -+position, and other settings. It is now possible with the new window-submenu -+called 'Remember...'. Settings are saved in the -+.I ~/.fluxbox/apps -+file. You don't have to edit the file yourself as all manipulations can be -+done using the 'Remember...' submenu. -+.TP -+.B Workspace [0-N] -+Force the workspace of the application to be the current one, even if you launch -+the application from another workspace. -+.TP -+.B Dimensions [Width Height] -+Remember the current dimensions. -+.TP -+.B Position [X Y] -+Remember the current position. -+.TP -+.B Shaded state [yes|no] -+Remember the current shaded state. -+.TP -+.B Tab state [yes|no] -+Remember the current tab state. -+.TP -+.B Decoration state [NONE|NORMAL|TOOL|TINY] -+Remember the current decoration state. -+.TP -+.B Sticky state [yes|no] -+Remember the current sticky state. -+.TP -+.B Jump to workspace [yes|no] -+This one is only useful if 'Workspace' is set too. The workspace is changed -+to the workspace containing the application being launched. -+.TP -+.B Save settings on close [yes|no] -+By default, application settings are not saved when a window is closed. Set -+this option if you want previous settings to be saved when the window is closed. -+.SS Applications example -+Here is a short example of an apps file: -+.PP -+.nf -+[app] (kate) -+ [Dimensions] {1022 747} -+ [Position] {0 0} -+ [Close] {yes} -+[end] -+[app] (konqueror) -+ [Workspace] {1} -+ [Dimensions] {1006 749} -+ [Position] {16 0} -+ [Jump] {yes} -+[end] -+[app] (xterm) -+ [Deco] {NONE} -+[end] -+.fi -+ -+Parameters in the 'apps' file are case-sensitive. Application names are taken -+from the first X-Window WM_CLASS attribute. You can see this attribute by using -+the xprop command. Transient windows are not affected by application settings. - .SH ENVIRONMENT - .TP - .B HOME -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x Translation.m -x configure fluxbox-0.1.14/nls/C/Windowmenu.m fluxbox-0.1.14-remember/nls/C/Windowmenu.m ---- fluxbox-0.1.14/nls/C/Windowmenu.m Mon Dec 17 20:49:45 2001 -+++ fluxbox-0.1.14-remember/nls/C/Windowmenu.m Mon Dec 9 15:46:12 2002 -@@ -22,3 +22,23 @@ - # Close - $ #Tab - # Tab -+$ #Remember -+# Remember ... -+$ #RememberWorkspace -+# Workspace -+$ #RememberDimensions -+# Dimensions -+$ #RememberPosition -+# Position -+$ #RememberShaded -+# Shaded state -+$ #RememberTab -+# Tab state -+$ #RememberDeco -+# Decoration state -+$ #RememberSticky -+# Sticky state -+$ #RememberJump -+# Jump to Workspace -+$ #RememberSave -+# Save settings on close -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x Translation.m -x configure fluxbox-0.1.14/nls/blackbox-nls.hh fluxbox-0.1.14-remember/nls/blackbox-nls.hh ---- fluxbox-0.1.14/nls/blackbox-nls.hh Sun Dec 8 03:20:38 2002 -+++ fluxbox-0.1.14-remember/nls/blackbox-nls.hh Mon Dec 9 15:46:12 2002 -@@ -124,6 +124,16 @@ - WindowmenuKillClient = 0x9, - WindowmenuClose = 0xa, - WindowmenuTab = 0xb, -+ WindowmenuRemember = 0xc, -+ WindowmenuRememberWorkspace = 0xd, -+ WindowmenuRememberDimensions = 0xe, -+ WindowmenuRememberPosition = 0xf, -+ WindowmenuRememberShaded = 0x10, -+ WindowmenuRememberTab = 0x11, -+ WindowmenuRememberDeco = 0x12, -+ WindowmenuRememberSticky = 0x13, -+ WindowmenuRememberJump = 0x14, -+ WindowmenuRememberSave = 0x15, - - WorkspaceSet = 0xb, - WorkspaceDefaultNameFormat = 0x1, -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x Translation.m -x configure fluxbox-0.1.14/nls/fr_FR/Windowmenu.m fluxbox-0.1.14-remember/nls/fr_FR/Windowmenu.m ---- fluxbox-0.1.14/nls/fr_FR/Windowmenu.m Sat Jan 5 17:23:31 2002 -+++ fluxbox-0.1.14-remember/nls/fr_FR/Windowmenu.m Mon Dec 9 15:46:12 2002 -@@ -22,3 +22,23 @@ - # Fermer - $ #Tab - # Onglet -+$ #Remember -+# Retenir ... -+$ #RememberWorkspace -+# Bureau -+$ #RememberDimensions -+# Dimensions -+$ #RememberPosition -+# Position -+$ #RememberShaded -+# Etat ombré -+$ #RememberTab -+# Etat de l'onglet -+$ #RememberDeco -+# Etat des décorations -+$ #RememberSticky -+# Etat collant -+$ #RememberJump -+# Aller au bureau -+$ #RememberSave -+# Sauver les paramètres à la fermeture -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x Translation.m -x configure fluxbox-0.1.14/src/Application.cc fluxbox-0.1.14-remember/src/Application.cc ---- fluxbox-0.1.14/src/Application.cc Thu Jan 1 01:00:00 1970 -+++ fluxbox-0.1.14-remember/src/Application.cc Mon Dec 9 15:46:12 2002 -@@ -0,0 +1,227 @@ -+// Application.cc for Fluxbox Window Manager -+// Copyright (c) 2002 Xavier Brouckaert -+// -+// Permission is hereby granted, free of charge, to any person obtaining a -+// copy of this software and associated documentation files (the "Software"), -+// to deal in the Software without restriction, including without limitation -+// the rights to use, copy, modify, merge, publish, distribute, sublicense, -+// and/or sell copies of the Software, and to permit persons to whom the -+// Software is furnished to do so, subject to the following conditions: -+// -+// The above copyright notice and this permission notice shall be included in -+// all copies or substantial portions of the Software. -+// -+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -+// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+// 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. -+ -+//use GNU extensions -+#ifndef _GNU_SOURCE -+#define _GNU_SOURCE -+#endif // _GNU_SOURCE -+ -+#include <iostream> -+#include <string> -+#include <memory> -+#include <sstream> -+#include <fstream> -+#include <stdio.h> -+ -+#include "Application.hh" -+#include "fluxbox.hh" -+ -+#ifndef MAXPATHLEN -+#define MAXPATHLEN 255 -+#endif // MAXPATHLEN -+ -+Application::Application() { -+ workspace_remember = -+ dimensions_remember = -+ position_remember = -+ stuckstate_remember = -+ decostate_remember = -+ shadedstate_remember = -+ tabstate_remember = -+ jumpworkspace_remember = -+ save_on_close_remember = false; -+} -+ -+Applications::Applications() { -+ load(); -+} -+ -+Application* Applications::add(char* app_name) { -+ if (!app_name) -+ return NULL; -+ Application* a = new Application(); -+ apps[app_name] = a; -+ return a; -+} -+ -+Application* Applications::find(char* app_name) { -+ if (!app_name) -+ return NULL; -+ Apps::iterator i = apps.find(app_name); -+ if (i!=apps.end()) -+ return i->second; -+ else -+ return NULL; -+} -+ -+void Applications::parseApp(ifstream &file, Application *a) { -+ string line; -+ -+ while (! file.eof()) { -+ if (getline(file, line)) { -+ if (line[0] != '#') { //the line is commented -+ int parse_pos = 0, err = 0; -+ std::string str_key, str_label; -+ err = StringUtil::getStringBetween(str_key, line.c_str(), '[', ']'); -+ if (err > 0 ) { -+ parse_pos += err; -+ err = StringUtil::getStringBetween(str_label, line.c_str() + parse_pos, '{', '}'); -+ if (err>0) { -+ parse_pos += err; -+ } -+ } else -+ continue; //read next line -+ if (!str_key.size()) -+ continue; //read next line -+ if (str_key == "Workspace") { -+ unsigned int w; -+ istringstream iss(str_label.c_str()); -+ iss >> w; -+ a->rememberWorkspace(w); -+ } else if (str_key == "Dimensions") { -+ unsigned int h,w; -+ istringstream iss(str_label.c_str()); -+ iss >> w >> h; -+ a->rememberDimensions(w,h); -+ } else if (str_key == "Position") { -+ unsigned int x,y; -+ istringstream iss(str_label); -+ iss >> x >> y; -+ a->rememberPosition(x,y); -+ } else if (str_key == "Shaded") { -+ a->rememberShadedstate((str_label=="yes")); -+ } else if (str_key == "Tab") { -+ a->rememberTabstate((str_label=="yes")); -+ } else if (str_key == "Deco") { -+ if (str_label == "NONE") { -+ a->rememberDecostate(FluxboxWindow::DECOR_NONE); -+ } else if (str_label == "NORMAL") { -+ a->rememberDecostate(FluxboxWindow::DECOR_NORMAL); -+ } else if (str_label == "TINY") { -+ a->rememberDecostate(FluxboxWindow::DECOR_TINY); -+ } else if (str_label == "TOOL") { -+ a->rememberDecostate(FluxboxWindow::DECOR_TOOL); -+ } -+ } else if (str_key == "Sticky") { -+ a->rememberStuckstate((str_label=="yes")); -+ } else if (str_key == "Jump") { -+ a->rememberJumpworkspace((str_label=="yes")); -+ } else if (str_key == "Close") { -+ a->rememberSave((str_label=="yes")); -+ } else if (str_key == "end") { -+ return; -+ } else { -+ cerr << "Unsupported apps key = " << str_key << endl; -+ } -+ } -+ } -+ } -+} -+ -+void Applications::load() { -+ cerr << "Loading apps file..." << endl; -+ string apps_string = getenv("HOME")+string("/.")+RC_PATH+string("/")+"apps"; -+ ifstream apps_file(apps_string.c_str()); -+ if (!apps_file.fail()) { -+ if (!apps_file.eof()) { -+ string line; -+ int row = 0; -+ while (getline(apps_file, line) && ! apps_file.eof()) { -+ row++; -+ if (line[0] != '#') { -+ string key; -+ int pos=0; -+ int err = StringUtil::getStringBetween(key, line.c_str(), '[', ']'); -+ -+ if (key == "app") { -+ pos += err; -+ string label; -+ err = StringUtil::getStringBetween(label, line.c_str()+pos, '(', ')'); -+ if (err>0) { -+ Application *a; -+ Apps::iterator i = apps.find(label); -+ if (i==apps.end()) { -+ a = new Application(); -+ apps[label] = a; -+ } else -+ a = i->second; -+ parseApp(apps_file, a); -+ } else -+ cerr<<"Error in apps file. Line("<<row<<")"<<endl; -+ } -+ } -+ } -+ } else { -+ cerr<<__FILE__<<"("<<__LINE__<< "Empty apps file" << endl; -+ } -+ } else { -+ cerr << "apps file failure" << endl; -+ } -+} -+ -+void Applications::save() { -+ cerr << "Saving apps file..." << endl; -+ string apps_string = getenv("HOME")+string("/.")+RC_PATH+string("/")+"apps"; -+ ofstream apps_file(apps_string.c_str()); -+ Apps::iterator it = apps.begin(); -+ Apps::iterator it_end = apps.end(); -+ for (; it != it_end; ++it) { -+ apps_file << "[app] (" << it->first << ")" << endl; -+ Application *a = it->second; -+ if (a->workspace_remember) { -+ apps_file << " [Workspace]\t{" << a->workspace << "}" << endl; -+ } -+ if (a->dimensions_remember) { -+ apps_file << " [Dimensions]\t{" << a->w << " " << a->h << "}" << endl; -+ } -+ if (a->position_remember) { -+ apps_file << " [Position]\t{" << a->x << " " << a->y << "}" << endl; -+ } -+ if (a->shadedstate_remember) { -+ apps_file << " [Shaded]\t{" << ((a->shadedstate)?"yes":"no") << "}" << endl; -+ } -+ if (a->tabstate_remember) { -+ apps_file << " [Tab]\t\t{" << ((a->tabstate)?"yes":"no") << "}" << endl; -+ } -+ if (a->decostate_remember) { -+ switch (a->decostate) { -+ case (FluxboxWindow::DECOR_NONE) : -+ apps_file << " [Deco]\t{NONE}" << endl; break; -+ case (FluxboxWindow::DECOR_NORMAL) : -+ apps_file << " [Deco]\t{NORMAL}" << endl; break; -+ case (FluxboxWindow::DECOR_TINY) : -+ apps_file << " [Deco]\t{TINY}" << endl; break; -+ case (FluxboxWindow::DECOR_TOOL) : -+ apps_file << " [Deco]\t{TOOL}" << endl; break; -+ } -+ } -+ if (a->stuckstate_remember) { -+ apps_file << " [Sticky]\t{" << ((a->stuckstate)?"yes":"no") << "}" << endl; -+ } -+ if (a->jumpworkspace_remember) { -+ apps_file << " [Jump]\t{" << ((a->jumpworkspace)?"yes":"no") << "}" << endl; -+ } -+ if (a->save_on_close_remember) { -+ apps_file << " [Close]\t{" << ((a->save_on_close)?"yes":"no") << "}" << endl; -+ } -+ apps_file << "[end]" << endl; -+ } -+} -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x Translation.m -x configure fluxbox-0.1.14/src/Application.hh fluxbox-0.1.14-remember/src/Application.hh ---- fluxbox-0.1.14/src/Application.hh Thu Jan 1 01:00:00 1970 -+++ fluxbox-0.1.14-remember/src/Application.hh Mon Dec 9 15:46:12 2002 -@@ -0,0 +1,103 @@ -+// Application.hh for Fluxbox Window Manager -+// Copyright (c) 2002 Xavier Brouckaert -+// -+// Permission is hereby granted, free of charge, to any person obtaining a -+// copy of this software and associated documentation files (the "Software"), -+// to deal in the Software without restriction, including without limitation -+// the rights to use, copy, modify, merge, publish, distribute, sublicense, -+// and/or sell copies of the Software, and to permit persons to whom the -+// Software is furnished to do so, subject to the following conditions: -+// -+// The above copyright notice and this permission notice shall be included in -+// all copies or substantial portions of the Software. -+// -+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -+// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+// 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. -+ -+#ifndef APPLICATION_HH -+#define APPLICATION_HH -+ -+#include <iostream> -+#include <fstream> -+#include <string> -+#include <map> -+#include "Window.hh" -+#include "StringUtil.hh" -+ -+using namespace std; -+ -+class Application { -+public: -+ Application(); -+ inline void forgetWorkspace() { workspace_remember = false; } -+ inline void forgetDimensions() { dimensions_remember = false; } -+ inline void forgetPosition() { position_remember = false; } -+ inline void forgetShadedstate() { shadedstate_remember = false; } -+ inline void forgetTabstate() { tabstate_remember = false; } -+ inline void forgetDecostate() { decostate_remember = false; } -+ inline void forgetStuckstate() { stuckstate_remember = false; } -+ inline void forgetJumpworkspace() { jumpworkspace_remember = false; } -+ inline void forgetSave() { save_on_close_remember = false; } -+ -+ inline void rememberWorkspace(int ws) { workspace = ws; workspace_remember = true; } -+ inline void rememberDimensions(int width, int height) { w = width; h = height; dimensions_remember = true; } -+ inline void rememberPosition(int posx, int posy) { x = posx; y = posy; position_remember = true; } -+ inline void rememberShadedstate(bool state) { shadedstate = state; shadedstate_remember = true; } -+ inline void rememberTabstate(bool state) { tabstate = state; tabstate_remember = true; } -+ inline void rememberDecostate(FluxboxWindow::Decoration state) { decostate = state; decostate_remember = true; } -+ inline void rememberStuckstate(bool state) { stuckstate = state; stuckstate_remember = true; } -+ inline void rememberJumpworkspace(bool state) { jumpworkspace = state; jumpworkspace_remember = true; } -+ inline void rememberSave(bool state) { save_on_close = state; save_on_close_remember = true; } -+ -+ -+ bool workspace_remember; -+ unsigned int workspace; -+ -+ bool dimensions_remember; -+ int w,h; // width, height -+ -+ bool position_remember; -+ int x,y; -+ -+ bool shadedstate_remember; -+ bool shadedstate; -+ -+ bool tabstate_remember; -+ bool tabstate; -+ -+ bool decostate_remember; -+ FluxboxWindow::Decoration decostate; -+ -+ bool stuckstate_remember; -+ bool stuckstate; -+ -+ bool jumpworkspace_remember; -+ bool jumpworkspace; -+ -+ bool save_on_close_remember; -+ bool save_on_close; -+}; -+ -+typedef std::map<string,Application *> Apps; -+ -+class Applications { -+private: -+ void parseApp(ifstream &file, Application *a); -+ Apps apps; -+ -+public: -+ Applications(); -+ -+ Application* find(char* app_name); -+ Application* add(char* app_name); -+ -+ void load(); -+ void save(); -+}; -+ -+#endif -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x Translation.m -x configure fluxbox-0.1.14/src/Basemenu.hh fluxbox-0.1.14-remember/src/Basemenu.hh ---- fluxbox-0.1.14/src/Basemenu.hh Sat Dec 7 15:15:23 2002 -+++ fluxbox-0.1.14-remember/src/Basemenu.hh Mon Dec 9 15:56:56 2002 -@@ -110,6 +110,8 @@ - bool hasSubmenu(unsigned int index) const; - bool isItemSelected(unsigned int index) const; - bool isItemEnabled(unsigned int index) const; -+ typedef std::vector<BasemenuItem *> Menuitems; -+ inline Menuitems *getMenuitems() { return &menuitems; } - //@} - - protected: -@@ -130,7 +132,7 @@ - - private: - -- typedef std::vector<BasemenuItem *> Menuitems; -+ //typedef std::vector<BasemenuItem *> Menuitems; - BScreen *m_screen; - Display *m_display; - Basemenu *m_parent; -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x Translation.m -x configure fluxbox-0.1.14/src/Makefile.am fluxbox-0.1.14-remember/src/Makefile.am ---- fluxbox-0.1.14/src/Makefile.am Sat Dec 7 15:45:25 2002 -+++ fluxbox-0.1.14-remember/src/Makefile.am Mon Dec 9 15:59:55 2002 -@@ -60,6 +60,7 @@ - Tab.hh Tab.cc Theme.hh Theme.cc Timer.cc Timer.hh Toolbar.cc Toolbar.hh Observer.cc Observer.hh\ - Window.cc Window.hh Windowmenu.cc Windowmenu.hh \ - Workspace.cc Workspace.hh Workspacemenu.cc Workspacemenu.hh \ -- XrmDatabaseHelper.hh -+ XrmDatabaseHelper.hh \ -+ Application.hh Application.cc - - LDADD=FbTk/libFbTk.a -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x Translation.m -x configure fluxbox-0.1.14/src/Rootmenu.cc fluxbox-0.1.14-remember/src/Rootmenu.cc ---- fluxbox-0.1.14/src/Rootmenu.cc Sat Dec 7 15:13:58 2002 -+++ fluxbox-0.1.14-remember/src/Rootmenu.cc Mon Dec 9 15:46:12 2002 -@@ -155,4 +155,14 @@ - return w; - } - -+Basemenu* Rootmenu::getStartupMenu() { -+ for (unsigned int i=0;i<numberOfItems();i++) { -+ BasemenuItem *item = find(i); -+ if (item->label()=="Startup") { -+ return item->submenu(); -+ } -+ } -+ return NULL; -+} -+ - -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x Translation.m -x configure fluxbox-0.1.14/src/Rootmenu.hh fluxbox-0.1.14-remember/src/Rootmenu.hh ---- fluxbox-0.1.14/src/Rootmenu.hh Sat Dec 7 15:13:58 2002 -+++ fluxbox-0.1.14-remember/src/Rootmenu.hh Mon Dec 9 15:46:12 2002 -@@ -32,6 +32,7 @@ - explicit Rootmenu(BScreen *scr); - void setAutoGroupWindow(Window window); - void show(); -+ Basemenu* getStartupMenu(); - - protected: - virtual void itemSelected(int button, unsigned int index); -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x Translation.m -x configure fluxbox-0.1.14/src/Screen.cc fluxbox-0.1.14-remember/src/Screen.cc ---- fluxbox-0.1.14/src/Screen.cc Sun Dec 8 15:06:29 2002 -+++ fluxbox-0.1.14-remember/src/Screen.cc Mon Dec 9 15:46:12 2002 -@@ -290,6 +290,7 @@ - root_colormap_installed = true; - - fluxbox->load_rc(this); -+ fluxbox->getApplications()->load(); - - image_control->setDither(*resource.image_dither); - theme = new Theme(disp, getRootWindow(), colormap(), getScreenNumber(), -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x Translation.m -x configure fluxbox-0.1.14/src/Window.cc fluxbox-0.1.14-remember/src/Window.cc ---- fluxbox-0.1.14/src/Window.cc Sat Dec 7 21:04:24 2002 -+++ fluxbox-0.1.14-remember/src/Window.cc Mon Dec 9 15:51:35 2002 -@@ -35,6 +35,7 @@ - #include "StringUtil.hh" - #include "Netizen.hh" - #include "Keys.hh" -+#include "Application.hh" - - #ifdef HAVE_CONFIG_H - #include "config.h" -@@ -72,6 +73,7 @@ - lastButtonPressTime(0), - m_windowmenu(0), - m_layer(LAYER_NORMAL), old_decoration(DECOR_NORMAL), -+decor(false), - tab(0) { - - lastFocusTime.tv_sec = lastFocusTime.tv_usec = 0; -@@ -307,11 +309,6 @@ - m_windowmenu = tmp; - } - -- if (workspace_number < 0 || workspace_number >= screen->getCount()) -- screen->getCurrentWorkspace()->addWindow(this, place_window); -- else -- screen->getWorkspace(workspace_number)->addWindow(this, place_window); -- - configure(frame.x, frame.y, frame.width, frame.height); - - if (shaded) { -@@ -325,18 +322,77 @@ - maximize(m); - } - -- if (stuck) { -- stuck = false; -- stick(); -- deiconify(); //omnipresent, so show it -- } -- - setFocusFlag(false); - - #ifdef DEBUG - fprintf(stderr, "%s(%d): FluxboxWindow(this=%p)\n", __FILE__, __LINE__, this); - #endif // DEBUG - -+ char *app_name = getWMClass(); -+ bool workspace_set = false; -+ if ((app_name) && (!checkTransient2())) { -+ Application* a = Fluxbox::instance()->getApplications()->find(app_name); -+ if (a) { // Information exists about this application -+ if (a->workspace_remember) { -+ screen->getWorkspace(a->workspace)->addWindow(this, place_window); -+ workspace_set = true; -+ if ((a->jumpworkspace_remember) && (a->jumpworkspace)) { -+ screen->changeWorkspaceID(a->workspace); -+ } else { -+ if ((screen->getCurrentWorkspaceID() != a->workspace) && (tab)) -+ tab->withdraw(); -+ } -+ } -+ if (a->dimensions_remember) { -+ place_window = false; -+ configure(frame.x, frame.y, a->w, a->h); -+ } -+ if (a->position_remember) { -+ place_window = false; -+ configure(a->x, a->y, frame.width, frame.height); -+ } -+ if (a->shadedstate_remember) { -+ if (a->shadedstate) { -+ shade(); -+ if (tab) -+ tab->shade(); -+ } else { -+ // Do nothing by now : default is not shaded -+ } -+ } -+ if (a->tabstate_remember) { -+ setTab(a->tabstate); -+ } -+ if (a->decostate_remember) { -+ setDecoration(a->decostate); -+ } -+ if (a->stuckstate_remember) { -+ if (a->stuckstate) { -+ screen->getCurrentWorkspace()->addWindow( -+ this, place_window); -+ workspace_set = true; -+ stick(); -+ } -+ // FIXME: unstick() has been defined in -+ // Window.hh but not implemented !!! -+ // else -+ // unstick(); -+ } -+ } -+ } -+ if (!workspace_set) { -+ if (workspace_number < 0 || workspace_number >= screen->getCount()) -+ screen->getCurrentWorkspace()->addWindow(this, place_window); -+ else -+ screen->getWorkspace(workspace_number)->addWindow(this, place_window); -+ } -+ -+ if (stuck) { -+ stuck = false; -+ stick(); -+ deiconify(); //omnipresent, so show it -+ } -+ - fluxbox->ungrab(); - } - -@@ -982,7 +1038,17 @@ - void FluxboxWindow::reconfigure() { - upsize(); - -- if (Fluxbox::instance()->useTabs()) { -+ bool tab_enabled = true; -+ char* app_name = getWMClass(); -+ if(app_name && (!checkTransient2())) -+ { -+ Application* a = Fluxbox::instance()->getApplications()->find(app_name); -+ if(a) -+ if(a->tabstate_remember && !a->tabstate) -+ tab_enabled = false; -+ } -+ -+ if (Fluxbox::instance()->useTabs() && tab_enabled) { - //no tab and we allowed to use tab? then create it - if (!tab && isGroupable()) { - tab = new Tab(this, 0, 0); -@@ -1068,6 +1134,17 @@ - tab->setPosition(); - } - -+char* FluxboxWindow::getWMClass(void) { -+ XClassHint xch; -+ -+ if (XGetClassHint(display, client.window, &xch)) { -+ char *app_name = StringUtil::strdup(xch.res_name); -+ XFree((char *)xch.res_name); -+ XFree((char *)xch.res_class); -+ return app_name; -+ } else -+ return NULL; -+} - - void FluxboxWindow::getWMName() { - -@@ -1641,8 +1718,35 @@ - } - } - -+void FluxboxWindow::save_on_close() { -+ Fluxbox *fluxbox = Fluxbox::instance(); -+ Applications *apps = fluxbox->getApplications(); -+ Application *a = apps->find(getWMClass()); -+ if (a!=NULL) { -+ if ((a->save_on_close_remember) && (a->save_on_close)) { -+ if (a->workspace_remember) -+ a->rememberWorkspace(screen->getCurrentWorkspaceID()); -+ if (a->dimensions_remember) -+ a->rememberDimensions(getWidth(),getHeight()); -+ if (a->position_remember) -+ a->rememberPosition(getXFrame(),getYFrame()); -+ if (a->shadedstate_remember) -+ a->rememberShadedstate(isShaded()); -+ if (a->shadedstate_remember) -+ a->rememberTabstate(hasTab()); -+ if (a->decostate_remember) -+ a->rememberDecostate(getDecoration()); -+ if (a->stuckstate_remember) -+ a->rememberStuckstate(isStuck()); -+ if (a->jumpworkspace_remember) -+ a->rememberJumpworkspace(true); -+ apps->save(); -+ } -+ } -+} - - void FluxboxWindow::close() { -+ save_on_close(); - Fluxbox *fluxbox = Fluxbox::instance(); - XEvent ce; - ce.xclient.type = ClientMessage; -@@ -2357,7 +2461,8 @@ - m_windowmenu->show(); - m_windowmenu->raise(); - m_windowmenu->getSendToMenu().raise(); -- m_windowmenu->getSendGroupToMenu().raise(); -+ m_windowmenu->getSendGroupToMenu().raise(); -+ m_windowmenu->getRememberMenu().raise(); - } - - void FluxboxWindow::restoreGravity() { -@@ -3170,6 +3275,7 @@ - } - - void FluxboxWindow::toggleDecoration() { -+ static bool decor = false; - //don't toggle decor if the window is shaded - if (isShaded()) - return; -@@ -3482,6 +3588,17 @@ - - } - -+bool FluxboxWindow::checkTransient2() { -+ Window win; -+ if (XGetTransientForHint(display, client.window, &win)) -+ if (win) -+ return true; -+ else -+ return false; -+ else -+ return false; -+} -+ - void FluxboxWindow::checkTransient() { - // remove us from parent - if (client.transient_for != 0) { -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x Translation.m -x configure fluxbox-0.1.14/src/Window.hh fluxbox-0.1.14-remember/src/Window.hh ---- fluxbox-0.1.14/src/Window.hh Sat Dec 7 15:15:26 2002 -+++ fluxbox-0.1.14-remember/src/Window.hh Mon Dec 9 15:46:12 2002 -@@ -43,6 +43,10 @@ - #include <string> - #include <memory> - -+#ifdef DEBUG -+#include <iostream> -+#endif // DEBUG -+ - #define PropMwmHintsElements 3 - - class Tab; -@@ -55,6 +59,8 @@ - class FluxboxWindow : public TimeoutHandler { - public: - -+ char* getWMClass(void); -+ - enum WinLayer { - LAYER_BOTTOM = 0x01, - LAYER_BELOW = 0x02, -@@ -204,6 +210,16 @@ - //@} - - void setDecoration(Decoration decoration); -+ inline Decoration getDecoration() { -+ if (!decor) { -+ #ifdef DEBUG -+ if ((old_decoration!=DECOR_NONE) && (old_decoration!=DECOR_NORMAL) && (old_decoration!=DECOR_TINY) && (old_decoration!=DECOR_TOOL)) -+ std::cerr<<__FILE__<<"("<<__LINE__<< "DEBUG: old_decoration fucked up" << std::endl; -+ #endif //DEBUG -+ return old_decoration; -+ } else -+ return DECOR_NONE; -+ } - void toggleDecoration(); - - #ifdef SHAPE -@@ -276,6 +292,8 @@ - - } client; - -+ bool decor; -+ - struct _decorations { - bool titlebar, handle, border, iconify, - maximize, close, menu, sticky, shade, tab, enabled; -@@ -333,12 +351,15 @@ - void stopResizing(Window win=0); - void updateIcon(); - -+ void save_on_close(); -+ - // Decoration functions - void createTitlebar(); - void destroyTitlebar(); - void createHandle(); - void destroyHandle(); - void checkTransient(); -+ bool checkTransient2(); - - Window findTitleButton(int type); - -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x Translation.m -x configure fluxbox-0.1.14/src/Windowmenu.cc fluxbox-0.1.14-remember/src/Windowmenu.cc ---- fluxbox-0.1.14/src/Windowmenu.cc Sat Dec 7 15:14:03 2002 -+++ fluxbox-0.1.14-remember/src/Windowmenu.cc Mon Dec 9 15:46:12 2002 -@@ -38,6 +38,7 @@ - #include "Window.hh" - #include "Windowmenu.hh" - #include "Workspace.hh" -+#include "Application.hh" - - #include <cstring> - -@@ -45,7 +46,8 @@ - window(win), - screen(win.getScreen()), - sendToMenu(win), --sendGroupToMenu(win) { -+sendGroupToMenu(win), -+rememberMenu(win) { - - setTitleVisibility(False); - setMovable(False); -@@ -63,6 +65,11 @@ - WindowmenuSet, WindowmenuSendGroupTo, - "Send Group To ..."), - &sendGroupToMenu); -+ -+ insert(i18n->getMessage( -+ WindowmenuSet, WindowmenuRemember, -+ "Remember ..."), -+ &rememberMenu); - - insert(i18n->getMessage( - WindowmenuSet, WindowmenuShade, -@@ -103,11 +110,11 @@ - - update(); - -- setItemEnabled(2, window.hasTitlebar()); -- setItemEnabled(3, window.isIconifiable()); -- setItemEnabled(4, window.isMaximizable()); -- setItemEnabled(9, window.isClosable()); -- setItemEnabled(10, window.isGroupable()); // tab option -+ setItemEnabled(3, window.hasTitlebar()); -+ setItemEnabled(4, window.isIconifiable()); -+ setItemEnabled(5, window.isMaximizable()); -+ setItemEnabled(10, window.isClosable()); -+ setItemEnabled(11, window.isGroupable()); // tab option - - } - -@@ -118,12 +125,12 @@ - - - void Windowmenu::show() { -- if (isItemEnabled(2)) -- setItemSelected(2, window.isShaded()); -- if (isItemEnabled(4)) -- setItemSelected(4, window.isMaximized()); -- if (isItemEnabled(7)) -- setItemSelected(7, window.isStuck()); -+ if (isItemEnabled(3)) -+ setItemSelected(3, window.isShaded()); -+ if (isItemEnabled(5)) -+ setItemSelected(5, window.isMaximized()); -+ if (isItemEnabled(8)) -+ setItemSelected(8, window.isStuck()); - - Basemenu::show(); - } -@@ -192,14 +199,15 @@ - - - void Windowmenu::reconfigure() { -- setItemEnabled(1, window.hasTitlebar()); -- setItemEnabled(2, window.isIconifiable()); -- setItemEnabled(3, window.isMaximizable()); -- setItemEnabled(8, window.isClosable()); -- setItemEnabled(10, window.isResizable()); // tab option only enabled if resizable -+ setItemEnabled(3, window.hasTitlebar()); -+ setItemEnabled(4, window.isIconifiable()); -+ setItemEnabled(5, window.isMaximizable()); -+ setItemEnabled(10, window.isClosable()); -+ setItemEnabled(12, window.isResizable()); // tab option only enabled if resizable - - sendToMenu.reconfigure(); -- sendGroupToMenu.reconfigure(); -+ sendGroupToMenu.reconfigure(); -+ rememberMenu.reconfigure(); - - Basemenu::reconfigure(); - } -@@ -299,5 +307,135 @@ - hide(); - } - -+Windowmenu::Remembermenu::Remembermenu(FluxboxWindow &win): Basemenu(win.getScreen()), -+m_fbwindow(win) -+{ -+ setTitleVisibility(false); -+ setMovable(false); -+ setInternalMenu(); -+ update(); -+} -+ -+void Windowmenu::Remembermenu::show() { -+ update(); -+ -+ Basemenu::show(); -+} -+ -+void Windowmenu::Remembermenu::itemSelected(int button, unsigned int index) { -+ if (button > 1) { -+ hide(); -+ return; -+ } -+ -+ if (button == 1) { -+ char* app_name = fbwin().getWMClass(); -+ if (app_name) { -+ Applications *apps = Fluxbox::instance()->getApplications(); -+ Application *a = apps->find(app_name); -+ if (a==NULL) -+ a = apps->add(app_name); -+ if (!isItemSelected(index)) { -+ switch (index) { -+ case 0 : // Workspace -+ a->rememberWorkspace(screen()->getCurrentWorkspaceID()); -+ break; -+ case 1 : // Dimensions -+ a->rememberDimensions(fbwin().getWidth(), -+ fbwin().getHeight()); -+ break; -+ case 2 : // Position -+ a->rememberPosition(fbwin().getXFrame(), -+ fbwin().getYFrame()); -+ break; -+ case 3 : // Shaded state -+ a->rememberShadedstate(fbwin().isShaded()); -+ break; -+ case 4 : // Tab state -+ a->rememberTabstate(fbwin().hasTab()); -+ break; -+ case 5 : // Deco state -+ a->rememberDecostate(fbwin().getDecoration()); -+ break; -+ case 6 : // Stuck state -+ a->rememberStuckstate(fbwin().isStuck()); -+ break; -+ case 7 : // Jump to workspace -+ a->rememberJumpworkspace(true); -+ break; -+ case 8 : // Save on close -+ a->rememberSave(true); -+ } -+ } else { -+ switch (index) { -+ case 0 : // Workspace -+ a->forgetWorkspace(); -+ break; -+ case 1 : // Dimensions -+ a->forgetDimensions(); -+ break; -+ case 2 : // Position -+ a->forgetPosition(); -+ break; -+ case 3 : // Shaded state -+ a->forgetShadedstate(); -+ break; -+ case 4 : // Tab state -+ a->forgetTabstate(); -+ break; -+ case 5 : // Deco state -+ a->forgetDecostate(); -+ break; -+ case 6 : // Stuck state -+ a->forgetStuckstate(); -+ break; -+ case 7 : // Jump to workspace -+ a->forgetJumpworkspace(); -+ break; -+ case 8 : // Save on close -+ a->forgetSave(); -+ break; -+ } -+ } -+ setItemSelected(index,!isItemSelected(index)); -+ apps->save(); -+ } -+ } -+ Basemenu::update(); -+} -+ - -+void Windowmenu::Remembermenu::update(void) { -+ if (numberOfItems() == 0) { -+ I18n *i18n = I18n::instance(); -+ using namespace FBNLS; -+ insert(i18n->getMessage(WindowmenuSet, WindowmenuRememberWorkspace, "Workspace")); -+ insert(i18n->getMessage(WindowmenuSet, WindowmenuRememberDimensions, "Dimensions")); -+ insert(i18n->getMessage(WindowmenuSet, WindowmenuRememberPosition, "Position")); -+ insert(i18n->getMessage(WindowmenuSet, WindowmenuRememberShaded, "Shaded state")); -+ insert(i18n->getMessage(WindowmenuSet, WindowmenuRememberTab, "Tab state")); -+ insert(i18n->getMessage(WindowmenuSet, WindowmenuRememberDeco, "Decoration state")); -+ insert(i18n->getMessage(WindowmenuSet, WindowmenuRememberSticky, "Sticky state")); -+ insert(i18n->getMessage(WindowmenuSet, WindowmenuRememberJump, "Jump to Workspace")); -+ insert(i18n->getMessage(WindowmenuSet, WindowmenuRememberSave, "Save settings on close")); -+ -+ // Set Selected when needed -+ char *app_name = fbwin().getWMClass(); -+ if (app_name) { -+ Application *a = Fluxbox::instance()->getApplications()->find(app_name); -+ if (a) { -+ setItemSelected(0,a->workspace_remember); -+ setItemSelected(1,a->dimensions_remember); -+ setItemSelected(2,a->position_remember); -+ setItemSelected(3,a->shadedstate_remember); -+ setItemSelected(4,a->tabstate_remember); -+ setItemSelected(5,a->decostate_remember); -+ setItemSelected(6,a->stuckstate_remember); -+ setItemSelected(7,a->jumpworkspace_remember); -+ setItemSelected(8,a->save_on_close_remember); -+ } -+ } -+ } -+ Basemenu::update(); -+} - -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x Translation.m -x configure fluxbox-0.1.14/src/Windowmenu.hh fluxbox-0.1.14-remember/src/Windowmenu.hh ---- fluxbox-0.1.14/src/Windowmenu.hh Sat Dec 7 15:14:03 2002 -+++ fluxbox-0.1.14-remember/src/Windowmenu.hh Mon Dec 9 15:46:12 2002 -@@ -36,6 +36,8 @@ - Basemenu &getSendToMenu() { return sendToMenu; } - const Basemenu &getSendGroupToMenu() const { return sendGroupToMenu; } - Basemenu &getSendGroupToMenu() { return sendGroupToMenu; } -+ const Basemenu &getRememberMenu() const { return rememberMenu; } -+ Basemenu &getRememberMenu() { return rememberMenu; } - - void reconfigure(); - void setClosable(); -@@ -70,11 +72,24 @@ - protected: - virtual void itemSelected(int button, unsigned int index); - -- }; -- -+ }; -+ -+ class Remembermenu : public Basemenu { -+ public: -+ Remembermenu(FluxboxWindow &win); -+ void update(); -+ -+ virtual void show(); -+ FluxboxWindow &fbwin() { return m_fbwindow; } -+ protected: -+ virtual void itemSelected(int button, unsigned int index); -+ private: -+ FluxboxWindow &m_fbwindow; -+ }; -+ - SendtoWorkspacemenu sendToMenu; - SendGroupToWorkspacemenu sendGroupToMenu; -- -+ Remembermenu rememberMenu; - }; - - -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x Translation.m -x configure fluxbox-0.1.14/src/fluxbox.cc fluxbox-0.1.14-remember/src/fluxbox.cc ---- fluxbox-0.1.14/src/fluxbox.cc Sun Dec 8 16:55:32 2002 -+++ fluxbox-0.1.14-remember/src/fluxbox.cc Mon Dec 9 15:46:12 2002 -@@ -142,10 +142,6 @@ - - #endif // HAVE_BASENAME - --#define RC_PATH "fluxbox" --#define RC_INIT_FILE "init" -- -- - // X event scanner for enter/leave notifies - adapted from twm - typedef struct scanargs { - Window w; -@@ -2587,3 +2583,37 @@ - old_screen->updateNetizenWindowFocus(); - - } -+ -+void Fluxbox::launchStartupProgs(void) { -+ ScreenList::iterator it = screenList.begin(); -+ ScreenList::iterator it_end = screenList.end(); -+ -+ for (; it != it_end; ++it) { -+ BScreen *screen = (*it); -+ Basemenu* startupmenu = screen->getRootmenu()->getStartupMenu(); -+ -+ if (!startupmenu) -+ return; -+ -+ Basemenu::Menuitems* mi = startupmenu->getMenuitems(); -+ Basemenu::Menuitems::iterator mit = mi->begin(); -+ Basemenu::Menuitems::iterator mit_end = mi->end(); -+ for (; mit != mit_end; ++mit) { -+ BasemenuItem *app = (*mit); -+ cerr << app->label() << endl; -+ if (app->exec().size()) { -+#ifndef __EMX__ -+ char displaystring[MAXPATHLEN]; -+ sprintf(displaystring, "DISPLAY=%s", -+ DisplayString(screen->getBaseDisplay()->getXDisplay())); -+ sprintf(displaystring + strlen(displaystring) - 1, "%d", -+ screen->getScreenNumber()); -+ -+ bexec(app->exec().c_str(), displaystring); -+#else // __EMX__ -+ spawnlp(P_NOWAIT, "cmd.exe", "cmd.exe", "/c", app->exec().c_str(), NULL); -+#endif // !__EMX__ -+ } -+ } -+ } -+} -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x Translation.m -x configure fluxbox-0.1.14/src/fluxbox.hh fluxbox-0.1.14-remember/src/fluxbox.hh ---- fluxbox-0.1.14/src/fluxbox.hh Sat Dec 7 15:15:26 2002 -+++ fluxbox-0.1.14-remember/src/fluxbox.hh Mon Dec 9 15:46:12 2002 -@@ -27,6 +27,7 @@ - #ifndef FLUXBOX_HH - #define FLUXBOX_HH - -+#include "Application.hh" - #include "Resource.hh" - #include "Keys.hh" - #include "BaseDisplay.hh" -@@ -72,6 +73,9 @@ - - class AtomHandler; - -+#define RC_PATH "fluxbox" -+#define RC_INIT_FILE "init" -+ - /** - main class for the window manager. - singleton type -@@ -189,6 +193,9 @@ - - typedef std::vector<Fluxbox::Titlebar> TitlebarList; - -+ inline Applications* getApplications() { return &applications; } -+ void launchStartupProgs(void); -+ - private: - struct cursor { - Cursor session, move, ll_angle, lr_angle; -@@ -205,6 +212,8 @@ - } resource; - - -+ Applications applications; -+ - std::string getRcFilename(); - void getDefaultDataFilename(char *, std::string &); - void load_rc(); -diff -u -r -N -x depcomp -x Entries -x aclocal.m4 -x Makefile.in -x config.guess -x config.sub -x ltmain.sh -x ltconfig -x Entries.Log -x config.h.in -x Translation.m -x configure fluxbox-0.1.14/src/main.cc fluxbox-0.1.14-remember/src/main.cc ---- fluxbox-0.1.14/src/main.cc Sun Dec 8 16:46:41 2002 -+++ fluxbox-0.1.14-remember/src/main.cc Mon Dec 9 15:46:12 2002 -@@ -197,6 +197,7 @@ - try { - - fluxbox = new Fluxbox(argc, argv, session_display, rc_file); -+ fluxbox->launchStartupProgs(); - fluxbox->eventLoop(); - - } catch (std::out_of_range oor) { diff --git a/x11-wm/fluxbox/files/fluxbox-0.1.14-toggledecor.patch b/x11-wm/fluxbox/files/fluxbox-0.1.14-toggledecor.patch deleted file mode 100644 index 3b0d41f8334b..000000000000 --- a/x11-wm/fluxbox/files/fluxbox-0.1.14-toggledecor.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff -Naur --exclude-from=/home/rathnor/fluxbox/work/diff-exclude fluxbox-0.1.14.orig/src/Window.cc fluxbox-0.1.14/src/Window.cc ---- fluxbox-0.1.14.orig/src/Window.cc Sun Dec 8 07:04:24 2002 -+++ fluxbox-0.1.14/src/Window.cc Tue Dec 10 01:00:53 2002 -@@ -71,7 +71,7 @@ - display(0), - lastButtonPressTime(0), - m_windowmenu(0), --m_layer(LAYER_NORMAL), -+m_layer(LAYER_NORMAL), old_decoration(DECOR_NORMAL), - tab(0) { - - lastFocusTime.tv_sec = lastFocusTime.tv_usec = 0; -@@ -3178,7 +3179,11 @@ - setDecoration(DECOR_NONE); - decorations.enabled = false; - } else { //revert back to old decoration -- setDecoration(old_decoration); -+ if (old_decoration == DECOR_NONE) { // make sure something happens -+ setDecoration(DECOR_NORMAL); -+ } else { -+ setDecoration(old_decoration); -+ } - decorations.enabled = true; - } - } diff --git a/x11-wm/fluxbox/files/fluxbox-vano-gentoo.patch b/x11-wm/fluxbox/files/fluxbox-vano-gentoo.patch deleted file mode 100644 index 3b485ee98bd9..000000000000 --- a/x11-wm/fluxbox/files/fluxbox-vano-gentoo.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff -urN fluxbox-0.1.10/src/fluxbox.cc fluxbox-0.1.10_patched/src/fluxbox.cc ---- fluxbox-0.1.10/src/fluxbox.cc Sun Jul 14 01:00:23 2002 -+++ fluxbox-0.1.10_patched/src/fluxbox.cc Mon Jul 15 03:14:04 2002 -@@ -884,6 +884,31 @@ - - if (be.button == 1) - win->installColormap(True); -+ -+ // Very dirty fix to enable closing the root menu when left -+ // clicking on any window. Vano D. -+ // FIX START -+ ScreenList::iterator it2 = screenList.begin(); -+ ScreenList::iterator it_end2 = screenList.end(); -+ -+ for (; it2 != it_end2; ++it2) { -+ -+ BScreen *screen2 = *it2; -+// if (be.window != screen->getRootWindow()) -+// continue; -+ -+ if (be.button == 1) { -+ if (! screen2->isRootColormapInstalled()) -+ screen2->getImageControl()->installRootColormap(); -+ -+ if (screen2->getWorkspacemenu()->isVisible()) -+ screen2->getWorkspacemenu()->hide(); -+ if (screen2->getRootmenu()->isVisible()) -+ screen2->getRootmenu()->hide(); -+ } -+ } -+ // FIX END -+ - - } else if ((menu = searchMenu(be.window))) { - menu->buttonPressEvent(&be); diff --git a/x11-wm/fluxbox/fluxbox-0.1.14-r2.ebuild b/x11-wm/fluxbox/fluxbox-0.1.14-r2.ebuild deleted file mode 100644 index 6680fb6e688c..000000000000 --- a/x11-wm/fluxbox/fluxbox-0.1.14-r2.ebuild +++ /dev/null @@ -1,68 +0,0 @@ -# Copyright 1999-2004 Gentoo Technologies, Inc. -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/x11-wm/fluxbox/fluxbox-0.1.14-r2.ebuild,v 1.12 2004/04/29 08:36:57 ciaranm Exp $ - -IUSE="kde gnome nls xinerama truetype cjk" - -inherit commonbox flag-o-matic eutils gnuconfig - -S=${WORKDIR}/${P} -DESCRIPTION="Window manager based on Blackbox -- has tabs." -SRC_URI="http://download.sourceforge.net/${PN}/${P}.tar.bz2" -HOMEPAGE="http://fluxbox.sf.net" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="x86 ppc sparc hppa mips ~amd64 alpha" -PROVIDE="virtual/blackbox" - -mydoc="ChangeLog COPYING NEWS" - -DEPEND=">=dev-util/pkgconfig-0.12.0" - -src_unpack() { - - unpack ${A} - cd ${S} - # Patch to fix toggledecor for terms - epatch ${FILESDIR}/${P}-toggledecor.patch - # Remember patch - #epatch ${FILESDIR}/${P}-remember.patch - # Menukey patch - epatch ${FILESDIR}/${P}-menukey.patch - # Vano menu destroy patch - epatch ${FILESDIR}/${PN}-vano-gentoo.patch - # gcc 3.3 fixes - epatch ${FILESDIR}/${P}-gcc33.patch - - if [ `use cjk` ]; then - epatch ${FILESDIR}/${P}-ja.patch - fi -} - -src_compile() { - if pkg-config xft - then - append-flags "-I/usr/include/freetype2" - fi - filter-flags -fno-exceptions - - # Allow configure to detect mipslinux systems - use mips && gnuconfig_update - - commonbox_src_compile - - cd data - make \ - pkgdatadir=/usr/share/commonbox init -} - -src_install() { - - commonbox_src_install - cd data - insinto /usr/share/commonbox - doins init keys - rmdir ${D}/usr/share/commonbox/fluxbox - rm -f ${D}/usr/bin/fluxbox-generate_menu -} diff --git a/x11-wm/fluxbox/fluxbox-0.9.8.ebuild b/x11-wm/fluxbox/fluxbox-0.9.8.ebuild deleted file mode 100644 index 4c9a8d973ba3..000000000000 --- a/x11-wm/fluxbox/fluxbox-0.9.8.ebuild +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright 1999-2004 Gentoo Technologies, Inc. -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/x11-wm/fluxbox/fluxbox-0.9.8.ebuild,v 1.11 2004/04/29 08:36:57 ciaranm Exp $ - -IUSE="nls xinerama truetype kde gnome" - -DESCRIPTION="Fluxbox is a lightweight windowmanager for X featuring tabs." -SRC_URI="mirror://sourceforge/fluxbox/${P}.tar.gz" -HOMEPAGE="http://www.fluxbox.org" - -# Please note that USE="kde gnome" simply adds support for -# the respective protocols, and does not depend on external libraries. -DEPEND=">=sys-devel/autoconf-2.52 - ${RDEPEND}" -RDEPEND="virtual/x11 - truetype? ( media-libs/freetype ) - nls? ( sys-devel/gettext )" -PROVIDE="virtual/blackbox" - -SLOT="0" -LICENSE="MIT" -KEYWORDS="x86 ppc sparc amd64 alpha hppa ia64 ~mips" - -src_compile() { - econf \ - `use_enable nls` \ - `use_enable xinerama` \ - `use_enable truetype xft` \ - `use_enable kde` \ - `use_enable gnome` \ - --sysconfdir=/etc/X11/${PN} \ - ${myconf} || die "configure failed" - - emake || die "make failed" -} - -src_install() { - dodir /usr/share/fluxbox - make DESTDIR=${D} install || die "make install failed" - dodoc README* AUTHORS TODO* COPYING - - dodir /etc/X11/Sessions - echo "/usr/bin/startfluxbox" > ${D}/etc/X11/Sessions/fluxbox - fperms a+x /etc/X11/Sessions/fluxbox -} - -pkg_postinst() { - ewarn - ewarn "Please note that this release no longer uses commonbox.eclass" - ewarn "and now installs data files in /usr/share/fluxbox." - ewarn - einfo "This ebuild now creates an /etc/X11/Sessions entry." - einfo -} - |