git: d32c335a148f - main - x11-toolkits/libXaw3d: Replace with the freedesktop.org version
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 24 Mar 2025 14:54:31 UTC
The branch main has been updated by cy:
URL: https://cgit.FreeBSD.org/ports/commit/?id=d32c335a148f02de30acd38e964fb037074bcd61
commit d32c335a148f02de30acd38e964fb037074bcd61
Author: Cy Schubert <cy@FreeBSD.org>
AuthorDate: 2025-03-19 15:47:02 +0000
Commit: Cy Schubert <cy@FreeBSD.org>
CommitDate: 2025-03-24 14:54:05 +0000
x11-toolkits/libXaw3d: Replace with the freedesktop.org version
Replace the unmaintained Slackware Xaw3d with the maintained
freedesktop.org libXaw3d.
Assume maintainership.
PR: 285528
Exp-run by: antoine
---
x11-toolkits/libXaw3d/Makefile | 33 +-
x11-toolkits/libXaw3d/distinfo | 6 +-
x11-toolkits/libXaw3d/files/patch-Box.c | 24 -
.../libXaw3d/files/patch-runtime_scrollbars | 824 ---------------------
x11-toolkits/libXaw3d/pkg-descr | 19 +-
x11-toolkits/libXaw3d/pkg-plist | 12 +-
6 files changed, 34 insertions(+), 884 deletions(-)
diff --git a/x11-toolkits/libXaw3d/Makefile b/x11-toolkits/libXaw3d/Makefile
index 73bf890a75bc..042fe2e1d4a1 100644
--- a/x11-toolkits/libXaw3d/Makefile
+++ b/x11-toolkits/libXaw3d/Makefile
@@ -1,36 +1,21 @@
PORTNAME= libXaw3d
-PORTVERSION= 1.5E
-PORTREVISION= 8
+PORTVERSION= 1.6.6
CATEGORIES= x11-toolkits
-MASTER_SITES= http://slackware.cs.utah.edu/pub/slackware/slackware64-13.1/source/x/xaw3d/
-DISTNAME= Xaw3d-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
-DOCSDIR= ${PREFIX}/share/doc/Xaw3d
-MAINTAINER= cy@FreeBSD.org
-COMMENT= 3-D Athena Widget set that looks like Motif
+MAINTAINER= x11@FreeBSD.org
+COMMENT= Xaw3d is the X 3D Athena Widget Set
+WWW= https://www.freedesktop.org/wiki/Software/xlibs/
LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/COPYING
-WRKSRC= ${WRKDIR}/xc/lib/Xaw3d
-USES= gettext imake xorg
-USE_XORG= x11 xext xmu xt sm ice xpm
-USE_LDCONFIG= yes
+USES= gmake tar:xz xorg xorg-cat:lib
+USE_XORG= x11 xau xext xmu xpm xorgproto xt
+
+CONFIGURE_ARGS= --without-xmlto
SUB_FILES= pkg-message
XAWVER= 8
SUB_LIST= XAWVER="${XAWVER}"
-OPTIONS_DEFINE= DOCS
-
-post-extract:
- @${MKDIR} ${WRKSRC}/X11/Xaw3d
- @cd ${WRKSRC}/X11/Xaw3d; ${LN} -sf ../../*.h .
-
-post-install:
- @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libXaw3d.so
-
-post-install-DOCS-on:
- @${MKDIR} ${STAGEDIR}${DOCSDIR}
- ${INSTALL_DATA} ${WRKSRC}/README.XAW3D ${STAGEDIR}${DOCSDIR}/
-
.include <bsd.port.mk>
diff --git a/x11-toolkits/libXaw3d/distinfo b/x11-toolkits/libXaw3d/distinfo
index 2d8dfef5406c..e9e1089ee540 100644
--- a/x11-toolkits/libXaw3d/distinfo
+++ b/x11-toolkits/libXaw3d/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1742827849
-SHA256 (Xaw3d-1.5E.tar.gz) = 433ad7057d745f6313b5be91b65b983881a27a11711e3332fcaa56bf3befe32b
-SIZE (Xaw3d-1.5E.tar.gz) = 309264
+TIMESTAMP = 1742393918
+SHA256 (xorg/lib/libXaw3d-1.6.6.tar.xz) = a41c3e37135ad616b1f28bbde70002afbf3cb59a30df34141f829d32eadc8646
+SIZE (xorg/lib/libXaw3d-1.6.6.tar.xz) = 482040
diff --git a/x11-toolkits/libXaw3d/files/patch-Box.c b/x11-toolkits/libXaw3d/files/patch-Box.c
deleted file mode 100644
index 53cfe5b80905..000000000000
--- a/x11-toolkits/libXaw3d/files/patch-Box.c
+++ /dev/null
@@ -1,24 +0,0 @@
-*** Box.c~ 1996-10-15 10:41:18.000000000 -0400
---- Box.c 2007-04-21 14:12:44.000000000 -0400
-***************
-*** 353,360 ****
- else {
- width = preferred_width;
- do { /* find some width big enough to stay within this height */
-! width *= 2;
-! if (width > constraint->width) width = constraint->width;
- DoLayout(w, width, 0, &preferred_width, &preferred_height, FALSE);
- } while (preferred_height > constraint->height &&
- width < constraint->width);
---- 353,363 ----
- else {
- width = preferred_width;
- do { /* find some width big enough to stay within this height */
-! if (width > constraint->width/2) /* avoid short int overflow */
-! width = constraint->width;
-! else
-! width *= 2;
-!
- DoLayout(w, width, 0, &preferred_width, &preferred_height, FALSE);
- } while (preferred_height > constraint->height &&
- width < constraint->width);
diff --git a/x11-toolkits/libXaw3d/files/patch-runtime_scrollbars b/x11-toolkits/libXaw3d/files/patch-runtime_scrollbars
deleted file mode 100644
index 877cb0ff8020..000000000000
--- a/x11-toolkits/libXaw3d/files/patch-runtime_scrollbars
+++ /dev/null
@@ -1,824 +0,0 @@
-Index: ChangeLog
-===================================================================
-RCS file: ChangeLog
-diff -N ChangeLog
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ ChangeLog 4 Apr 2005 13:41:08 -0000 1.1
-@@ -0,0 +1,5 @@
-+2005-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
-+
-+ * Scrollbar.c (FractionLoc): Don't constrain to 0.0 ... 1.0.
-+ (MoveThumb): Rewrite the "picked" handling.
-+
-Index: Imakefile
-===================================================================
-RCS file: /u/monnier/cvsroot/Xaw3d/Imakefile,v
-retrieving revision 1.1.1.9
-retrieving revision 1.2
-diff -u -r1.1.1.9 -r1.2
---- Imakefile 25 Mar 2005 18:12:03 -0000 1.1.1.9
-+++ Imakefile 27 Mar 2005 13:53:38 -0000 1.2
-@@ -8,8 +8,6 @@
- #undef MULTIPLANE_PIXMAPS
- XCOMM For grayed stipple shadows, define GRAY_BLKWHT_STIPPLES:
- #define GRAY_BLKWHT_STIPPLES
--XCOMM For scrollbars with arrows, define ARROW_SCROLLBARS:
--#undef ARROW_SCROLLBARS
-
- #define DoNormalLib NormalLibXaw
- #define DoSharedLib SharedLibXaw
-@@ -22,7 +20,7 @@
- #define IncSubSubdir Xaw3d
-
- XCOMM When building outside an X11 source tree:
--XCOMM EXTRA_INCLUDES = -I.
-+EXTRA_INCLUDES = -I.
-
- #ifdef SharedXawReqs
- REQUIREDLIBS = SharedXawReqs
-@@ -119,13 +117,6 @@
- XAW_GRAY_BLKWHT_STIPPLES = \
- -e 's/\/\* gray stipples \*\//\#undef XAW_GRAY_BLKWHT_STIPPLES/'
- #endif
--#ifdef ARROW_SCROLLBARS
--XAW_ARROW_SCROLLBARS = \
-- -e 's/\/\* arrow scrollbars \*\//\#define XAW_ARROW_SCROLLBARS/'
--#else
--XAW_ARROW_SCROLLBARS = \
-- -e 's/\/\* arrow scrollbars \*\//\#undef XAW_ARROW_SCROLLBARS/'
--#endif
-
- depend:: laygram.c laygram.h laylex.c Xaw3dP.h
-
-@@ -148,8 +139,7 @@
-
- Xaw3dP.h: Xaw3dP.h.sed
- sed $(XAW_INTERNATIONALIZATION) $(XAW_MULTIPLANE_PIXMAPS) \
-- $(XAW_GRAY_BLKWHT_STIPPLES) $(XAW_ARROW_SCROLLBARS) \
-- Xaw3dP.h.sed > Xaw3dP.h
-+ $(XAW_GRAY_BLKWHT_STIPPLES) Xaw3dP.h.sed > Xaw3dP.h
-
- $(OBJS): Xaw3dP.h
-
-Index: README.XAW3D
-===================================================================
-RCS file: /u/monnier/cvsroot/Xaw3d/README.XAW3D,v
-retrieving revision 1.1.1.4
-retrieving revision 1.2
-diff -u -r1.1.1.4 -r1.2
---- README.XAW3D 25 Mar 2005 18:12:04 -0000 1.1.1.4
-+++ README.XAW3D 27 Mar 2005 13:53:38 -0000 1.2
-@@ -48,7 +48,6 @@
- #define XAW_INTERNATIONALIZATION
- #define XAW_MULTIPLANE_PIXMAPS
- #define XAW_GRAY_BLKWHT_STIPPLES
-- #undef XAW_ARROW_SCROLLBARS
-
- Xaw3dP.h need not be included by the application source, as the public
- headers that reference any 3D features include this header. The
-@@ -133,16 +132,6 @@
- beNiceToColormap resource is True and 3) the display allows it. This
- option was disabled in previous Xaw3d releases.
-
-- The default Xaw3d does not use arrow scrollbars. At the top of this
-- distribution's Imakefile are the lines:
--
-- XCOMM For scrollbars with arrows, define ARROW_SCROLLBARS:
-- #undef ARROW_SCROLLBARS
--
-- If you want arrow-style scrollbars, change the "#undef" to "#define".
-- Note that the Scrollbar widget's translations and actions will change
-- accordingly.
--
- Building Xaw3d within an X11 source tree:
- -----------------------------------------
-
-Index: Scrollbar.c
-===================================================================
-RCS file: /u/monnier/cvsroot/Xaw3d/Scrollbar.c,v
-retrieving revision 1.1.1.6
-retrieving revision 1.4
-diff -u -r1.1.1.6 -r1.4
---- Scrollbar.c 25 Mar 2005 18:12:04 -0000 1.1.1.6
-+++ Scrollbar.c 4 Apr 2005 16:06:04 -0000 1.4
-@@ -53,6 +53,11 @@
-
- ******************************************************************/
-
-+/* TODO:
-+ - avoid adhoc tests for `->arrows'.
-+ - add support for scroll wheels.
-+ */
-+
- /* ScrollBar.c */
- /* created by weissman, Mon Jul 7 13:20:03 1986 */
- /* converted by swick, Thu Aug 27 1987 */
-@@ -69,38 +74,48 @@
-
- /* Private definitions. */
-
--#ifdef XAW_ARROW_SCROLLBARS
--static char defaultTranslations[] =
-- "<Btn1Down>: NotifyScroll()\n\
-- <Btn2Down>: MoveThumb() NotifyThumb() \n\
-- <Btn3Down>: NotifyScroll()\n\
-- <Btn1Motion>: HandleThumb() \n\
-- <Btn3Motion>: HandleThumb() \n\
-- <Btn2Motion>: MoveThumb() NotifyThumb() \n\
-- <BtnUp>: EndScroll()";
--#else
- static char defaultTranslations[] =
-+#ifdef XAW_SCROLL_WHEEL
-+ "<Btn4Down>: StartScroll(Wheel, Backward) \n\
-+ <Btn5Down>: StartScroll(Wheel, Forward) \n"
-+#endif
- "<Btn1Down>: StartScroll(Forward) \n\
- <Btn2Down>: StartScroll(Continuous) MoveThumb() NotifyThumb() \n\
- <Btn3Down>: StartScroll(Backward) \n\
-+ <Btn1Motion>: HandleThumb() \n\
-+ <Btn3Motion>: HandleThumb() \n\
- <Btn2Motion>: MoveThumb() NotifyThumb() \n\
- <BtnUp>: NotifyScroll(Proportional) EndScroll()";
--#ifdef bogusScrollKeys
-- /* examples */
-- "<KeyPress>f: StartScroll(Forward) NotifyScroll(FullLength) EndScroll()"
-- "<KeyPress>b: StartScroll(Backward) NotifyScroll(FullLength) EndScroll()"
--#endif
--#endif
-+/* #ifdef XAW_ARROW_SCROLLBARS
-+ * "<Btn1Down>: NotifyScroll()\n\
-+ * <Btn2Down>: MoveThumb() NotifyThumb() \n\
-+ * <Btn3Down>: NotifyScroll()\n\
-+ * <Btn1Motion>: HandleThumb() \n\
-+ * <Btn3Motion>: HandleThumb() \n\
-+ * <Btn2Motion>: MoveThumb() NotifyThumb() \n\
-+ * <BtnUp>: EndScroll()";
-+ * #else
-+ * "<Btn1Down>: StartScroll(Forward) \n\
-+ * <Btn2Down>: StartScroll(Continuous) MoveThumb() NotifyThumb() \n\
-+ * <Btn3Down>: StartScroll(Backward) \n\
-+ * <Btn2Motion>: MoveThumb() NotifyThumb() \n\
-+ * <BtnUp>: NotifyScroll(Proportional) EndScroll()";
-+ * #ifdef bogusScrollKeys
-+ * /\* examples *\/
-+ * "<KeyPress>f: StartScroll(Forward) NotifyScroll(FullLength) EndScroll()"
-+ * "<KeyPress>b: StartScroll(Backward) NotifyScroll(FullLength) EndScroll()"
-+ * #endif
-+ * #endif */
-
- static float floatZero = 0.0;
-
- #define Offset(field) XtOffsetOf(ScrollbarRec, field)
-
- static XtResource resources[] = {
--#ifdef XAW_ARROW_SCROLLBARS
- /* {XtNscrollCursor, XtCCursor, XtRCursor, sizeof(Cursor),
- Offset(scrollbar.cursor), XtRString, "crosshair"},*/
--#else
-+ {XtNarrowScrollbars, XtCArrowScrollbars, XtRBoolean, sizeof(Boolean),
-+ Offset(scrollbar.arrows), XtRBoolean, (XtPointer) False},
- {XtNscrollVCursor, XtCCursor, XtRCursor, sizeof(Cursor),
- Offset(scrollbar.verCursor), XtRString, "sb_v_double_arrow"},
- {XtNscrollHCursor, XtCCursor, XtRCursor, sizeof(Cursor),
-@@ -113,7 +128,6 @@
- Offset(scrollbar.leftCursor), XtRString, "sb_left_arrow"},
- {XtNscrollRCursor, XtCCursor, XtRCursor, sizeof(Cursor),
- Offset(scrollbar.rightCursor), XtRString, "sb_right_arrow"},
--#endif
- {XtNlength, XtCLength, XtRDimension, sizeof(Dimension),
- Offset(scrollbar.length), XtRImmediate, (XtPointer) 1},
- {XtNthickness, XtCThickness, XtRDimension, sizeof(Dimension),
-@@ -149,22 +163,16 @@
- static void Redisplay();
- static Boolean SetValues();
-
--#ifdef XAW_ARROW_SCROLLBARS
- static void HandleThumb();
--#else
- static void StartScroll();
--#endif
- static void MoveThumb();
- static void NotifyThumb();
- static void NotifyScroll();
- static void EndScroll();
-
- static XtActionsRec actions[] = {
--#ifdef XAW_ARROW_SCROLLBARS
- {"HandleThumb", HandleThumb},
--#else
- {"StartScroll", StartScroll},
--#endif
- {"MoveThumb", MoveThumb},
- {"NotifyThumb", NotifyThumb},
- {"NotifyScroll", NotifyScroll},
-@@ -235,12 +243,11 @@
- (XtConvertArgList)NULL, (Cardinal)0 );
- }
-
--#ifdef XAW_ARROW_SCROLLBARS
--/* CHECKIT #define MARGIN(sbw) (sbw)->scrollbar.thickness + (sbw)->threeD.shadow_width */
--#define MARGIN(sbw) (sbw)->scrollbar.thickness
--#else
--#define MARGIN(sbw) (sbw)->threeD.shadow_width
--#endif
-+#define MARGIN(sbw) \
-+ ((sbw)->scrollbar.arrows \
-+ /* CHECKIT (sbw)->scrollbar.thickness + (sbw)->threeD.shadow_width */ \
-+ ? (sbw)->scrollbar.thickness \
-+ : (sbw)->threeD.shadow_width)
-
- /*
- The original Xaw Scrollbar's FillArea *really* relied on the fact that the
-@@ -357,7 +364,6 @@
- }
- }
-
--#ifdef XAW_ARROW_SCROLLBARS
- static void PaintArrows (sbw)
- ScrollbarWidget sbw;
- {
-@@ -453,7 +459,6 @@
- }
- }
- }
--#endif
-
- /* Function Name: Destroy
- * Description: Called as the scrollbar is going away...
-@@ -464,10 +469,8 @@
- Widget w;
- {
- ScrollbarWidget sbw = (ScrollbarWidget) w;
--#ifdef XAW_ARROW_SCROLLBARS
- if(sbw->scrollbar.timer_id != (XtIntervalId) 0)
- XtRemoveTimeOut (sbw->scrollbar.timer_id);
--#endif
- XtReleaseGC (w, sbw->scrollbar.gc);
- }
-
-@@ -552,12 +555,8 @@
- ? sbw->scrollbar.thickness : sbw->scrollbar.length;
-
- SetDimensions (sbw);
--#ifdef XAW_ARROW_SCROLLBARS
-- sbw->scrollbar.scroll_mode = 0;
- sbw->scrollbar.timer_id = (XtIntervalId)0;
--#else
- sbw->scrollbar.direction = 0;
--#endif
- sbw->scrollbar.topLoc = 0;
- sbw->scrollbar.shownLength = sbw->scrollbar.min_thumb;
- }
-@@ -568,19 +567,19 @@
- XSetWindowAttributes *attributes;
- {
- ScrollbarWidget sbw = (ScrollbarWidget) w;
--#ifdef XAW_ARROW_SCROLLBARS
-- if(sbw->simple.cursor_name == NULL)
-- XtVaSetValues(w, XtNcursorName, "crosshair", NULL);
-- /* dont set the cursor of the window to anything */
-- *valueMask &= ~CWCursor;
--#else
-- sbw->scrollbar.inactiveCursor =
-- (sbw->scrollbar.orientation == XtorientVertical)
-- ? sbw->scrollbar.verCursor
-- : sbw->scrollbar.horCursor;
-+ if (sbw->scrollbar.arrows) {
-+ /* if (sbw->simple.cursor_name == NULL)
-+ * XtVaSetValues(w, XtNcursorName, "crosshair", NULL); */
-+ /* dont set the cursor of the window to anything */
-+ *valueMask &= ~CWCursor;
-+ } else {
-+ sbw->scrollbar.inactiveCursor =
-+ (sbw->scrollbar.orientation == XtorientVertical)
-+ ? sbw->scrollbar.verCursor
-+ : sbw->scrollbar.horCursor;
-
-- XtVaSetValues (w, XtNcursor, sbw->scrollbar.inactiveCursor, NULL);
--#endif
-+ XtVaSetValues (w, XtNcursor, sbw->scrollbar.inactiveCursor, NULL);
-+ }
- /*
- * The Simple widget actually stuffs the value in the valuemask.
- */
-@@ -669,11 +668,9 @@
- sbw->scrollbar.topLoc = -(sbw->scrollbar.length + 1);
- PaintThumb (sbw, event);
- }
--#ifdef XAW_ARROW_SCROLLBARS
-- /* we'd like to be region aware here!!!! */
-- PaintArrows (sbw);
--#endif
--
-+ if (sbw->scrollbar.arrows)
-+ /* we'd like to be region aware here!!!! */
-+ PaintArrows (sbw);
- }
-
-
-@@ -776,7 +773,6 @@
- }
- }
-
--#ifdef XAW_ARROW_SCROLLBARS
- /* ARGSUSED */
- static void HandleThumb (w, event, params, num_params)
- Widget w;
-@@ -787,10 +783,14 @@
- Position x,y;
- ScrollbarWidget sbw = (ScrollbarWidget) w;
-
-+ /* The old non-ARROW_SCROLLBAR binding emulation:
-+ HandleThumb() -> <nothing> */
-+ if (!sbw->scrollbar.arrows) return;
-+
- ExtractPosition( event, &x, &y );
- /* if the motion event puts the pointer in thumb, call Move and Notify */
- /* also call Move and Notify if we're already in continuous scroll mode */
-- if (sbw->scrollbar.scroll_mode == 2 ||
-+ if (sbw->scrollbar.direction == 'C' ||
- (PICKLENGTH (sbw,x,y) >= sbw->scrollbar.topLoc &&
- PICKLENGTH (sbw,x,y) <= sbw->scrollbar.topLoc + sbw->scrollbar.shownLength)){
- XtCallActionProc(w, "MoveThumb", event, params, *num_params);
-@@ -805,12 +805,12 @@
- #define A_FEW_PIXELS 5
- ScrollbarWidget sbw = (ScrollbarWidget) client_data;
- int call_data;
-- if (sbw->scrollbar.scroll_mode != 1 && sbw->scrollbar.scroll_mode != 3) {
-+ if (sbw->scrollbar.direction != 'B' && sbw->scrollbar.direction != 'F') {
- sbw->scrollbar.timer_id = (XtIntervalId) 0;
- return;
- }
- call_data = MAX (A_FEW_PIXELS, sbw->scrollbar.length / 20);
-- if (sbw->scrollbar.scroll_mode == 1)
-+ if (sbw->scrollbar.direction == 'B')
- call_data = -call_data;
- XtCallCallbacks((Widget)sbw, XtNscrollProc, (XtPointer) call_data);
- sbw->scrollbar.timer_id =
-@@ -820,12 +820,11 @@
- client_data);
- }
-
--#else /* XAW_ARROW_SCROLLBARS */
- /* ARGSUSED */
- static void StartScroll (w, event, params, num_params )
- Widget w;
- XEvent *event;
-- String *params; /* direction: Back|Forward|Smooth */
-+ String *params; /* direction: Back|Forward|Continuous */
- Cardinal *num_params; /* we only support 1 */
- {
- ScrollbarWidget sbw = (ScrollbarWidget) w;
-@@ -833,11 +832,24 @@
- char direction;
-
- if (sbw->scrollbar.direction != 0) return; /* if we're already scrolling */
-- if (*num_params > 0)
-+ if (*num_params > 0)
- direction = *params[0];
- else
- direction = 'C';
-
-+ if (sbw->scrollbar.arrows) {
-+ /* The old ARROW_SCROLLBAR binding emulation:
-+ StartScroll(Forward) -> NotifyScroll()
-+ StartScroll(Backward) -> NotifyScroll()
-+ StartScroll(Continuous) -> <nothing> */
-+ switch (direction) {
-+ case 'b': case 'B': case 'f': case 'F':
-+ NotifyScroll(w, event, params, 0);
-+ break;
-+ }
-+ return;
-+ }
-+
- sbw->scrollbar.direction = direction;
-
- switch (direction) {
-@@ -865,20 +877,17 @@
- XtVaSetValues (w, XtNcursor, cursor, NULL);
- XFlush (XtDisplay (w));
- }
--#endif /* XAW_ARROW_SCROLLBARS */
-
- /*
- * Make sure the first number is within the range specified by the other
- * two numbers.
- */
-
--#ifndef XAW_ARROW_SCROLLBARS
- static int InRange(num, small, big)
- int num, small, big;
- {
- return (num < small) ? small : ((num > big) ? big : num);
- }
--#endif
-
- /*
- * Same as above, but for floating numbers.
-@@ -891,7 +900,6 @@
- }
-
-
--#ifdef XAW_ARROW_SCROLLBARS
- static void NotifyScroll (w, event, params, num_params)
- Widget w;
- XEvent *event;
-@@ -902,94 +910,94 @@
- int call_data;
- Position x, y;
-
-- if (sbw->scrollbar.scroll_mode == 2 /* if scroll continuous */
-- || LookAhead (w, event))
-- return;
--
-- ExtractPosition (event, &x, &y);
-+ if (sbw->scrollbar.arrows) {
-+ if (sbw->scrollbar.direction == 'C' /* if scroll continuous */
-+ || LookAhead (w, event))
-+ return;
-+
-+ /* Old ARROW_SCROLLBAR bindings emulation:
-+ NotifyScroll(Proportional) -> <nothing> */
-+ if (num_params > 0 && (*params[0] == 'P' || *params[0] == 'p'))
-+ return;
-
-- if (PICKLENGTH (sbw,x,y) < sbw->scrollbar.thickness) {
-- /* handle first arrow zone */
-- call_data = -MAX (A_FEW_PIXELS, sbw->scrollbar.length / 20);
-- XtCallCallbacks (w, XtNscrollProc, (XtPointer)(call_data));
-- /* establish autoscroll */
-- sbw->scrollbar.timer_id =
-- XtAppAddTimeOut (XtWidgetToApplicationContext (w),
-- (unsigned long) 300, RepeatNotify, (XtPointer)w);
-- sbw->scrollbar.scroll_mode = 1;
-- } else if (PICKLENGTH (sbw,x,y) > sbw->scrollbar.length - sbw->scrollbar.thickness) {
-- /* handle last arrow zone */
-- call_data = MAX (A_FEW_PIXELS, sbw->scrollbar.length / 20);
-- XtCallCallbacks (w, XtNscrollProc, (XtPointer)(call_data));
-- /* establish autoscroll */
-- sbw->scrollbar.timer_id =
-- XtAppAddTimeOut (XtWidgetToApplicationContext (w),
-- (unsigned long) 300, RepeatNotify, (XtPointer)w);
-- sbw->scrollbar.scroll_mode = 3;
-- } else if (PICKLENGTH (sbw, x, y) < sbw->scrollbar.topLoc) {
-- /* handle zone "above" the thumb */
-- call_data = - sbw->scrollbar.length;
-- XtCallCallbacks (w, XtNscrollProc, (XtPointer)(call_data));
-- } else if (PICKLENGTH (sbw, x, y) > sbw->scrollbar.topLoc + sbw->scrollbar.shownLength) {
-- /* handle zone "below" the thumb */
-- call_data = sbw->scrollbar.length;
-- XtCallCallbacks (w, XtNscrollProc, (XtPointer)(call_data));
-- } else
-- {
-- /* handle the thumb in the motion notify action */
-- }
-- return;
--}
--#else /* XAW_ARROW_SCROLLBARS */
--static void NotifyScroll (w, event, params, num_params)
-- Widget w;
-- XEvent *event;
-- String *params; /* style: Proportional|FullLength */
-- Cardinal *num_params; /* we only support 1 */
--{
-- ScrollbarWidget sbw = (ScrollbarWidget) w;
-- int call_data;
-- char style;
-- Position x, y;
--
-- if (sbw->scrollbar.direction == 0) return; /* if no StartScroll */
-- if (LookAhead (w, event)) return;
-- if (*num_params > 0)
-- style = *params[0];
-- else
-- style = 'P';
--
-- switch (style) {
-- case 'P': /* Proportional */
-- case 'p':
- ExtractPosition (event, &x, &y);
-- call_data =
-- InRange (PICKLENGTH (sbw, x, y), 0, (int) sbw->scrollbar.length);
-- break;
-
-- case 'F': /* FullLength */
-- case 'f':
-- call_data = sbw->scrollbar.length;
-- break;
-- }
-- switch (sbw->scrollbar.direction) {
-- case 'B':
-- case 'b':
-- call_data = -call_data;
-- /* fall through */
-+ if (PICKLENGTH (sbw,x,y) < sbw->scrollbar.thickness) {
-+ /* handle first arrow zone */
-+ call_data = -MAX (A_FEW_PIXELS, sbw->scrollbar.length / 20);
-+ XtCallCallbacks (w, XtNscrollProc, (XtPointer)(call_data));
-+ /* establish autoscroll */
-+ sbw->scrollbar.timer_id =
-+ XtAppAddTimeOut (XtWidgetToApplicationContext (w),
-+ (unsigned long) 300, RepeatNotify, (XtPointer)w);
-+ sbw->scrollbar.direction = 'B';
-+ } else if (PICKLENGTH (sbw,x,y) > sbw->scrollbar.length - sbw->scrollbar.thickness) {
-+ /* handle last arrow zone */
-+ call_data = MAX (A_FEW_PIXELS, sbw->scrollbar.length / 20);
-+ XtCallCallbacks (w, XtNscrollProc, (XtPointer)(call_data));
-+ /* establish autoscroll */
-+ sbw->scrollbar.timer_id =
-+ XtAppAddTimeOut (XtWidgetToApplicationContext (w),
-+ (unsigned long) 300, RepeatNotify, (XtPointer)w);
-+ sbw->scrollbar.direction = 'F';
-+ } else if (PICKLENGTH (sbw, x, y) < sbw->scrollbar.topLoc) {
-+ /* handle zone "above" the thumb */
-+ call_data = - sbw->scrollbar.length;
-+ XtCallCallbacks (w, XtNscrollProc, (XtPointer)(call_data));
-+ } else if (PICKLENGTH (sbw, x, y) > sbw->scrollbar.topLoc + sbw->scrollbar.shownLength) {
-+ /* handle zone "below" the thumb */
-+ call_data = sbw->scrollbar.length;
-+ XtCallCallbacks (w, XtNscrollProc, (XtPointer)(call_data));
-+ } else
-+ {
-+ /* handle the thumb in the motion notify action */
-+ }
-+ } else { /* XAW_ARROW_SCROLLBARS */
-+ char style;
-
-- case 'F':
-- case 'f':
-- XtCallCallbacks (w, XtNscrollProc, (XtPointer)call_data);
-- break;
-+ if (sbw->scrollbar.direction == 0)
-+ /* Either we haven't yet done StartScoll, or w've already done
-+ an EndScroll (e.g: Btn1Down, Btn2Down, Btn2up, Btn1up). */
-+ return;
-+ if (LookAhead (w, event)) return;
-+ if (*num_params > 0)
-+ style = *params[0];
-+ else
-+ style = 'P';
-+
-+ switch (style) {
-+ case 'P': /* Proportional */
-+ case 'p':
-+ ExtractPosition (event, &x, &y);
-+ call_data =
-+ InRange (PICKLENGTH (sbw, x, y), 0, (int) sbw->scrollbar.length);
-+ break;
-+
-+ /* case 'F': /\* FullLength *\/
-+ * case 'f': */
-+ default:
-+ call_data = sbw->scrollbar.length;
-+ break;
-+ }
-
-- case 'C':
-- case 'c':
-- /* NotifyThumb has already called the thumbProc(s) */
-- break;
-- }
-+ switch (sbw->scrollbar.direction) {
-+ case 'B':
-+ case 'b':
-+ call_data = -call_data;
-+ /* fall through */
-+
-+ case 'F':
-+ case 'f':
-+ XtCallCallbacks (w, XtNscrollProc, (XtPointer)call_data);
-+ break;
-+
-+ case 'C':
-+ case 'c':
-+ /* NotifyThumb has already called the thumbProc(s) */
-+ break;
-+ }
-+ } /* XAW_ARROW_SCROLLBARS */
- }
--#endif /* XAW_ARROW_SCROLLBARS */
-
- /* ARGSUSED */
- static void EndScroll(w, event, params, num_params )
-@@ -1000,23 +1008,18 @@
- {
- ScrollbarWidget sbw = (ScrollbarWidget) w;
-
--#ifdef XAW_ARROW_SCROLLBARS
-- sbw->scrollbar.scroll_mode = 0;
-- /* no need to remove any autoscroll timeout; it will no-op */
-- /* because the scroll_mode is 0 */
-- /* but be sure to remove timeout in destroy proc */
--#else
- XtVaSetValues (w, XtNcursor, sbw->scrollbar.inactiveCursor, NULL);
- XFlush (XtDisplay (w));
- sbw->scrollbar.direction = 0;
--#endif
-+ /* no need to remove any autoscroll timeout; it will no-op */
-+ /* because the direction is 0 */
-+ /* but be sure to remove timeout in destroy proc */
- }
-
- static float FractionLoc (sbw, x, y)
- ScrollbarWidget sbw;
- int x, y;
- {
-- float result;
- int margin;
- float height, width;
-
-@@ -1025,8 +1028,7 @@
- y -= margin;
- height = sbw->core.height - 2 * margin;
- width = sbw->core.width - 2 * margin;
-- result = PICKLENGTH (sbw, x / width, y / height);
-- return FloatInRange(result, 0.0, 1.0);
-+ return PICKLENGTH (sbw, x / width, y / height);
- }
-
-
-@@ -1038,42 +1040,34 @@
- {
- ScrollbarWidget sbw = (ScrollbarWidget) w;
- Position x, y;
-- float loc, t, s;
-+ float loc;
-
--#ifndef XAW_ARROW_SCROLLBARS
-- if (sbw->scrollbar.direction == 0) return; /* if no StartScroll */
--#endif
-+ if (!sbw->scrollbar.arrows)
-+ if (sbw->scrollbar.direction == 0) return; /* if no StartScroll */
-
- if (LookAhead (w, event)) return;
-
- if (!event->xmotion.same_screen) return;
-
- ExtractPosition (event, &x, &y);
-- loc = FractionLoc (sbw, x, y);
-- t = sbw->scrollbar.top;
-- s = sbw->scrollbar.shown;
--#ifdef XAW_ARROW_SCROLLBARS
-- if (sbw->scrollbar.scroll_mode != 2 )
-- /* initialize picked position */
-- sbw->scrollbar.picked = (FloatInRange( loc, t, t + s ) - t);
--#else
-- sbw->scrollbar.picked = 0.5 * s;
--#endif
-- if (sbw->scrollbar.pick_top)
-- sbw->scrollbar.top = loc;
-- else {
-- sbw->scrollbar.top = loc - sbw->scrollbar.picked;
-- if (sbw->scrollbar.top < 0.0) sbw->scrollbar.top = 0.0;
-+
-+ if (sbw->scrollbar.direction != 'C') {
-+ /* initialize picked position offset */
-+ sbw->scrollbar.picked
-+ = sbw->scrollbar.pick_top ? 0
-+ : FractionLoc (sbw, x, y) - sbw->scrollbar.top;
- }
-
-+ loc = FractionLoc (sbw, x, y) - sbw->scrollbar.picked;
-+
-+ sbw->scrollbar.top = FloatInRange (loc, 0.0, 1.0);
-+
- #if 0
- /* this breaks many text-line scrolls */
- if (sbw->scrollbar.top + sbw->scrollbar.shown > 1.0)
- sbw->scrollbar.top = 1.0 - sbw->scrollbar.shown;
- #endif
--#ifdef XAW_ARROW_SCROLLBARS
-- sbw->scrollbar.scroll_mode = 2; /* indicate continuous scroll */
--#endif
-+ sbw->scrollbar.direction = 'C'; /* indicate continuous scroll */
- PaintThumb (sbw, event);
- XFlush (XtDisplay (w)); /* re-draw it before Notifying */
- }
-@@ -1089,9 +1083,8 @@
- register ScrollbarWidget sbw = (ScrollbarWidget) w;
- float top = sbw->scrollbar.top;
-
--#ifndef XAW_ARROW_SCROLLBARS
-- if (sbw->scrollbar.direction == 0) return; /* if no StartScroll */
--#endif
-+ if (!sbw->scrollbar.arrows)
-+ if (sbw->scrollbar.direction == 0) return; /* if no StartScroll */
-
- if (LookAhead (w, event)) return;
-
-@@ -1152,12 +1145,6 @@
- w,top,shown);
- #endif
-
--#ifdef XAW_ARROW_SCROLLBARS
-- if (sbw->scrollbar.scroll_mode == (char) 2) return; /* if still thumbing */
--#else
-- if (sbw->scrollbar.direction == 'c') return; /* if still thumbing */
--#endif
--
- sbw->scrollbar.top = (top > 1.0) ? 1.0 :
- (top >= 0.0) ? top : sbw->scrollbar.top;
-
-Index: Scrollbar.h
-===================================================================
-RCS file: /u/monnier/cvsroot/Xaw3d/Scrollbar.h,v
-retrieving revision 1.1.1.5
-retrieving revision 1.2
-diff -u -r1.1.1.5 -r1.2
---- Scrollbar.h 25 Mar 2005 18:08:51 -0000 1.1.1.5
-+++ Scrollbar.h 25 Mar 2005 22:41:01 -0000 1.2
-@@ -116,10 +116,12 @@
- #define XtCShown "Shown"
- #define XtCTopOfThumb "TopOfThumb"
- #define XtCPickTop "PickTop"
-+#define XtCArrowScrollbars "ArrowScrollbars"
-
- #define XtNminimumThumb "minimumThumb"
- #define XtNtopOfThumb "topOfThumb"
- #define XtNpickTop "pickTop"
-+#define XtNarrowScrollbars "arrowScrollbars"
-
- typedef struct _ScrollbarRec *ScrollbarWidget;
- typedef struct _ScrollbarClassRec *ScrollbarWidgetClass;
-Index: ScrollbarP.h
-===================================================================
-RCS file: /u/monnier/cvsroot/Xaw3d/ScrollbarP.h,v
-retrieving revision 1.1.1.6
-retrieving revision 1.2
-diff -u -r1.1.1.6 -r1.2
---- ScrollbarP.h 25 Mar 2005 18:12:04 -0000 1.1.1.6
-+++ ScrollbarP.h 25 Mar 2005 22:41:01 -0000 1.2
-@@ -70,14 +70,12 @@
- XtCallbackList thumbProc; /* jump (to position) scroll */
- XtCallbackList jumpProc; /* same as thumbProc but pass data by ref */
- Pixmap thumb; /* thumb color */
--#ifndef XAW_ARROW_SCROLLBARS
- Cursor upCursor; /* scroll up cursor */
- Cursor downCursor; /* scroll down cursor */
- Cursor leftCursor; /* scroll left cursor */
- Cursor rightCursor; /* scroll right cursor */
- Cursor verCursor; /* scroll vertical cursor */
- Cursor horCursor; /* scroll horizontal cursor */
--#endif
- float top; /* What percent is above the win's top */
- float shown; /* What percent is shown in the win */
- Dimension length; /* either height or width */
-@@ -87,18 +85,16 @@
- * when scrolling starts */
-
- /* private */
--#ifdef XAW_ARROW_SCROLLBARS
-- XtIntervalId timer_id; /* autorepeat timer; remove on destruction */
-- char scroll_mode; /* 0:none 1:up/back 2:track 3:down/forward */
--#else
- Cursor inactiveCursor; /* the normal cursor for scrollbar */
-- char direction; /* a scroll has started; which direction */
--#endif
-+ char direction; /* 0:none, C:drag, F:down/forw, B:up/back */
- GC gc; /* a (shared) gc */
- Position topLoc; /* Pixel that corresponds to top */
- Dimension shownLength; /* Num pixels corresponding to shown */
- Boolean pick_top; /* pick thumb at top or anywhere*/
-+ Boolean arrows; /* Whether it has arrows at the end. */
-
-+ /* Only used for arrow-scrollbars. */
-+ XtIntervalId timer_id; /* autorepeat timer; remove on destruction */
- } ScrollbarPart;
-
- typedef struct _ScrollbarRec {
-Index: Text.c
-===================================================================
-RCS file: /u/monnier/cvsroot/Xaw3d/Text.c,v
-retrieving revision 1.1.1.10
-retrieving revision 1.2
-diff -u -r1.1.1.10 -r1.2
---- Text.c 25 Mar 2005 18:12:05 -0000 1.1.1.10
-+++ Text.c 27 Mar 2005 13:53:38 -0000 1.2
-@@ -1462,10 +1462,8 @@
- if (height < 1)
- height = 1;
- nlines = (int) (lines * (int) ctx->text.lt.lines) / height;
--#ifdef XAW_ARROW_SCROLLBARS
- if (nlines == 0 && lines != 0)
- nlines = lines > 0 ? 1 : -1;
--#endif
- _XawTextPrepareToUpdate(ctx);
- _XawTextVScroll(ctx, nlines);
- _XawTextExecuteUpdate(ctx);
-Index: Xaw3dP.h.sed
-===================================================================
-RCS file: /u/monnier/cvsroot/Xaw3d/Xaw3dP.h.sed,v
-retrieving revision 1.1.1.1
-retrieving revision 1.2
-diff -u -r1.1.1.1 -r1.2
---- Xaw3dP.h.sed 25 Mar 2005 18:12:06 -0000 1.1.1.1
-+++ Xaw3dP.h.sed 27 Mar 2005 13:53:38 -0000 1.2
-@@ -36,7 +36,6 @@
- /* I18n support */
- /* XPM support */
- /* gray stipples */
--/* arrow scrollbars */
-
- #ifndef XtX
- #define XtX(w) (((RectObj)w)->rectangle.x)
diff --git a/x11-toolkits/libXaw3d/pkg-descr b/x11-toolkits/libXaw3d/pkg-descr
index 48b65cf5b80e..b31ece9396e1 100644
--- a/x11-toolkits/libXaw3d/pkg-descr
+++ b/x11-toolkits/libXaw3d/pkg-descr
@@ -1,2 +1,17 @@
-Xaw3d is a Xaw (Athena Widget Set) replacement that looks
-three-dimensional. The author is Kalib Keithley (kaleb@x.org).
+Xaw3d is the X 3D Athena Widget Set. Xaw3d is a widget set based on
+the X Toolkit Intrinsics (Xt) Library.
+
+All questions regarding this software should be directed at the Xorg
+mailing list:
+
+https://lists.x.org/mailman/listinfo/xorg
+
+The primary development code repository can be found at:
+
+https://gitlab.freedesktop.org/xorg/lib/libXaw3d
+
+Please submit bug reports and requests to merge patches there.
+
+For patch submission instructions, see:
+
+https://www.x.org/wiki/Development/Documentation/SubmittingPatches
diff --git a/x11-toolkits/libXaw3d/pkg-plist b/x11-toolkits/libXaw3d/pkg-plist
index 0a736a91fb55..d67e56ef029c 100644
--- a/x11-toolkits/libXaw3d/pkg-plist
+++ b/x11-toolkits/libXaw3d/pkg-plist
@@ -1,6 +1,3 @@
-lib/libXaw3d.a
-lib/libXaw3d.so
-lib/libXaw3d.so.8
include/X11/Xaw3d/AllWidgets.h
include/X11/Xaw3d/AsciiSink.h
include/X11/Xaw3d/AsciiSinkP.h
@@ -56,9 +53,6 @@ include/X11/Xaw3d/SmeThreeD.h
include/X11/Xaw3d/SmeThreeDP.h
*** 18 LINES SKIPPED ***