diff options
17 files changed, 1037 insertions, 12 deletions
diff --git a/x11-wm/fluxbox/ChangeLog b/x11-wm/fluxbox/ChangeLog index 39c39c7bed77..f3262259e48f 100644 --- a/x11-wm/fluxbox/ChangeLog +++ b/x11-wm/fluxbox/ChangeLog @@ -1,6 +1,28 @@ # ChangeLog for x11-wm/fluxbox # Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/x11-wm/fluxbox/ChangeLog,v 1.119 2004/09/06 23:47:12 ciaranm Exp $ +# $Header: /var/cvsroot/gentoo-x86/x11-wm/fluxbox/ChangeLog,v 1.120 2004/09/15 14:28:10 ciaranm Exp $ + +*fluxbox-0.9.10-r3 (15 Sep 2004) + + 15 Sep 2004; Ciaran McCreesh <ciaranm@gentoo.org> + +files/0.9.10/fluxbox-0.9.10-all-about-me.patch, + +files/0.9.10/fluxbox-0.9.10-editor-thingies.patch, + +files/0.9.10/fluxbox-0.9.10-fancy-gentoo-styledirs.patch, + +files/0.9.10/fluxbox-0.9.10-make-pretty-eye-candy-work.patch, + +files/0.9.10/fluxbox-0.9.10-menu-include-directories.patch, + +files/0.9.10/fluxbox-0.9.10-misc-updates.patch, + +files/0.9.10/fluxbox-0.9.10-my-term-is-better-than-your-term.patch, + +files/0.9.10/fluxbox-0.9.10-posix-on-toast.patch, + +files/0.9.10/fluxbox-0.9.10-super-x-voodoo-two.patch, + +files/0.9.10/fluxbox-0.9.10-super-x-voodoo.patch, + +files/0.9.10/styles-menu-commonbox, +files/0.9.10/styles-menu-fluxbox, + +files/0.9.10/styles-menu-user, +fluxbox-0.9.10-r3.ebuild: + New revision bump. Includes the xcomposite workaround from upstream (fixes bug + #63689), the X error reduction patches from upstream, POSIX-style head for + fluxbox-generate_menu (bug #63591), fluxbox-generate_menu for several extra + editors and terminals, more detailed fluxbox -version, an About entry in the + fluxbox menu, support for including directories in menus and a new improved + styles directory system. *fluxbox-0.9.10-r2 (07 Sep 2004) diff --git a/x11-wm/fluxbox/Manifest b/x11-wm/fluxbox/Manifest index 1347c076e675..7a7fbe017bd3 100644 --- a/x11-wm/fluxbox/Manifest +++ b/x11-wm/fluxbox/Manifest @@ -1,25 +1,40 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 -MD5 72eaed6596c18b00e8764b9b8d141d94 fluxbox-0.9.8-r1.ebuild 1628 -MD5 98f10baea47e66745864e9698ebcc8a2 ChangeLog 22505 -MD5 e32e90cae45649a244643d82e3738ab3 fluxbox-0.9.10-r1.ebuild 1823 -MD5 fb91a86bbf58cb4d7e40f9536c319766 metadata.xml 437 +MD5 dda7f33bbb68679a355901cccc11bbca ChangeLog 23726 MD5 c1e52dbcaa8020405ce9b6f8ad05c0a4 fluxbox-0.9.10-r2.ebuild 1999 MD5 010fb64778d2657638b423bd53e90e58 fluxbox-0.9.9.ebuild 1695 +MD5 e32e90cae45649a244643d82e3738ab3 fluxbox-0.9.10-r1.ebuild 1823 +MD5 72eaed6596c18b00e8764b9b8d141d94 fluxbox-0.9.8-r1.ebuild 1628 +MD5 fb91a86bbf58cb4d7e40f9536c319766 metadata.xml 437 +MD5 41b90f0f23bac808c712e18e48974226 fluxbox-0.9.10-r3.ebuild 3998 MD5 c11d6a60aaece3dd919a1802a23ecc7a files/digest-fluxbox-0.9.8-r1 65 MD5 c4565cd7f88b9897ccb504eef29fa8f3 files/digest-fluxbox-0.9.10-r1 67 -MD5 c4565cd7f88b9897ccb504eef29fa8f3 files/digest-fluxbox-0.9.10-r2 67 -MD5 cde8982304ad765c60a68874325d66fb files/digest-fluxbox-0.9.9 65 MD5 4bafaa2a6712efa9f0c040b6072c8169 files/fluxbox-0.9.9-gcc3.4.patch 527 +MD5 c4565cd7f88b9897ccb504eef29fa8f3 files/digest-fluxbox-0.9.10-r3 67 MD5 133c9b57600834dedcdbca2ed789327d files/fluxbox.desktop 202 -MD5 33fa4c925ae4fe1b5797673a4508c548 files/0.9.10/fluxbox-0.9.10-workspacemenu-crash.patch 2616 -MD5 ee36523cd5cf3281d0261244260840c9 files/0.9.10/fluxbox-0.9.10-amd64-font-fix.patch 774 +MD5 cde8982304ad765c60a68874325d66fb files/digest-fluxbox-0.9.9 65 +MD5 c4565cd7f88b9897ccb504eef29fa8f3 files/digest-fluxbox-0.9.10-r2 67 MD5 71a4dfce6e2832c47b9191caab6e3d35 files/0.9.10/fluxbox-0.9.10-windowmenu-crash.patch 2510 +MD5 9ae40c5c7aebae1c5919adbd888710b4 files/0.9.10/styles-menu-user 93 +MD5 1c0b2aaf218be67efc82bcb455e713ec files/0.9.10/fluxbox-0.9.10-my-term-is-better-than-your-term.patch 968 +MD5 48b051c794986e9acb73631e0642e2d9 files/0.9.10/fluxbox-0.9.10-super-x-voodoo-two.patch 3203 +MD5 61d8fb7f72eb34b75cbf5c2e9b291fa3 files/0.9.10/fluxbox-0.9.10-misc-updates.patch 13915 +MD5 b5f651453c6bbf6089cf65ec5cd83722 files/0.9.10/fluxbox-0.9.10-make-pretty-eye-candy-work.patch 563 +MD5 62f4dad35c8868b0c158881095512cc6 files/0.9.10/fluxbox-0.9.10-fancy-gentoo-styledirs.patch 946 +MD5 ee36523cd5cf3281d0261244260840c9 files/0.9.10/fluxbox-0.9.10-amd64-font-fix.patch 774 +MD5 9f6f105cbf9396f450e77dbf885b0a02 files/0.9.10/styles-menu-commonbox 127 +MD5 a39d5b26fb1695fd9264cca078ad0d58 files/0.9.10/fluxbox-0.9.10-super-x-voodoo.patch 7008 +MD5 97574b9984c119ced3c259bd8c314588 files/0.9.10/fluxbox-0.9.10-all-about-me.patch 674 +MD5 8b288a50d112b48b73c791893dac61f9 files/0.9.10/fluxbox-0.9.10-editor-thingies.patch 804 +MD5 4db83b69b94628dc9f05c797bd01c95b files/0.9.10/styles-menu-fluxbox 117 +MD5 b285687968580fa55ffcf5e586426ee7 files/0.9.10/fluxbox-0.9.10-posix-on-toast.patch 889 +MD5 33fa4c925ae4fe1b5797673a4508c548 files/0.9.10/fluxbox-0.9.10-workspacemenu-crash.patch 2616 +MD5 7295edfc76f1cca87164e419e2d3b637 files/0.9.10/fluxbox-0.9.10-menu-include-directories.patch 1948 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) -iD8DBQFBPPZcLLFUmVNQ7rkRAqLIAJ9kInb6QXdCFEZ90JgtUm4/YapUlACgtz6q -yhVFF5ZcpoBRPOl4vrmPqlM= -=8292 +iD8DBQFBSFDQLLFUmVNQ7rkRApXeAKCYGgylkd2KXJZu0RSvh8C2G5LO5QCeJLQz +GXMA2cxTtZ+22WVSlgwWpac= +=ujV+ -----END PGP SIGNATURE----- diff --git a/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-all-about-me.patch b/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-all-about-me.patch new file mode 100644 index 000000000000..819e6b01f2c1 --- /dev/null +++ b/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-all-about-me.patch @@ -0,0 +1,16 @@ +Index: util/fluxbox-generate_menu.in +=================================================================== +RCS file: /cvsroot/fluxbox/fluxbox/util/fluxbox-generate_menu.in,v +retrieving revision 1.29 +diff -u -r1.29 fluxbox-generate_menu.in +--- util/fluxbox-generate_menu.in 9 Sep 2004 15:25:26 -0000 1.29 ++++ util/fluxbox-generate_menu.in 11 Sep 2004 22:23:06 -0000 +@@ -1282,6 +1282,7 @@ + append "[commanddialog] (${FLUXBOXCOMMAND})" + append "[reconfig] (${RELOADITEM})" + append "[restart] (${RESTARTITEM})" ++ append "[exec] (About) {fluxbox -v 2>/dev/null | head -n1 | xmessage -file - -center}" + append "[separator]" + append "[exit] (${EXITITEM})" + + diff --git a/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-editor-thingies.patch b/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-editor-thingies.patch new file mode 100644 index 000000000000..589afb43f31e --- /dev/null +++ b/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-editor-thingies.patch @@ -0,0 +1,16 @@ +Index: util/fluxbox-generate_menu.in +=================================================================== +RCS file: /cvsroot/fluxbox/fluxbox/util/fluxbox-generate_menu.in,v +retrieving revision 1.29 +diff -u -r1.29 fluxbox-generate_menu.in +--- util/fluxbox-generate_menu.in 9 Sep 2004 15:25:26 -0000 1.29 ++++ util/fluxbox-generate_menu.in 11 Sep 2004 15:50:01 -0000 +@@ -1095,7 +1095,7 @@ + + append_submenu "${EDITORMENU}" + normal_find gvim bluefish nedit gedit xedit kword kwrite kate anjuta \ +- wings xemacs emacs ++ wings xemacs emacs kvim cream + find_it nano append "[exec] (nano) {${DEFAULT_TERM} -e nano}" + find_it vi append "[exec] (vi) {${DEFAULT_TERM} -e vi}" ||\ + find_it vim append "[exec] (vim) {${DEFAULT_TERM} -e vim}" diff --git a/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-fancy-gentoo-styledirs.patch b/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-fancy-gentoo-styledirs.patch new file mode 100644 index 000000000000..d07451610a8a --- /dev/null +++ b/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-fancy-gentoo-styledirs.patch @@ -0,0 +1,24 @@ +Index: util/fluxbox-generate_menu.in +=================================================================== +RCS file: /cvsroot/fluxbox/fluxbox/util/fluxbox-generate_menu.in,v +retrieving revision 1.29 +diff -u -r1.29 fluxbox-generate_menu.in +--- util/fluxbox-generate_menu.in 9 Sep 2004 15:25:26 -0000 1.29 ++++ util/fluxbox-generate_menu.in 12 Sep 2004 00:16:31 -0000 +@@ -1201,13 +1201,8 @@ + append_submenu "${FBSETTINGSMENU}" + append "[config] (${CONFIGUREMENU})" + +- append_menu "[submenu] (${SYSTEMSTYLES}) {${STYLEMENUTITLE}}" +- append "[stylesdir] (${PREFIX}/share/fluxbox/styles)" +- append "[stylesdir] (/usr/share/commonbox/styles/)" +- append_menu_end +- +- append_menu "[submenu] (${USERSTYLES}) {${STYLEMENUTITLE}}" +- append "[stylesdir] (~/.fluxbox/styles)" ++ append_menu "[submenu] (Styles) (Select a Style)" ++ append "[include] (/usr/share/fluxbox/menu.d/styles/)" + append_menu_end + + # Backgroundmenu + diff --git a/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-make-pretty-eye-candy-work.patch b/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-make-pretty-eye-candy-work.patch new file mode 100644 index 000000000000..7688f2563761 --- /dev/null +++ b/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-make-pretty-eye-candy-work.patch @@ -0,0 +1,12 @@ +--- fluxbox.toolbar/src/FbRootWindow.cc 2003-05-13 20:51:39.000000000 +1000 ++++ fluxbox.real/src/FbRootWindow.cc 2004-09-12 00:13:06.000000000 +1000 +@@ -46,7 +46,8 @@ + vinfo_nitems > 0) { + + for (int i = 0; i < vinfo_nitems; i++) { +- if (DefaultDepth(disp, screen_num) < vinfo_return[i].depth) ++ // We can't handle 32-bit visuals just yet (Composite ARGB) ++ if (vinfo_return[i].depth != 32 && DefaultDepth(disp, screen_num) < vinfo_return[i].depth) + m_visual = vinfo_return[i].visual; + } + diff --git a/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-menu-include-directories.patch b/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-menu-include-directories.patch new file mode 100644 index 000000000000..520370ea272f --- /dev/null +++ b/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-menu-include-directories.patch @@ -0,0 +1,42 @@ +Index: src/MenuCreator.cc +=================================================================== +RCS file: /cvsroot/fluxbox/fluxbox/src/MenuCreator.cc,v +retrieving revision 1.14 +diff -u -r1.14 MenuCreator.cc +--- src/MenuCreator.cc 9 Sep 2004 14:32:56 -0000 1.14 ++++ src/MenuCreator.cc 12 Sep 2004 00:14:03 -0000 +@@ -221,9 +221,31 @@ + } // end of config + else if (str_key == "include") { // include + string newfile = FbTk::StringUtil::expandFilename(str_label); +- // inject this file into the current menu +- MenuCreator::createFromFile(newfile, menu); +- Fluxbox::instance()->saveMenuFilename(newfile.c_str()); ++ if (FbTk::Directory::isDirectory(newfile)) { ++ // inject every file in this directory into the current menu ++ FbTk::Directory dir(newfile.c_str()); ++ ++ std::vector<std::string> filelist(dir.entries()); ++ for (size_t file_index = 0; file_index < dir.entries(); ++file_index) ++ filelist[file_index] = dir.readFilename(); ++ std::sort(filelist.begin(), filelist.end(), less<string>()); ++ ++ for (size_t file_index = 0; file_index < dir.entries(); file_index++) { ++ std::string thisfile(newfile + '/' + filelist[file_index]); ++ ++ if (FbTk::Directory::isRegularFile(thisfile) && ++ (filelist[file_index][0] != '.') && ++ (thisfile[thisfile.length() - 1] != '~')) { ++ MenuCreator::createFromFile(thisfile, menu); ++ Fluxbox::instance()->saveMenuFilename(thisfile.c_str()); ++ } ++ } ++ ++ } else { ++ // inject this file into the current menu ++ MenuCreator::createFromFile(newfile, menu); ++ Fluxbox::instance()->saveMenuFilename(newfile.c_str()); ++ } + } // end of include + else if (str_key == "submenu") { + diff --git a/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-misc-updates.patch b/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-misc-updates.patch new file mode 100644 index 000000000000..674ca72f5081 --- /dev/null +++ b/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-misc-updates.patch @@ -0,0 +1,450 @@ +Index: src/FbTk/FbPixmap.cc +=================================================================== +RCS file: /cvsroot/fluxbox/fluxbox/src/FbTk/FbPixmap.cc,v +retrieving revision 1.12 +retrieving revision 1.14 +diff -u -r1.12 -r1.14 +--- src/FbTk/FbPixmap.cc 6 Jul 2004 10:47:36 -0000 1.12 ++++ src/FbTk/FbPixmap.cc 10 Sep 2004 15:46:08 -0000 1.14 +@@ -30,21 +30,23 @@ + + #include <X11/Xutil.h> ++#include <X11/Xatom.h> + #include <iostream> + using namespace std; + + namespace FbTk { + +-FbPixmap::FbPixmap():m_pm(0), +- m_width(0), m_height(0), +- m_depth(0) { } +- +-FbPixmap::FbPixmap(const FbPixmap &the_copy):m_pm(0), +- m_width(0), m_height(0), +- m_depth(0) { ++FbPixmap::FbPixmap():m_pm(0), ++ m_width(0), m_height(0), ++ m_depth(0) { ++} ++ ++FbPixmap::FbPixmap(const FbPixmap &the_copy):FbDrawable(), m_pm(0), ++ m_width(0), m_height(0), ++ m_depth(0){ + copy(the_copy); + } + +-FbPixmap::FbPixmap(Pixmap pm):m_pm(0), ++FbPixmap::FbPixmap(Pixmap pm):m_pm(0), + m_width(0), m_height(0), + m_depth(0) { + if (pm == 0) +@@ -50,19 +52,19 @@ + (*this) = pm; + } + +-FbPixmap::FbPixmap(const FbDrawable &src, ++FbPixmap::FbPixmap(const FbDrawable &src, + unsigned int width, unsigned int height, +- int depth):m_pm(0), +- m_width(0), m_height(0), ++ int depth):m_pm(0), ++ m_width(0), m_height(0), + m_depth(0) { + + create(src.drawable(), width, height, depth); + } + +-FbPixmap::FbPixmap(Drawable src, ++FbPixmap::FbPixmap(Drawable src, + unsigned int width, unsigned int height, +- int depth):m_pm(0), +- m_width(0), m_height(0), ++ int depth):m_pm(0), ++ m_width(0), m_height(0), + m_depth(0) { + + create(src, width, height, depth); +@@ -87,8 +89,8 @@ + // get width, height and depth for the pixmap + Window root; + int x, y; +- unsigned int border_width, bpp; +- XGetGeometry(FbTk::App::instance()->display(), ++ unsigned int border_width, bpp; ++ XGetGeometry(s_display, + pm, + &root, + &x, &y, +@@ -112,20 +114,20 @@ + the_copy.depth() != depth() || + drawable() == 0) + create_new = true; +- +- if (create_new) ++ ++ if (create_new) + free(); + + if (the_copy.drawable() != 0) { + if (create_new) { +- create(the_copy.drawable(), ++ create(the_copy.drawable(), + the_copy.width(), the_copy.height(), + the_copy.depth()); + } +- ++ + if (drawable()) { + GContext gc(drawable()); +- ++ + copyArea(the_copy.drawable(), + gc.gc(), + 0, 0, +@@ -146,7 +148,7 @@ + unsigned int border_width, bpp; + unsigned int new_width, new_height; + +- XGetGeometry(FbTk::App::instance()->display(), ++ XGetGeometry(s_display, + pm, + &root, + &x, &y, +@@ -155,25 +157,21 @@ + &bpp); + // create new pixmap and copy area + create(root, new_width, new_height, bpp); +- +- Display *disp = FbTk::App::instance()->display(); + +- GC gc = XCreateGC(disp, drawable(), 0, 0); ++ GC gc = XCreateGC(s_display, drawable(), 0, 0); + +- XCopyArea(disp, pm, drawable(), gc, ++ XCopyArea(s_display, pm, drawable(), gc, + 0, 0, + width(), height(), + 0, 0); + +- XFreeGC(disp, gc); ++ XFreeGC(s_display, gc); + } + + void FbPixmap::rotate() { + +- Display *dpy = FbTk::App::instance()->display(); +- + // make an image copy +- XImage *src_image = XGetImage(dpy, drawable(), ++ XImage *src_image = XGetImage(s_display, drawable(), + 0, 0, // pos + width(), height(), // size + ~0, // plane mask +@@ -184,11 +182,11 @@ + GContext gc(drawable()); + + // copy new area +- for (int y = 0; y < static_cast<signed>(height()); ++y) { +- for (int x = 0; x < static_cast<signed>(width()); ++x) { ++ for (unsigned int y = 0; y < height(); ++y) { ++ for (unsigned int x = 0; x < width(); ++x) { + gc.setForeground(XGetPixel(src_image, x, y)); + // revers coordinates +- XDrawPoint(dpy, new_pm.drawable(), gc.gc(), y, x); ++ XDrawPoint(s_display, new_pm.drawable(), gc.gc(), y, x); + } + } + +@@ -203,13 +201,12 @@ + } + + void FbPixmap::scale(unsigned int dest_width, unsigned int dest_height) { +- if (drawable() == 0 || ++ ++ if (drawable() == 0 || + (dest_width == width() && dest_height == height())) + return; + +- Display *dpy = FbTk::App::instance()->display(); +- +- XImage *src_image = XGetImage(dpy, drawable(), ++ XImage *src_image = XGetImage(s_display, drawable(), + 0, 0, // pos + width(), height(), // size + ~0, // plane mask +@@ -227,13 +224,13 @@ + + // start scaling + float src_x = 0, src_y = 0; +- for (int tx=0; tx < static_cast<signed>(dest_width); ++tx, src_x += zoom_x) { ++ for (unsigned int tx=0; tx < dest_width; ++tx, src_x += zoom_x) { + src_y = 0; +- for (int ty=0; ty < static_cast<signed>(dest_height); ++ty, src_y += zoom_y) { ++ for (unsigned int ty=0; ty < dest_height; ++ty, src_y += zoom_y) { + gc.setForeground(XGetPixel(src_image, + static_cast<int>(src_x), + static_cast<int>(src_y))); +- XDrawPoint(dpy, new_pm.drawable(), gc.gc(), tx, ty); ++ XDrawPoint(s_display, new_pm.drawable(), gc.gc(), tx, ty); + } + } + +@@ -249,23 +246,23 @@ + } + + void FbPixmap::tile(unsigned int dest_width, unsigned int dest_height) { +- if (drawable() == 0 || ++ if (drawable() == 0 || + (dest_width == width() && dest_height == height())) + return; +- ++ + FbPixmap new_pm(drawable(), width(), height(), depth()); + + new_pm.copy(m_pm); + + resize(dest_width, dest_height); +- ++ + FbTk::GContext gc(*this); +- ++ + gc.setTile(new_pm); + gc.setFillStyle(FillTiled); + + fillRectangle(gc.gc(), 0, 0, dest_width, dest_height); +- ++ + } + + +@@ -284,9 +281,61 @@ + return ret; + } + ++Pixmap FbPixmap::getRootPixmap(int screen_num) { ++ ++ Atom real_type; ++ int real_format; ++ unsigned long items_read, items_left; ++ unsigned int *data; ++ ++ unsigned int prop = 0; ++ static const char* prop_ids[] = { ++ "_XROOTPMAP_ID", ++ "_XSETROOT_ID", ++ 0 ++ }; ++ static bool print_error = true; // print error_message only once ++ static const char* error_message = { "\n\n !!! WARNING WARNING WARNING WARNING !!!!!\n" ++ " if you experience problems with transparency:\n" ++ " you are using a wallpapersetter that \n" ++ " uses _XSETROOT_ID .. which we do not support.\n" ++ " consult 'fbsetbg -i' or try any other wallpapersetter\n" ++ " that uses _XROOTPMAP_ID !\n" ++ " !!! WARNING WARNING WARNING WARNING !!!!!!\n\n" ++ }; ++ ++ Pixmap root_pm = None; ++ ++ for (prop = 0; prop_ids[prop]; prop++) { ++ if (XGetWindowProperty(s_display, ++ RootWindow(s_display, screen_num), ++ XInternAtom(s_display, prop_ids[prop], False), ++ 0L, 4, ++ False, XA_PIXMAP, ++ &real_type, &real_format, ++ &items_read, &items_left, ++ (unsigned char **) &data) == Success && ++ real_format == 32 && items_read == 1) { ++ ++ if (strcmp(prop_ids[prop], "_XSETROOT_ID") == 0) { ++ if (print_error) { ++ fprintf(stderr, "%s", error_message); ++ print_error = false; ++ } ++ } else ++ root_pm = (Pixmap) (*data); ++ ++ XFree(data); ++ break; ++ } ++ } ++ ++ return root_pm; ++} ++ + void FbPixmap::free() { + if (m_pm != 0) { +- XFreePixmap(FbTk::App::instance()->display(), m_pm); ++ XFreePixmap(s_display, m_pm); + m_pm = 0; + } + m_width = 0; +@@ -294,13 +343,13 @@ + m_depth = 0; + } + +-void FbPixmap::create(Drawable src, +- unsigned int width, unsigned int height, ++void FbPixmap::create(Drawable src, ++ unsigned int width, unsigned int height, + int depth) { + if (src == 0) + return; + +- m_pm = XCreatePixmap(FbTk::App::instance()->display(), ++ m_pm = XCreatePixmap(s_display, + src, width, height, depth); + if (m_pm == 0) + return; +Index: src/FbTk/FbPixmap.hh +=================================================================== +RCS file: /cvsroot/fluxbox/fluxbox/src/FbTk/FbPixmap.hh,v +retrieving revision 1.12 +retrieving revision 1.13 +diff -r1.12 -r1.13 +70a71 +> static Pixmap getRootPixmap(int screen_num); +Index: src/FbTk/FbWindow.cc +=================================================================== +RCS file: /cvsroot/fluxbox/fluxbox/src/FbTk/FbWindow.cc,v +retrieving revision 1.37 +retrieving revision 1.39 +diff -r1.37 -r1.39 +24a25 +> #include "FbPixmap.hh" +46,73c47 +< namespace { +< Pixmap getRootPixmap(int screen_num) { +< Pixmap root_pm = 0; +< // get root pixmap for transparency +< Display *disp = FbTk::App::instance()->display(); +< Atom real_type; +< int real_format; +< unsigned long items_read, items_left; +< unsigned int *data; +< if (XGetWindowProperty(disp, RootWindow(disp, screen_num), +< XInternAtom(disp, "_XROOTPMAP_ID", false), +< 0L, 1L, +< false, XA_PIXMAP, &real_type, +< &real_format, &items_read, &items_left, +< (unsigned char **) &data) == Success && +< items_read) { +< root_pm = (Pixmap) (*data); +< XFree(data); +< } +< +< return root_pm; +< } +< +< }; // end anonymous namespace +< +< Display *FbWindow::s_display = 0; +< +< FbWindow::FbWindow():m_parent(0), m_screen_num(0), m_window(0), m_x(0), m_y(0), +--- +> FbWindow::FbWindow():FbDrawable(), m_parent(0), m_screen_num(0), m_window(0), m_x(0), m_y(0), +75c49 +< m_buffer_pm(0) { +--- +> m_buffer_pm(0){ +77,78d50 +< if (s_display == 0) +< s_display = App::instance()->display(); +88,90d59 +< if (s_display == 0) +< s_display = App::instance()->display(); +< +101a71 +> FbDrawable(), +107c77 +< create(RootWindow(FbTk::App::instance()->display(), screen_num), +--- +> create(RootWindow(s_display, screen_num), +129c99 +< FbWindow::FbWindow(Window client):m_parent(0), +--- +> FbWindow::FbWindow(Window client):FbDrawable(), m_parent(0), +139,141d108 +< if (s_display == 0) +< s_display = App::instance()->display(); +< +210c177 +< Pixmap root = getRootPixmap(screenNumber()); +--- +> Pixmap root = FbPixmap::getRootPixmap(screenNumber()); +248c215 +< m_transparent.reset(new Transparent(getRootPixmap(screenNumber()), window(), alpha, screenNumber())); +--- +> m_transparent.reset(new Transparent(FbPixmap::getRootPixmap(screenNumber()), window(), alpha, screenNumber())); +285,286d251 +< if (s_display == 0) +< s_display = App::instance()->display(); +450,452d414 +< if (s_display == 0) +< s_display = FbTk::App::instance()->display(); +< +Index: src/FbTk/FbWindow.hh +=================================================================== +RCS file: /cvsroot/fluxbox/fluxbox/src/FbTk/FbWindow.hh,v +retrieving revision 1.32 +retrieving revision 1.33 +diff -r1.32 -r1.33 +182d181 +< static Display *s_display; ///< display connection +Index: src/FbTk/FbDrawable.cc +=================================================================== +RCS file: /cvsroot/fluxbox/fluxbox/src/FbTk/FbDrawable.cc,v +retrieving revision 1.2 +retrieving revision 1.3 +diff -r1.2 -r1.3 +29a30,38 +> Display *FbDrawable::s_display = 0; +> +> FbDrawable::FbDrawable() { +> +> if (s_display == 0) { +> s_display = FbTk::App::instance()->display(); +> } +> } +> +36c45 +< XCopyArea(FbTk::App::instance()->display(), +--- +> XCopyArea(s_display, +47c56 +< XFillRectangle(FbTk::App::instance()->display(), +--- +> XFillRectangle(s_display, +57c66 +< XDrawRectangle(FbTk::App::instance()->display(), +--- +> XDrawRectangle(s_display, +67c76 +< XDrawLine(FbTk::App::instance()->display(), +--- +> XDrawLine(s_display, +78c87 +< XFillPolygon(FbTk::App::instance()->display(), +--- +> XFillPolygon(s_display, +86c95 +< XDrawPoint(FbTk::App::instance()->display(), drawable(), gc, x, y); +--- +> XDrawPoint(s_display, drawable(), gc, x, y); +90c99 +< return XGetImage(FbTk::App::instance()->display(), drawable(), +--- +> return XGetImage(s_display, drawable(), +Index: src/FbTk/FbDrawable.hh +=================================================================== +RCS file: /cvsroot/fluxbox/fluxbox/src/FbTk/FbDrawable.hh,v +retrieving revision 1.4 +retrieving revision 1.5 +diff -r1.4 -r1.5 +32a33 +> FbDrawable(); +57a59,60 +> protected: +> static Display *s_display; // display connection // display connection diff --git a/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-my-term-is-better-than-your-term.patch b/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-my-term-is-better-than-your-term.patch new file mode 100644 index 000000000000..9b3dd0be5f16 --- /dev/null +++ b/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-my-term-is-better-than-your-term.patch @@ -0,0 +1,26 @@ +Index: util/fluxbox-generate_menu.in +=================================================================== +RCS file: /cvsroot/fluxbox/fluxbox/util/fluxbox-generate_menu.in,v +retrieving revision 1.29 +diff -u -r1.29 fluxbox-generate_menu.in +--- util/fluxbox-generate_menu.in 9 Sep 2004 15:25:26 -0000 1.29 ++++ util/fluxbox-generate_menu.in 11 Sep 2004 15:44:57 -0000 +@@ -960,7 +960,7 @@ + else + [ -n "$MY_TERM" ] && echo "Warning: you chose an invalid term." >&2 + #The precise order is up for debate. +- for term in Eterm aterm rxvt wterm xterm konsole gnome-terminal; do ++ for term in urxvtc urxvt Eterm aterm rxvt wterm konsole gnome-terminal xterm ; do + if find_it $term; then + DEFAULT_TERM=$term + break +@@ -1038,7 +1038,7 @@ + + + append_submenu "${TERMINALMENU}" +- normal_find xterm gnome-terminal Eterm konsole aterm rxvt ++ normal_find xterm gnome-terminal Eterm konsole aterm rxvt urxvt urxvtc + append_menu_end + + + diff --git a/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-posix-on-toast.patch b/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-posix-on-toast.patch new file mode 100644 index 000000000000..c0bfcea8ed71 --- /dev/null +++ b/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-posix-on-toast.patch @@ -0,0 +1,18 @@ +Index: util/fluxbox-generate_menu.in +=================================================================== +RCS file: /cvsroot/fluxbox/fluxbox/util/fluxbox-generate_menu.in,v +retrieving revision 1.29 +diff -u -r1.29 fluxbox-generate_menu.in +--- util/fluxbox-generate_menu.in 9 Sep 2004 15:25:26 -0000 1.29 ++++ util/fluxbox-generate_menu.in 11 Sep 2004 15:40:13 -0000 +@@ -173,8 +173,8 @@ + menu_entry() { + if [ -f "$1" ]; then + # space&tab here +- entry_name=`grep '^[ ]*Name=' "$1" | head -1 | cut -d = -f 2` +- entry_exec=`grep '^[ ]*Exec=' "$1" | head -1 | cut -d = -f 2` ++ entry_name=`grep '^[ ]*Name=' "$1" | head -n 1 | cut -d = -f 2` ++ entry_exec=`grep '^[ ]*Exec=' "$1" | head -n 1 | cut -d = -f 2` + if [ -n "$entry_name" -a -n "$entry_exec" ]; then + append "[exec] ($entry_name) {$entry_exec}" + fi diff --git a/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-super-x-voodoo-two.patch b/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-super-x-voodoo-two.patch new file mode 100644 index 000000000000..16d38ddc2070 --- /dev/null +++ b/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-super-x-voodoo-two.patch @@ -0,0 +1,69 @@ +diff -I'^// \$Id' -Naur --exclude-from diff-exclude --exclude fluxbox.cc fluxbox.real/src/FbTk/FbWindow.cc fluxbox.composite/src/FbTk/FbWindow.cc +--- fluxbox.real/src/FbTk/FbWindow.cc 2004-09-11 22:33:14.000000000 +1000 ++++ fluxbox.composite/src/FbTk/FbWindow.cc 2004-09-12 01:11:39.000000000 +1000 +@@ -111,6 +111,10 @@ + + FbWindow::~FbWindow() { + ++ // Need to free xrender pics before destroying window ++ if (m_transparent.get() != 0) ++ m_transparent.reset(0); ++ + if (m_window != 0) { + // so we don't get any dangling eventhandler for this window + FbTk::EventManager::instance()->remove(m_window); +diff -I'^// \$Id' -Naur --exclude-from diff-exclude --exclude fluxbox.cc fluxbox.real/src/FbTk/Menu.cc fluxbox.composite/src/FbTk/Menu.cc +--- fluxbox.real/src/FbTk/Menu.cc 2004-09-12 00:12:05.000000000 +1000 ++++ fluxbox.composite/src/FbTk/Menu.cc 2004-09-12 01:45:36.000000000 +1000 +@@ -567,6 +567,8 @@ + m_real_frame_pm = FbTk::FbPixmap(menu.frame.window(), + menu.frame.width(), menu.frame.height(), + menu.frame.depth()); ++ if (m_transp.get() != 0) ++ m_transp->setDest(m_real_frame_pm.drawable(), screenNumber()); + + menu.frame.setBackgroundPixmap(m_real_frame_pm.drawable()); + GContext def_gc(menu.frame); +@@ -1385,7 +1387,6 @@ + + void Menu::reconfigure() { + +- + if (alpha() == 255 && m_transp.get() != 0) { + m_transp.reset(0); + } else if (alpha () < 255) { +@@ -1394,8 +1395,13 @@ + m_transp.reset(new Transparent(FbPixmap::getRootPixmap(screenNumber()), + m_real_frame_pm.drawable(), alpha(), + screenNumber())); +- } else ++ } else { ++ Pixmap root = FbPixmap::getRootPixmap(screenNumber()); ++ if (m_transp->source() != root) ++ m_transp->setSource(root, screenNumber()); ++ + m_transp->setAlpha(alpha()); ++ } + } + + m_need_update = true; // redraw items +diff -I'^// \$Id' -Naur --exclude-from diff-exclude --exclude fluxbox.cc fluxbox.real/src/FbTk/Transparent.cc fluxbox.composite/src/FbTk/Transparent.cc +--- fluxbox.real/src/FbTk/Transparent.cc 2004-09-11 11:41:01.000000000 +1000 ++++ fluxbox.composite/src/FbTk/Transparent.cc 2004-09-12 01:46:20.000000000 +1000 +@@ -60,7 +60,7 @@ + Pixmap alpha_pm = XCreatePixmap(disp, drawable, + 1, 1, 8); + if (alpha_pm == 0) { +- cerr<<"FbTk::Transparent: "<<_FBTKTEXT(Error, NoRenderPixmap, "Warning: Failed to create alpha pixmap.", "XCreatePixmap files for our transparency pixmap")<<endl; ++ cerr<<"FbTk::Transparent: "<<_FBTKTEXT(Error, NoRenderPixmap, "Warning: Failed to create alpha pixmap.", "XCreatePixmap failed for our transparency pixmap")<<endl; + return 0; + } + +@@ -131,7 +131,6 @@ + XRenderFindVisualFormat(disp, + DefaultVisual(disp, screen_num)); + +- + if (src != 0 && format != 0) { + m_src_pic = XRenderCreatePicture(disp, src, format, + 0, 0); diff --git a/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-super-x-voodoo.patch b/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-super-x-voodoo.patch new file mode 100644 index 000000000000..a4341ddec362 --- /dev/null +++ b/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-super-x-voodoo.patch @@ -0,0 +1,181 @@ +diff -I'^// \$Id' -Naur --exclude-from diff-exclude fluxbox.real/src/FbTk/FbPixmap.cc fluxbox.xerrors/src/FbTk/FbPixmap.cc +--- fluxbox.real/src/FbTk/FbPixmap.cc 2004-09-11 11:41:01.000000000 +1000 ++++ fluxbox.xerrors/src/FbTk/FbPixmap.cc 2004-09-11 13:42:24.000000000 +1000 +@@ -305,28 +305,26 @@ + }; + + Pixmap root_pm = None; +- + for (prop = 0; prop_ids[prop]; prop++) { + if (XGetWindowProperty(s_display, + RootWindow(s_display, screen_num), + XInternAtom(s_display, prop_ids[prop], False), +- 0L, 4, ++ 0l, 4l, + False, XA_PIXMAP, + &real_type, &real_format, + &items_read, &items_left, +- (unsigned char **) &data) == Success && +- real_format == 32 && items_read == 1) { ++ (unsigned char **) &data) == Success) { ++ if (real_format == 32 && items_read == 1) { + +- if (strcmp(prop_ids[prop], "_XSETROOT_ID") == 0) { +- if (print_error) { ++ if (print_error && strcmp(prop_ids[prop], "_XSETROOT_ID") == 0) { + fprintf(stderr, "%s", error_message); + print_error = false; +- } +- } else +- root_pm = (Pixmap) (*data); +- ++ } else ++ root_pm = (Pixmap) (*data); ++ } + XFree(data); +- break; ++ if (root_pm != None) ++ break; + } + } + +diff -I'^// \$Id' -Naur --exclude-from diff-exclude fluxbox.real/src/FbTk/FbWindow.cc fluxbox.xerrors/src/FbTk/FbWindow.cc +--- fluxbox.real/src/FbTk/FbWindow.cc 2004-09-11 11:41:01.000000000 +1000 ++++ fluxbox.xerrors/src/FbTk/FbWindow.cc 2004-09-11 22:25:01.000000000 +1000 +@@ -315,10 +315,11 @@ + XUndefineCursor(s_display, window()); + } + +-void FbWindow::reparent(const FbWindow &parent, int x, int y) { ++void FbWindow::reparent(const FbWindow &parent, int x, int y, bool continuing) { + XReparentWindow(s_display, window(), parent.window(), x, y); + m_parent = &parent; +- updateGeometry(); ++ if (continuing) // we will continue managing this window after reparent ++ updateGeometry(); + } + + std::string FbWindow::textProperty(Atom property) const { +diff -I'^// \$Id' -Naur --exclude-from diff-exclude fluxbox.real/src/FbTk/FbWindow.hh fluxbox.xerrors/src/FbTk/FbWindow.hh +--- fluxbox.real/src/FbTk/FbWindow.hh 2004-09-11 11:41:01.000000000 +1000 ++++ fluxbox.xerrors/src/FbTk/FbWindow.hh 2004-09-11 22:25:18.000000000 +1000 +@@ -119,7 +119,7 @@ + void setCursor(Cursor cur); + /// uses the parents cursor instead + void unsetCursor(); +- void reparent(const FbWindow &parent, int x, int y); ++ void reparent(const FbWindow &parent, int x, int y, bool continuing = true); + + bool property(Atom property, + long long_offset, long long_length, +diff -I'^// \$Id' -Naur --exclude-from diff-exclude fluxbox.real/src/FbTk/Menu.cc fluxbox.xerrors/src/FbTk/Menu.cc +--- fluxbox.real/src/FbTk/Menu.cc 2004-09-10 01:15:17.000000000 +1000 ++++ fluxbox.xerrors/src/FbTk/Menu.cc 2004-09-11 22:17:55.000000000 +1000 +@@ -433,7 +433,7 @@ + } + + int itmp = (theme().itemHeight() * menu.persub); +- menu.frame_h = itmp < 0 ? 0 : itmp; ++ menu.frame_h = itmp < 1 ? 1 : itmp; + + int new_width = (menu.sublevels * menu.item_w); + int new_height = menu.frame_h; +@@ -442,8 +442,12 @@ + new_height += theme().titleHeight() + ((menu.frame_h > 0)?menu.title.borderWidth():0); + + +- if (new_width < 1) +- new_width = menu.item_w; ++ if (new_width < 1) { ++ if (menu.item_w > 0) ++ new_width = menu.item_w; ++ else ++ new_width = 1; ++ } + + if (new_height < 1) + new_height = 1; +@@ -548,7 +552,7 @@ + } + + menu.frame.moveResize(0, ((title_vis) ? menu.title.y() + menu.title.height() + +- menu.title.borderWidth()*2 : 0), ++ menu.title.borderWidth()*2 : 1), + width(), menu.frame_h); + + +diff -I'^// \$Id' -Naur --exclude-from diff-exclude fluxbox.real/src/Window.cc fluxbox.xerrors/src/Window.cc +--- fluxbox.real/src/Window.cc 2004-09-01 01:26:38.000000000 +1000 ++++ fluxbox.xerrors/src/Window.cc 2004-09-11 22:24:20.000000000 +1000 +@@ -3232,7 +3232,7 @@ + + #endif // DEBUG + // reparent to root window +- client->reparent(screen().rootWindow(), frame().x(), frame().y()); ++ client->reparent(screen().rootWindow(), frame().x(), frame().y(), false); + + if (!remap) + client->hide(); +diff -I'^// \$Id' -Naur --exclude-from diff-exclude fluxbox.real/src/fluxbox.cc fluxbox.xerrors/src/fluxbox.cc +--- fluxbox.real/src/fluxbox.cc 2004-09-10 01:15:17.000000000 +1000 ++++ fluxbox.xerrors/src/fluxbox.cc 2004-09-11 22:29:22.000000000 +1000 +@@ -386,18 +386,20 @@ + } // end anonymous + + static int handleXErrors(Display *d, XErrorEvent *e) { ++ if (e->error_code == BadWindow) ++ last_bad_window = e->resourceid; + #ifdef DEBUG +- /* +- char errtxt[128]; +- +- XGetErrorText(d, e->error_code, errtxt, 128); +- cerr<<"Fluxbox: X Error: "<<errtxt<<"("<<(int)e->error_code<<") opcodes "<< +- (int)e->request_code<<"/"<<(int)e->minor_code<<" resource 0x"<<hex<<(int)e->resourceid<<dec<<endl; +- */ ++ else { ++ // ignore bad window ones, they happen a lot ++ // when windows close themselves ++ char errtxt[128]; ++ ++ XGetErrorText(d, e->error_code, errtxt, 128); ++ cerr<<"Fluxbox: X Error: "<<errtxt<<"("<<(int)e->error_code<<") opcodes "<< ++ (int)e->request_code<<"/"<<(int)e->minor_code<<" resource 0x"<<hex<<(int)e->resourceid<<dec<<endl; ++ } + #endif // !DEBUG + +- if (e->error_code == BadWindow) +- last_bad_window = e->resourceid; + + return False; + } +@@ -501,6 +503,7 @@ + m_reconfig_timer.setTimeout(to); + m_reconfig_timer.setCommand(reconfig_cmd); + m_reconfig_timer.fireOnce(true); ++ //XSynchronize(disp, True); + + s_singleton = this; + m_have_shape = false; +@@ -633,10 +636,11 @@ + FbTk::ThemeManager::instance().load(FbTk::StringUtil::expandFilename(getStyleFilename())); + + XSynchronize(disp, False); ++ //XSynchronize(disp, True); + sync(false); + + m_reconfigure_wait = m_reread_menu_wait = false; +- ++ + // Create keybindings handler and load keys file + m_key.reset(new Keys(StringUtil::expandFilename(*m_rc_keyfile).c_str())); + +@@ -1813,7 +1817,7 @@ + for (unsigned int i=0; i<paths.size(); ++i) + FbTk::Image::addSearchPath(paths[i]); + } +- ++ + if (!dbfile.empty()) { + if (!m_screen_rm.load(dbfile.c_str())) { + cerr<<_FBTEXT(Fluxbox, CantLoadRCFile, "Failed to load database", "Failed trying to read rc file")<<":"<<dbfile<<endl; diff --git a/x11-wm/fluxbox/files/0.9.10/styles-menu-commonbox b/x11-wm/fluxbox/files/0.9.10/styles-menu-commonbox new file mode 100644 index 000000000000..742e587e4f48 --- /dev/null +++ b/x11-wm/fluxbox/files/0.9.10/styles-menu-commonbox @@ -0,0 +1,5 @@ +[begin] (Legacy Commonbox Styles) +[submenu] (Legacy Commonbox Styles) + [stylesdir] (/usr/share/commonbox/styles) +[end] +[end] diff --git a/x11-wm/fluxbox/files/0.9.10/styles-menu-fluxbox b/x11-wm/fluxbox/files/0.9.10/styles-menu-fluxbox new file mode 100644 index 000000000000..d2e0d580339f --- /dev/null +++ b/x11-wm/fluxbox/files/0.9.10/styles-menu-fluxbox @@ -0,0 +1,5 @@ +[begin] (Fluxbox Core Styles) +[submenu] (Fluxbox Core Styles) + [stylesdir] (/usr/share/fluxbox/styles) +[end] +[end] diff --git a/x11-wm/fluxbox/files/0.9.10/styles-menu-user b/x11-wm/fluxbox/files/0.9.10/styles-menu-user new file mode 100644 index 000000000000..3d011d27ed23 --- /dev/null +++ b/x11-wm/fluxbox/files/0.9.10/styles-menu-user @@ -0,0 +1,5 @@ +[begin] (User Styles) +[submenu] (User Styles) + [stylesdir] (~/.fluxbox/styles) +[end] +[end] diff --git a/x11-wm/fluxbox/files/digest-fluxbox-0.9.10-r3 b/x11-wm/fluxbox/files/digest-fluxbox-0.9.10-r3 new file mode 100644 index 000000000000..102f1b571a9e --- /dev/null +++ b/x11-wm/fluxbox/files/digest-fluxbox-0.9.10-r3 @@ -0,0 +1 @@ +MD5 7a04a21960b8bc364bcc002389008989 fluxbox-0.9.10.tar.bz2 556030 diff --git a/x11-wm/fluxbox/fluxbox-0.9.10-r3.ebuild b/x11-wm/fluxbox/fluxbox-0.9.10-r3.ebuild new file mode 100644 index 000000000000..1f56863329cb --- /dev/null +++ b/x11-wm/fluxbox/fluxbox-0.9.10-r3.ebuild @@ -0,0 +1,118 @@ +# Copyright 1999-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/x11-wm/fluxbox/fluxbox-0.9.10-r3.ebuild,v 1.1 2004/09/15 14:28:10 ciaranm Exp $ + +inherit eutils + +IUSE="nls xinerama truetype kde gnome" + +DESCRIPTION="Fluxbox is an X11 window manager featuring tabs, an iconbar and KDE/GNOME protocol support" +SRC_URI="mirror://sourceforge/fluxbox/${P}.tar.bz2" +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. They do, however, +# make the binary a fair bit bigger, so we don't want to turn them on unless +# the user actually wants them. + +RDEPEND="virtual/x11 + truetype? ( media-libs/freetype ) + nls? ( sys-devel/gettext ) + !<x11-themes/fluxbox-styles-fluxmod-20040809-r1" +DEPEND=">=sys-devel/autoconf-2.52 + ${RDEPEND}" +PROVIDE="virtual/blackbox" + +SLOT="0" +LICENSE="MIT" +KEYWORDS="~x86 ~ppc ~sparc ~amd64 ~alpha ~hppa ~ia64 ~mips ~ppc64 ~macos" + +src_unpack() { + unpack ${A} + cd ${S} + + # Fix crashy badness on amd64. From upstream. + epatch ${FILESDIR}/${PV}/${PN}-${PV}-amd64-font-fix.patch + + # Other crash fixes. Pulled from -cvs upstream. + epatch ${FILESDIR}/${PV}/${PN}-${PV}-windowmenu-crash.patch + epatch ${FILESDIR}/${PV}/${PN}-${PV}-workspacemenu-crash.patch + + # Make xcomposite not screw things up. From upstream. + epatch ${FILESDIR}/${PV}/${PN}-${PV}-make-pretty-eye-candy-work.patch + + # Scary X error updates from upstream. + epatch ${FILESDIR}/${PV}/${PN}-${PV}-misc-updates.patch + epatch ${FILESDIR}/${PV}/${PN}-${PV}-super-x-voodoo.patch + epatch ${FILESDIR}/${PV}/${PN}-${PV}-super-x-voodoo-two.patch + + # Some fluxbox-generate_menu things. These are ciaranm's fault... + epatch ${FILESDIR}/${PV}/${PN}-${PV}-posix-on-toast.patch + epatch ${FILESDIR}/${PV}/${PN}-${PV}-my-term-is-better-than-your-term.patch + epatch ${FILESDIR}/${PV}/${PN}-${PV}-editor-thingies.patch + epatch ${FILESDIR}/${PV}/${PN}-${PV}-all-about-me.patch + + # We need to be able to include directories rather than just plain + # files in menu [include] items. This patch will allow us to do clever + # things with style ebuilds. + epatch ${FILESDIR}/${PV}/${PN}-${PV}-menu-include-directories.patch + epatch ${FILESDIR}/${PV}/${PN}-${PV}-fancy-gentoo-styledirs.patch + + # Since we're patching heavily, make fluxbox -version say what we're + # really running. + sed -i \ + -e "s~\(__fluxbox_version .@VERSION@\)~\1${PR:+-gentoo-${PR}}~" \ + version.h.in || die "version sed failed" +} + +src_compile() { + export PKG_CONFIG_PATH=/usr/X11R6/lib/pkgconfig:/usr/lib/pkgconfig + 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 /usr/share/xsessions + insinto /usr/share/xsessions + doins ${FILESDIR}/${PN}.desktop + + dodir /etc/X11/Sessions + echo "/usr/bin/startfluxbox" > ${D}/etc/X11/Sessions/fluxbox + fperms a+x /etc/X11/Sessions/fluxbox + + dodir /usr/share/fluxbox/menu.d + + # Styles menu framework + dodir /usr/share/fluxbox/menu.d/styles + insinto /usr/share/fluxbox/menu.d/styles + doins ${FILESDIR}/${PV}/styles-menu-fluxbox + doins ${FILESDIR}/${PV}/styles-menu-commonbox + doins ${FILESDIR}/${PV}/styles-menu-user +} + +pkg_postinst() { + einfo "As of fluxbox 0.9.10-r3, we are using an improved system for" + einfo "handling styles in the menu. To take advantage of this, use" + einfo "the following for your menu styles section:" + einfo " " + einfo " [submenu] (Styles) (Select a Style)" + einfo " [include] (/usr/share/fluxbox/menu.d/styles/)" + einfo " [end]" + einfo " " + einfo "If you use fluxbox-generate_menu or the default global fluxbox" + einfo "menu file, this will already be present." + einfo " " + epause +} |