From b33bacdb10038aca57a004fd254990a3fba00f5e Mon Sep 17 00:00:00 2001 From: "B. Stack" Date: Mon, 27 Nov 2023 11:15:43 -0500 Subject: ffs 13.2 dpkg rc1 --- freefilesync/debian/_service | 2 +- freefilesync/debian/changelog | 14 +++ freefilesync/debian/freefilesync+stackrpms.dsc | 2 +- freefilesync/debian/patches/ffs_devuan.patch | 11 +- .../debian/patches/ffs_no_check_updates.patch | 70 ++++++------- .../debian/patches/ffs_traditional_view.patch | 113 +++++++-------------- .../patches/revert_buggy_gtk3_change_in_12.1.patch | 42 ++++---- 7 files changed, 115 insertions(+), 139 deletions(-) diff --git a/freefilesync/debian/_service b/freefilesync/debian/_service index 37855e1..27f1ca4 100644 --- a/freefilesync/debian/_service +++ b/freefilesync/debian/_service @@ -14,7 +14,7 @@ git https://gitlab.com/opensource-tracking/FreeFileSync.git - 13.1 + 13.2 _none_ diff --git a/freefilesync/debian/changelog b/freefilesync/debian/changelog index 2f06c37..8493967 100644 --- a/freefilesync/debian/changelog +++ b/freefilesync/debian/changelog @@ -1,3 +1,17 @@ +freefilesync (13.2-100+stackrpms) obs; urgency=low + + * Upstream updates + * Complete high-DPI/Retina display support (macOS) + * Prevent files from being moved to versioning recursively + * Fixed tooltip line wrap bug for moved files (Windows) + * Return first FTP parsing error when trying multiple variants + * Allow file times from the future for Linux-style FTP listing + * Fixed setting modification times on certain storage devices (Windows) + * Fixed bogus "Sound playback failed" error message (macOS) + * Fixed rename dialog text selection wobble (macOS) + + -- B. Stack Mon, 27 Nov 2023 11:14:47 -0500 + freefilesync (13.1-100+stackrpms) obs; urgency=low * Keep comparison results when only changing cloud connection settings diff --git a/freefilesync/debian/freefilesync+stackrpms.dsc b/freefilesync/debian/freefilesync+stackrpms.dsc index 6762b34..2407c5f 100644 --- a/freefilesync/debian/freefilesync+stackrpms.dsc +++ b/freefilesync/debian/freefilesync+stackrpms.dsc @@ -2,7 +2,7 @@ Format: 3.0 (quilt) Source: freefilesync Binary: freefilesync Architecture: any -Version: 13.1-100+stackrpms +Version: 13.2-100+stackrpms Maintainer: B. Stack Homepage: https://freefilesync.org/ Standards-Version: 4.1.4 diff --git a/freefilesync/debian/patches/ffs_devuan.patch b/freefilesync/debian/patches/ffs_devuan.patch index 1973b60..a835ccb 100644 --- a/freefilesync/debian/patches/ffs_devuan.patch +++ b/freefilesync/debian/patches/ffs_devuan.patch @@ -5,7 +5,7 @@ Last-Version: 12.5 Message: Main patch to compile on Devuan. --- a/FreeFileSync/Source/ffs_paths.cpp +++ b/FreeFileSync/Source/ffs_paths.cpp -@@ -55,7 +55,7 @@ Zstring fff::getInstallDirPath() +@@ -54,7 +54,7 @@ Zstring fff::getInstallDirPath() Zstring fff::getResourceDirPath() { @@ -32,7 +32,7 @@ Message: Main patch to compile on Devuan. CXXFLAGS += `pkg-config --cflags openssl` --- a/FreeFileSync/Source/ui/small_dlgs.cpp +++ b/FreeFileSync/Source/ui/small_dlgs.cpp -@@ -87,6 +87,8 @@ AboutDlg::AboutDlg(wxWindow* parent) : A +@@ -90,6 +90,8 @@ AboutDlg::AboutDlg(wxWindow* parent) : A build += LTR_MARK; //fix Arabic build += utfTo(cpuArchName); @@ -41,7 +41,7 @@ Message: Main patch to compile on Devuan. build += SPACED_BULLET; build += utfTo(formatTime(formatDateTag, getCompileTime())); -@@ -137,9 +139,9 @@ AboutDlg::AboutDlg(wxWindow* parent) : A +@@ -140,9 +142,9 @@ AboutDlg::AboutDlg(wxWindow* parent) : A wxImage::AddHandler(new wxJPEGHandler /*ownership passed*/); //activate support for .jpg files @@ -54,12 +54,11 @@ Message: Main patch to compile on Devuan. //-------------------------------------------------------------------------- //have animal + text match *final* dialog width -@@ -153,7 +155,7 @@ AboutDlg::AboutDlg(wxWindow* parent) : A +@@ -156,7 +158,6 @@ AboutDlg::AboutDlg(wxWindow* parent) : A const int imageWidth = (m_panelDonate->GetSize().GetWidth() - 5 - 5 - 5 /* grey border*/) / 2; const int textWidth = m_panelDonate->GetSize().GetWidth() - 5 - 5 - 5 - imageWidth; -- setImage(*m_bitmapAnimalSmall, shrinkImage(animalImg, imageWidth, -1 /*maxHeight*/)); -+ //setImage(*m_bitmapAnimalSmall, shrinkImage(animalImg, imageWidth, -1 /*maxHeight*/)); +- setImage(*m_bitmapAnimalSmall, shrinkImage(animalImg, wxsizeToScreen(imageWidth), -1 /*maxHeight*/)); m_staticTextDonate->Show(); m_staticTextDonate->Wrap(textWidth - 10 /*left gap*/); //wrap *after* changing font size diff --git a/freefilesync/debian/patches/ffs_no_check_updates.patch b/freefilesync/debian/patches/ffs_no_check_updates.patch index 0a3558f..26180ff 100644 --- a/freefilesync/debian/patches/ffs_no_check_updates.patch +++ b/freefilesync/debian/patches/ffs_no_check_updates.patch @@ -16,42 +16,42 @@ Message: This is a major rewrite of the ffs_no_check_updates patch from before 1 +++ b/FreeFileSync/Source/ui/gui_generated.cpp @@ -110,11 +110,6 @@ MainDialogGenerated::MainDialogGenerated - m_menuHelp->AppendSeparator(); + m_menuHelp->AppendSeparator(); -- m_menuItemCheckVersionNow = new wxMenuItem( m_menuHelp, wxID_ANY, wxString( _("&Check for updates now") ), wxEmptyString, wxITEM_NORMAL ); -- m_menuHelp->Append( m_menuItemCheckVersionNow ); +- m_menuItemCheckVersionNow = new wxMenuItem( m_menuHelp, wxID_ANY, wxString( _("&Check for updates now") ) , wxEmptyString, wxITEM_NORMAL ); +- m_menuHelp->Append( m_menuItemCheckVersionNow ); - -- m_menuHelp->AppendSeparator(); +- m_menuHelp->AppendSeparator(); - - m_menuItemAbout = new wxMenuItem( m_menuHelp, wxID_ABOUT, wxString( _("&About") ) + wxT('\t') + wxT("Shift+F1"), wxEmptyString, wxITEM_NORMAL ); - m_menuHelp->Append( m_menuItemAbout ); + m_menuItemAbout = new wxMenuItem( m_menuHelp, wxID_ABOUT, wxString( _("&About") ) + wxT('\t') + wxT("Shift+F1"), wxEmptyString, wxITEM_NORMAL ); + m_menuHelp->Append( m_menuItemAbout ); -@@ -1125,7 +1120,6 @@ MainDialogGenerated::MainDialogGenerated - m_menuTools->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuExportFileList ), this, m_menuItemExportList->GetId()); - m_menuTools->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuResetLayout ), this, m_menuItemResetLayout->GetId()); - m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onShowHelp ), this, m_menuItemHelp->GetId()); -- m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuCheckVersion ), this, m_menuItemCheckVersionNow->GetId()); - m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuAbout ), this, m_menuItemAbout->GetId()); - m_buttonCompare->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onCompare ), NULL, this ); - m_bpButtonCmpConfig->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onCmpSettings ), NULL, this ); +@@ -1119,7 +1114,6 @@ MainDialogGenerated::MainDialogGenerated + m_menuTools->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuExportFileList ), this, m_menuItemExportList->GetId()); + m_menuTools->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuResetLayout ), this, m_menuItemResetLayout->GetId()); + m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onShowHelp ), this, m_menuItemHelp->GetId()); +- m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuCheckVersion ), this, m_menuItemCheckVersionNow->GetId()); + m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuAbout ), this, m_menuItemAbout->GetId()); + m_buttonCompare->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onCompare ), NULL, this ); + m_bpButtonCmpConfig->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onCmpSettings ), NULL, this ); --- a/FreeFileSync/Source/ui/gui_generated.h +++ b/FreeFileSync/Source/ui/gui_generated.h -@@ -96,7 +96,6 @@ protected: - wxMenuItem* m_menuItemShowOverview; - wxMenu* m_menuHelp; - wxMenuItem* m_menuItemHelp; -- wxMenuItem* m_menuItemCheckVersionNow; - wxMenuItem* m_menuItemAbout; - wxBoxSizer* bSizerPanelHolder; - wxPanel* m_panelTopButtons; -@@ -233,7 +232,6 @@ protected: - virtual void onMenuExportFileList( wxCommandEvent& event ) { event.Skip(); } - virtual void onMenuResetLayout( wxCommandEvent& event ) { event.Skip(); } - virtual void onShowHelp( wxCommandEvent& event ) { event.Skip(); } -- virtual void onMenuCheckVersion( wxCommandEvent& event ) { event.Skip(); } - virtual void onMenuAbout( wxCommandEvent& event ) { event.Skip(); } - virtual void onCompSettingsContextMouse( wxMouseEvent& event ) { event.Skip(); } - virtual void onCompSettingsContext( wxCommandEvent& event ) { event.Skip(); } +@@ -96,7 +96,6 @@ class MainDialogGenerated : public wxFra + wxMenuItem* m_menuItemShowOverview; + wxMenu* m_menuHelp; + wxMenuItem* m_menuItemHelp; +- wxMenuItem* m_menuItemCheckVersionNow; + wxMenuItem* m_menuItemAbout; + wxBoxSizer* bSizerPanelHolder; + wxPanel* m_panelTopButtons; +@@ -233,7 +232,6 @@ class MainDialogGenerated : public wxFra + virtual void onMenuExportFileList( wxCommandEvent& event ) { event.Skip(); } + virtual void onMenuResetLayout( wxCommandEvent& event ) { event.Skip(); } + virtual void onShowHelp( wxCommandEvent& event ) { event.Skip(); } +- virtual void onMenuCheckVersion( wxCommandEvent& event ) { event.Skip(); } + virtual void onMenuAbout( wxCommandEvent& event ) { event.Skip(); } + virtual void onCompSettingsContextMouse( wxMouseEvent& event ) { event.Skip(); } + virtual void onCompSettingsContext( wxCommandEvent& event ) { event.Skip(); } --- a/FreeFileSync/Source/ui/main_dlg.cpp +++ b/FreeFileSync/Source/ui/main_dlg.cpp @@ -32,7 +32,6 @@ @@ -73,9 +73,9 @@ Message: This is a major rewrite of the ffs_no_check_updates patch from before 1 @@ -871,7 +870,6 @@ imgFileManagerSmall_([] - setImage(*m_menuItemHelp, loadImage("help", getDefaultMenuIconSize())); - setImage(*m_menuItemAbout, loadImage("about", getDefaultMenuIconSize())); -- setImage(*m_menuItemCheckVersionNow, loadImage("update_check", getDefaultMenuIconSize())); + setImage(*m_menuItemHelp, loadImage("help", dipToScreen(getMenuIconDipSize()))); + setImage(*m_menuItemAbout, loadImage("about", dipToScreen(getMenuIconDipSize()))); +- setImage(*m_menuItemCheckVersionNow, loadImage("update_check", dipToScreen(getMenuIconDipSize()))); fixMenuIcons(*m_menuFile); fixMenuIcons(*m_menuActions); @@ -89,7 +89,7 @@ Message: This is a major rewrite of the ffs_no_check_updates patch from before 1 //asynchronous call to wxWindow::Dimensions(): fix superfluous frame on right and bottom when FFS is started in fullscreen mode Bind(wxEVT_IDLE, &MainDialog::onLayoutWindowAsync, this); wxCommandEvent evtDummy; //call once before onLayoutWindowAsync() -@@ -6259,56 +6254,6 @@ void MainDialog::onMenuExportFileList(wx +@@ -6271,56 +6266,6 @@ void MainDialog::onMenuExportFileList(wx } @@ -211,7 +211,7 @@ Message: This is a major rewrite of the ffs_no_check_updates patch from before 1 -{ - try - { -- const std::string onlineVersion = getOnlineVersion(geHttpPostParameters(parent)); //throw SysError +- const std::string onlineVersion = getOnlineVersion(geHttpPostParameters()); //throw SysError - lastOnlineVersion = onlineVersion; - - if (haveNewerVersionOnline(onlineVersion)) diff --git a/freefilesync/debian/patches/ffs_traditional_view.patch b/freefilesync/debian/patches/ffs_traditional_view.patch index 1790069..5e6e7ff 100644 --- a/freefilesync/debian/patches/ffs_traditional_view.patch +++ b/freefilesync/debian/patches/ffs_traditional_view.patch @@ -4,7 +4,7 @@ Author: bgstack15 Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVersion" About dialog --- a/FreeFileSync/Source/ui/file_grid.cpp +++ b/FreeFileSync/Source/ui/file_grid.cpp -@@ -465,8 +465,10 @@ +@@ -487,8 +487,10 @@ private: case ItemPathFormat::name: return utfTo(fsObj->getItemName()); case ItemPathFormat::relative: @@ -15,22 +15,19 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe return AFS::getDisplayPath(fsObj->getAbstractPath()); } -@@ -526,8 +528,13 @@ +@@ -548,6 +550,11 @@ private: else GridData::renderRowBackgound(dc, rect, row, true /*enabled*/, true /*selected*/, rowHover); + // trad patch section for removing lines around items in grid -+ int lineWidth { fastFromDIP(1) } ; ++ int lineWidth { dipToWxsize(1) } ; + if (itemPathFormat_ == ItemPathFormat::traditional || itemPathFormat_ == ItemPathFormat::tradrel) + lineWidth = 0; + //---------------------------------------------------------------------------------- -- const wxRect rectLine(rect.x, rect.y + rect.height - fastFromDIP(1), rect.width, fastFromDIP(1)); -+ const wxRect rectLine(rect.x, rect.y + rect.height - lineWidth, rect.width, lineWidth); + const wxRect rectLine(rect.x, rect.y + rect.height - dipToWxsize(1), rect.width, dipToWxsize(1)); clearArea(dc, rectLine, row == pdi.groupLastRow - 1 /*last group item*/ ? - getColorGridLine() : getDefaultBackgroundColorAlternating(pdi.groupIdx % 2 != 0)); - } -@@ -636,6 +643,26 @@ +@@ -658,6 +665,26 @@ private: else //=> BaseFolderPair groupParentFolder = AFS::getDisplayPath(pdi.fsObj->base().getAbstractPath()); break; @@ -57,14 +54,14 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe } //path components should follow the app layout direction and are NOT a single piece of text! -@@ -661,11 +688,38 @@ +@@ -683,11 +710,38 @@ private: int groupNameWidth = groupName.empty() ? 0 : (gapSize_ + iconSize + gapSize_ + getTextExtentBuffered(dc, groupName).x); const int groupNameMinWidth = groupName.empty() ? 0 : (gapSize_ + iconSize + gapSize_ + ellipsisWidth); -- const int groupSepWidth = (groupParentFolder.empty() && groupName.empty()) ? 0 : (2 * gapSize_ + fastFromDIP(1)); +- const int groupSepWidth = (groupParentFolder.empty() && groupName.empty()) ? 0 : (2 * gapSize_ + dipToWxsize(1)); + // trad patch section for removing lines around items in grid + // code duplication because this is a different scope! -+ int lineWidth { fastFromDIP(1) } ; ++ int lineWidth { dipToWxsize(1) } ; + if (itemPathFormat_ == ItemPathFormat::traditional || itemPathFormat_ == ItemPathFormat::tradrel) + lineWidth = 0; + @@ -97,7 +94,7 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe //not enough space? => collapse if (int excessWidth = groupParentWidth + groupNameWidth + groupItemsWidth - maxWidth; excessWidth > 0) -@@ -732,6 +786,11 @@ +@@ -754,6 +808,11 @@ private: } } @@ -109,7 +106,7 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe return { itemName, -@@ -872,6 +931,9 @@ +@@ -894,6 +953,9 @@ private: rectGroup = rectGroupParent = rectGroupName = rectTmp; rectGroupParent.width = groupParentWidth; @@ -119,31 +116,29 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe rectGroupName .width = groupNameWidth; if (stackedGroupRender) -@@ -895,6 +957,11 @@ +@@ -917,6 +979,11 @@ private: rectGroupItems.width = 0; } + // trad patch section for removing lines around items in grid -+ int lineWidth { fastFromDIP(1) } ; ++ int lineWidth { dipToWxsize(1) } ; + if (itemPathFormat_ == ItemPathFormat::traditional || itemPathFormat_ == ItemPathFormat::tradrel) + lineWidth = 0; + //------------------------------------------------------------------------- { //clear background below parent path => harmonize with renderRowBackgound() -@@ -905,8 +972,9 @@ - wxRect rectGroupBack = rectGroup; +@@ -928,7 +995,8 @@ private: rectGroupBack.width += 2 * gapSize_; //include gap before vline -- if (row == pdi.groupLastRow - 1 /*last group item*/) //preserve the group separation line! -- rectGroupBack.height -= fastFromDIP(1); -+ if (row == pdi.groupLastRow - 1 /*last group item*/) //preserve the group separation line! -+ if (itemPathFormat_ != ItemPathFormat::traditional && itemPathFormat_ != ItemPathFormat::tradrel) -+ rectGroupBack.height -= lineWidth; + if (row == pdi.groupLastRow - 1 /*last group item*/) //preserve the group separation line! +- rectGroupBack.height -= dipToWxsize(1); ++ if (itemPathFormat_ != ItemPathFormat::traditional && itemPathFormat_ != ItemPathFormat::tradrel) ++ rectGroupBack.height -= dipToWxsize(1); clearArea(dc, rectGroupBack, getDefaultBackgroundColorAlternating(pdi.groupIdx % 2 == 0)); //clearArea() is surprisingly expensive => call just once! -@@ -914,9 +982,9 @@ +@@ -936,9 +1004,9 @@ private: //accessibility: always set *both* foreground AND background colors! } @@ -155,7 +150,7 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe (groupName.empty() || !pdi.folderGroupObj->isEmpty())) //don't show for missing folders { tryDrawNavMarker(rectGroupParent); -@@ -928,14 +996,14 @@ +@@ -950,7 +1018,7 @@ private: drawCellText(dc, rectGroupParentText, groupParentFolder, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL, &getTextExtentBuffered(dc, groupParentFolder)); } @@ -164,50 +159,22 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe row == groupFirstRow) { wxRect rectGroupNameBack = rectGroupName; - - if (!itemName.empty()) - rectGroupNameBack.width += 2 * gapSize_; //include gap left of item vline -- rectGroupNameBack.height -= fastFromDIP(1); //harmonize with item separation lines -+ rectGroupNameBack.height -= lineWidth; //harmonize with item separation lines - - wxDCTextColourChanger textColorGroupName(dc); - //folder background: coordinate with renderRowBackgound() -@@ -979,16 +1047,16 @@ - rectGroupItems.x += 2 * gapSize_; - rectGroupItems.width -= 2 * gapSize_; - -- wxDCPenChanger dummy(dc, wxPen(getColorGridLine(), fastFromDIP(1))); -+ wxDCPenChanger dummy(dc, wxPen(getColorGridLine(), lineWidth)); - dc.DrawLine(rectGroupItems.GetTopLeft(), rectGroupItems.GetBottomLeft() + wxPoint(0, 1)); //DrawLine() doesn't draw last pixel! - -- rectGroupItems.x += fastFromDIP(1); -- rectGroupItems.width -= fastFromDIP(1); -+ rectGroupItems.x += lineWidth; -+ rectGroupItems.width -= lineWidth; - } - //------------------------------------------------------------------------- - - wxRect rectItemsBack = rectGroupItems; -- rectItemsBack.height -= fastFromDIP(1); //preserve item separation lines! -+ rectItemsBack.height -= lineWidth; //preserve item separation lines! - - drawCudHighlight(rectItemsBack, pdi.fsObj->getSyncOperation()); - tryDrawNavMarker(rectGroupItems); -@@ -1119,7 +1187,12 @@ +@@ -1142,7 +1210,13 @@ private: groupNameWidth] = getGroupRenderLayout(dc, row, pdi, insanelyHugeWidth); assert(!stackedGroupRender); -- const int groupSepWidth = (groupParentFolder.empty() && groupName.empty()) ? 0 : (2 * gapSize_ + fastFromDIP(1)); +- const int groupSepWidth = (groupParentFolder.empty() && groupName.empty()) ? 0 : (2 * gapSize_ + dipToWxsize(1)); + // trad patch section for removing lines around items in grid -+ int lineWidth { fastFromDIP(1) } ; ++ int lineWidth { dipToWxsize(1) } ; + if (itemPathFormat_ == ItemPathFormat::traditional || itemPathFormat_ == ItemPathFormat::tradrel) + lineWidth = 0; + -+ const int groupSepWidth = (groupParentFolder.empty() && groupName.empty()) ? 0 : (2 * gapSize_ + lineWidth); - const int fileIconWidth = getIconManager().getIconBuffer() ? gapSize_ + getIconManager().getIconSize() : 0; ++ const int groupSepWidth = (groupParentFolder.empty() && groupName.empty()) ? 0 : (2 * gapSize_ + lineWidth); ++ + const int fileIconWidth = getIconManager().getIconBuffer() ? gapSize_ + getIconManager().getIconWxsize() : 0; const int ellipsisWidth = getTextExtentBuffered(dc, ELLIPSIS).x; const int itemWidth = itemName.empty() ? 0 : -@@ -1151,6 +1224,10 @@ +@@ -1174,6 +1248,10 @@ private: return _("Relative path"); case ItemPathFormat::full: return _("Full path"); @@ -218,29 +185,25 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe } assert(false); break; -@@ -1408,7 +1485,8 @@ +@@ -1431,6 +1509,7 @@ private: GridData::renderRowBackgound(dc, rect, row, true /*enabled*/, true /*selected*/, rowHover); //---------------------------------------------------------------------------------- -- const wxRect rectLine(rect.x, rect.y + rect.height - fastFromDIP(1), rect.width, fastFromDIP(1)); -+ // just hardcoding this in this trad patch, because itempathFormat_ is not available in this scope. -+ const wxRect rectLine(rect.x, rect.y + rect.height - 0, rect.width, 0); ++ // trad patch: we might need to convert these dipToWxsize to lineWidth calculated based on if-traditional logic. + const wxRect rectLine(rect.x, rect.y + rect.height - dipToWxsize(1), rect.width, dipToWxsize(1)); clearArea(dc, rectLine, row == pdi.groupLastRow - 1 /*last group item*/ ? getColorGridLine() : getDefaultBackgroundColorAlternating(pdi.groupIdx % 2 != 0)); - } -@@ -1432,7 +1510,8 @@ +@@ -1455,6 +1534,7 @@ private: { wxRect rectBack = rect; if (row == pdi.groupLastRow - 1 /*last group item*/) //preserve the group separation line! -- rectBack.height -= fastFromDIP(1); -+ // just hardcoding this in this trad patch, because itempathFormat_ is not available in this scope. -+ rectBack.height -= 0; ++ // trad patch: we might need to convert these dipToWxsize to lineWidth calculated based on if-traditional logic. + rectBack.height -= dipToWxsize(1); clearArea(dc, rectBack, col); - } --- a/FreeFileSync/Source/ui/file_grid_attr.h +++ b/FreeFileSync/Source/ui/file_grid_attr.h -@@ -79,6 +79,8 @@ +@@ -79,6 +79,8 @@ enum class ItemPathFormat name, relative, full, @@ -251,7 +214,7 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe const ItemPathFormat defaultItemPathFormatLeftGrid = ItemPathFormat::relative; --- a/FreeFileSync/Source/ui/main_dlg.cpp +++ b/FreeFileSync/Source/ui/main_dlg.cpp -@@ -3002,6 +3002,8 @@ +@@ -3016,6 +3016,8 @@ void MainDialog::onGridLabelContextRim(G addFormatEntry(_("Item name" ), ItemPathFormat::name); addFormatEntry(_("Relative path"), ItemPathFormat::relative); addFormatEntry(_("Full path" ), ItemPathFormat::full); @@ -262,7 +225,7 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe auto setIconSize = [&](GridIconSize sz, bool showIcons) --- a/FreeFileSync/Source/config.cpp +++ b/FreeFileSync/Source/config.cpp -@@ -477,6 +477,12 @@ +@@ -476,6 +476,12 @@ void writeText(const ItemPathFormat& val case ItemPathFormat::full: output = "Full"; break; @@ -275,7 +238,7 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe } } -@@ -490,6 +496,10 @@ +@@ -489,6 +495,10 @@ bool readText(const std::string& input, value = ItemPathFormat::relative; else if (tmp == "Full") value = ItemPathFormat::full; @@ -288,7 +251,7 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe return true; --- a/FreeFileSync/Source/ui/file_view.cpp +++ b/FreeFileSync/Source/ui/file_view.cpp -@@ -798,6 +798,7 @@ +@@ -798,6 +798,7 @@ void FileView::sortView(ColumnTypeRim ty break; case ItemPathFormat::relative: @@ -296,7 +259,7 @@ Message: restore a traditional view to FreeFileSync, and disable "welcomeShownVe if ( ascending && onLeft) std::sort(sortedRef_.begin(), sortedRef_.end(), LessRelativeFolder(folderPairs_)); else if ( ascending && !onLeft) std::sort(sortedRef_.begin(), sortedRef_.end(), LessRelativeFolder(folderPairs_)); else if (!ascending && onLeft) std::sort(sortedRef_.begin(), sortedRef_.end(), LessRelativeFolder(folderPairs_)); -@@ -805,6 +806,7 @@ +@@ -805,6 +806,7 @@ void FileView::sortView(ColumnTypeRim ty break; case ItemPathFormat::full: diff --git a/freefilesync/debian/patches/revert_buggy_gtk3_change_in_12.1.patch b/freefilesync/debian/patches/revert_buggy_gtk3_change_in_12.1.patch index 78fed20..360f804 100644 --- a/freefilesync/debian/patches/revert_buggy_gtk3_change_in_12.1.patch +++ b/freefilesync/debian/patches/revert_buggy_gtk3_change_in_12.1.patch @@ -13,7 +13,7 @@ Version: 13.0 --- a/FreeFileSync/Source/ui/abstract_folder_picker.cpp +++ b/FreeFileSync/Source/ui/abstract_folder_picker.cpp -@@ -127,10 +127,7 @@ +@@ -127,10 +127,7 @@ AbstractFolderPickerDlg::AbstractFolderP //---------------------------------------------------------------------- GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -27,7 +27,7 @@ Version: 13.0 Bind(wxEVT_CHAR_HOOK, [this](wxKeyEvent& event) { onLocalKeyEvent(event); }); //dialog-specific local key events --- a/FreeFileSync/Source/ui/batch_config.cpp +++ b/FreeFileSync/Source/ui/batch_config.cpp -@@ -82,10 +82,7 @@ +@@ -81,10 +81,7 @@ BatchDialog::BatchDialog(wxWindow* paren Bind(wxEVT_CHAR_HOOK, [this](wxKeyEvent& event) { onLocalKeyEvent(event); }); //enable dialog-specific key events GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -41,7 +41,7 @@ Version: 13.0 m_buttonSaveAs->SetFocus(); --- a/FreeFileSync/Source/ui/progress_indicator.cpp +++ b/FreeFileSync/Source/ui/progress_indicator.cpp -@@ -221,10 +221,7 @@ +@@ -221,10 +221,7 @@ CompareProgressPanel::Impl::Impl(wxFrame m_panelErrorStats->Layout(); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -53,7 +53,7 @@ Version: 13.0 } -@@ -924,10 +921,6 @@ +@@ -925,10 +922,6 @@ syncStat_(&syncStat) //make sure that standard height matches ProcessPhase::binaryCompare statistics layout (== largest) this->GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -66,7 +66,7 @@ Version: 13.0 --- a/FreeFileSync/Source/ui/small_dlgs.cpp +++ b/FreeFileSync/Source/ui/small_dlgs.cpp -@@ -144,10 +144,6 @@ +@@ -148,10 +148,6 @@ AboutDlg::AboutDlg(wxWindow* parent) : A //-------------------------------------------------------------------------- //have animal + text match *final* dialog width GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -77,7 +77,7 @@ Version: 13.0 { const int imageWidth = (m_panelDonate->GetSize().GetWidth() - 5 - 5 - 5 /* grey border*/) / 2; -@@ -163,10 +159,7 @@ +@@ -166,10 +162,7 @@ AboutDlg::AboutDlg(wxWindow* parent) : A Bind(wxEVT_CHAR_HOOK, [this](wxKeyEvent& event) { onLocalKeyEvent(event); }); //enable dialog-specific key events GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -89,7 +89,7 @@ Version: 13.0 Center(); //needs to be re-applied after a dialog size change! m_buttonClose->SetFocus(); //on GTK ESC is only associated with wxID_OK correctly if we set at least *any* focus at all!!! -@@ -400,11 +393,7 @@ +@@ -406,11 +399,7 @@ CloudSetupDlg::CloudSetupDlg(wxWindow* p m_checkBoxPasswordPrompt->Hide(); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -102,7 +102,7 @@ Version: 13.0 Center(); //needs to be re-applied after a dialog size change! updateGui(); //*after* SetSizeHints when standard dialog height has been calculated -@@ -968,10 +957,7 @@ +@@ -974,10 +963,7 @@ CopyToDialog::CopyToDialog(wxWindow* par Bind(wxEVT_CHAR_HOOK, [this](wxKeyEvent& event) { onLocalKeyEvent(event); }); //enable dialog-specific key events GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -114,7 +114,7 @@ Version: 13.0 Center(); //needs to be re-applied after a dialog size change! m_buttonOK->SetFocus(); -@@ -1085,10 +1071,7 @@ +@@ -1091,10 +1077,7 @@ DeleteDialog::DeleteDialog(wxWindow* par Bind(wxEVT_CHAR_HOOK, [this](wxKeyEvent& event) { onLocalKeyEvent(event); }); //enable dialog-specific key events GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -126,7 +126,7 @@ Version: 13.0 Center(); //needs to be re-applied after a dialog size change! m_buttonOK->SetFocus(); -@@ -1228,10 +1211,7 @@ +@@ -1234,10 +1217,7 @@ SyncConfirmationDlg::SyncConfirmationDlg setIntValue(*m_staticTextDeleteRight, st.deleteCount(), *m_bitmapDeleteRight, "so_delete_right_sicon"); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -138,7 +138,7 @@ Version: 13.0 Center(); //needs to be re-applied after a dialog size change! m_buttonStartSync->SetFocus(); -@@ -1495,10 +1475,7 @@ +@@ -1501,10 +1481,7 @@ OptionsDlg::OptionsDlg(wxWindow* parent, updateGui(); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -150,7 +150,7 @@ Version: 13.0 Center(); //needs to be re-applied after a dialog size change! //restore actual value: -@@ -1818,10 +1795,7 @@ +@@ -1824,10 +1801,7 @@ SelectTimespanDlg::SelectTimespanDlg(wxW Bind(wxEVT_CHAR_HOOK, [this](wxKeyEvent& event) { onLocalKeyEvent(event); }); //enable dialog-specific key events GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -162,7 +162,7 @@ Version: 13.0 Center(); //needs to be re-applied after a dialog size change! m_buttonOkay->SetFocus(); -@@ -1917,10 +1891,7 @@ +@@ -1923,10 +1897,7 @@ PasswordPromptDlg::PasswordPromptDlg(wxW m_textCtrlPasswordVisible->Hide(); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -174,7 +174,7 @@ Version: 13.0 Center(); //needs to be re-applied after a dialog size change! updateGui(); //*after* SetSizeHints when standard dialog height has been calculated -@@ -2003,10 +1974,7 @@ +@@ -2009,10 +1980,7 @@ CfgHighlightDlg::CfgHighlightDlg(wxWindo m_spinCtrlOverdueDays->SetValue(cfgHistSyncOverdueDays); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -186,7 +186,7 @@ Version: 13.0 Center(); //needs to be re-applied after a dialog size change! m_spinCtrlOverdueDays->SetFocus(); -@@ -2074,10 +2042,7 @@ +@@ -2080,10 +2048,7 @@ ActivationDlg::ActivationDlg(wxWindow* p m_textCtrlOfflineActivationKey->ChangeValue(manualActivationKey); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -198,7 +198,7 @@ Version: 13.0 Center(); //needs to be re-applied after a dialog size change! m_buttonActivateOnline->SetFocus(); -@@ -2182,12 +2147,8 @@ +@@ -2188,12 +2153,8 @@ DownloadProgressWindow::Impl::Impl(wxWin updateGui(); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -214,7 +214,7 @@ Version: 13.0 //clear gui flicker: window must be visible to make this work! --- a/FreeFileSync/Source/ui/sync_cfg.cpp +++ b/FreeFileSync/Source/ui/sync_cfg.cpp -@@ -706,10 +706,7 @@ +@@ -707,10 +707,7 @@ globalLogFolderPhrase_(globalLogFolderPh selectFolderPairConfig(-1); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -228,7 +228,7 @@ Version: 13.0 //keep stable sizer height: change-based directions are taller than difference-based ones => init with SyncVariant::twoWay --- a/wx+/popup_dlg.cpp +++ b/wx+/popup_dlg.cpp -@@ -283,17 +283,12 @@ +@@ -283,17 +283,12 @@ public: //set std order after button visibility was set setStandardButtonLayout(*bSizerStdButtons, stdBtns); @@ -249,7 +249,7 @@ Version: 13.0 if (m_buttonAccept->IsEnabled()) --- a/wx+/tooltip.cpp +++ b/wx+/tooltip.cpp -@@ -80,12 +80,11 @@ +@@ -83,12 +83,11 @@ void Tooltip::show(const wxString& text, } if (imgChanged || txtChanged) @@ -264,10 +264,10 @@ Version: 13.0 + } const wxPoint newPos = wxTheApp->GetLayoutDirection() == wxLayout_RightToLeft ? - mousePos - wxPoint(fastFromDIP(TIP_WINDOW_OFFSET_DIP) + tipWindow_->GetSize().GetWidth(), 0) : + mousePos - wxPoint(dipToWxsize(TIP_WINDOW_OFFSET_DIP) + tipWindow_->GetSize().GetWidth(), 0) : --- a/FreeFileSync/Source/ui/rename_dlg.cpp +++ b/FreeFileSync/Source/ui/rename_dlg.cpp -@@ -354,10 +354,7 @@ +@@ -363,10 +363,7 @@ RenameDialog::RenameDialog(wxWindow* par //----------------------------------------------------------- GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() -- cgit