summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCiaran McCreesh <ciaranm@gentoo.org>2004-05-06 17:09:34 +0000
committerCiaran McCreesh <ciaranm@gentoo.org>2004-05-06 17:09:34 +0000
commit3ca160620c2a4fcdc7c484915d29a257d5c813b1 (patch)
tree3606ebddc66ad4ab71ec1e161e54ac9e9290d2d2 /x11-wm/fluxbox
parentRemove explicit S= (Manifest recommit) (diff)
downloadgentoo-2-3ca160620c2a4fcdc7c484915d29a257d5c813b1.tar.gz
gentoo-2-3ca160620c2a4fcdc7c484915d29a257d5c813b1.tar.bz2
gentoo-2-3ca160620c2a4fcdc7c484915d29a257d5c813b1.zip
cleanup
Diffstat (limited to 'x11-wm/fluxbox')
-rw-r--r--x11-wm/fluxbox/ChangeLog14
-rw-r--r--x11-wm/fluxbox/files/0.9.7/01_cache-bugfix.patch93
-rw-r--r--x11-wm/fluxbox/files/0.9.7/02_iconbar-bugfix.patch20
-rw-r--r--x11-wm/fluxbox/files/digest-fluxbox-0.1.14-r21
-rw-r--r--x11-wm/fluxbox/files/digest-fluxbox-0.9.81
-rw-r--r--x11-wm/fluxbox/files/fluxbox-0.1.13-Xft2.patch49
-rw-r--r--x11-wm/fluxbox/files/fluxbox-0.1.13-aa2.patch40
-rw-r--r--x11-wm/fluxbox/files/fluxbox-0.1.13-menukey.patch222
-rw-r--r--x11-wm/fluxbox/files/fluxbox-0.1.13-nls.patch22
-rw-r--r--x11-wm/fluxbox/files/fluxbox-0.1.13-openoffice.patch12
-rw-r--r--x11-wm/fluxbox/files/fluxbox-0.1.13-remember.patch1149
-rw-r--r--x11-wm/fluxbox/files/fluxbox-0.1.14-gcc33.patch147
-rw-r--r--x11-wm/fluxbox/files/fluxbox-0.1.14-ja.patch105
-rw-r--r--x11-wm/fluxbox/files/fluxbox-0.1.14-menukey.patch222
-rw-r--r--x11-wm/fluxbox/files/fluxbox-0.1.14-remember.patch1251
-rw-r--r--x11-wm/fluxbox/files/fluxbox-0.1.14-toggledecor.patch25
-rw-r--r--x11-wm/fluxbox/files/fluxbox-vano-gentoo.patch35
-rw-r--r--x11-wm/fluxbox/fluxbox-0.1.14-r2.ebuild68
-rw-r--r--x11-wm/fluxbox/fluxbox-0.9.8.ebuild55
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
-}
-