diff --git a/.files b/.files
index 0fea3d6..ecdc04e 100644
Binary files a/.files and b/.files differ
diff --git a/.rev b/.rev
index 7ae32a2..89bd3e8 100644
--- a/.rev
+++ b/.rev
@@ -57,4 +57,12 @@
853512
+
+ fe48eb31ada78788974b1883a4936a35
+ 7.0
+
+ dimstar_suse
+
+ 999181
+
diff --git a/0001-Compilation-fix-for-wxWidgets-3.1.5.patch b/0001-Compilation-fix-for-wxWidgets-3.1.5.patch
new file mode 100644
index 0000000..90dcf4f
--- /dev/null
+++ b/0001-Compilation-fix-for-wxWidgets-3.1.5.patch
@@ -0,0 +1,30 @@
+From 7cff6237dacf97be00204de0455c15733948bba9 Mon Sep 17 00:00:00 2001
+From: dghart
+Date: Tue, 29 Mar 2022 16:56:54 +0100
+Subject: [PATCH] Compilation fix for wxWidgets >3.1.5
+
+---
+ Configure.cpp | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/Configure.cpp b/Configure.cpp
+index b6af5dd..471414f 100644
+--- a/Configure.cpp
++++ b/Configure.cpp
+@@ -141,7 +141,12 @@ Configure::DetectFixedDevices(); // Now there's an ini, add to it any detectabl
+ wxDEFINE_EVENT(WizardCommandEvent, wxCommandEvent);
+ #endif
+
+-NoConfigWizard::NoConfigWizard(wxWindow* parent, int id, const wxString& title, const wxString& configFPath) : wxWizard(parent, id, title, wizardbitmap), m_configFPath(configFPath)
++NoConfigWizard::NoConfigWizard(wxWindow* parent, int id, const wxString& title, const wxString& configFPath)
++#if wxVERSION_NUMBER > 3105
++ : wxWizard(parent, id, title, wxBitmapBundle::FromBitmap(wizardbitmap)), m_configFPath(configFPath)
++#else
++ : wxWizard(parent, id, title, wizardbitmap), m_configFPath(configFPath)
++#endif
+ {
+ m_Next = m_btnNext;
+
+--
+2.37.2
+
diff --git a/0001-Compilation-fixes-for-wxWidgets-3.1.6.patch b/0001-Compilation-fixes-for-wxWidgets-3.1.6.patch
new file mode 100644
index 0000000..f2d2173
--- /dev/null
+++ b/0001-Compilation-fixes-for-wxWidgets-3.1.6.patch
@@ -0,0 +1,140 @@
+From 66ae9a6f2ac526d80559967cda428cd48e5859ee Mon Sep 17 00:00:00 2001
+From: dghart
+Date: Sat, 12 Feb 2022 15:45:54 +0000
+Subject: [PATCH] Compilation fixes for wxWidgets 3.1.6
+
+Workarounds for the addition of wxBitmapBundle.
+---
+ Devices.cpp | 4 ++++
+ MyDirs.cpp | 9 +++++++++
+ MyTreeCtrl.cpp | 49 ++++++++++++++++++++++++++++++++++++++-----------
+ 3 files changed, 51 insertions(+), 11 deletions(-)
+
+diff --git a/Devices.cpp b/Devices.cpp
+index 5b8cfe9..dc77cdc 100644
+--- a/Devices.cpp
++++ b/Devices.cpp
+@@ -210,7 +210,11 @@ wxString bitmap; config->Read(Rootname+subgrp+wxT("/Bitmap"), &bitmap);
+ wxString tooltip; config->Read(Rootname+subgrp+wxT("/Tooltip"), &tooltip);
+
+ bitmap = BITMAPSDIR + bitmap;
++#if wxVERSION_NUMBER > 3105
++Create(MyFrame::mainframe->panelette, -1, wxBitmapBundle::FromBitmap(bitmap), wxDefaultPosition, wxDefaultSize, wxNO_BORDER);
++#else
+ Create(MyFrame::mainframe->panelette, -1, bitmap, wxDefaultPosition, wxDefaultSize, wxNO_BORDER);
++#endif
+ SetToolTip(tooltip);
+ }
+
+diff --git a/MyDirs.cpp b/MyDirs.cpp
+index 68f41a8..f370d5b 100644
+--- a/MyDirs.cpp
++++ b/MyDirs.cpp
+@@ -522,10 +522,19 @@ for (size_t n=0; n < count; ++n)
+ array->Item(n)->tooltip, wxITEM_NORMAL);
+ else
+ { if (array->Item(n)->bitmaplocation.AfterLast(('/')) == wxT("MyDocuments.xpm")) // If Documents and the label is empty, supply a default
++#if wxVERSION_NUMBER > 3105
++ toolBar->AddTool(IDM_TOOLBAR_bmfirst+n, label.empty() ? wxString(_("Documents")) : label,wxBitmapBundle::FromBitmap(array->Item(n)->bitmaplocation),
++ array->Item(n)->tooltip, wxITEM_NORMAL);
++ else
++ toolBar->AddTool(IDM_TOOLBAR_bmfirst + n, label, wxBitmapBundle::FromBitmap(array->Item(n)->bitmaplocation), array->Item(n)->tooltip, wxITEM_NORMAL);
++
++#else
+ toolBar->AddTool(IDM_TOOLBAR_bmfirst+n, label.empty() ? wxString(_("Documents")) : label, array->Item(n)->bitmaplocation,
++
+ array->Item(n)->tooltip, wxITEM_NORMAL);
+ else
+ toolBar->AddTool(IDM_TOOLBAR_bmfirst + n, label, array->Item(n)->bitmaplocation, array->Item(n)->tooltip, wxITEM_NORMAL);
++#endif //wxVERSION_NUMBER > 3105
+ }
+ }
+
+diff --git a/MyTreeCtrl.cpp b/MyTreeCtrl.cpp
+index bc1b607..735b6cf 100644
+--- a/MyTreeCtrl.cpp
++++ b/MyTreeCtrl.cpp
+@@ -1336,7 +1336,27 @@ void MyTreeCtrl::PaintLevel(wxGenericTreeItem *item, wxDC &dc, int level, int &y
+ dc.DrawLine(3, y_mid, x - 5, y_mid);
+ dc.DrawLine(x + 5, y_mid, x + m_spacing, y_mid);
+ }
++#if wxVERSION_NUMBER > 3105
++ if ( m_imagesButtons.HasImages() )
++ {
++ // draw the image button here
++ int image_h = 0, image_w = 0;
++ int image = item->IsExpanded() ? wxTreeItemIcon_Expanded
++ : wxTreeItemIcon_Normal;
++ if ( item->IsSelected() )
++ image += wxTreeItemIcon_Selected - wxTreeItemIcon_Normal;
++
++ wxImageList* const
++ imageListButtons = m_imagesButtons.GetImageList();
++ imageListButtons->GetSize(image, image_w, image_h);
++ int xx = x - image_w/2;
++ int yy = y_mid - image_h/2;
+
++ wxDCClipper clip(dc, xx, yy, image_w, image_h);
++ imageListButtons->Draw(image, dc, xx, yy,
++ wxIMAGELIST_DRAW_TRANSPARENT);
++ }
++#else // !wxVERSION_NUMBER > 3105
+ if (m_imageListButtons != NULL)
+ {
+ // draw the image button here
+@@ -1352,9 +1372,10 @@ void MyTreeCtrl::PaintLevel(wxGenericTreeItem *item, wxDC &dc, int level, int &y
+ wxIMAGELIST_DRAW_TRANSPARENT);
+ dc.DestroyClippingRegion();
+ }
+-
++#endif
+ }
+ }
++
+ else // no custom buttons
+ {
+ static const int wImage = 9;
+@@ -1495,15 +1516,17 @@ if (headerwindow->IsHidden(i)) continue; // //
+ image = NO_IMAGE; // //item->GetImage(i);
+ }
+
+- if(image != NO_IMAGE)
+- {
+- if(m_imageListNormal) {
+- m_imageListNormal->GetSize(image, image_w, image_h);
+- image_w += 4;
+- }
+- else {
+- image = NO_IMAGE;
+- }
++ if (image != NO_IMAGE)
++ {
++#if wxVERSION_NUMBER > 3105
++ if (GetImageList()) {
++ GetImageList()->GetSize(image, image_w, image_h);
++#else
++ if (m_imageListNormal) {
++ m_imageListNormal->GetSize(image, image_w, image_h);
++#endif // wxVERSION_NUMBER > 3105
++ image_w += 4;
++ } else { image = NO_IMAGE; }
+ }
+
+ // honor text alignment
+@@ -1581,8 +1604,12 @@ if (headerwindow->IsHidden(i)) continue; // //
+ item->GetY() + extraH, clip_width,
+ total_h);
+
+- if(image != NO_IMAGE) {
++ if (image != NO_IMAGE) {
++#if wxVERSION_NUMBER > 3105
++ GetImageList()->Draw(image, dc, image_x,
++#else
+ m_imageListNormal->Draw(image, dc, image_x,
++#endif
+ item->GetY() +((total_h > image_h)?
+ ((total_h-image_h)/2):0),
+ wxIMAGELIST_DRAW_TRANSPARENT);
+--
+2.37.2
+
diff --git a/0001-Fix-a-wx-assert-complaining-that-a-panel-was-being-a.patch b/0001-Fix-a-wx-assert-complaining-that-a-panel-was-being-a.patch
new file mode 100644
index 0000000..136f44d
--- /dev/null
+++ b/0001-Fix-a-wx-assert-complaining-that-a-panel-was-being-a.patch
@@ -0,0 +1,41 @@
+From 20eb7c386d41fb2ee9fba4a3782403bcc476e236 Mon Sep 17 00:00:00 2001
+From: dghart
+Date: Sun, 13 Feb 2022 10:58:47 +0000
+Subject: [PATCH] Fix a wx assert complaining that a panel was being added to
+ the wrong sizer
+
+The assert was technically correct, though it made no difference in practice.
+However correcting it resulting in a double-free issue on deletion, fixed by not explicitly deleting the dirctrl's toolbar in the dtor.
+---
+ MyDirs.cpp | 1 -
+ MyFrame.cpp | 2 +-
+ 2 files changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/MyDirs.cpp b/MyDirs.cpp
+index f370d5b..d4b8b81 100644
+--- a/MyDirs.cpp
++++ b/MyDirs.cpp
+@@ -435,7 +435,6 @@ enum
+
+ DirGenericDirCtrl::~DirGenericDirCtrl()
+ {
+-if (toolBar != NULL) toolBar->Destroy();
+ }
+
+ void DirGenericDirCtrl::OnIdle(wxIdleEvent& WXUNUSED(event))
+diff --git a/MyFrame.cpp b/MyFrame.cpp
+index b3d8ebf..e59b003 100644
+--- a/MyFrame.cpp
++++ b/MyFrame.cpp
+@@ -2655,7 +2655,7 @@ DirSizer = new wxBoxSizer(wxVERTICAL);
+ FileSizer= new wxBoxSizer(wxVERTICAL);
+ DirToolbarSizer= new wxBoxSizer(wxVERTICAL);
+
+-m_highlight_panel = new wxPanel(this);
++m_highlight_panel = new wxPanel(DirPanel);
+ m_highlight_panel->SetBackgroundColour(*wxGetApp().GetBackgroundColourUnSelected());
+ wxBoxSizer* highlight_panelSizer= new wxBoxSizer(wxVERTICAL);
+ m_highlight_panel->SetSizer(highlight_panelSizer);
+--
+2.37.2
+
diff --git a/0001-Fix-a-wxAssert-when-showing-the-Command-line-termina.patch b/0001-Fix-a-wxAssert-when-showing-the-Command-line-termina.patch
new file mode 100644
index 0000000..d5b4791
--- /dev/null
+++ b/0001-Fix-a-wxAssert-when-showing-the-Command-line-termina.patch
@@ -0,0 +1,26 @@
+From ad558ca953b635f4491973cfe63b6d78cb696f1c Mon Sep 17 00:00:00 2001
+From: dghart
+Date: Sun, 13 Feb 2022 14:12:51 +0000
+Subject: [PATCH] Fix a wxAssert when showing the Command-line terminal
+
+"Must have wxTE_PROCESS_ENTER for wxEVT_TEXT_ENTER to work", though it seemed fine without it :/
+---
+ Tools.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Tools.h b/Tools.h
+index e01a97f..e1beb36 100644
+--- a/Tools.h
++++ b/Tools.h
+@@ -378,7 +378,7 @@ class TerminalEm : public TextCtrlBase // Derive from this so that (in gtk2)
+ public:
+ TerminalEm(){};
+ TerminalEm(wxWindow* parent, wxWindowID id, const wxString& value = wxT(""), bool multline = true, const wxPoint& pos = wxDefaultPosition,
+- const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxT("TerminalEm"))
++ const wxSize& size = wxDefaultSize, long style = wxTE_PROCESS_ENTER, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxT("TerminalEm"))
+ : TextCtrlBase(parent, id, value, multline, pos, size, style, validator, name), multiline(multline) { Init(); }
+ ~TerminalEm();
+ void Init(); // Do the ctor work here, as otherwise wouldn't be done under xrc
+--
+2.37.2
+
diff --git a/0001-Prevent-a-wx-build-warning-about-wxPATH_NORM_ALL-bei.patch b/0001-Prevent-a-wx-build-warning-about-wxPATH_NORM_ALL-bei.patch
new file mode 100644
index 0000000..23c1336
--- /dev/null
+++ b/0001-Prevent-a-wx-build-warning-about-wxPATH_NORM_ALL-bei.patch
@@ -0,0 +1,26 @@
+From edb36ef77acf3c64b5bc1acfe106a2455c4589ee Mon Sep 17 00:00:00 2001
+From: dghart
+Date: Sun, 13 Feb 2022 14:41:32 +0000
+Subject: [PATCH] Prevent a wx build warning about wxPATH_NORM_ALL being
+ deprecated
+
+---
+ Filetypes.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Filetypes.cpp b/Filetypes.cpp
+index defb120..26c36a9 100644
+--- a/Filetypes.cpp
++++ b/Filetypes.cpp
+@@ -437,7 +437,7 @@ if (fpath.IsEmpty()) // If fpath is emp
+ }
+
+ wxFileName fn(fpath); // Now use wxFileName's Normalize method to do the hard bit
+-fn.Normalize(wxPATH_NORM_ALL, cwd);
++fn.Normalize(wxPATH_NORM_ENV_VARS | wxPATH_NORM_DOTS | wxPATH_NORM_TILDE | wxPATH_NORM_ABSOLUTE, cwd);
+ return fn.GetFullPath();
+ }
+
+--
+2.37.2
+
diff --git a/4pane.changes b/4pane.changes
index b257932..658a7e3 100644
--- a/4pane.changes
+++ b/4pane.changes
@@ -1,4 +1,15 @@
-------------------------------------------------------------------
+Thu Aug 25 06:50:19 UTC 2022 - Luigi Baldoni
+
+- Added 0001-Compilation-fixes-for-wxWidgets-3.1.6.patch,
+ 0001-Compilation-fix-for-wxWidgets-3.1.5.patch,
+ 0001-Fix-a-wx-assert-complaining-that-a-panel-was-being-a.patch,
+ 0001-Fix-a-wxAssert-when-showing-the-Command-line-termina.patch,
+ and
+ 0001-Prevent-a-wx-build-warning-about-wxPATH_NORM_ALL-bei.patch
+ to fix build with wxWidgets 3.2
+
+-------------------------------------------------------------------
Mon Dec 7 07:17:47 UTC 2020 - Luigi Baldoni
- Update to version 7.0
diff --git a/4pane.spec b/4pane.spec
index 14e27a0..7efee15 100644
--- a/4pane.spec
+++ b/4pane.spec
@@ -1,7 +1,7 @@
#
# spec file for package 4pane
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2016 Packman Team
#
# All modifications and additions to the file contributed by third parties
@@ -24,6 +24,16 @@ Summary: A multi-pane detailed-list file manager
License: GPL-3.0-only
URL: http://www.4pane.co.uk/
Source0: https://sourceforge.net/projects/fourpane/files/%{version}/%{name}-%{version}.tar.gz
+# PATCH-FIX-UPSTREAM 0001-Compilation-fixes-for-wxWidgets-3.1.6.patch
+Patch0: 0001-Compilation-fixes-for-wxWidgets-3.1.6.patch
+# PATCH-FIX-UPSTREAM 0001-Compilation-fix-for-wxWidgets-3.1.5.patch
+Patch1: 0001-Compilation-fix-for-wxWidgets-3.1.5.patch
+# PATCH-FIX-UPSTREAM 0001-Fix-a-wx-assert-complaining-that-a-panel-was-being-a.patch
+Patch2: 0001-Fix-a-wx-assert-complaining-that-a-panel-was-being-a.patch
+# PATCH-FIX-UPSTREAM 0001-Fix-a-wxAssert-when-showing-the-Command-line-termina.patch
+Patch3: 0001-Fix-a-wxAssert-when-showing-the-Command-line-termina.patch
+# PATCH-FIX-UPSTREAM 0001-Prevent-a-wx-build-warning-about-wxPATH_NORM_ALL-bei.patch
+Patch4: 0001-Prevent-a-wx-build-warning-about-wxPATH_NORM_ALL-bei.patch
BuildRequires: ImageMagick
BuildRequires: fdupes
BuildRequires: gcc-c++
@@ -41,7 +51,7 @@ emulator and user-defined tools.
%lang_package
%prep
-%autosetup
+%autosetup -p1
sed -i -e "s|\$(datadir)/doc|%{_docdir}|g" Makefile.in
sed -i -e "s|/usr/doc/4Pane/|%{_docdir}/4Pane/|g" Configure.cpp