summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Müller <ulm@gentoo.org>2008-02-17 11:44:28 +0000
committerUlrich Müller <ulm@gentoo.org>2008-02-17 11:44:28 +0000
commit94a573ef4e263dbae30adcc634a9cc0b1d520353 (patch)
treeb580566d19080721d0897924a50a3082e019a74f /x11-libs
parentStable on ppc wrt bug 210293 (diff)
downloadgentoo-2-94a573ef4e263dbae30adcc634a9cc0b1d520353.tar.gz
gentoo-2-94a573ef4e263dbae30adcc634a9cc0b1d520353.tar.bz2
gentoo-2-94a573ef4e263dbae30adcc634a9cc0b1d520353.zip
Fix problem with invisible menu items in ddd, bug 210220.
(Portage version: 2.1.4.4)
Diffstat (limited to 'x11-libs')
-rw-r--r--x11-libs/openmotif/ChangeLog7
-rw-r--r--x11-libs/openmotif/files/openmotif-2.3.0-sensitivity-invisible.patch194
-rw-r--r--x11-libs/openmotif/openmotif-2.3.0-r1.ebuild5
3 files changed, 203 insertions, 3 deletions
diff --git a/x11-libs/openmotif/ChangeLog b/x11-libs/openmotif/ChangeLog
index da00693cd128..4ce64716abf3 100644
--- a/x11-libs/openmotif/ChangeLog
+++ b/x11-libs/openmotif/ChangeLog
@@ -1,6 +1,11 @@
# ChangeLog for x11-libs/openmotif
# Copyright 2002-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/openmotif/ChangeLog,v 1.155 2008/02/16 16:17:20 ulm Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/openmotif/ChangeLog,v 1.156 2008/02/17 11:44:27 ulm Exp $
+
+ 17 Feb 2008; Ulrich Mueller <ulm@gentoo.org>
+ +files/openmotif-2.3.0-sensitivity-invisible.patch,
+ openmotif-2.3.0-r1.ebuild:
+ Fix problem with invisible menu items in ddd, bug 210220.
16 Feb 2008; Ulrich Mueller <ulm@gentoo.org> openmotif-2.3.0.ebuild:
Stable on amd64, bug 204265.
diff --git a/x11-libs/openmotif/files/openmotif-2.3.0-sensitivity-invisible.patch b/x11-libs/openmotif/files/openmotif-2.3.0-sensitivity-invisible.patch
new file mode 100644
index 000000000000..5041e8dfd725
--- /dev/null
+++ b/x11-libs/openmotif/files/openmotif-2.3.0-sensitivity-invisible.patch
@@ -0,0 +1,194 @@
+--- openmotif-2.3.0-orig/lib/Xm/I18List.c 2005-12-09 15:29:01.000000000 +0100
++++ openmotif-2.3.0/lib/Xm/I18List.c 2008-02-16 00:48:53.000000000 +0100
+@@ -2086,7 +2086,7 @@
+ values.graphics_exposures = False;
+
+ mask = GCForeground | GCBackground | GCFont | GCGraphicsExposures;
+- smask = mask | GCStipple | GCFillStyle;
++ smask = mask | GCFillStyle;
+
+ XmI18List_gc(ilist) = XtGetGC(w, mask, &values);
+
+@@ -2117,6 +2117,7 @@
+ XmI18List_entry_background_gc(ilist) = XtGetGC(w, mask, &values);
+ }
+
++ values.foreground = _XmAssignInsensitiveColor(w);
+ XmI18List_stippled_gc(ilist) = XtGetGC(w, smask, &values);
+
+ if (XmI18List_entry_background_use(ilist))
+--- openmotif-2.3.0-orig/lib/Xm/IconButton.c 2005-10-17 15:15:51.000000000 +0200
++++ openmotif-2.3.0/lib/Xm/IconButton.c 2008-02-16 00:48:53.000000000 +0100
+@@ -1836,7 +1836,7 @@
+ values.fill_style = FillStippled;
+
+ mask = GCForeground | GCBackground | GCGraphicsExposures;
+- smask = mask | GCStipple | GCFillStyle;
++ smask = mask | GCFillStyle;
+
+ if (fs) {
+ values.font = fs->fid;
+@@ -1844,6 +1844,7 @@
+ }
+
+ XmIconButton_gc(iw) = XtGetGC(w, mask, &values);
++ values.foreground = _XmAssignInsensitiveColor(w);
+ XmIconButton_stippled_text_gc(iw) = XtGetGC(w, smask, &values);
+
+ /*
+--- openmotif-2.3.0-orig/lib/Xm/IconG.c 2003-10-06 12:10:24.000000000 +0200
++++ openmotif-2.3.0/lib/Xm/IconG.c 2008-02-16 00:48:53.000000000 +0100
+@@ -3134,9 +3134,9 @@
+
+
+ /** insensitive gc **/
+- values.foreground = IG_Foreground(wid) ;
++ values.foreground = _XmAssignInsensitiveColor(XtParent(wid));
+ values.background = IG_Background(wid) ;
+- valueMask |= GCFillStyle | GCStipple;
++ valueMask |= GCFillStyle;
+ values.fill_style = FillOpaqueStippled;
+ values.stipple = _XmGetInsensitiveStippleBitmap(wid);
+
+--- openmotif-2.3.0-orig/lib/Xm/Label.c 2006-12-21 20:21:27.000000000 +0100
++++ openmotif-2.3.0/lib/Xm/Label.c 2008-02-16 00:48:53.000000000 +0100
+@@ -688,8 +688,8 @@
+ lw->label.normal_GC = XtAllocateGC((Widget) lw, 0, valueMask, &values,
+ dynamicMask, 0);
+
+- valueMask |= GCFillStyle | GCStipple;
+- values.foreground = lw->core.background_pixel;
++ valueMask |= GCFillStyle;
++ values.foreground = _XmAssignInsensitiveColor((Widget)lw);
+ values.background = lw->primitive.foreground;
+ values.fill_style = FillOpaqueStippled;
+ values.stipple = _XmGetInsensitiveStippleBitmap((Widget) lw);
+@@ -1557,7 +1557,7 @@
+ lp->StringRect.width,
+ lp->alignment,
+ XmPrim_layout_direction(lw), NULL);
+-#ifdef USE_XFT
++#if 0
+ if (!XtIsSensitive(wid))
+ {
+ XSetFillStyle(XtDisplay(lw), lp->insensitive_GC, FillStippled);
+--- openmotif-2.3.0-orig/lib/Xm/LabelG.c 2006-12-26 18:37:09.000000000 +0100
++++ openmotif-2.3.0/lib/Xm/LabelG.c 2008-02-16 00:48:53.000000000 +0100
+@@ -1247,8 +1247,8 @@
+ LabG_NormalGC(lw) = XtAllocateGC((Widget) mw, 0, valueMask, &values,
+ dynamicMask, 0);
+
+- valueMask |= GCFillStyle | GCStipple;
+- values.foreground = LabG_Background(lw);
++ valueMask |= GCFillStyle;
++ values.foreground = _XmAssignInsensitiveColor((Widget)mw);
+ values.background = LabG_Foreground(lw);
+ values.fill_style = FillOpaqueStippled;
+
+@@ -2435,7 +2435,7 @@
+ lw->rectangle.y + LabG_TextRect(lw).y + LabG_StringRect(lw).y,
+ LabG_StringRect(lw).width,
+ LabG_Alignment(lw), LayoutG(lw), NULL);
+-#ifdef USE_XFT
++#if 0
+ if (!XtIsSensitive(wid)) {
+ XSetFillStyle(XtDisplay(lw), LabG_InsensitiveGC(lw), FillStippled);
+ XFillRectangle(XtDisplay(lw), XtWindow(lw), LabG_InsensitiveGC(lw),
+--- openmotif-2.3.0-orig/lib/Xm/List.c 2007-01-24 18:07:35.000000000 +0100
++++ openmotif-2.3.0/lib/Xm/List.c 2008-02-16 00:48:53.000000000 +0100
+@@ -2758,9 +2758,9 @@
+ lw->list.InverseGC = XtAllocateGC((Widget) lw, lw->core.depth,
+ valueMask, &values, modifyMask, 0);
+
+- values.foreground = lw->primitive.foreground;
++ values.foreground = _XmAssignInsensitiveColor(lw);
+ values.background = lw->core.background_pixel;
+- valueMask |= GCStipple | GCFillStyle;
++ valueMask |= GCFillStyle;
+ values.fill_style = FillOpaqueStippled;
+ values.stipple = _XmGetInsensitiveStippleBitmap((Widget) lw);
+
+--- openmotif-2.3.0-orig/lib/Xm/TextF.c 2006-08-28 15:53:30.000000000 +0200
++++ openmotif-2.3.0/lib/Xm/TextF.c 2008-02-16 00:48:53.000000000 +0100
+@@ -1960,8 +1960,7 @@
+ valueMask |= GCFillStyle;
+ if (stipple) {
+ values.fill_style = FillStippled;
+- valueMask |= GCStipple;
+- values.stipple = tf->text.stipple_tile;
++ values.foreground = _XmAssignInsensitiveColor((Widget)tf);
+ } else
+ values.fill_style = FillSolid;
+ }
+--- openmotif-2.3.0-orig/lib/Xm/TextOut.c 2006-12-12 12:54:14.000000000 +0100
++++ openmotif-2.3.0/lib/Xm/TextOut.c 2008-02-16 00:48:53.000000000 +0100
+@@ -625,8 +625,7 @@
+ valueMask |= GCFillStyle;
+ if (stipple) {
+ values.fill_style = FillStippled;
+- valueMask |= GCStipple;
+- values.stipple = data->stipple_tile;
++ values.foreground = _XmAssignInsensitiveColor((Widget)tw);
+ } else
+ values.fill_style = FillSolid;
+ }
+--- openmotif-2.3.0-orig/lib/Xm/Xm.c 2005-12-19 11:32:36.000000000 +0100
++++ openmotif-2.3.0/lib/Xm/Xm.c 2008-02-16 00:48:53.000000000 +0100
+@@ -426,3 +426,45 @@
+ _XmAppUnlock(app);
+ return return_wid;
+ }
++
++/************************************************************************
++ *
++ * _XmAssignInsensitiveColor
++ * Allocate the Gray color for display widget like insensitive.
++ *
++ *
++ ************************************************************************/
++
++Pixel
++_XmAssignInsensitiveColor(Widget w)
++{
++ static XColor screen_in_out;
++ int status;
++ Pixel p;
++
++ p = w->core.background_pixel;
++ XQueryColor(XtDisplay(w), w->core.colormap, &screen_in_out);
++ if ((abs(screen_in_out.red-RGB_GREY_VALUE)<RGB_GREY_PRESISE)
++ && (abs(screen_in_out.green-RGB_GREY_VALUE)<RGB_GREY_PRESISE)
++ && (abs(screen_in_out.blue-RGB_GREY_VALUE)<RGB_GREY_PRESISE)) {
++ /*text color have to be more light for wosn't be invisible*/
++ screen_in_out.red=(RGB_GREY_VALUE+RGB_GREY_VALUE/2)<<8;
++ screen_in_out.green=(RGB_GREY_VALUE+RGB_GREY_VALUE/2)<<8;
++ screen_in_out.blue=(RGB_GREY_VALUE+RGB_GREY_VALUE/2)<<8;
++
++ status = XAllocColor(XtDisplay(w), w->core.colormap, &screen_in_out);
++ if (status)
++ p = screen_in_out.pixel;
++ } else {
++ /*gray color*/
++ screen_in_out.red=RGB_GREY_VALUE<<8;
++ screen_in_out.green=RGB_GREY_VALUE<<8;
++ screen_in_out.blue=RGB_GREY_VALUE<<8;
++
++ status = XAllocColor(XtDisplay(w), w->core.colormap, &screen_in_out);
++ if (status)
++ p = screen_in_out.pixel;
++ }
++
++ return p;
++}
+--- openmotif-2.3.0-orig/lib/Xm/XmI.h 2005-12-19 11:32:36.000000000 +0100
++++ openmotif-2.3.0/lib/Xm/XmI.h 2008-02-16 00:48:53.000000000 +0100
+@@ -276,5 +276,9 @@
+ } /* Close scope of 'extern "C"' declaration which encloses file. */
+ #endif
+
++#define RGB_GREY_VALUE 128
++#define RGB_GREY_PRESISE 50
++extern Pixel _XmAssignInsensitiveColor(Widget w);
++
+ #endif /* _XmI_h */
+ /* DON'T ADD ANYTHING AFTER THIS #endif */
diff --git a/x11-libs/openmotif/openmotif-2.3.0-r1.ebuild b/x11-libs/openmotif/openmotif-2.3.0-r1.ebuild
index 1f9d887ef1de..dd9ccee3537f 100644
--- a/x11-libs/openmotif/openmotif-2.3.0-r1.ebuild
+++ b/x11-libs/openmotif/openmotif-2.3.0-r1.ebuild
@@ -1,8 +1,8 @@
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/openmotif/openmotif-2.3.0-r1.ebuild,v 1.4 2008/02/14 22:01:55 ulm Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/openmotif/openmotif-2.3.0-r1.ebuild,v 1.5 2008/02/17 11:44:27 ulm Exp $
-inherit flag-o-matic multilib autotools
+inherit eutils flag-o-matic multilib autotools
DESCRIPTION="Open Motif"
HOMEPAGE="http://www.motifzone.org/"
@@ -69,6 +69,7 @@ pkg_setup() {
src_unpack() {
unpack ${A}
cd "${S}"
+ epatch "${FILESDIR}/${P}-sensitivity-invisible.patch"
# disable compilation of demo binaries
sed -i -e 's/^[ \t]*demos//' Makefile.in