diff options
-rw-r--r-- | x11-wm/fvwm/Manifest | 5 | ||||
-rw-r--r-- | x11-wm/fvwm/files/README.translucency | 172 | ||||
-rw-r--r-- | x11-wm/fvwm/files/fvwm-2.5.23-translucent-menus.diff | 528 | ||||
-rw-r--r-- | x11-wm/fvwm/files/fvwm-menu-xlock-xlockmore-compat.patch | 12 | ||||
-rw-r--r-- | x11-wm/fvwm/fvwm-2.5.25.ebuild | 165 |
5 files changed, 882 insertions, 0 deletions
diff --git a/x11-wm/fvwm/Manifest b/x11-wm/fvwm/Manifest new file mode 100644 index 0000000..6cb3ba7 --- /dev/null +++ b/x11-wm/fvwm/Manifest @@ -0,0 +1,5 @@ +AUX README.translucency 8910 RMD160 417b3416aef5ddd4b13672a2760d3736cac6f900 SHA1 c1cd348840df7774f62f67aa9e1b1e2ea78219de SHA256 0a4b3f143ee0b6fc32098cbd556b25fdc695a980bc8b4cf032b1dad4a4952ddb +AUX fvwm-2.5.23-translucent-menus.diff 15765 RMD160 5629e1fcd6d41e7c9f5cfa0a62204d33d83d5c6f SHA1 2ff0c394e1e393cab8249efeeddf917d07a7ba78 SHA256 ad59f0aa1b73fb128143bf5a390185289c296e0d31a4e6e6ca5f046f414752cf +AUX fvwm-menu-xlock-xlockmore-compat.patch 550 RMD160 72af6f306e5869581fcd48c84edfe00adea4a5b9 SHA1 0eccf83c3046e3822737c5facb23f547a062bff8 SHA256 5db8bc279f618096b23fed04b70b626c6ff50c104283d5ece505200db1e5a8af +DIST fvwm-2.5.25.tar.bz2 2516717 RMD160 bf77786a071838304eb4bf8cc14960196c235506 SHA1 8e0f0b1eb888f7fcc27a0dbcc32a5b0f2895df2b SHA256 212dafb5fbace4a72d7a2d2dd6df7445709bad6739162a72879e4a6e942d69fc +EBUILD fvwm-2.5.25.ebuild 5112 RMD160 9826532c93c02842e5f11b77ddfe70a084ca543e SHA1 d0943d4587c4ee597a3714139158d78662581213 SHA256 59a074f72050e856d649a86e893df93f431fed5265136cad74848df2d80674f3 diff --git a/x11-wm/fvwm/files/README.translucency b/x11-wm/fvwm/files/README.translucency new file mode 100644 index 0000000..b8eb2b3 --- /dev/null +++ b/x11-wm/fvwm/files/README.translucency @@ -0,0 +1,172 @@ +From owner-fvwm@hpc.uh.edu Sun Aug 31 22:52:59 2003 +Received: from malifon.math.uh.edu (malifon.math.uh.edu [129.7.128.13]) + by sdf.lonestar.org (8.12.9/8.12.8) with ESMTP id h7VMqxcd028005; + Sun, 31 Aug 2003 22:52:59 GMT +Received: from sina.hpc.uh.edu ([129.7.128.10] ident=lists) + by malifon.math.uh.edu with esmtp (Exim 3.20 #1) + id 19tb0F-0006NY-00; Sun, 31 Aug 2003 17:48:59 -0500 +Received: by sina.hpc.uh.edu (TLB v0.09a (1.20 tibbs 1996/10/09 22:03:07)); Sun, 31 Aug 2003 17:50:31 -0500 (CDT) +Received: from epithumia.math.uh.edu (epithumia.math.uh.edu [129.7.128.2]) + by sina.hpc.uh.edu (8.9.3/8.9.3) with ESMTP id RAA16575 + for <fvwm@hpc.uh.edu>; Sun, 31 Aug 2003 17:50:24 -0500 (CDT) +Received: from epithumia.math.uh.edu (epithumia.math.uh.edu [127.0.0.1]) + by epithumia.math.uh.edu (8.12.8/8.12.5) with ESMTP id h7VMml6M025095 + for <fvwm@hpc.uh.edu>; Sun, 31 Aug 2003 17:48:47 -0500 +Received: (from tibbs@localhost) + by epithumia.math.uh.edu (8.12.8/8.12.8/Submit) id h7VMmlVC025093 + for fvwm@hpc.uh.edu; Sun, 31 Aug 2003 17:48:47 -0500 +Received: from util2.math.uh.edu (util2.math.uh.edu [129.7.128.23]) + by sina.hpc.uh.edu (8.9.3/8.9.3) with ESMTP id QAA16418 + for <fvwm@hpc.uh.edu>; Sun, 31 Aug 2003 16:02:07 -0500 (CDT) +Received: from postfix4-2.free.fr ([213.228.0.176]) + by util2.math.uh.edu with esmtp (Exim 4.20) + id 19tZIm-00079F-6t + for fvwm@fvwm.org; Sun, 31 Aug 2003 16:00:00 -0500 +Received: from snoopy.folie (nas-p19-3-62-147-221-172.dial.proxad.net [62.147.221.172]) + by postfix4-2.free.fr (Postfix) with ESMTP id 59DE6C386 + for <fvwm@fvwm.org>; Sun, 31 Aug 2003 22:59:34 +0200 (CEST) +Received: by snoopy.folie (Postfix, from userid 501) + id A4D1D48784; Sun, 31 Aug 2003 22:39:19 +0200 (CEST) +Date: Sun, 31 Aug 2003 22:39:19 +0200 +From: Olivier Chapuis <olivier.chapuis@free.fr> +To: fvwm@fvwm.org +Subject: Re: FVWM: Transparency/Translucency revisited... +Message-ID: <20030831203919.GA6205@snoopy.folie> +Mail-Followup-To: fvwm@fvwm.org +References: <Pine.LNX.4.44.0308251817370.1980-100000@atlantis.ssw.krakow.pl> +Mime-Version: 1.0 +Content-Type: multipart/mixed; boundary="Nq2Wo0NMKNjxTN9z" +Content-Disposition: inline +In-Reply-To: <Pine.LNX.4.44.0308251817370.1980-100000@atlantis.ssw.krakow.pl> +User-Agent: Mutt/1.4i +X-Spam-Score: -9.3 (---------) +Sender: owner-fvwm@hpc.uh.edu +Precedence: list +X-Majordomo: 1.94.jlt7 +Status: RO +Content-Length: 6519 +Lines: 122 + + +--Nq2Wo0NMKNjxTN9z +Content-Type: text/plain; charset=us-ascii +Content-Disposition: inline + +On Mon, Aug 25, 2003 at 09:00:32PM +0200, Dawid Kuroczko wrote: +> Hello. :-) +> +> I did manage to make pseudo-transparent menus, but now I'd like +> to make something more "real". What I'd like to do is to have +> something like there is in KDE. +> +> It should work like this: +> 1. user clicks thus calling a Menu. +> 2. current screen dump is taken (with all the windows, but +> without a menu just as yet). +> 3. this screen dump is made available to Menu as +> root background pixmap. +> 4. Menu is displayed with tinted real background. +> +> This way it's pretty easy to make an illusion of real +> transparency (and looks "l33t", as some may say). +> + +Here a new version of the patch for current cvs/snapshot. +This patch add a new options to Colorset: Translucent/NoTranslucent. +These options has effects only with (non tear-off) menu. +Also menu animation is "handled". + +For example with: + + Colorset 5 fg yellow, bg blue, HGradient 200 lightblue darkblue, \ + Translucent blue 60 + Style * MenuColorset 5, PopupOffset 0 100, AnimationOff + +you get translucent menus (with a 60% blue tint) and if you tear-off +a menu the menu use the gradient. + +Regards, Olivier + + + +--Nq2Wo0NMKNjxTN9z +Content-Type: application/octet-stream +Content-Disposition: attachment; filename="translucent_menu.patch.gz" +Content-Transfer-Encoding: base64 + +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 +X4EiqG0NJM3+G8FZozTOLwAA + +--Nq2Wo0NMKNjxTN9z-- + +-- +Visit the official FVWM web page at <URL: http://www.fvwm.org/>. +To unsubscribe from the list, send "unsubscribe fvwm" in the body of a +message to majordomo@fvwm.org. +To report problems, send mail to fvwm-owner@fvwm.org. + diff --git a/x11-wm/fvwm/files/fvwm-2.5.23-translucent-menus.diff b/x11-wm/fvwm/files/fvwm-2.5.23-translucent-menus.diff new file mode 100644 index 0000000..1c49f69 --- /dev/null +++ b/x11-wm/fvwm/files/fvwm-2.5.23-translucent-menus.diff @@ -0,0 +1,528 @@ +Index: fvwm/colorset.c +=================================================================== +RCS file: /home/cvs/fvwm/fvwm/fvwm/colorset.c,v +retrieving revision 1.52 +diff -u -r1.52 colorset.c +--- fvwm/colorset.c 27 Jan 2007 11:33:15 -0000 1.52 ++++ fvwm/colorset.c 5 Feb 2007 19:15:51 -0000 +@@ -164,6 +164,8 @@ + "NoIconTint", + "IconAlpha", + ++ "Translucent", ++ "NoTranslucent", + NULL + }; + +@@ -625,6 +627,7 @@ + char *fg_tint = NULL; + char *bg_tint = NULL; + char *icon_tint = NULL; ++ char *translucent_tint = NULL; + Bool have_pixels_changed = False; + Bool has_icon_pixels_changed = False; + Bool has_fg_changed = False; +@@ -637,6 +640,7 @@ + Bool has_fg_tint_changed = False; + Bool has_bg_tint_changed = False; + Bool has_icon_tint_changed = False; ++ Bool has_translucent_tint_changed = False; + Bool has_pixmap_changed = False; + Bool has_shape_changed = False; + Bool has_image_alpha_changed = False; +@@ -763,6 +767,10 @@ + case 21: /* Plain */ + has_pixmap_changed = True; + free_colorset_background(cs, True); ++ cs->is_translucent = False; ++ cs->translucent_tint_percent = 0; ++ cs->color_flags &= ~TRANSLUCENT_TINT_SUPPLIED; ++ has_translucent_tint_changed = True; + break; + case 22: /* NoShape */ + has_shape_changed = True; +@@ -929,6 +937,24 @@ + cs->icon_alpha_percent = tmp; + } + break; ++ case 42: /* Translucent */ ++ cs->is_translucent = True; ++ parse_simple_tint( ++ cs, args, &translucent_tint, ++ TRANSLUCENT_TINT_SUPPLIED, ++ &has_translucent_tint_changed, &percent, ++ "Translucent"); ++ if (has_translucent_tint_changed) ++ { ++ cs->translucent_tint_percent = percent; ++ } ++ break; ++ case 43: /* NoTranslucent */ ++ cs->is_translucent = False; ++ cs->translucent_tint_percent = 0; ++ cs->color_flags &= ~TRANSLUCENT_TINT_SUPPLIED; ++ has_translucent_tint_changed = True; ++ break; + default: + /* test for ?Gradient */ + if (option[0] && StrEquals(&option[1], "Gradient")) +@@ -1615,6 +1641,27 @@ + } + + /* ++ * ---------- change the translucent tint colour ---------- ++ */ ++ if (has_translucent_tint_changed) ++ { ++ /* user specified colour */ ++ if (translucent_tint != NULL) ++ { ++ PictureFreeColors( ++ dpy, Pcmap, &cs->translucent_tint, 1, 0, True); ++ cs->translucent_tint = GetColor(translucent_tint); ++ } ++ else ++ { ++ /* default */ ++ PictureFreeColors( ++ dpy, Pcmap, &cs->translucent_tint, 1, 0, True); ++ cs->translucent_tint = GetColor(black); ++ } ++ } ++ ++ /* + * ---------- send new colorset to fvwm and clean up ---------- + */ + /* make sure the server has this to avoid races */ +@@ -1710,6 +1757,7 @@ + ncs->fgsh = GetColor(white); + ncs->tint = GetColor(black); + ncs->icon_tint = GetColor(black); ++ ncs->translucent_tint = GetColor(black); + ncs->pixmap = XCreatePixmapFromBitmapData( + dpy, Scr.NoFocusWin, + &g_bits[4 * (nColorsets % 3)], 4, 4, +@@ -1727,6 +1775,7 @@ + ncs->fgsh = GetForeShadow(ncs->fg, ncs->bg); + ncs->tint = GetColor(black); + ncs->icon_tint = GetColor(black); ++ ncs->translucent_tint = GetColor(black); + } + ncs->fg_tint = ncs->bg_tint = GetColor(black); + /* set flags for fg contrast, bg average */ +@@ -1738,6 +1787,7 @@ + ncs->icon_alpha_percent = 100; + ncs->tint_percent = 0; + ncs->icon_tint_percent = 0; ++ ncs->translucent_tint_percent = 0; + ncs->fg_tint_percent = ncs->bg_tint_percent = 0; + ncs->dither = (PictureDitherByDefault())? True:False; + nColorsets++; +Index: fvwm/menuroot.h +=================================================================== +RCS file: /home/cvs/fvwm/fvwm/fvwm/menuroot.h,v +retrieving revision 1.3 +diff -u -r1.3 menuroot.h +--- fvwm/menuroot.h 13 Jan 2007 15:07:14 -0000 1.3 ++++ fvwm/menuroot.h 5 Feb 2007 19:17:37 -0000 +@@ -146,6 +146,9 @@ + int d_npixels; + } stored_pixels; + /* alloc pixels when dithering is used for gradients */ ++ /* x,y XMapRaise */ ++ int x; ++ int y; + } MenuRootDynamic; + + /* access macros to dynamic menu members */ +Index: fvwm/menus.c +=================================================================== +RCS file: /home/cvs/fvwm/fvwm/fvwm/menus.c,v +retrieving revision 1.409 +diff -u -r1.409 menus.c +--- fvwm/menus.c 27 Jan 2007 11:51:15 -0000 1.409 ++++ fvwm/menus.c 5 Feb 2007 19:17:50 -0000 +@@ -75,6 +75,19 @@ + + /* ---------------------------- local macros ------------------------------- */ + ++#define MENU_IS_TRANSLUCENT(mr,cs) \ ++ (!MR_IS_TEAR_OFF_MENU(mr) && CSET_IS_TRANSLUCENT(cs)) ++#define MENU_IS_TRANSPARENT(mr,cs) \ ++ (MENU_IS_TRANSLUCENT(mr,cs) || CSET_IS_TRANSPARENT(cs)) ++#define MR_IS_TRANSLUCENT_MENU(mr) \ ++ (!MR_IS_TEAR_OFF_MENU(mr) && MR_STYLE(mr) && \ ++ ST_HAS_MENU_CSET(MR_STYLE(mr)) && CSET_IS_TRANSLUCENT( \ ++ ST_CSET_MENU(MR_STYLE(mr)))) ++#define MR_IS_TRANSPARENT_MENU(mr) \ ++ (MR_IS_TRANSLUCENT_MENU(mr) || (MR_STYLE(mr) && \ ++ ST_HAS_MENU_CSET(MR_STYLE(mr)) && CSET_IS_TRANSPARENT( \ ++ ST_CSET_MENU(MR_STYLE(mr))))) ++ + /* ---------------------------- imports ------------------------------------ */ + + /* This external is safe. It's written only during startup. */ +@@ -188,6 +201,8 @@ + } mloop_static_info_t; + + /* ---------------------------- forward declarations ----------------------- */ ++static MenuRoot *seek_submenu_instance( ++ MenuRoot *parent_menu, MenuItem *parent_item); + + /* ---------------------------- local variables ---------------------------- */ + +@@ -353,12 +368,22 @@ + Bool transparent_bg = False; + + /* move it back */ +- if (ST_HAS_MENU_CSET(MR_STYLE(mr)) && +- CSET_IS_TRANSPARENT(ST_CSET_MENU(MR_STYLE(mr)))) ++ if (MR_IS_TRANSPARENT_MENU(mr)) + { + transparent_bg = True; + get_menu_repaint_transparent_parameters( + &mrtp, mr, fw); ++ if (MR_IS_TRANSLUCENT_MENU(mr) && MR_SUBMENU_ITEM(mr)) ++ { ++ MenuRoot *smr; ++ smr = seek_submenu_instance( ++ mr, MR_SUBMENU_ITEM(mr)); ++ if (smr) ++ { ++ /* just unmap it here, popdown later */ ++ XUnmapWindow(dpy, MR_WINDOW(smr)); ++ } ++ } + } + AnimatedMoveOfWindow( + MR_WINDOW(mr), act_x, act_y, act_x - MR_XANIMATION(mr), +@@ -1779,6 +1804,7 @@ + /* Doh. Use the standard display instead. */ + MR_CREATE_DPY(mr) = dpy; + } ++ MR_IS_TEAR_OFF_MENU(mr) = 1; + } + else + { +@@ -2594,7 +2620,37 @@ + } + MR_IS_PAINTED(mr) = 1; + /* paint the menu background */ +- if (ms && ST_HAS_MENU_CSET(ms)) ++ if (MR_IS_TRANSLUCENT_MENU(mr)) ++ { ++ Pixmap trans = None; ++ FvwmRenderAttributes fra; ++ colorset_t *colorset = &Colorset[ST_CSET_MENU(ms)]; ++ ++ fra.mask = 0; ++ if (colorset->translucent_tint_percent > 0) ++ { ++ fra.mask = FRAM_HAVE_TINT; ++ fra.tint = colorset->translucent_tint; ++ fra.tint_percent = colorset->translucent_tint_percent; ++ } ++ if (MR_IS_BACKGROUND_SET(mr) == False) ++ { ++ trans = PGraphicsCreateTranslucent( ++ dpy, MR_WINDOW(mr), &fra, ++ BACK_GC(ST_MENU_INACTIVE_GCS(ms)), ++ MR_X(mr), MR_Y(mr), MR_WIDTH(mr), MR_HEIGHT(mr)); ++ XMapRaised(dpy, MR_WINDOW(mr)); ++ if (trans != None) ++ { ++ XSetWindowBackgroundPixmap( ++ dpy, MR_WINDOW(mr), trans); ++ MR_IS_BACKGROUND_SET(mr) = True; ++ clear_expose_menu_area(MR_WINDOW(mr), pevent); ++ XFreePixmap(dpy, trans); ++ } ++ } ++ } ++ else if (ms && ST_HAS_MENU_CSET(ms)) + { + if (MR_IS_BACKGROUND_SET(mr) == False) + { +@@ -3401,10 +3457,7 @@ + MR_HAS_POPPED_UP_RIGHT(mr) = 0; + } + MR_XANIMATION(parent_menu) += end_x - prev_x; +- if (ST_HAS_MENU_CSET(MR_STYLE(parent_menu)) && +- CSET_IS_TRANSPARENT( +- ST_CSET_MENU( +- MR_STYLE(parent_menu)))) ++ if (MR_IS_TRANSPARENT_MENU(parent_menu)) + { + transparent_bg = True; + get_menu_repaint_transparent_parameters( +@@ -3583,10 +3636,21 @@ + */ + + XMoveWindow(dpy, MR_WINDOW(mr), x, y); ++ MR_X(mr) = x; ++ MR_Y(mr) = y; + XSelectInput(dpy, MR_WINDOW(mr), event_mask); +- XMapRaised(dpy, MR_WINDOW(mr)); +- if (popdown_window) +- XUnmapWindow(dpy, popdown_window); ++ if (MR_IS_TRANSLUCENT_MENU(mr)) ++ { ++ if (popdown_window) ++ XUnmapWindow(dpy, popdown_window); ++ paint_menu(mr, NULL, fw); ++ } ++ else ++ { ++ XMapRaised(dpy, MR_WINDOW(mr)); ++ if (popdown_window) ++ XUnmapWindow(dpy, popdown_window); ++ } + XFlush(dpy); + MR_MAPPED_COPIES(mr)++; + MST_USAGE_COUNT(mr)++; +@@ -6123,16 +6187,122 @@ + { + last = True; + } +- if (!last && CSET_IS_TRANSPARENT_PR_TINT(ST_CSET_MENU(ms))) ++ if (!last && ++ (CSET_IS_TRANSPARENT_PR_TINT(ST_CSET_MENU(ms)) || ++ MR_IS_TRANSLUCENT_MENU(mr))) + { + /* too slow ... */ + return; + } +- SetWindowBackgroundWithOffset( +- dpy, MR_WINDOW(mr), step_x - current_x, step_y - current_y, +- MR_WIDTH(mr), MR_HEIGHT(mr), +- &Colorset[ST_CSET_MENU(ms)], Pdepth, +- FORE_GC(MST_MENU_INACTIVE_GCS(mr)), False); ++ if (MR_IS_TRANSLUCENT_MENU(mr)) ++ { ++ Pixmap trans, tmp; ++ FvwmRenderAttributes fra; ++ colorset_t *colorset = &Colorset[ST_CSET_MENU(ms)]; ++ ++ fra.mask = 0; ++ if (colorset->translucent_tint_percent > 0) ++ { ++ fra.mask = FRAM_HAVE_TINT; ++ fra.tint = colorset->translucent_tint; ++ fra.tint_percent = colorset->translucent_tint_percent; ++ } ++ if (current_x == step_x) ++ { ++ /* Reuse the old pixmap for the part of the menu ++ * that has not moved. (This can be extended to get ++ * two new rectangles, one in each direction) ++ * ++ * It saves the unmapping of the window and makes ++ * Things less flickering. ++ */ ++ GC my_gc; ++ unsigned long valuemask = GCSubwindowMode; ++ XGCValues values; ++ int out_y=0; ++ values.subwindow_mode = IncludeInferiors; ++ if (step_y < 0) ++ { ++ out_y = -step_y; ++ } ++ trans = XCreatePixmap(dpy, MR_WINDOW(mr), MR_WIDTH(mr), ++ MR_HEIGHT(mr), Pdepth); ++ my_gc = fvwmlib_XCreateGC(dpy, MR_WINDOW(mr), 0, NULL); ++ XChangeGC(dpy, my_gc, valuemask, &values); ++ ++ XClearWindow(dpy, MR_WINDOW(mr)); ++ ++ if (current_y < step_y) ++ { ++ XCopyArea(dpy, MR_WINDOW(mr), trans, my_gc, 0, ++ step_y-current_y, MR_WIDTH(mr), ++ MR_HEIGHT(mr)-(step_y-current_y), ++ 0,0); ++ tmp = PGraphicsCreateTranslucent( ++ dpy, MR_WINDOW(mr), &fra, ++ BACK_GC(ST_MENU_INACTIVE_GCS(ms)), ++ current_x, current_y+MR_HEIGHT(mr), ++ MR_WIDTH(mr), step_y-current_y); ++ ++ XCopyArea(dpy, tmp, trans, my_gc, 0, 0, ++ MR_WIDTH(mr), step_y-current_y,0, ++ MR_HEIGHT(mr)-(step_y-current_y)); ++ } ++ else ++ { ++ XCopyArea(dpy, MR_WINDOW(mr), trans, my_gc, 0, ++ 0, MR_WIDTH(mr), ++ MR_HEIGHT(mr)-(current_y-step_y), 0, ++ current_y-step_y); ++ tmp = PGraphicsCreateTranslucent( ++ dpy, MR_WINDOW(mr), &fra, ++ BACK_GC(ST_MENU_INACTIVE_GCS(ms)), ++ current_x,step_y, MR_WIDTH(mr), ++ current_y-step_y); ++ XCopyArea(dpy, tmp, trans, my_gc, 0, 0, ++ MR_WIDTH(mr), current_y-step_y,0, ++ out_y); ++ } ++ MR_X(mr) = step_x; ++ MR_Y(mr) = step_y; ++ XFreePixmap(dpy, tmp); ++ XFreeGC(dpy,my_gc); ++ } ++ else ++ { ++ XUnmapWindow(dpy, MR_WINDOW(mr)); ++ MR_X(mr) = step_x; ++ MR_Y(mr) = step_y; ++ trans = PGraphicsCreateTranslucent( ++ dpy, MR_WINDOW(mr), &fra, ++ BACK_GC(ST_MENU_INACTIVE_GCS(ms)), ++ step_x, step_y, MR_WIDTH(mr), ++ MR_HEIGHT(mr)); ++ XMapRaised(dpy, MR_WINDOW(mr)); ++ } ++ XSetWindowBackgroundPixmap( ++ dpy, MR_WINDOW(mr), trans); ++ XFreePixmap(dpy, trans); ++ if (current_x == step_x) ++ { ++ /* Redraw the border */ ++ RelieveRectangle( ++ dpy, MR_WINDOW(mr), 0, 0, MR_WIDTH(mr) - 1, ++ MR_HEIGHT(mr) - 1, (Pdepth < 2) ? ++ SHADOW_GC(MST_MENU_INACTIVE_GCS(mr)) : ++ HILIGHT_GC(MST_MENU_INACTIVE_GCS(mr)), ++ SHADOW_GC(MST_MENU_INACTIVE_GCS(mr)), ++ MST_BORDER_WIDTH(mr)); ++ } ++ } ++ else ++ { ++ SetWindowBackgroundWithOffset( ++ dpy, MR_WINDOW(mr), step_x - current_x, ++ step_y - current_y, MR_WIDTH(mr), MR_HEIGHT(mr), ++ &Colorset[ST_CSET_MENU(ms)], Pdepth, ++ FORE_GC(MST_MENU_INACTIVE_GCS(mr)), False); ++ } + } + + +@@ -6173,10 +6343,7 @@ + } + if (!is_bg_set) + { +- SetWindowBackground( +- dpy, MR_WINDOW(mr), MR_WIDTH(mr), MR_HEIGHT(mr), +- &Colorset[ST_CSET_MENU(ms)], Pdepth, +- FORE_GC(MST_MENU_INACTIVE_GCS(mr)), False); ++ update_transparent_menu_bg(prtm, x, y, x, y, end_x, end_y); + } + /* redraw the background of non active item */ + for (mi = MR_FIRST_ITEM(mr); mi != NULL; mi = MI_NEXT_ITEM(mi)) +@@ -6813,10 +6980,12 @@ + SetWindowBackground( + dpy, MR_WINDOW(mr), MR_WIDTH(mr), + MR_HEIGHT(mr), +- &Colorset[ST_CSET_MENU(ms)], +- Pdepth, ++ &Colorset[ST_CSET_MENU(ms)], Pdepth, + FORE_GC(MST_MENU_INACTIVE_GCS(mr)), +- True); ++ False); ++ XClearArea( ++ dpy, MR_WINDOW(mr), 0, 0, MR_WIDTH(mr), ++ MR_HEIGHT(mr), True); + } + else if ((ST_HAS_ACTIVE_CSET(ms) && + ST_CSET_ACTIVE(ms) == cset) || +Index: fvwm/menus.h +=================================================================== +RCS file: /home/cvs/fvwm/fvwm/fvwm/menus.h,v +retrieving revision 1.111 +diff -u -r1.111 menus.h +--- fvwm/menus.h 27 Jan 2007 11:51:15 -0000 1.111 ++++ fvwm/menus.h 5 Feb 2007 19:17:50 -0000 +@@ -15,6 +15,9 @@ + #define IS_MENU_RETURN(x) \ + ((x)==MENU_DONE || (x)==MENU_ABORTED || (x)==MENU_SUBMENU_TORN_OFF) + ++#define MR_X(m) ((m)->d->x) ++#define MR_Y(m) ((m)->d->y) ++ + struct MenuRoot; + struct MenuStyle; + struct MenuReturn; +Index: libs/Colorset.h +=================================================================== +RCS file: /home/cvs/fvwm/fvwm/libs/Colorset.h,v +retrieving revision 1.38 +diff -u -r1.38 Colorset.h +--- libs/Colorset.h 10 Jan 2007 00:34:27 -0000 1.38 ++++ libs/Colorset.h 5 Feb 2007 19:19:00 -0000 +@@ -51,6 +51,10 @@ + Bool dither; + Bool allows_buffered_transparency; + Bool is_maybe_root_transparent; ++ /* only use by fvwm menu (non tear-off) */ ++ Bool is_translucent; ++ Pixel translucent_tint; ++ unsigned int translucent_tint_percent : 7; + #endif + } colorset_t; + +@@ -78,6 +82,7 @@ + #define FG_TINT_SUPPLIED 0x100 + #define BG_TINT_SUPPLIED 0x200 + #define ICON_TINT_SUPPLIED 0x400 ++#define TRANSLUCENT_TINT_SUPPLIED 0x800 + #endif + + /* colorsets are stored as an array of structs to permit fast dereferencing */ +@@ -153,6 +158,11 @@ + (cset != NULL && cset->pixmap == ParentRelative && \ + cset->tint_percent > 0) + ++#define CSET_IS_TRANSLUCENT(cset) \ ++ (cset >= 0 && Colorset[cset].is_translucent) ++#define CSETS_IS_TRANSLUCENT(cset) \ ++ (cset && cset->is_translucent) ++ + #ifndef FVWM_COLORSET_PRIVATE + /* Create n new colorsets, fvwm/colorset.c does its own thing (different size) + */ +Index: libs/PictureGraphics.c +=================================================================== +RCS file: /home/cvs/fvwm/fvwm/libs/PictureGraphics.c,v +retrieving revision 1.29 +diff -u -r1.29 PictureGraphics.c +--- libs/PictureGraphics.c 27 Jan 2007 11:33:16 -0000 1.29 ++++ libs/PictureGraphics.c 5 Feb 2007 19:19:49 -0000 +@@ -1340,7 +1340,7 @@ + } + } + +-#if 0 /* humm... maybe useful one day with menus */ ++#if 1 /* humm... maybe useful one day with menus */ + Pixmap PGraphicsCreateTranslucent( + Display *dpy, Window win, FvwmRenderAttributes *fra, GC gc, + int x, int y, int width, int height) +Index: libs/PictureGraphics.h +=================================================================== +RCS file: /home/cvs/fvwm/fvwm/libs/PictureGraphics.h,v +retrieving revision 1.13 +diff -u -r1.13 PictureGraphics.h +--- libs/PictureGraphics.h 9 May 2006 20:46:29 -0000 1.13 ++++ libs/PictureGraphics.h 5 Feb 2007 19:19:49 -0000 +@@ -122,7 +122,9 @@ + Display *dpy, Window win, Pixel tint, int tint_percent, + Drawable dest, Bool dest_is_a_window, GC gc, GC mono_gc, GC alpha_gc, + int dest_x, int dest_y, int dest_w, int dest_h); +- ++Pixmap PGraphicsCreateTranslucent( ++ Display *dpy, Window win, FvwmRenderAttributes *fra, GC gc, ++ int x, int y, int width, int height); + /* never used ! */ + Pixmap PGraphicsCreateDitherPixmap( + Display *dpy, Window win, Drawable src, Pixmap mask, int depth, GC gc, diff --git a/x11-wm/fvwm/files/fvwm-menu-xlock-xlockmore-compat.patch b/x11-wm/fvwm/files/fvwm-menu-xlock-xlockmore-compat.patch new file mode 100644 index 0000000..7ceb510 --- /dev/null +++ b/x11-wm/fvwm/files/fvwm-menu-xlock-xlockmore-compat.patch @@ -0,0 +1,12 @@ +diff -urN fvwm-2.5.10.orig/bin/fvwm-menu-xlock.in fvwm-2.5.10/bin/fvwm-menu-xlock.in +--- fvwm-2.5.10.orig/bin/fvwm-menu-xlock.in 2003-03-22 02:01:24.000000000 +0000 ++++ fvwm-2.5.10/bin/fvwm-menu-xlock.in 2004-05-24 12:26:14.641330208 +0100 +@@ -42,7 +42,7 @@ + my $start = 0; + my $special = 0; + $itemF =~ s/\\t/\t/g; +-open(XL, "xlock -h 2>&1 |") || die "Exec echo 'Could not run xlock'\n"; ++open(XL, "xlock -help 2>&1 |") || die "Exec echo 'Could not run xlock'\n"; + + print "DestroyMenu $name\n"; + print "AddToMenu $name \"$iconTStr$title\" Title\n"; diff --git a/x11-wm/fvwm/fvwm-2.5.25.ebuild b/x11-wm/fvwm/fvwm-2.5.25.ebuild new file mode 100644 index 0000000..d48e3d8 --- /dev/null +++ b/x11-wm/fvwm/fvwm-2.5.25.ebuild @@ -0,0 +1,165 @@ +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +inherit eutils flag-o-matic + +DESCRIPTION="An extremely powerful ICCCM-compliant multiple virtual desktop window manager" +HOMEPAGE="http://www.fvwm.org/" +SRC_URI="ftp://ftp.fvwm.org/pub/fvwm/version-2/${P}.tar.bz2" + +LICENSE="GPL-2 FVWM" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd" +IUSE="bidi debug doc gtk imlib nls perl png readline rplay stroke svg tk truetype vanilla xinerama" + +RDEPEND="readline? ( sys-libs/readline sys-libs/ncurses ) + gtk? ( =x11-libs/gtk+-1.2* imlib? ( media-libs/imlib ) ) + rplay? ( media-sound/rplay ) + bidi? ( dev-libs/fribidi ) + png? ( media-libs/libpng ) + stroke? ( dev-libs/libstroke ) + perl? ( tk? ( + dev-lang/tk + dev-perl/perl-tk + >=dev-perl/X11-Protocol-0.56 ) ) + truetype? ( virtual/xft media-libs/fontconfig ) + userland_GNU? ( sys-apps/debianutils ) + dev-lang/perl + sys-libs/zlib + x11-libs/libXpm + x11-libs/libXft + xinerama? ( x11-libs/libXinerama ) + svg? ( gnome-base/librsvg )" +# XXX: gtk2 perl bindings require dev-perl/gtk2-perl, worth a dependency? +# XXX: gtk perl bindings require dev-perl/gtk-perl, worth a dependency? +# XXX: netpbm is used by FvwmScript-ScreenDump, worth a dependency? +DEPEND="${RDEPEND} + doc? ( dev-libs/libxslt ) + dev-util/pkgconfig + x11-libs/libXrandr + x11-proto/xextproto + x11-proto/xproto + dev-libs/libxslt + xinerama? ( x11-proto/xineramaproto )" + +src_unpack() { + unpack ${A}; export EPATCH_OPTS="-F3 -l" + + if ! use vanilla; then + # this patch enables fast translucent menus in fvwm. this is a + # minor tweak of a patch posted to fvwm-user mailing list by Olivier + # Chapuis in <20030827135125.GA6370@snoopy.folie>. + cd ${S}; epatch "${FILESDIR}/fvwm-2.5.23-translucent-menus.diff" + # This is a gentoo-specific trivial patch + cd ${S}; epatch "${FILESDIR}/fvwm-menu-xlock-xlockmore-compat.patch" + fi +} + +src_compile() { + local myconf="--libexecdir=/usr/lib --with-imagepath=/usr/include/X11/bitmaps:/usr/include/X11/pixmaps:/usr/share/icons/fvwm --enable-package-subdirs" + + # use readline in FvwmConsole. + if use readline; then + myconf="${myconf} --without-termcap-library" + fi + + # FvwmGtk can be built as a gnome application, or a Gtk+ application. + if ! use gtk; then + myconf="${myconf} --disable-gtk --without-gnome" + else + if ! use imlib; then + einfo "ATTN: You can safely ignore any imlib related configure errors." + myconf="${myconf} --with-imlib-prefix=${T}" + fi + myconf="${myconf} --without-gnome" + fi + + # set the local maintainer for fvwm-bug. + export FVWM_BUGADDR="i92guboj@terra.es" + + # reccommended by upstream + append-flags -fno-strict-aliasing + + # signed chars are required + if use ppc; then + append-flags -fsigned-char + fi + + econf ${myconf} `use_enable truetype xft` \ + `use_with stroke stroke-library` \ + `use_enable nls` \ + `use_enable nls iconv` \ + `use_with png png-library` \ + `use_enable bidi` \ + `use_enable xinerama` \ + `use_enable debug debug-msgs` \ + `use_enable debug command-log` \ + `use_enable perl perllib` \ + `use_with readline readline-library` \ + `use_enable svg rsvg` \ + `use_enable doc htmldoc` \ + `use_with rplay rplay-library` || die + emake || die +} + +src_install() { + make DESTDIR=${D} install || die + + if use perl; then + + local toolkits="gtk tcltk" + + if ! use tk; then + # Remove the Tk bindings (requires perl-tk) + rm -f ${D}/usr/share/fvwm/perllib/FVWM/Module/Tk.pm + toolkits=${toolkits/tcltk/} + fi + if ! use gtk; then + # Remove gtk bindings (requires gtk-perl/gtk2-perl) + rm -f ${D}/usr/share/fvwm/perllib/FVWM/Module/Gtk.pm \ + ${D}/usr/share/fvwm/perllib/FVWM/Module/Gtk2.pm + toolkits=${toolkits/gtk/} + fi + toolkits=${toolkits// /} + if ! test "${toolkits}"; then + # No perl toolkit bindings wanted, remove the unneeded files + # and empty directories. + rm -f ${D}/usr/share/fvwm/perllib/FVWM/Module/Toolkit.pm + find ${D}/usr/share/fvwm/perllib -depth -type d -exec rmdir {} \; 2>/dev/null + fi + else + # Remove useless script if perllib isnt required. + rm -rf ${D}/usr/bin/fvwm-perllib ${D}/usr/share/man/man1/fvwm-perllib.1 + fi + + # neat utility for testing fvwm behaviour on applications setting various + # hints, creates a simple black window with configurable hints set. + if use debug; then + dobin ${S}/tests/hints/hints_test + newdoc ${S}/tests/hints/README README.hints + fi + + # fvwm-convert-2.6 is just a stub, contains no code - remove it for now. + rm -f ${D}/usr/bin/fvwm-convert-2.6 ${D}/usr/share/man/man1/fvwm-convert-2.6.1 + + # ive included `exec` to save a few bytes of memory. + echo "#!/bin/bash" > fvwm2 + echo "exec /usr/bin/fvwm2" >> fvwm2 + + exeinto /etc/X11/Sessions + doexe fvwm2 + + dodoc AUTHORS ChangeLog COPYING README NEWS docs/ANNOUNCE docs/BUGS \ + docs/COMMANDS docs/DEVELOPERS docs/FAQ docs/error_codes docs/TODO \ + docs/fvwm.lsm + + dodoc ${FILESDIR}/README.translucency +} + +pkg_postinst() { + einfo + einfo "For information about the changes in this release, please" + einfo "refer to the NEWS file." + einfo +} |