From e0b8e941f36fd7e48ef13413f9e970ea2ee3272d Mon Sep 17 00:00:00 2001 From: "B. Stack" Date: Mon, 15 May 2023 18:13:29 -0400 Subject: add fab-stz gtk3 dialog patch --- .../patches/revert_buggy_gtk3_change_in_12.1.patch | 280 +++++++++++++++++++++ 1 file changed, 280 insertions(+) create mode 100644 freefilesync/debian/patches/revert_buggy_gtk3_change_in_12.1.patch (limited to 'freefilesync/debian/patches/revert_buggy_gtk3_change_in_12.1.patch') 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 new file mode 100644 index 0000000..630f250 --- /dev/null +++ b/freefilesync/debian/patches/revert_buggy_gtk3_change_in_12.1.patch @@ -0,0 +1,280 @@ +Description: Revert change that provokes freeze when opening dialogs + With upstream's 12.1 version, there started to be a freeze when opening + some dialogs. Upstream author identified this might come from a given change + detailed in https://freefilesync.org/forum/viewtopic.php?t=10103 + . + Until the problem is fixed upstream, this patch reverts that change. +Author: Fab Stz +Origin: self +Bug: https://freefilesync.org/forum/viewtopic.php?t=10103 +Forwarded: https://freefilesync.org/forum/viewtopic.php?t=10103 +Last-Update: 2023-03-07 + +Index: freefilesync/FreeFileSync/Source/ui/abstract_folder_picker.cpp +=================================================================== +--- freefilesync.orig/FreeFileSync/Source/ui/abstract_folder_picker.cpp 2023-04-04 22:33:59.278761616 +0200 ++++ freefilesync/FreeFileSync/Source/ui/abstract_folder_picker.cpp 2023-04-04 22:33:59.274761559 +0200 +@@ -127,10 +127,7 @@ + + //---------------------------------------------------------------------- + GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() +-#ifdef __WXGTK3__ +- Show(); //GTK3 size calculation requires visible window: https://github.com/wxWidgets/wxWidgets/issues/16088 +- Hide(); //avoid old position flash when Center() moves window (asynchronously?) +-#endif ++ //=> works like a charm for GTK2 with window resizing problems and title bar corruption; e.g. Debian!!! + Center(); //needs to be re-applied after a dialog size change! + + Bind(wxEVT_CHAR_HOOK, [this](wxKeyEvent& event) { onLocalKeyEvent(event); }); //dialog-specific local key events +Index: freefilesync/FreeFileSync/Source/ui/batch_config.cpp +=================================================================== +--- freefilesync.orig/FreeFileSync/Source/ui/batch_config.cpp 2023-04-04 22:33:59.278761616 +0200 ++++ freefilesync/FreeFileSync/Source/ui/batch_config.cpp 2023-04-04 22:33:59.274761559 +0200 +@@ -82,10 +82,7 @@ + Bind(wxEVT_CHAR_HOOK, [this](wxKeyEvent& event) { onLocalKeyEvent(event); }); //enable dialog-specific key events + + GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() +-#ifdef __WXGTK3__ +- Show(); //GTK3 size calculation requires visible window: https://github.com/wxWidgets/wxWidgets/issues/16088 +- Hide(); //avoid old position flash when Center() moves window (asynchronously?) +-#endif ++ //=> works like a charm for GTK2 with window resizing problems and title bar corruption; e.g. Debian!!! + Center(); //needs to be re-applied after a dialog size change! + + m_buttonSaveAs->SetFocus(); +Index: freefilesync/FreeFileSync/Source/ui/progress_indicator.cpp +=================================================================== +--- freefilesync.orig/FreeFileSync/Source/ui/progress_indicator.cpp 2023-04-04 22:33:59.278761616 +0200 ++++ freefilesync/FreeFileSync/Source/ui/progress_indicator.cpp 2023-04-04 22:33:59.274761559 +0200 +@@ -221,10 +221,7 @@ + m_panelTimeStats->Layout(); + + GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() +-#ifdef __WXGTK3__ +- Show(); //GTK3 size calculation requires visible window: https://github.com/wxWidgets/wxWidgets/issues/16088 +- Hide(); //avoid old position flash when Center() moves window (asynchronously?) +-#endif ++ //=> works like a charm for GTK2 with window resizing problems and title bar corruption; e.g. Debian!!! + } + + +@@ -902,10 +899,6 @@ + //make sure that standard height matches ProcessPhase::comparingContent statistics layout (== largest) + + this->GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() +-#ifdef __WXGTK3__ +- this->Show(); //GTK3 size calculation requires visible window: https://github.com/wxWidgets/wxWidgets/issues/16088 +- this->Hide(); //avoid old position flash when Center() moves window (asynchronously?) +-#endif + pnl_.Layout(); + this->Center(); //call *after* dialog layout update and *before* wxWindow::Show()! + +Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp +=================================================================== +--- freefilesync.orig/FreeFileSync/Source/ui/small_dlgs.cpp 2023-04-04 22:33:59.278761616 +0200 ++++ freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp 2023-04-04 22:33:59.274761559 +0200 +@@ -145,10 +145,6 @@ + //-------------------------------------------------------------------------- + //have animal + text match *final* dialog width + GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() +-#ifdef __WXGTK3__ +- Show(); //GTK3 size calculation requires visible window: https://github.com/wxWidgets/wxWidgets/issues/16088 +- Hide(); //avoid old position flash when Center() moves window (asynchronously?) +-#endif + + { + const int imageWidth = (m_panelDonate->GetSize().GetWidth() - 5 - 5 - 5 /* grey border*/) / 2; +@@ -164,10 +160,7 @@ + Bind(wxEVT_CHAR_HOOK, [this](wxKeyEvent& event) { onLocalKeyEvent(event); }); //enable dialog-specific key events + + GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() +-#ifdef __WXGTK3__ +- Show(); //GTK3 size calculation requires visible window: https://github.com/wxWidgets/wxWidgets/issues/16088 +- Hide(); //avoid old position flash when Center() moves window (asynchronously?) +-#endif ++ //=> works like a charm for GTK2 with window resizing problems and title bar corruption; e.g. Debian!!! + 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!!! +@@ -401,11 +394,7 @@ + m_checkBoxPasswordPrompt->Hide(); + + GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() +- //=> works like a charm for GTK with window resizing problems and title bar corruption; e.g. Debian!!! +-#ifdef __WXGTK3__ +- Show(); //GTK3 size calculation requires visible window: https://github.com/wxWidgets/wxWidgets/issues/16088 +- Hide(); //avoid old position flash when Center() moves window (asynchronously?) +-#endif ++ //=> works like a charm for GTK2 with window resizing problems and title bar corruption; e.g. Debian!!! + Center(); //needs to be re-applied after a dialog size change! + + updateGui(); //*after* SetSizeHints when standard dialog height has been calculated +@@ -973,10 +962,7 @@ + Bind(wxEVT_CHAR_HOOK, [this](wxKeyEvent& event) { onLocalKeyEvent(event); }); //enable dialog-specific key events + + GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() +-#ifdef __WXGTK3__ +- Show(); //GTK3 size calculation requires visible window: https://github.com/wxWidgets/wxWidgets/issues/16088 +- Hide(); //avoid old position flash when Center() moves window (asynchronously?) +-#endif ++ //=> works like a charm for GTK2 with window resizing problems and title bar corruption; e.g. Debian!!! + Center(); //needs to be re-applied after a dialog size change! + + m_buttonOK->SetFocus(); +@@ -1091,10 +1077,7 @@ + Bind(wxEVT_CHAR_HOOK, [this](wxKeyEvent& event) { onLocalKeyEvent(event); }); //enable dialog-specific key events + + GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() +-#ifdef __WXGTK3__ +- Show(); //GTK3 size calculation requires visible window: https://github.com/wxWidgets/wxWidgets/issues/16088 +- Hide(); //avoid old position flash when Center() moves window (asynchronously?) +-#endif ++ //=> works like a charm for GTK2 with window resizing problems and title bar corruption; e.g. Debian!!! + Center(); //needs to be re-applied after a dialog size change! + + m_buttonOK->SetFocus(); +@@ -1234,10 +1217,7 @@ + setIntValue(*m_staticTextDeleteRight, st.deleteCount(), *m_bitmapDeleteRight, "so_delete_right_sicon"); + + GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() +-#ifdef __WXGTK3__ +- Show(); //GTK3 size calculation requires visible window: https://github.com/wxWidgets/wxWidgets/issues/16088 +- Hide(); //avoid old position flash when Center() moves window (asynchronously?) +-#endif ++ //=> works like a charm for GTK2 with window resizing problems and title bar corruption; e.g. Debian!!! + Center(); //needs to be re-applied after a dialog size change! + + m_buttonStartSync->SetFocus(); +@@ -1501,10 +1481,7 @@ + updateGui(); + + GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() +-#ifdef __WXGTK3__ +- Show(); //GTK3 size calculation requires visible window: https://github.com/wxWidgets/wxWidgets/issues/16088 +- Hide(); //avoid old position flash when Center() moves window (asynchronously?) +-#endif ++ //=> works like a charm for GTK2 with window resizing problems and title bar corruption; e.g. Debian!!! + Center(); //needs to be re-applied after a dialog size change! + + //restore actual value: +@@ -1824,10 +1801,7 @@ + Bind(wxEVT_CHAR_HOOK, [this](wxKeyEvent& event) { onLocalKeyEvent(event); }); //enable dialog-specific key events + + GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() +-#ifdef __WXGTK3__ +- Show(); //GTK3 size calculation requires visible window: https://github.com/wxWidgets/wxWidgets/issues/16088 +- Hide(); //avoid old position flash when Center() moves window (asynchronously?) +-#endif ++ //=> works like a charm for GTK2 with window resizing problems and title bar corruption; e.g. Debian!!! + Center(); //needs to be re-applied after a dialog size change! + + m_buttonOkay->SetFocus(); +@@ -1923,10 +1897,7 @@ + m_textCtrlPasswordVisible->Hide(); + + GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() +-#ifdef __WXGTK3__ +- Show(); //GTK3 size calculation requires visible window: https://github.com/wxWidgets/wxWidgets/issues/16088 +- Hide(); //avoid old position flash when Center() moves window (asynchronously?) +-#endif ++ //=> works like a charm for GTK2 with window resizing problems and title bar corruption; e.g. Debian!!! + Center(); //needs to be re-applied after a dialog size change! + + updateGui(); //*after* SetSizeHints when standard dialog height has been calculated +@@ -2009,10 +1980,7 @@ + m_spinCtrlOverdueDays->SetValue(cfgHistSyncOverdueDays); + + GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() +-#ifdef __WXGTK3__ +- Show(); //GTK3 size calculation requires visible window: https://github.com/wxWidgets/wxWidgets/issues/16088 +- Hide(); //avoid old position flash when Center() moves window (asynchronously?) +-#endif ++ //=> works like a charm for GTK2 with window resizing problems and title bar corruption; e.g. Debian!!! + Center(); //needs to be re-applied after a dialog size change! + + m_spinCtrlOverdueDays->SetFocus(); +@@ -2078,10 +2046,7 @@ + m_textCtrlOfflineActivationKey->ChangeValue(manualActivationKey); + + GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() +-#ifdef __WXGTK3__ +- Show(); //GTK3 size calculation requires visible window: https://github.com/wxWidgets/wxWidgets/issues/16088 +- Hide(); //avoid old position flash when Center() moves window (asynchronously?) +-#endif ++ //=> works like a charm for GTK2 with window resizing problems and title bar corruption; e.g. Debian!!! + Center(); //needs to be re-applied after a dialog size change! + + m_buttonActivateOnline->SetFocus(); +@@ -2186,12 +2151,8 @@ + updateGui(); + + GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() +-#ifdef __WXGTK3__ +- Show(); //GTK3 size calculation requires visible window: https://github.com/wxWidgets/wxWidgets/issues/16088 +- Hide(); //avoid old position flash when Center() moves window (asynchronously?) +-#endif ++ //=> works like a charm for GTK2 with window resizing problems and title bar corruption; e.g. Debian!!! + Center(); //needs to be re-applied after a dialog size change! +- + Show(); + + //clear gui flicker: window must be visible to make this work! +Index: freefilesync/FreeFileSync/Source/ui/sync_cfg.cpp +=================================================================== +--- freefilesync.orig/FreeFileSync/Source/ui/sync_cfg.cpp 2023-04-04 22:33:59.278761616 +0200 ++++ freefilesync/FreeFileSync/Source/ui/sync_cfg.cpp 2023-04-04 22:33:59.274761559 +0200 +@@ -681,10 +681,7 @@ + selectFolderPairConfig(-1); + + GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() +-#ifdef __WXGTK3__ +- Show(); //GTK3 size calculation requires visible window: https://github.com/wxWidgets/wxWidgets/issues/16088 +- Hide(); //avoid old position flash when Center() moves window (asynchronously?) +-#endif ++ //=> works like a charm for GTK2 with window resizing problems and title bar corruption; e.g. Debian!!! + Center(); //needs to be re-applied after a dialog size change! + + //keep stable sizer height: "two way" description is smaller than grid of sync directions +Index: freefilesync/wx+/popup_dlg.cpp +=================================================================== +--- freefilesync.orig/wx+/popup_dlg.cpp 2023-04-04 22:33:59.278761616 +0200 ++++ freefilesync/wx+/popup_dlg.cpp 2023-04-04 22:33:59.274761559 +0200 +@@ -272,17 +272,12 @@ + //set std order after button visibility was set + setStandardButtonLayout(*bSizerStdButtons, stdBtns); + +- updateGui(); + ++ updateGui(); + + GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() +-#ifdef __WXGTK3__ +- Show(); //GTK3 size calculation requires visible window: https://github.com/wxWidgets/wxWidgets/issues/16088 +- Hide(); //avoid old position flash when Center() moves window (asynchronously?) +-#endif + Center(); //needs to be re-applied after a dialog size change! + +- + Raise(); //[!] popup may be triggered by ffs_batch job running in the background! + + if (m_buttonAccept->IsEnabled()) +Index: freefilesync/wx+/tooltip.cpp +=================================================================== +--- freefilesync.orig/wx+/tooltip.cpp 2023-04-04 22:33:59.278761616 +0200 ++++ freefilesync/wx+/tooltip.cpp 2023-04-04 22:33:59.274761559 +0200 +@@ -78,12 +78,11 @@ + } + + if (imgChanged || txtChanged) ++ { + //tipWindow_->Layout(); -> apparently not needed!? + tipWindow_->GetSizer()->SetSizeHints(tipWindow_); //~=Fit() + SetMinSize() +-#ifdef __WXGTK3__ +- //GTK3 size calculation requires visible window: https://github.com/wxWidgets/wxWidgets/issues/16088 +- //=> call wxWindow::Show() to "execute" +-#endif ++ //Linux: Fit() seems to be broken => call EVERY time inside show, not only if text or bmp change -> still true?!? ++ } + + const wxPoint newPos = wxTheApp->GetLayoutDirection() == wxLayout_RightToLeft ? + mousePos - wxPoint(fastFromDIP(TIP_WINDOW_OFFSET_DIP) + tipWindow_->GetSize().GetWidth(), 0) : -- cgit From a720ce2fab33c28f99416a47d821d6bb716707d1 Mon Sep 17 00:00:00 2001 From: "B. Stack" Date: Fri, 19 May 2023 10:05:40 -0400 Subject: ffs 12.3 rc1 --- .../patches/revert_buggy_gtk3_change_in_12.1.patch | 91 +++++++++------------- 1 file changed, 36 insertions(+), 55 deletions(-) (limited to 'freefilesync/debian/patches/revert_buggy_gtk3_change_in_12.1.patch') 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 630f250..578b2db 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 @@ -8,13 +8,11 @@ Author: Fab Stz Origin: self Bug: https://freefilesync.org/forum/viewtopic.php?t=10103 Forwarded: https://freefilesync.org/forum/viewtopic.php?t=10103 -Last-Update: 2023-03-07 +Last-Update: 2023-03-19 -Index: freefilesync/FreeFileSync/Source/ui/abstract_folder_picker.cpp -=================================================================== ---- freefilesync.orig/FreeFileSync/Source/ui/abstract_folder_picker.cpp 2023-04-04 22:33:59.278761616 +0200 -+++ freefilesync/FreeFileSync/Source/ui/abstract_folder_picker.cpp 2023-04-04 22:33:59.274761559 +0200 -@@ -127,10 +127,7 @@ +--- a/FreeFileSync/Source/ui/abstract_folder_picker.cpp ++++ b/FreeFileSync/Source/ui/abstract_folder_picker.cpp +@@ -127,10 +127,7 @@ AbstractFolderPickerDlg::AbstractFolderP //---------------------------------------------------------------------- GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -26,11 +24,9 @@ Index: freefilesync/FreeFileSync/Source/ui/abstract_folder_picker.cpp Center(); //needs to be re-applied after a dialog size change! Bind(wxEVT_CHAR_HOOK, [this](wxKeyEvent& event) { onLocalKeyEvent(event); }); //dialog-specific local key events -Index: freefilesync/FreeFileSync/Source/ui/batch_config.cpp -=================================================================== ---- freefilesync.orig/FreeFileSync/Source/ui/batch_config.cpp 2023-04-04 22:33:59.278761616 +0200 -+++ freefilesync/FreeFileSync/Source/ui/batch_config.cpp 2023-04-04 22:33:59.274761559 +0200 -@@ -82,10 +82,7 @@ +--- a/FreeFileSync/Source/ui/batch_config.cpp ++++ b/FreeFileSync/Source/ui/batch_config.cpp +@@ -82,10 +82,7 @@ BatchDialog::BatchDialog(wxWindow* paren Bind(wxEVT_CHAR_HOOK, [this](wxKeyEvent& event) { onLocalKeyEvent(event); }); //enable dialog-specific key events GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -42,11 +38,9 @@ Index: freefilesync/FreeFileSync/Source/ui/batch_config.cpp Center(); //needs to be re-applied after a dialog size change! m_buttonSaveAs->SetFocus(); -Index: freefilesync/FreeFileSync/Source/ui/progress_indicator.cpp -=================================================================== ---- freefilesync.orig/FreeFileSync/Source/ui/progress_indicator.cpp 2023-04-04 22:33:59.278761616 +0200 -+++ freefilesync/FreeFileSync/Source/ui/progress_indicator.cpp 2023-04-04 22:33:59.274761559 +0200 -@@ -221,10 +221,7 @@ +--- a/FreeFileSync/Source/ui/progress_indicator.cpp ++++ b/FreeFileSync/Source/ui/progress_indicator.cpp +@@ -218,10 +218,7 @@ CompareProgressPanel::Impl::Impl(wxFrame m_panelTimeStats->Layout(); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -58,7 +52,7 @@ Index: freefilesync/FreeFileSync/Source/ui/progress_indicator.cpp } -@@ -902,10 +899,6 @@ +@@ -884,10 +881,6 @@ syncStat_(&syncStat) //make sure that standard height matches ProcessPhase::comparingContent statistics layout (== largest) this->GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -69,11 +63,9 @@ Index: freefilesync/FreeFileSync/Source/ui/progress_indicator.cpp pnl_.Layout(); this->Center(); //call *after* dialog layout update and *before* wxWindow::Show()! -Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp -=================================================================== ---- freefilesync.orig/FreeFileSync/Source/ui/small_dlgs.cpp 2023-04-04 22:33:59.278761616 +0200 -+++ freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp 2023-04-04 22:33:59.274761559 +0200 -@@ -145,10 +145,6 @@ +--- a/FreeFileSync/Source/ui/small_dlgs.cpp ++++ b/FreeFileSync/Source/ui/small_dlgs.cpp +@@ -145,10 +145,6 @@ AboutDlg::AboutDlg(wxWindow* parent) : A //-------------------------------------------------------------------------- //have animal + text match *final* dialog width GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -84,7 +76,7 @@ Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp { const int imageWidth = (m_panelDonate->GetSize().GetWidth() - 5 - 5 - 5 /* grey border*/) / 2; -@@ -164,10 +160,7 @@ +@@ -164,10 +160,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() @@ -96,7 +88,7 @@ Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp 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!!! -@@ -401,11 +394,7 @@ +@@ -404,11 +397,7 @@ CloudSetupDlg::CloudSetupDlg(wxWindow* p m_checkBoxPasswordPrompt->Hide(); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -109,7 +101,7 @@ Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp Center(); //needs to be re-applied after a dialog size change! updateGui(); //*after* SetSizeHints when standard dialog height has been calculated -@@ -973,10 +962,7 @@ +@@ -976,10 +965,7 @@ CopyToDialog::CopyToDialog(wxWindow* par Bind(wxEVT_CHAR_HOOK, [this](wxKeyEvent& event) { onLocalKeyEvent(event); }); //enable dialog-specific key events GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -121,7 +113,7 @@ Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp Center(); //needs to be re-applied after a dialog size change! m_buttonOK->SetFocus(); -@@ -1091,10 +1077,7 @@ +@@ -1094,10 +1080,7 @@ DeleteDialog::DeleteDialog(wxWindow* par Bind(wxEVT_CHAR_HOOK, [this](wxKeyEvent& event) { onLocalKeyEvent(event); }); //enable dialog-specific key events GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -133,7 +125,7 @@ Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp Center(); //needs to be re-applied after a dialog size change! m_buttonOK->SetFocus(); -@@ -1234,10 +1217,7 @@ +@@ -1237,10 +1220,7 @@ SyncConfirmationDlg::SyncConfirmationDlg setIntValue(*m_staticTextDeleteRight, st.deleteCount(), *m_bitmapDeleteRight, "so_delete_right_sicon"); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -145,7 +137,7 @@ Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp Center(); //needs to be re-applied after a dialog size change! m_buttonStartSync->SetFocus(); -@@ -1501,10 +1481,7 @@ +@@ -1504,10 +1484,7 @@ OptionsDlg::OptionsDlg(wxWindow* parent, updateGui(); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -157,7 +149,7 @@ Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp Center(); //needs to be re-applied after a dialog size change! //restore actual value: -@@ -1824,10 +1801,7 @@ +@@ -1827,10 +1804,7 @@ SelectTimespanDlg::SelectTimespanDlg(wxW Bind(wxEVT_CHAR_HOOK, [this](wxKeyEvent& event) { onLocalKeyEvent(event); }); //enable dialog-specific key events GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -169,7 +161,7 @@ Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp Center(); //needs to be re-applied after a dialog size change! m_buttonOkay->SetFocus(); -@@ -1923,10 +1897,7 @@ +@@ -1926,10 +1900,7 @@ PasswordPromptDlg::PasswordPromptDlg(wxW m_textCtrlPasswordVisible->Hide(); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -181,7 +173,7 @@ Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp Center(); //needs to be re-applied after a dialog size change! updateGui(); //*after* SetSizeHints when standard dialog height has been calculated -@@ -2009,10 +1980,7 @@ +@@ -2012,10 +1983,7 @@ CfgHighlightDlg::CfgHighlightDlg(wxWindo m_spinCtrlOverdueDays->SetValue(cfgHistSyncOverdueDays); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -193,7 +185,7 @@ Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp Center(); //needs to be re-applied after a dialog size change! m_spinCtrlOverdueDays->SetFocus(); -@@ -2078,10 +2046,7 @@ +@@ -2081,10 +2049,7 @@ ActivationDlg::ActivationDlg(wxWindow* p m_textCtrlOfflineActivationKey->ChangeValue(manualActivationKey); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -205,7 +197,7 @@ Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp Center(); //needs to be re-applied after a dialog size change! m_buttonActivateOnline->SetFocus(); -@@ -2186,12 +2151,8 @@ +@@ -2189,12 +2154,8 @@ DownloadProgressWindow::Impl::Impl(wxWin updateGui(); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -219,11 +211,9 @@ Index: freefilesync/FreeFileSync/Source/ui/small_dlgs.cpp Show(); //clear gui flicker: window must be visible to make this work! -Index: freefilesync/FreeFileSync/Source/ui/sync_cfg.cpp -=================================================================== ---- freefilesync.orig/FreeFileSync/Source/ui/sync_cfg.cpp 2023-04-04 22:33:59.278761616 +0200 -+++ freefilesync/FreeFileSync/Source/ui/sync_cfg.cpp 2023-04-04 22:33:59.274761559 +0200 -@@ -681,10 +681,7 @@ +--- a/FreeFileSync/Source/ui/sync_cfg.cpp ++++ b/FreeFileSync/Source/ui/sync_cfg.cpp +@@ -696,10 +696,7 @@ globalLogFolderPhrase_(globalLogFolderPh selectFolderPairConfig(-1); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() @@ -235,22 +225,15 @@ Index: freefilesync/FreeFileSync/Source/ui/sync_cfg.cpp Center(); //needs to be re-applied after a dialog size change! //keep stable sizer height: "two way" description is smaller than grid of sync directions -Index: freefilesync/wx+/popup_dlg.cpp -=================================================================== ---- freefilesync.orig/wx+/popup_dlg.cpp 2023-04-04 22:33:59.278761616 +0200 -+++ freefilesync/wx+/popup_dlg.cpp 2023-04-04 22:33:59.274761559 +0200 -@@ -272,17 +272,12 @@ - //set std order after button visibility was set - setStandardButtonLayout(*bSizerStdButtons, stdBtns); +--- a/wx+/popup_dlg.cpp ++++ b/wx+/popup_dlg.cpp +@@ -287,13 +287,8 @@ public: -- updateGui(); - -+ updateGui(); GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() -#ifdef __WXGTK3__ -- Show(); //GTK3 size calculation requires visible window: https://github.com/wxWidgets/wxWidgets/issues/16088 -- Hide(); //avoid old position flash when Center() moves window (asynchronously?) +- Show(); //GTK3 size calculation requires visible window: https://github.com/wxWidgets/wxWidgets/issues/16088 +- Hide(); //avoid old position flash when Center() moves window (asynchronously?) -#endif Center(); //needs to be re-applied after a dialog size change! @@ -258,11 +241,9 @@ Index: freefilesync/wx+/popup_dlg.cpp Raise(); //[!] popup may be triggered by ffs_batch job running in the background! if (m_buttonAccept->IsEnabled()) -Index: freefilesync/wx+/tooltip.cpp -=================================================================== ---- freefilesync.orig/wx+/tooltip.cpp 2023-04-04 22:33:59.278761616 +0200 -+++ freefilesync/wx+/tooltip.cpp 2023-04-04 22:33:59.274761559 +0200 -@@ -78,12 +78,11 @@ +--- a/wx+/tooltip.cpp ++++ b/wx+/tooltip.cpp +@@ -79,12 +79,11 @@ void Tooltip::show(const wxString& text, } if (imgChanged || txtChanged) -- cgit