Import from CS git
This commit is contained in:
parent
8ab057a2ab
commit
c87381757d
28
SOURCES/0001-Xm-String-Fix-memory-leak.patch
Normal file
28
SOURCES/0001-Xm-String-Fix-memory-leak.patch
Normal file
@ -0,0 +1,28 @@
|
||||
From 30ff6e00e9a5edc15ff438b6cfd8a5a4169630a1 Mon Sep 17 00:00:00 2001
|
||||
From: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Date: Mon, 16 Jun 2025 14:49:55 +0200
|
||||
Subject: [PATCH] Xm/String: Fix memory leak
|
||||
|
||||
ComputeMetrics() would leak the string created by _XmUtf8ToUcs2(), make
|
||||
sure to free the string once done with it.
|
||||
|
||||
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
|
||||
---
|
||||
lib/Xm/XmString.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/lib/Xm/XmString.c b/lib/Xm/XmString.c
|
||||
index 2c54ef57..6ee1c40e 100644
|
||||
--- a/lib/Xm/XmString.c
|
||||
+++ b/lib/Xm/XmString.c
|
||||
@@ -6272,6 +6272,7 @@ ComputeMetrics(XmRendition rend,
|
||||
|
||||
XTextExtents16(font_struct, str, str_len,
|
||||
&dir, &asc, &desc, &char_ret);
|
||||
+ XFree(str);
|
||||
} else
|
||||
XTextExtents16(font_struct,
|
||||
(XChar2b *)text, Half(byte_count),
|
||||
--
|
||||
2.50.0
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 49791ea9aa84c64af114f564d4c46228263d1439 Mon Sep 17 00:00:00 2001
|
||||
From 3a164564cf8241ee4544ff012659e8eb510b195b Mon Sep 17 00:00:00 2001
|
||||
From: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Date: Tue, 19 Nov 2024 18:40:33 +0100
|
||||
Subject: [PATCH 1/7] build: Check for Xinerama availability
|
||||
@ -57,5 +57,5 @@ index a95fa2db..07b733f5 100644
|
||||
noinst_HEADERS = BaseClassI.h \
|
||||
BitmapsI.h \
|
||||
--
|
||||
2.47.1
|
||||
2.49.0
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 011e62e69fb87e78a128487a043cc13b042bb8b5 Mon Sep 17 00:00:00 2001
|
||||
From f8aa9901f3cfa5fb49b809fdb223798623bede63 Mon Sep 17 00:00:00 2001
|
||||
From: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Date: Wed, 20 Nov 2024 10:26:28 +0100
|
||||
Subject: [PATCH 2/7] Xm/Display: Add optional Xinerama support
|
||||
@ -415,5 +415,5 @@ index 8c0c4f9a..5887e7ad 100644
|
||||
#file XmStrDefsI.h
|
||||
#table _XmStringsI
|
||||
--
|
||||
2.47.1
|
||||
2.49.0
|
||||
|
||||
|
@ -1,15 +1,19 @@
|
||||
From 10168aa7f16afb32e71d9e0a22fa8f90fb301bf4 Mon Sep 17 00:00:00 2001
|
||||
From 5fbc1dff0e2e248d61e43c362606c3f5e5255f7d Mon Sep 17 00:00:00 2001
|
||||
From: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Date: Thu, 21 Nov 2024 11:52:22 +0100
|
||||
Subject: [PATCH 3/7] Xm/MenuShell: Use Xinerama to place menus
|
||||
|
||||
v2: If we have a pulldown button, use the location of that button to
|
||||
keep the menu on the same monitor as that button so that the menu
|
||||
doesn't eventually end up on another monitor entirely.
|
||||
|
||||
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
|
||||
---
|
||||
lib/Xm/MenuShell.c | 34 +++++++++++++++++-----------------
|
||||
1 file changed, 17 insertions(+), 17 deletions(-)
|
||||
lib/Xm/MenuShell.c | 47 +++++++++++++++++++++++++++++-----------------
|
||||
1 file changed, 30 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/lib/Xm/MenuShell.c b/lib/Xm/MenuShell.c
|
||||
index 483cc95a..1dea4a54 100644
|
||||
index 483cc95a..c78bfb08 100644
|
||||
--- a/lib/Xm/MenuShell.c
|
||||
+++ b/lib/Xm/MenuShell.c
|
||||
@@ -41,6 +41,7 @@ static char rcsid[] = "$TOG: MenuShell.c /main/24 1999/07/08 16:49:59 vipin $"
|
||||
@ -20,26 +24,39 @@ index 483cc95a..1dea4a54 100644
|
||||
#include <Xm/SpecRenderT.h>
|
||||
#include <Xm/TraitP.h>
|
||||
#include <Xm/TransltnsP.h>
|
||||
@@ -913,7 +914,7 @@ ForceMenuPaneOnScreen(
|
||||
@@ -913,7 +914,9 @@ ForceMenuPaneOnScreen(
|
||||
register Position *y )
|
||||
{
|
||||
Position rightEdgeOfMenu, bottomEdgeOfMenu;
|
||||
- Dimension dispWidth, dispHeight;
|
||||
+ Position dispX, dispY, dispMaxX, dispMaxY;
|
||||
+ Position x1 = *x;
|
||||
+ Position y1 = *y;
|
||||
Widget pulldown_button = RC_CascadeBtn(rowcol);
|
||||
Dimension RowColBorderWidth = rowcol->core.border_width << 1;
|
||||
Dimension CascadeBorderWidth = 0;
|
||||
@@ -925,8 +926,7 @@ ForceMenuPaneOnScreen(
|
||||
@@ -925,8 +928,18 @@ ForceMenuPaneOnScreen(
|
||||
|
||||
rightEdgeOfMenu = *x + RowColBorderWidth + rowcol->core.width;
|
||||
bottomEdgeOfMenu = *y + RowColBorderWidth + rowcol->core.height;
|
||||
- dispWidth = WidthOfScreen (XtScreen(rowcol));
|
||||
- dispHeight = HeightOfScreen (XtScreen(rowcol));
|
||||
+ _XmScreenGetBoundariesAtpoint(XtScreen(rowcol), *x, *y, &dispX, &dispY, &dispMaxX, &dispMaxY);
|
||||
+#ifdef HAVE_LIBXINERAMA
|
||||
+ if (pulldown_button)
|
||||
+ {
|
||||
+ /* If we have a pulldown button, use the location of that button to
|
||||
+ * keep the menu on the same monitor as that button so that the menu
|
||||
+ * doesn't eventually end up on another monitor entirely.
|
||||
+ */
|
||||
+ XtTranslateCoords((Widget) pulldown_button,
|
||||
+ XtX(pulldown_button), XtY(pulldown_button), &x1, &y1);
|
||||
+ }
|
||||
+#endif
|
||||
+ _XmScreenGetBoundariesAtpoint(XtScreen(rowcol), x1, y1, &dispX, &dispY, &dispMaxX, &dispMaxY);
|
||||
|
||||
/*
|
||||
* For OPTION menus, if the submenu is [partially] offscreen, offset it
|
||||
@@ -937,9 +937,9 @@ ForceMenuPaneOnScreen(
|
||||
@@ -937,9 +950,9 @@ ForceMenuPaneOnScreen(
|
||||
(RC_Type(XtParent(pulldown_button)) == XmMENU_OPTION))
|
||||
{
|
||||
Position old_x = *x;
|
||||
@ -51,7 +68,7 @@ index 483cc95a..1dea4a54 100644
|
||||
if (LayoutIsRtoLM(rowcol))
|
||||
*x = old_x - rowcol->core.width - (rowcol->core.border_width <<1);
|
||||
else
|
||||
@@ -948,9 +948,9 @@ ForceMenuPaneOnScreen(
|
||||
@@ -948,9 +961,9 @@ ForceMenuPaneOnScreen(
|
||||
bottomEdgeOfMenu = *y + RowColBorderWidth + rowcol->core.height;
|
||||
}
|
||||
|
||||
@ -63,7 +80,7 @@ index 483cc95a..1dea4a54 100644
|
||||
|
||||
/* Consider CascadeBtn as well as RowCol width to allow multi
|
||||
* column RowColumn
|
||||
@@ -963,13 +963,13 @@ ForceMenuPaneOnScreen(
|
||||
@@ -963,13 +976,13 @@ ForceMenuPaneOnScreen(
|
||||
bottomEdgeOfMenu = *y + RowColBorderWidth + rowcol->core.height;
|
||||
}
|
||||
|
||||
@ -79,7 +96,7 @@ index 483cc95a..1dea4a54 100644
|
||||
{
|
||||
if (LayoutIsRtoLM(rowcol))
|
||||
*x = old_x + pulldown_button->core.width + CascadeBorderWidth;
|
||||
@@ -982,10 +982,10 @@ ForceMenuPaneOnScreen(
|
||||
@@ -982,10 +995,10 @@ ForceMenuPaneOnScreen(
|
||||
/*
|
||||
* If the submenu is offscreen force it completely on.
|
||||
*/
|
||||
@ -93,7 +110,7 @@ index 483cc95a..1dea4a54 100644
|
||||
{
|
||||
if (pulldown_button && XtParent(pulldown_button) &&
|
||||
(RC_Type(XtParent(pulldown_button)) == XmMENU_BAR))
|
||||
@@ -1005,15 +1005,15 @@ ForceMenuPaneOnScreen(
|
||||
@@ -1005,15 +1018,15 @@ ForceMenuPaneOnScreen(
|
||||
*y = y_temp;
|
||||
}
|
||||
else
|
||||
@ -115,5 +132,5 @@ index 483cc95a..1dea4a54 100644
|
||||
|
||||
/*
|
||||
--
|
||||
2.47.1
|
||||
2.49.0
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From e21e7ffaa62df64be305326d24eca09c80129403 Mon Sep 17 00:00:00 2001
|
||||
From 0e834a8d37dfabd8fa4463f83c132478e50f8337 Mon Sep 17 00:00:00 2001
|
||||
From: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Date: Thu, 21 Nov 2024 14:11:11 +0100
|
||||
Subject: [PATCH 4/7] Xm/DropDown: Use Xinerama for placement
|
||||
@ -61,5 +61,5 @@ index a25d1092..665e0e26 100644
|
||||
XtSetArg(args[num_args], XmNx, x); num_args++;
|
||||
XtSetArg(args[num_args], XmNy, y); num_args++;
|
||||
--
|
||||
2.47.1
|
||||
2.49.0
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From d97abbe6cf64a8bb0e331725c36caf5e0ac37b0f Mon Sep 17 00:00:00 2001
|
||||
From 3ef8c038b06f136a6abe7cfa23afec4d514af4f0 Mon Sep 17 00:00:00 2001
|
||||
From: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Date: Thu, 21 Nov 2024 14:17:21 +0100
|
||||
Subject: [PATCH 5/7] Xm/RCMenu: Use Xinerama for placement
|
||||
@ -66,5 +66,5 @@ index 2c698d4f..abd7a70e 100644
|
||||
}
|
||||
|
||||
--
|
||||
2.47.1
|
||||
2.49.0
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From af453aebd8e53a32369c792cf8d0e641b2b3a834 Mon Sep 17 00:00:00 2001
|
||||
From f2bc91c789ed33fc1e0a31d167a6a7bc0383429e Mon Sep 17 00:00:00 2001
|
||||
From: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Date: Thu, 21 Nov 2024 14:24:30 +0100
|
||||
Subject: [PATCH 6/7] Xm/Tooltip: Use Xinerama for placement
|
||||
@ -49,5 +49,5 @@ index dc65071d..fdd32221 100644
|
||||
destY = ry + (XmIsGadget (w) ? XtY (w) : 0) - y - geo.height;
|
||||
}
|
||||
--
|
||||
2.47.1
|
||||
2.49.0
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 8a026c2d1e94ab2a33a1bec55d703b229ce9daf7 Mon Sep 17 00:00:00 2001
|
||||
From eb193dce2b7f8ce80004d14ccf64c53552ae103c Mon Sep 17 00:00:00 2001
|
||||
From: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Date: Thu, 21 Nov 2024 14:30:23 +0100
|
||||
Subject: [PATCH 7/7] Xm/ComboBox: Use Xinerama for placement
|
||||
@ -47,5 +47,5 @@ index 1472e458..0f49de50 100644
|
||||
/* CR 8446: The shell width may have changed unexpectedly. */
|
||||
shell_width = XtWidth(cb) - 2 * CB_HighlightThickness(cb);
|
||||
--
|
||||
2.47.1
|
||||
2.49.0
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
Summary: Run-time libraries and programs
|
||||
Name: motif
|
||||
Version: 2.3.4
|
||||
Release: 21%{?dist}
|
||||
Release: 23%{?dist}
|
||||
License: LGPLv2+
|
||||
Group: System Environment/Libraries
|
||||
Source: http://downloads.sf.net/motif/motif-%{version}-src.tgz
|
||||
@ -55,6 +55,8 @@ Patch62: 0005-Xm-RCMenu-Use-Xinerama-for-placement.patch
|
||||
Patch63: 0006-Xm-Tooltip-Use-Xinerama-for-placement.patch
|
||||
Patch64: 0007-Xm-ComboBox-Use-Xinerama-for-placement.patch
|
||||
|
||||
# https://issues.redhat.com/browse/RHEL-96948
|
||||
Patch65: 0001-Xm-String-Fix-memory-leak.patch
|
||||
|
||||
Conflicts: lesstif <= 0.92.32-6
|
||||
|
||||
@ -113,6 +115,7 @@ This package contains the static Motif libraries.
|
||||
%patch62 -p1 -b .xinerama
|
||||
%patch63 -p1 -b .xinerama
|
||||
%patch64 -p1 -b .xinerama
|
||||
%patch65 -p1 -b .memleak
|
||||
|
||||
%build
|
||||
CFLAGS="$RPM_OPT_FLAGS -D_FILE_OFFSET_BITS=64" \
|
||||
@ -170,6 +173,15 @@ rm -rf %{buildroot}
|
||||
%{_libdir}/lib*.a
|
||||
|
||||
%changelog
|
||||
* Fri Jun 27 2025 Olivier Fourdan <ofourdan@redhat.com> - 2.3.4-23
|
||||
- Fix a memory leak with UTF-8 strings
|
||||
Resolves: RHEL-96948
|
||||
|
||||
* Mon Jun 2 2025 Olivier Fourdan <ofourdan@redhat.com> - 2.3.4-22
|
||||
- Keep drop-down menus on the same monitor as the pull-down button with
|
||||
Xinerama
|
||||
Resolves: RHEL-91951
|
||||
|
||||
* Mon Nov 25 2024 Olivier Fourdan <ofourdan@redhat.com> - 2.3.4-21
|
||||
- Add Xinerama support (RHEL-67987)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user