[Libreoffice-commits] core.git: Branch 'distro/collabora/co-2021' - 20 commits - config_host.mk.in configure.ac dbaccess/source download.lst external/curl formula/source include/formula include/svtools include/vcl readlicense_oo/license reportdesign/source RepositoryExternal.mk sc/qa scripting/source sc/source sd/source sfx2/source solenv/gbuild svl/source svtools/source svx/source sw/source sw/uiconfig vcl/source vcl/unx writerfilter/source

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Mon Aug 16 10:21:44 UTC 2021


 RepositoryExternal.mk                             |    2 
 config_host.mk.in                                 |    1 
 configure.ac                                      |    1 
 dbaccess/source/ui/app/AppDetailView.cxx          |    1 
 download.lst                                      |    4 
 external/curl/ExternalPackage_curl.mk             |    4 
 external/curl/ExternalProject_curl.mk             |    7 
 external/curl/UnpackedTarball_curl.mk             |    1 
 external/curl/curl-7.26.0_win-proxy.patch         |    2 
 external/curl/curl-ios.patch.1                    |   17 
 external/curl/curl-msvc-disable-protocols.patch.1 |    7 
 external/curl/zlib.patch.0                        |    4 
 formula/source/ui/dlg/funcutl.cxx                 |   54 
 include/formula/funcutl.hxx                       |   18 
 include/svtools/brwbox.hxx                        |    1 
 include/svtools/editbrowsebox.hxx                 |   26 
 include/vcl/customweld.hxx                        |    9 
 readlicense_oo/license/CREDITS.fodt               | 4246 +++++++++++-----------
 reportdesign/source/ui/dlg/GroupsSorting.cxx      |    4 
 reportdesign/source/ui/inc/GroupsSorting.hxx      |    2 
 sc/qa/extras/macros-test.cxx                      |   30 
 sc/qa/extras/testdocuments/tdf143582.ods          |binary
 sc/source/core/data/table6.cxx                    |    8 
 sc/source/filter/oox/excelfilter.cxx              |    8 
 sc/source/filter/xml/xmlimprt.cxx                 |    3 
 sc/source/ui/app/inputwin.cxx                     |    1 
 sc/source/ui/docshell/arealink.cxx                |    3 
 sc/source/ui/docshell/docsh.cxx                   |   25 
 sc/source/ui/docshell/docsh4.cxx                  |   90 
 sc/source/ui/inc/docsh.hxx                        |    1 
 scripting/source/basprov/basscript.cxx            |    2 
 sd/source/ui/animations/CustomAnimationPane.cxx   |    2 
 sd/source/ui/remotecontrol/Communicator.cxx       |   15 
 sd/source/ui/sidebar/SlideBackground.cxx          |    4 
 sfx2/source/control/recentdocsview.cxx            |    1 
 sfx2/source/control/recentdocsviewitem.cxx        |    1 
 solenv/gbuild/platform/com_MSC_class.mk           |    4 
 solenv/gbuild/platform/com_MSC_defs.mk            |   12 
 svl/source/numbers/zforfind.cxx                   |   16 
 svtools/source/brwbox/brwbox2.cxx                 |    4 
 svtools/source/brwbox/ebbcontrols.cxx             |   24 
 svtools/source/brwbox/editbrowsebox.cxx           |   11 
 svx/source/dialog/weldeditview.cxx                |    3 
 svx/source/fmcomp/gridcell.cxx                    |  103 
 svx/source/inc/findtextfield.hxx                  |    2 
 svx/source/inc/gridcell.hxx                       |   23 
 svx/source/tbxctrls/fillctrl.cxx                  |    5 
 svx/source/tbxctrls/tbunosearchcontrollers.cxx    |    6 
 sw/source/core/crsr/crsrsh.cxx                    |    1 
 sw/source/core/inc/wrong.hxx                      |    1 
 sw/source/core/text/wrong.cxx                     |    4 
 sw/source/filter/html/css1atr.cxx                 |    4 
 sw/source/filter/html/htmltabw.cxx                |    9 
 sw/source/filter/html/wrthtml.hxx                 |    2 
 sw/source/ui/dbui/createaddresslistdialog.cxx     |    1 
 sw/source/ui/dialog/uiregionsw.cxx                |    1 
 sw/source/ui/index/cnttab.cxx                     |    5 
 sw/source/uibase/inc/conttree.hxx                 |    2 
 sw/uiconfig/swriter/ui/assignstylesdialog.ui      |    1 
 vcl/source/app/salvtables.cxx                     |    9 
 vcl/unx/gtk3/gtk3gtkinst.cxx                      |   69 
 writerfilter/source/dmapper/TableManager.cxx      |    6 
 62 files changed, 2516 insertions(+), 2417 deletions(-)

New commits:
commit cc31e95ae24b0a2ee734ab3aaa35b79d1ca0e9da
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Fri Aug 13 09:28:38 2021 +0100
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Mon Aug 16 12:17:30 2021 +0200

    Resolves: tdf#143795 trigger layout when content changes
    
    Change-Id: I9ec19b55f2b46ac8dd1415f45d5e0368fa52fbfd
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120366
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sd/source/ui/sidebar/SlideBackground.cxx b/sd/source/ui/sidebar/SlideBackground.cxx
index 035875e5bc20..b372b25a2282 100644
--- a/sd/source/ui/sidebar/SlideBackground.cxx
+++ b/sd/source/ui/sidebar/SlideBackground.cxx
@@ -450,6 +450,10 @@ void SlideBackground::Update()
         default:
             break;
     }
+
+    // Need to do a relayouting, otherwise the panel size is not updated after show / hide controls
+    if (m_pPanel)
+        m_pPanel->TriggerDeckLayouting();
 }
 
 void SlideBackground::UpdateMarginBox()
commit 5edcda8f63c017d7380e489efc15e1235fe47fa3
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Thu Aug 12 12:55:30 2021 +0100
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Mon Aug 16 10:15:16 2021 +0200

    Resolves: tdf#132739 two style tags where there should be just one
    
    Change-Id: Id9c8c8cc8c5ffdd21ba79ff39a6279cf2ddc8025
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120360
    Tested-by: Jenkins
    Reviewed-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>

diff --git a/sw/source/filter/html/css1atr.cxx b/sw/source/filter/html/css1atr.cxx
index 7b1a5cc19be3..c401d95a788f 100644
--- a/sw/source/filter/html/css1atr.cxx
+++ b/sw/source/filter/html/css1atr.cxx
@@ -2113,10 +2113,12 @@ void SwHTMLWriter::OutCSS1_TableFrameFormatOptions( const SwFrameFormat& rFrameF
         Strm().WriteChar( '\"' );
 }
 
-void SwHTMLWriter::OutCSS1_TableCellBorderHack(SwFrameFormat const& rFrameFormat)
+void SwHTMLWriter::OutCSS1_TableCellBordersAndBG(SwFrameFormat const& rFrameFormat, const SvxBrushItem *pBrushItem)
 {
     SwCSS1OutMode const aMode( *this,
         CSS1_OUTMODE_STYLE_OPT_ON|CSS1_OUTMODE_ENCODE|CSS1_OUTMODE_TABLEBOX, nullptr );
+    if (pBrushItem)
+        OutCSS1_SvxBrush(*this, *pBrushItem, Css1Background::Table, nullptr);
     OutCSS1_SvxBox(*this, rFrameFormat.GetBox());
     if (!m_bFirstCSS1Property)
     {
diff --git a/sw/source/filter/html/htmltabw.cxx b/sw/source/filter/html/htmltabw.cxx
index 4c83319747b7..63812a9b3ef6 100644
--- a/sw/source/filter/html/htmltabw.cxx
+++ b/sw/source/filter/html/htmltabw.cxx
@@ -424,11 +424,14 @@ void SwHTMLWrtTable::OutTableCell( SwHTMLWriter& rWrt,
             // Avoid non-CSS version in the ReqIF case.
             rWrt.OutBackground( pBrushItem, false );
 
-        if( rWrt.m_bCfgOutStyles )
-            OutCSS1_TableBGStyleOpt( rWrt, *pBrushItem );
+        if (!rWrt.m_bCfgOutStyles)
+            pBrushItem = nullptr;
     }
 
-    rWrt.OutCSS1_TableCellBorderHack(*pBox->GetFrameFormat());
+    // tdf#132739 with rWrt.m_bCfgOutStyles of true bundle the brush item css
+    // properties into the same "style" tag as the borders so there is only one
+    // style tag
+    rWrt.OutCSS1_TableCellBordersAndBG(*pBox->GetFrameFormat(), pBrushItem);
 
     sal_uInt32 nNumFormat = 0;
     double nValue = 0.0;
diff --git a/sw/source/filter/html/wrthtml.hxx b/sw/source/filter/html/wrthtml.hxx
index ab282ba652ff..f82325ee50ae 100644
--- a/sw/source/filter/html/wrthtml.hxx
+++ b/sw/source/filter/html/wrthtml.hxx
@@ -484,7 +484,7 @@ public:
     void writeFrameFormatOptions(HtmlWriter& aHtml, const SwFrameFormat& rFrameFormat, const OUString& rAltText, HtmlFrmOpts nFrameOpts);
 
     void OutCSS1_TableFrameFormatOptions( const SwFrameFormat& rFrameFormat );
-    void OutCSS1_TableCellBorderHack(const SwFrameFormat& rFrameFormat);
+    void OutCSS1_TableCellBordersAndBG(const SwFrameFormat& rFrameFormat, const SvxBrushItem *pBrushItem);
     void OutCSS1_SectionFormatOptions( const SwFrameFormat& rFrameFormat, const SwFormatCol *pCol );
     void OutCSS1_FrameFormatOptions( const SwFrameFormat& rFrameFormat, HtmlFrmOpts nFrameOpts,
                                      const SdrObject *pSdrObj=nullptr,
commit a7958e253d159b01f68519d2c8a9d0e7554958cd
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Thu Aug 12 16:01:51 2021 +0100
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Mon Aug 16 10:15:15 2021 +0200

    Resolves: tdf#143843 disable the recently-used widget during load
    
    We show a busy-cursor but the widget can still be interacted with so
    another document can be launched by clicking on another recently-used
    item while the first one is still loading, and the recently-used widget
    isn't prepared for this scenario so the second to complete load will
    crash.
    
    Disable the recently-used widget when its cursor is set to busy, and in
    the (unlikely) case that the load doesn't complete normally (missing
    document or load filter error) and the recently-used widget still exists
    and its cursor is unset from busy then reenable it for user input at
    that point.
    
    Change-Id: I8f4487f3dbede14c9778e49442366bd9445f1d63
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120363
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <xiscofauli at libreoffice.org>

diff --git a/sfx2/source/control/recentdocsview.cxx b/sfx2/source/control/recentdocsview.cxx
index e74c354bef92..4bd614bf8836 100644
--- a/sfx2/source/control/recentdocsview.cxx
+++ b/sfx2/source/control/recentdocsview.cxx
@@ -431,6 +431,7 @@ IMPL_LINK( RecentDocsView, ExecuteHdl_Impl, void*, p, void )
     {
         pLoadRecentFile->pView->DispatchedLoadRecentUsedFile();
         pLoadRecentFile->pView->SetPointer(PointerStyle::Arrow);
+        pLoadRecentFile->pView->Enable();
     }
 
     delete pLoadRecentFile;
diff --git a/sfx2/source/control/recentdocsviewitem.cxx b/sfx2/source/control/recentdocsviewitem.cxx
index 8a047b20ee8d..d5dafe2d0e2c 100644
--- a/sfx2/source/control/recentdocsviewitem.cxx
+++ b/sfx2/source/control/recentdocsviewitem.cxx
@@ -178,6 +178,7 @@ void RecentDocsViewItem::OpenDocument()
 {
     // show busy mouse pointer
     mrParentView.SetPointer(PointerStyle::Wait);
+    mrParentView.Disable();
 
     Reference<frame::XDispatch> xDispatch;
     css::util::URL aTargetURL;
commit d16276bb5e717a4c4e61117694b9acb6bf25d96f
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Tue Aug 10 21:58:27 2021 +0100
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Mon Aug 16 10:15:15 2021 +0200

    tdf#143769 don't crash on null XFillColorItem
    
    use same solution as:
    
    commit 5ee0e6ab93ad791f5e79506efafd16cb7364ffb1
    Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
    Date:   Tue Jul 21 19:01:26 2015 +0200
    
        avoid crash with color listbox for now
    
        Change-Id: I36ac6513546961ec8d8d1e9437a8ef88574acbf4
    
    Change-Id: I46c55461e5867431a6e9c838b5ef462f9581eb28
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120248
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.stahl at allotropia.de>

diff --git a/svx/source/tbxctrls/fillctrl.cxx b/svx/source/tbxctrls/fillctrl.cxx
index 788a8fe1c1a1..e327be070b16 100644
--- a/svx/source/tbxctrls/fillctrl.cxx
+++ b/svx/source/tbxctrls/fillctrl.cxx
@@ -700,10 +700,11 @@ IMPL_LINK_NOARG(SvxFillToolBoxControl, SelectFillTypeHdl, weld::ComboBox&, void)
         {
             mpLbFillAttr->hide();
             mpToolBoxColor->show();
-            const ::Color aColor = mpColorItem->GetColorValue();
-            const XFillColorItem aXFillColorItem( "", aColor );
             if (pSh)
             {
+                const ::Color aColor = mpColorItem ? mpColorItem->GetColorValue() : COL_AUTO;
+                const XFillColorItem aXFillColorItem( "", aColor );
+
                 // #i122676# change FillStyle and Color in one call
                 pSh->GetDispatcher()->ExecuteList(
                     SID_ATTR_FILL_COLOR, SfxCallMode::RECORD,
commit eaf7e188e1f695e4d165838b4b40414601d28591
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Thu Feb 18 17:22:31 2021 +0000
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Mon Aug 16 10:15:14 2021 +0200

    Resolves: tdf#143023 explicitly connect to ControlBase focus-[in/out]
    
    instead of listening to the generic vcl::Window/Control focus events.
    The thing which really gets/loses focus is now a Widget hosted inside
    the ControlBase.
    
    also contains...
    
    fix comment
    
    Change-Id: Ia1783aff3fded7fd73de2b04b9aced647771a92c
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119998
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    
    establish that DbCellControl Window member is always a ControlBase
    
    and remove resulting known redundant dynamic_casting
    
    Change-Id: I5f098ef1adee3ad5d2a2bc5fcd30523f980df2f9
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119999
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    
    EventWindow is always a svt::ControlBase
    
    update DataBrowser has-focus when child widget loses focus
    
    similar to tdf#135641 case, focus-out becomes an issue with
    the bibliography editor if focus-in is seen on clicking in a cell,
    then click in a GtkEntry and tab around in a circle. Without this
    lose-focus support focus will be grabbed back to the cell of the
    initial click on a circuit of the focus-cycle
    
    Change-Id: I36288ed21dc4357c077f8dee55b55abf2457c2a6
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111157
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    (cherry picked from commit 422a8c3218b484817a8723b57fe9845d6abb83f4)
    
    reportdesigner focus out handler clobbering the preexisting handler
    
    set by the databrowser, so chain one after the other
    
    Change-Id: I5aa16635031be425b9354e5a2d6b891a81d54e55
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111384
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    (cherry picked from commit 731f08e5a84817dbc3c6be6e670025d51f39cd61)
    
    Change-Id: I012d0bea687aa6d5965a4e2f6ce3899bfc629f1b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120006
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.stahl at allotropia.de>

diff --git a/include/svtools/brwbox.hxx b/include/svtools/brwbox.hxx
index b865b0957129..c14ecdb84a07 100644
--- a/include/svtools/brwbox.hxx
+++ b/include/svtools/brwbox.hxx
@@ -588,6 +588,7 @@ public:
     tools::Rectangle       GetControlArea() const;
     virtual bool    ProcessKey(const KeyEvent& rEvt);
     virtual void    ChildFocusIn();
+    virtual void    ChildFocusOut();
     void            Dispatch( sal_uInt16 nId );
     void            SetMode( BrowserMode nMode );
     BrowserMode     GetMode( ) const { return m_nCurrentMode; }
diff --git a/include/svtools/editbrowsebox.hxx b/include/svtools/editbrowsebox.hxx
index 34696522bd78..a1badb8cce80 100644
--- a/include/svtools/editbrowsebox.hxx
+++ b/include/svtools/editbrowsebox.hxx
@@ -171,9 +171,26 @@ namespace svt
         virtual void SetEditableReadOnly(bool bReadOnly);
 
         virtual bool ProcessKey(const KeyEvent& rKEvt);
+
+        // chain after the FocusInHdl
+        void SetFocusInHdl(const Link<LinkParamNone*,void>& rHdl)
+        {
+            m_aFocusInHdl = rHdl;
+        }
+
+        // chain after the FocusOutHdl
+        void SetFocusOutHdl(const Link<LinkParamNone*,void>& rHdl)
+        {
+            m_aFocusOutHdl = rHdl;
+        }
+
     protected:
         DECL_LINK(KeyInputHdl, const KeyEvent&, bool);
         DECL_LINK(FocusInHdl, weld::Widget&, void);
+        DECL_LINK(FocusOutHdl, weld::Widget&, void);
+    private:
+        Link<LinkParamNone*,void> m_aFocusInHdl;
+        Link<LinkParamNone*,void> m_aFocusOutHdl;
     };
 
     class SVT_DLLPUBLIC EditControlBase : public ControlBase
@@ -191,6 +208,7 @@ namespace svt
         weld::Entry& get_widget() { return *m_pEntry; }
 
         virtual void connect_changed(const Link<weld::Entry&, void>& rLink) = 0;
+        virtual void connect_focus_out(const Link<weld::Widget&, void>& rLink) = 0;
 
     protected:
         void InitEditControlBase(weld::Entry* pEntry);
@@ -211,6 +229,11 @@ namespace svt
             m_xWidget->connect_changed(rLink);
         }
 
+        virtual void connect_focus_out(const Link<weld::Widget&, void>& rLink) override
+        {
+            m_xWidget->connect_focus_out(rLink);
+        }
+
     protected:
         std::unique_ptr<weld::Entry> m_xWidget;
     };
@@ -696,6 +719,7 @@ namespace svt
         virtual void dispose() override;
 
         virtual void connect_changed(const Link<weld::Entry&, void>& rLink) override;
+        virtual void connect_focus_out(const Link<weld::Widget&, void>& rLink) override;
 
         weld::EntryFormatter& get_formatter();
 
@@ -762,6 +786,7 @@ namespace svt
         weld::PatternFormatter& get_formatter() { return *m_xEntryFormatter; }
 
         virtual void connect_changed(const Link<weld::Entry&, void>& rLink) override;
+        virtual void connect_focus_out(const Link<weld::Widget&, void>& rLink) override;
 
         virtual void dispose() override;
     private:
@@ -995,6 +1020,7 @@ namespace svt
         virtual bool ProcessKey(const KeyEvent& rEvt) override;
 
         virtual void ChildFocusIn() override;
+        virtual void ChildFocusOut() override;
 
         css::uno::Reference< css::accessibility::XAccessible > CreateAccessibleCheckBoxCell(sal_Int32 _nRow, sal_uInt16 _nColumnPos,const TriState& eState);
         bool ControlHasFocus() const;
diff --git a/reportdesign/source/ui/dlg/GroupsSorting.cxx b/reportdesign/source/ui/dlg/GroupsSorting.cxx
index 42ed619445e2..eddb97499491 100644
--- a/reportdesign/source/ui/dlg/GroupsSorting.cxx
+++ b/reportdesign/source/ui/dlg/GroupsSorting.cxx
@@ -375,7 +375,7 @@ void OFieldExpressionControl::lateInit()
         rComboBox.connect_changed(LINK(this,OFieldExpressionControl,CBChangeHdl));
         m_pComboCell->SetHelpId(HID_RPT_FIELDEXPRESSION);
 
-        rComboBox.connect_focus_in(LINK(m_pParent, OGroupsSortingDialog, OnControlFocusGot));
+        m_pComboCell->SetFocusInHdl(LINK(m_pParent, OGroupsSortingDialog, OnControlFocusGot));
 
 
         // set browse mode
@@ -928,7 +928,7 @@ sal_Int32 OGroupsSortingDialog::getColumnDataType(const OUString& _sColumnName)
     return nDataType;
 }
 
-IMPL_LINK_NOARG(OGroupsSortingDialog, OnControlFocusGot, weld::Widget&, void )
+IMPL_LINK_NOARG(OGroupsSortingDialog, OnControlFocusGot, LinkParamNone*, void )
 {
     m_xHelpWindow->set_label(RptResId(STR_RPT_HELP_FIELD));
 }
diff --git a/reportdesign/source/ui/inc/GroupsSorting.hxx b/reportdesign/source/ui/inc/GroupsSorting.hxx
index cd038e6164c4..7b465a5a2034 100644
--- a/reportdesign/source/ui/inc/GroupsSorting.hxx
+++ b/reportdesign/source/ui/inc/GroupsSorting.hxx
@@ -74,7 +74,7 @@ private:
     DECL_LINK( OnWidgetFocusLost, weld::Widget&, void );
     DECL_LINK( OnWidgetFocusGot, weld::Widget&, void );
 
-    DECL_LINK( OnControlFocusGot, weld::Widget&, void );
+    DECL_LINK( OnControlFocusGot, LinkParamNone*, void );
 
     DECL_LINK( LBChangeHdl, weld::ComboBox&, void );
     DECL_LINK( OnFormatAction, const OString&, void );
diff --git a/svtools/source/brwbox/brwbox2.cxx b/svtools/source/brwbox/brwbox2.cxx
index 5424edfb0cf2..f5c9bc618508 100644
--- a/svtools/source/brwbox/brwbox2.cxx
+++ b/svtools/source/brwbox/brwbox2.cxx
@@ -1691,6 +1691,10 @@ void BrowseBox::ChildFocusIn()
 {
 }
 
+void BrowseBox::ChildFocusOut()
+{
+}
+
 void BrowseBox::Dispatch( sal_uInt16 nId )
 {
 
diff --git a/svtools/source/brwbox/ebbcontrols.cxx b/svtools/source/brwbox/ebbcontrols.cxx
index 32c29784ce7b..3989f6d17c7c 100644
--- a/svtools/source/brwbox/ebbcontrols.cxx
+++ b/svtools/source/brwbox/ebbcontrols.cxx
@@ -32,6 +32,7 @@ namespace svt
         m_xWidget->connect_changed(LINK(this, ComboBoxControl, SelectHdl));
         m_xWidget->connect_key_press(LINK(this, ControlBase, KeyInputHdl));
         m_xWidget->connect_focus_in(LINK(this, ControlBase, FocusInHdl));
+        m_xWidget->connect_focus_out(LINK(this, ControlBase, FocusOutHdl));
     }
 
     void ComboBoxControl::dispose()
@@ -118,6 +119,7 @@ namespace svt
         m_xWidget->connect_changed(LINK(this, ListBoxControl, SelectHdl));
         m_xWidget->connect_key_press(LINK(this, ControlBase, KeyInputHdl));
         m_xWidget->connect_focus_in(LINK(this, ControlBase, FocusInHdl));
+        m_xWidget->connect_focus_out(LINK(this, ControlBase, FocusOutHdl));
     }
 
     void ListBoxControl::dispose()
@@ -187,6 +189,7 @@ namespace svt
         InitControlBase(m_xBox.get());
         m_xBox->connect_key_press(LINK(this, ControlBase, KeyInputHdl));
         m_xBox->connect_focus_in(LINK(this, ControlBase, FocusInHdl));
+        m_xBox->connect_focus_out(LINK(this, ControlBase, FocusOutHdl));
         m_xBox->connect_toggled(LINK(this, CheckBoxControl, OnToggle));
     }
 
@@ -339,6 +342,7 @@ namespace svt
         m_pEntry->set_width_chars(1); // so a smaller than default width can be used
         m_pEntry->connect_key_press(LINK(this, ControlBase, KeyInputHdl));
         m_pEntry->connect_focus_in(LINK(this, ControlBase, FocusInHdl));
+        connect_focus_out(LINK(this, ControlBase, FocusOutHdl));
     }
 
     bool ControlBase::ProcessKey(const KeyEvent& rKEvt)
@@ -353,7 +357,14 @@ namespace svt
 
     IMPL_LINK_NOARG(ControlBase, FocusInHdl, weld::Widget&, void)
     {
-        return static_cast<BrowserDataWin*>(GetParent())->GetParent()->ChildFocusIn();
+        m_aFocusInHdl.Call(nullptr);
+        static_cast<BrowserDataWin*>(GetParent())->GetParent()->ChildFocusIn();
+    }
+
+    IMPL_LINK_NOARG(ControlBase, FocusOutHdl, weld::Widget&, void)
+    {
+        m_aFocusOutHdl.Call(nullptr);
+        static_cast<BrowserDataWin*>(GetParent())->GetParent()->ChildFocusOut();
     }
 
     void EditControlBase::dispose()
@@ -393,6 +404,11 @@ namespace svt
         get_formatter().connect_changed(rLink);
     }
 
+    void FormattedControlBase::connect_focus_out(const Link<weld::Widget&, void>& rLink)
+    {
+        get_formatter().connect_focus_out(rLink);
+    }
+
     weld::EntryFormatter& FormattedControlBase::get_formatter()
     {
         return *m_xEntryFormatter;
@@ -531,6 +547,11 @@ namespace svt
         m_xEntryFormatter->connect_changed(rLink);
     }
 
+    void PatternControl::connect_focus_out(const Link<weld::Widget&, void>& rLink)
+    {
+        m_xEntryFormatter->connect_focus_out(rLink);
+    }
+
     void PatternControl::dispose()
     {
         m_xEntryFormatter.reset();
@@ -619,6 +640,7 @@ namespace svt
         InitControlBase(m_xWidget.get());
         m_xWidget->connect_key_press(LINK(this, ControlBase, KeyInputHdl));
         m_xWidget->connect_focus_in(LINK(this, ControlBase, FocusInHdl));
+        m_xWidget->connect_focus_out(LINK(this, ControlBase, FocusOutHdl));
         // so any the natural size doesn't have an effect
         m_xWidget->set_size_request(1, 1);
     }
diff --git a/svtools/source/brwbox/editbrowsebox.cxx b/svtools/source/brwbox/editbrowsebox.cxx
index 71126b5a3f4b..236897d0d96e 100644
--- a/svtools/source/brwbox/editbrowsebox.cxx
+++ b/svtools/source/brwbox/editbrowsebox.cxx
@@ -160,7 +160,6 @@ namespace svt
         nEditCol = 0;
     }
 
-
     VclPtr<BrowserHeader> EditBrowseBox::CreateHeaderBar(BrowseBox* pParent)
     {
         pHeader = imp_CreateHeaderBar(pParent);
@@ -169,20 +168,17 @@ namespace svt
         return pHeader;
     }
 
-
     VclPtr<BrowserHeader> EditBrowseBox::imp_CreateHeaderBar(BrowseBox* pParent)
     {
         return VclPtr<EditBrowserHeader>::Create(pParent);
     }
 
-
     void EditBrowseBox::LoseFocus()
     {
         BrowseBox::LoseFocus();
         DetermineFocus();
     }
 
-
     void EditBrowseBox::GetFocus()
     {
         BrowseBox::GetFocus();
@@ -195,14 +191,12 @@ namespace svt
         DetermineFocus(getRealGetFocusFlags(this));
     }
 
-
     bool EditBrowseBox::SeekRow(sal_Int32 nRow)
     {
         nPaintRow = nRow;
         return true;
     }
 
-
     IMPL_LINK_NOARG(EditBrowseBox, StartEditHdl, void*, void)
     {
         nStartEvent = nullptr;
@@ -418,6 +412,11 @@ namespace svt
         DetermineFocus(getRealGetFocusFlags(this));
     }
 
+    void EditBrowseBox::ChildFocusOut()
+    {
+        DetermineFocus();
+    }
+
     void EditBrowseBox::MouseButtonDown(const BrowserMouseEvent& rEvt)
     {
         // absorb double clicks
diff --git a/svx/source/fmcomp/gridcell.cxx b/svx/source/fmcomp/gridcell.cxx
index 5d508a0fdedf..08ca07962939 100644
--- a/svx/source/fmcomp/gridcell.cxx
+++ b/svx/source/fmcomp/gridcell.cxx
@@ -802,16 +802,12 @@ void DbCellControl::implAdjustReadOnly( const Reference< XPropertySet >& _rxMode
     if ( !(m_pWindow && _rxModel.is()) )
         return;
 
-    ControlBase* pEditWindow = dynamic_cast<ControlBase*>(m_pWindow.get());
-    if ( pEditWindow )
+    bool bReadOnly = m_rColumn.IsReadOnly();
+    if ( !bReadOnly )
     {
-        bool bReadOnly = m_rColumn.IsReadOnly();
-        if ( !bReadOnly )
-        {
-            _rxModel->getPropertyValue( i_bReadOnly ? OUString(FM_PROP_READONLY) : OUString(FM_PROP_ISREADONLY)) >>= bReadOnly;
-        }
-        pEditWindow->SetEditableReadOnly(bReadOnly);
+        _rxModel->getPropertyValue( i_bReadOnly ? OUString(FM_PROP_READONLY) : OUString(FM_PROP_ISREADONLY)) >>= bReadOnly;
     }
+    m_pWindow->SetEditableReadOnly(bReadOnly);
 }
 
 void DbCellControl::implAdjustEnabled( const Reference< XPropertySet >& _rxModel )
@@ -1921,7 +1917,7 @@ void DbNumericField::implAdjustGenericFieldSetting( const Reference< XPropertySe
     rPaintFormatter.SetFormat( sFormatString, aAppLanguage );
 }
 
-VclPtr<Control> DbNumericField::createField(BrowserDataWin* pParent, bool bSpinButton, const Reference<XPropertySet>& /*rxModel*/)
+VclPtr<svt::ControlBase> DbNumericField::createField(BrowserDataWin* pParent, bool bSpinButton, const Reference<XPropertySet>& /*rxModel*/)
 {
     return VclPtr<DoubleNumericControl>::Create(pParent, bSpinButton);
 }
@@ -2041,7 +2037,7 @@ void DbCurrencyField::implAdjustGenericFieldSetting( const Reference< XPropertyS
     rPaintCurrencyFormatter.SetCurrencySymbol(aStr);
 }
 
-VclPtr<Control> DbCurrencyField::createField(BrowserDataWin* pParent, bool bSpinButton, const Reference< XPropertySet >& /*rxModel*/)
+VclPtr<svt::ControlBase> DbCurrencyField::createField(BrowserDataWin* pParent, bool bSpinButton, const Reference< XPropertySet >& /*rxModel*/)
 {
     return VclPtr<LongCurrencyControl>::Create(pParent, bSpinButton);
 }
@@ -2124,7 +2120,7 @@ DbDateField::DbDateField( DbGridColumn& _rColumn )
     doPropertyListening( FM_PROP_DATE_SHOW_CENTURY );
 }
 
-VclPtr<Control> DbDateField::createField(BrowserDataWin* pParent, bool bSpinButton, const Reference< XPropertySet >& rxModel)
+VclPtr<svt::ControlBase> DbDateField::createField(BrowserDataWin* pParent, bool bSpinButton, const Reference< XPropertySet >& rxModel)
 {
     // check if there is a DropDown property set to TRUE
     bool bDropDown =    !hasProperty( FM_PROP_DROPDOWN, rxModel )
@@ -2250,7 +2246,7 @@ DbTimeField::DbTimeField( DbGridColumn& _rColumn )
     doPropertyListening( FM_PROP_STRICTFORMAT );
 }
 
-VclPtr<Control> DbTimeField::createField(BrowserDataWin* pParent, bool bSpinButton, const Reference< XPropertySet >& /*rxModel*/ )
+VclPtr<svt::ControlBase> DbTimeField::createField(BrowserDataWin* pParent, bool bSpinButton, const Reference< XPropertySet >& /*rxModel*/ )
 {
     return VclPtr<TimeControl>::Create(pParent, bSpinButton);
 }
@@ -2763,9 +2759,8 @@ void DbFilterField::Init(BrowserDataWin& rParent, const Reference< XRowSet >& xC
     DbCellControl::Init( rParent, xCursor );
 
     // filter cells are never readonly
-    ControlBase* pAsEdit = dynamic_cast<ControlBase*>(m_pWindow.get());
-    if (pAsEdit)
-        pAsEdit->SetEditableReadOnly(false);
+    if (m_pWindow)
+        m_pWindow->SetEditableReadOnly(false);
 }
 
 CellControllerRef DbFilterField::CreateController() const
@@ -3089,7 +3084,6 @@ IMPL_LINK_NOARG(DbFilterField, OnClick, weld::Button&, void)
     }
 }
 
-
 FmXGridCell::FmXGridCell( DbGridColumn* pColumn, std::unique_ptr<DbCellControl> _pControl )
             :OComponentHelper(m_aMutex)
             ,m_pColumn(pColumn)
@@ -3102,23 +3096,24 @@ FmXGridCell::FmXGridCell( DbGridColumn* pColumn, std::unique_ptr<DbCellControl>
 {
 }
 
-
 void FmXGridCell::init()
 {
-    vcl::Window* pEventWindow( getEventWindow() );
+    svt::ControlBase* pEventWindow( getEventWindow() );
     if ( pEventWindow )
+    {
         pEventWindow->AddEventListener( LINK( this, FmXGridCell, OnWindowEvent ) );
+        pEventWindow->SetFocusInHdl(LINK( this, FmXGridCell, OnFocusGained));
+        pEventWindow->SetFocusOutHdl(LINK( this, FmXGridCell, OnFocusLost));
+    }
 }
 
-
-vcl::Window* FmXGridCell::getEventWindow() const
+svt::ControlBase* FmXGridCell::getEventWindow() const
 {
     if ( m_pCellControl )
         return &m_pCellControl->GetWindow();
     return nullptr;
 }
 
-
 FmXGridCell::~FmXGridCell()
 {
     if (!OComponentHelper::rBHelper.bDisposed)
@@ -3129,14 +3124,12 @@ FmXGridCell::~FmXGridCell()
 
 }
 
-
 void FmXGridCell::SetTextLineColor()
 {
     if (m_pCellControl)
         m_pCellControl->SetTextLineColor();
 }
 
-
 void FmXGridCell::SetTextLineColor(const Color& _rColor)
 {
     if (m_pCellControl)
@@ -3332,78 +3325,62 @@ void SAL_CALL FmXGridCell::removeMouseMotionListener( const Reference< awt::XMou
     m_aMouseMotionListeners.removeInterface( _rxListener );
 }
 
-
 void SAL_CALL FmXGridCell::addPaintListener( const Reference< awt::XPaintListener >& )
 {
     OSL_FAIL( "FmXGridCell::addPaintListener: not implemented" );
 }
 
-
 void SAL_CALL FmXGridCell::removePaintListener( const Reference< awt::XPaintListener >& )
 {
     OSL_FAIL( "FmXGridCell::removePaintListener: not implemented" );
 }
 
-
 IMPL_LINK( FmXGridCell, OnWindowEvent, VclWindowEvent&, _rEvent, void )
 {
     ENSURE_OR_THROW( _rEvent.GetWindow(), "illegal window" );
-    onWindowEvent( _rEvent.GetId(), *_rEvent.GetWindow(), _rEvent.GetData() );
+    onWindowEvent(_rEvent.GetId(), _rEvent.GetData());
 }
 
-
 void FmXGridCell::onFocusGained( const awt::FocusEvent& _rEvent )
 {
     checkDisposed(OComponentHelper::rBHelper.bDisposed);
     m_aFocusListeners.notifyEach( &awt::XFocusListener::focusGained, _rEvent );
 }
 
-
 void FmXGridCell::onFocusLost( const awt::FocusEvent& _rEvent )
 {
     checkDisposed(OComponentHelper::rBHelper.bDisposed);
     m_aFocusListeners.notifyEach( &awt::XFocusListener::focusLost, _rEvent );
 }
 
+IMPL_LINK_NOARG(FmXGridCell, OnFocusGained, LinkParamNone*, void)
+{
+    if (!m_aFocusListeners.getLength())
+        return;
+
+    awt::FocusEvent aEvent;
+    aEvent.Source = *this;
+    aEvent.Temporary = false;
 
-void FmXGridCell::onWindowEvent( const VclEventId _nEventId, const vcl::Window& _rWindow, const void* _pEventData )
+    onFocusGained(aEvent);
+}
+
+IMPL_LINK_NOARG(FmXGridCell, OnFocusLost, LinkParamNone*, void)
 {
-    switch ( _nEventId )
-    {
-    case VclEventId::ControlGetFocus:
-    case VclEventId::WindowGetFocus:
-    case VclEventId::ControlLoseFocus:
-    case VclEventId::WindowLoseFocus:
-    {
-        if  (   (   _rWindow.IsCompoundControl()
-                &&  (   _nEventId == VclEventId::ControlGetFocus
-                    ||  _nEventId == VclEventId::ControlLoseFocus
-                    )
-                )
-            ||  (   !_rWindow.IsCompoundControl()
-                &&  (   _nEventId == VclEventId::WindowGetFocus
-                    ||  _nEventId == VclEventId::WindowLoseFocus
-                    )
-                )
-            )
-        {
-            if ( !m_aFocusListeners.getLength() )
-                break;
+    if (!m_aFocusListeners.getLength())
+        return;
 
-            bool bFocusGained = ( _nEventId == VclEventId::ControlGetFocus ) || ( _nEventId == VclEventId::WindowGetFocus );
+    awt::FocusEvent aEvent;
+    aEvent.Source = *this;
+    aEvent.Temporary = false;
 
-            awt::FocusEvent aEvent;
-            aEvent.Source = *this;
-            aEvent.FocusFlags = static_cast<sal_Int16>(_rWindow.GetGetFocusFlags());
-            aEvent.Temporary = false;
+    onFocusLost(aEvent);
+}
 
-            if ( bFocusGained )
-                onFocusGained( aEvent );
-            else
-                onFocusLost( aEvent );
-        }
-    }
-    break;
+void FmXGridCell::onWindowEvent(const VclEventId _nEventId, const void* _pEventData)
+{
+    switch ( _nEventId )
+    {
     case VclEventId::WindowMouseButtonDown:
     case VclEventId::WindowMouseButtonUp:
     {
diff --git a/svx/source/inc/gridcell.hxx b/svx/source/inc/gridcell.hxx
index 3966a4954a15..6aef3de3fde9 100644
--- a/svx/source/inc/gridcell.hxx
+++ b/svx/source/inc/gridcell.hxx
@@ -211,8 +211,8 @@ private:
 
 protected:
     DbGridColumn&               m_rColumn;
-    VclPtr<vcl::Window>         m_pPainter;
-    VclPtr<vcl::Window>         m_pWindow;
+    VclPtr<svt::ControlBase>    m_pPainter;
+    VclPtr<svt::ControlBase>    m_pWindow;
 
 protected:
     // attribute access
@@ -262,8 +262,7 @@ public:
     DbCellControl(DbGridColumn& _rColumn);
     virtual ~DbCellControl() override;
 
-
-    vcl::Window& GetWindow() const
+    svt::ControlBase& GetWindow() const
     {
         ENSURE_OR_THROW( m_pWindow, "no window" );
         return *m_pWindow;
@@ -545,7 +544,7 @@ public:
     virtual ::svt::CellControllerRef    CreateController() const override;
 
 protected:
-    virtual VclPtr<Control> createField(
+    virtual VclPtr<svt::ControlBase> createField(
                             BrowserDataWin* _pParent,
                             bool bSpinButton,
                             const css::uno::Reference< css::beans::XPropertySet >& _rxModel
@@ -565,7 +564,7 @@ protected:
     virtual void        updateFromModel( css::uno::Reference< css::beans::XPropertySet > _rxModel ) override;
 
     // DbSpinField
-    virtual VclPtr<Control> createField(
+    virtual VclPtr<svt::ControlBase> createField(
                             BrowserDataWin* _pParent,
                             bool bSpinButton,
                             const css::uno::Reference< css::beans::XPropertySet >& _rxModel
@@ -588,7 +587,7 @@ protected:
     virtual void        updateFromModel( css::uno::Reference< css::beans::XPropertySet > _rxModel ) override;
 
     // DbSpinField
-    virtual VclPtr<Control> createField(
+    virtual VclPtr<svt::ControlBase> createField(
                             BrowserDataWin* _pParent,
                             bool bSpinButton,
                             const css::uno::Reference< css::beans::XPropertySet >& _rxModel
@@ -611,7 +610,7 @@ protected:
     virtual void        updateFromModel( css::uno::Reference< css::beans::XPropertySet > _rxModel ) override;
 
     // DbSpinField
-    virtual VclPtr<Control> createField(
+    virtual VclPtr<svt::ControlBase> createField(
                             BrowserDataWin* _pParent,
                             bool bSpinButton,
                             const css::uno::Reference< css::beans::XPropertySet >& _rxModel
@@ -635,7 +634,7 @@ protected:
     virtual void        updateFromModel( css::uno::Reference< css::beans::XPropertySet > _rxModel ) override;
 
     // DbSpinField
-    virtual VclPtr<Control> createField(
+    virtual VclPtr<svt::ControlBase> createField(
                             BrowserDataWin* _pParent,
                             bool bSpinButton,
                             const css::uno::Reference< css::beans::XPropertySet >& _rxModel
@@ -776,14 +775,16 @@ public:
         { m_pCellControl->AlignControl(nAlignment);}
 
 protected:
-    void onWindowEvent( const VclEventId _nEventId, const vcl::Window& _rWindow, const void* _pEventData );
+    void onWindowEvent(const VclEventId _nEventId, const void* _pEventData);
 
     // default implementations call our focus listeners, don't forget to call them if you override this
     virtual void onFocusGained( const css::awt::FocusEvent& _rEvent );
     virtual void onFocusLost( const css::awt::FocusEvent& _rEvent );
 
 private:
-    vcl::Window* getEventWindow() const;
+    svt::ControlBase* getEventWindow() const;
+    DECL_LINK(OnFocusGained, LinkParamNone*, void);
+    DECL_LINK(OnFocusLost, LinkParamNone*, void);
     DECL_LINK( OnWindowEvent, VclWindowEvent&, void );
 };
 
commit e0155f6bb6c209593bea73c87076715b7599fcbc
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Thu Apr 22 17:26:31 2021 +0100
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Mon Aug 16 10:14:29 2021 +0200

    undo blocking emitting focus events during grab_focus
    
    revert...
    
    commit f97dbac73fe149e8fed0932890d0c1d6be4869a3
    Author: Caolán McNamara <caolanm at redhat.com>
    Date:   Wed Jun 26 21:00:02 2019 +0100
    
        infinite focus changing in toc biblio page
    
    which blocked calling focus-changed callbacks when grab_focus is called
    explicitly analogous to how we block value-changed callbacks setting
    values through code but don't block them when the value is changed by
    user interaction.
    
    In retrospect that was a poor choice, so revert that and subsequent
    workarounds in favour of just not calling gtk_grab_focus if the widget
    already has focus.
    
    checked:
    a) tdf#138427 focus set to wrong input box
    b) tdf#138078 only call GetFocus if we gained focus from an unfocused state
    c) tdf#137993 ensure the toplevel vcl::Window is activated
    d) tdf#136941 call focus in handler explicitly
    
    Change-Id: I411480e2d627aa9995fb41b0aa17e9fb6d34d73f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114524
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    (cherry picked from commit db1cf111666847ce5ce93d18ae5ae8c29a4c44d6)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120079
    Reviewed-by: Michael Stahl <michael.stahl at allotropia.de>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/dbaccess/source/ui/app/AppDetailView.cxx b/dbaccess/source/ui/app/AppDetailView.cxx
index eba80dbfb4ec..6c56c6052282 100644
--- a/dbaccess/source/ui/app/AppDetailView.cxx
+++ b/dbaccess/source/ui/app/AppDetailView.cxx
@@ -84,7 +84,6 @@ void OTasksWindow::GrabFocus()
     if (!m_xTreeView)
         return;
     m_xTreeView->grab_focus();
-    FocusInHdl(*m_xTreeView);
 }
 
 bool OTasksWindow::HasChildPathFocus() const
diff --git a/formula/source/ui/dlg/funcutl.cxx b/formula/source/ui/dlg/funcutl.cxx
index 361ec4c9ebaa..58c2492c5505 100644
--- a/formula/source/ui/dlg/funcutl.cxx
+++ b/formula/source/ui/dlg/funcutl.cxx
@@ -357,14 +357,6 @@ bool RefEdit::KeyInput(const KeyEvent& rKEvt)
     return false;
 }
 
-void RefEdit::GrabFocus()
-{
-    bool bHadFocus = xEntry->has_focus();
-    xEntry->grab_focus();
-    if (!bHadFocus && xEntry->has_focus())
-        GetFocus();
-}
-
 void RefEdit::GetFocus()
 {
     maGetFocusHdl.Call(*this);
diff --git a/include/formula/funcutl.hxx b/include/formula/funcutl.hxx
index 4e008181eae7..4ed4b407c480 100644
--- a/include/formula/funcutl.hxx
+++ b/include/formula/funcutl.hxx
@@ -93,7 +93,10 @@ public:
         Modify(*xEntry);
     }
 
-    void GrabFocus();
+    void GrabFocus()
+    {
+        xEntry->grab_focus();
+    }
 
     void SelectAll()
     {
diff --git a/include/vcl/customweld.hxx b/include/vcl/customweld.hxx
index b19b64bf980e..64f980732dfb 100644
--- a/include/vcl/customweld.hxx
+++ b/include/vcl/customweld.hxx
@@ -63,14 +63,7 @@ public:
     }
     virtual void Show() { m_pDrawingArea->show(); }
     virtual void Hide() { m_pDrawingArea->hide(); }
-    void GrabFocus()
-    {
-        bool bHadFocus = m_pDrawingArea->has_focus();
-        m_pDrawingArea->grab_focus();
-        // tdf#138078 only call GetFocus if we gained focus from an unfocused state
-        if (!bHadFocus && m_pDrawingArea->has_focus())
-            GetFocus();
-    }
+    void GrabFocus() { m_pDrawingArea->grab_focus(); }
     bool HasFocus() const { return m_pDrawingArea->has_focus(); }
     bool IsVisible() const { return m_pDrawingArea->get_visible(); }
     bool IsReallyVisible() const { return m_pDrawingArea->is_visible(); }
diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx
index 1df98a6d1cd8..282b71575e08 100644
--- a/sc/source/ui/app/inputwin.cxx
+++ b/sc/source/ui/app/inputwin.cxx
@@ -2168,6 +2168,7 @@ void ScTextWnd::StyleUpdated()
 void ScTextWnd::TextGrabFocus()
 {
     GrabFocus();
+    GetFocus();
 }
 
 // Position window
diff --git a/svx/source/dialog/weldeditview.cxx b/svx/source/dialog/weldeditview.cxx
index 052bd8f4d8f9..5f5027b5b27f 100644
--- a/svx/source/dialog/weldeditview.cxx
+++ b/svx/source/dialog/weldeditview.cxx
@@ -180,7 +180,10 @@ bool WeldEditView::MouseButtonDown(const MouseEvent& rMEvt)
         CaptureMouse();
 
     if (!HasFocus())
+    {
         GrabFocus();
+        GetFocus();
+    }
 
     EditView* pEditView = GetEditView();
     return pEditView && pEditView->MouseButtonDown(rMEvt);
diff --git a/svx/source/inc/findtextfield.hxx b/svx/source/inc/findtextfield.hxx
index 3e5de483c91a..982b70f69b59 100644
--- a/svx/source/inc/findtextfield.hxx
+++ b/svx/source/inc/findtextfield.hxx
@@ -37,8 +37,6 @@ public:
 
     virtual ~FindTextFieldControl() override;
 
-    virtual void GetFocus() override;
-
     void Remember_Impl(const OUString& rStr);
     void SetTextToSelected_Impl();
 
diff --git a/svx/source/tbxctrls/tbunosearchcontrollers.cxx b/svx/source/tbxctrls/tbunosearchcontrollers.cxx
index a1860eea7126..76c7d3f294be 100644
--- a/svx/source/tbxctrls/tbunosearchcontrollers.cxx
+++ b/svx/source/tbxctrls/tbunosearchcontrollers.cxx
@@ -405,12 +405,6 @@ void FindTextFieldControl::set_entry_message_type(weld::EntryMessageType eType)
     m_xWidget->set_entry_message_type(eType);
 }
 
-void FindTextFieldControl::GetFocus()
-{
-    InterimItemWindow::GetFocus();
-    FocusIn();
-}
-
 namespace {
 
 class SearchToolbarControllersManager
diff --git a/sw/source/ui/dbui/createaddresslistdialog.cxx b/sw/source/ui/dbui/createaddresslistdialog.cxx
index e910fc476a61..969bff35d7ad 100644
--- a/sw/source/ui/dbui/createaddresslistdialog.cxx
+++ b/sw/source/ui/dbui/createaddresslistdialog.cxx
@@ -206,7 +206,6 @@ void SwAddressControl_Impl::SetCursorTo(std::size_t nElement)
     {
         weld::Entry* pEdit = m_aLines[nElement]->m_xEntry.get();
         pEdit->grab_focus();
-        GotFocusHdl_Impl(*pEdit);
     }
 
 }
diff --git a/sw/source/uibase/inc/conttree.hxx b/sw/source/uibase/inc/conttree.hxx
index 741478f02d74..107cc3bc6f90 100644
--- a/sw/source/uibase/inc/conttree.hxx
+++ b/sw/source/uibase/inc/conttree.hxx
@@ -249,7 +249,6 @@ public:
     void grab_focus()
     {
         m_xTreeView->grab_focus();
-        FocusHdl(*m_xTreeView);
     }
 
     OUString get_selected_text() const
@@ -345,7 +344,6 @@ public:
     void grab_focus()
     {
         m_xTreeView->grab_focus();
-        FocusInHdl(*m_xTreeView);
     }
 
     void set_selection_mode(SelectionMode eMode)
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 27dff1370ade..7daa582cd565 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -258,12 +258,7 @@ void SalInstanceWidget::set_can_focus(bool bCanFocus)
     m_xWidget->SetStyle(nStyle);
 }
 
-void SalInstanceWidget::grab_focus()
-{
-    disable_notify_events();
-    m_xWidget->GrabFocus();
-    enable_notify_events();
-}
+void SalInstanceWidget::grab_focus() { m_xWidget->GrabFocus(); }
 
 bool SalInstanceWidget::has_focus() const { return m_xWidget->HasFocus(); }
 
@@ -560,8 +555,6 @@ SystemWindow* SalInstanceWidget::getSystemWindow() { return m_xWidget->GetSystem
 
 void SalInstanceWidget::HandleEventListener(VclWindowEvent& rEvent)
 {
-    if (notify_events_disabled())
-        return;
     if (rEvent.GetId() == VclEventId::WindowGetFocus)
         m_aFocusInHdl.Call(*this);
     else if (rEvent.GetId() == VclEventId::WindowLoseFocus)
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 6b3c5339019f..8254fdbd0578 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -2542,9 +2542,9 @@ public:
 
     virtual void grab_focus() override
     {
-        disable_notify_events();
+        if (has_focus())
+            return;
         gtk_widget_grab_focus(m_pWidget);
-        enable_notify_events();
     }
 
     virtual bool has_focus() const override
@@ -8868,7 +8868,8 @@ public:
 
     virtual void grab_focus() override
     {
-        disable_notify_events();
+        if (has_focus())
+            return;
         gtk_widget_grab_focus(m_pWidget);
         bool bHasFocusChild = gtk_container_get_focus_child(GTK_CONTAINER(m_pWidget));
         if (!bHasFocusChild)
@@ -8881,7 +8882,6 @@ public:
         }
         if (bHasFocusChild)
             gtk_widget_child_focus(gtk_container_get_focus_child(GTK_CONTAINER(m_pWidget)), GTK_DIR_TAB_FORWARD);
-        enable_notify_events();
     }
 
     virtual ~GtkInstanceToolbar() override
@@ -9515,9 +9515,9 @@ public:
 
     virtual void grab_focus() override
     {
-        disable_notify_events();
+        if (has_focus())
+            return;
         gtk_entry_grab_focus_without_selecting(m_pEntry);
-        enable_notify_events();
     }
 
     virtual void set_alignment(TxtAlign eXAlign) override
@@ -15849,12 +15849,12 @@ public:
 
     virtual void grab_focus() override
     {
-        disable_notify_events();
+        if (has_focus())
+            return;
         if (m_pEntry)
             gtk_widget_grab_focus(m_pEntry);
         else
             gtk_widget_grab_focus(m_pToggleButton);
-        enable_notify_events();
     }
 
     virtual bool has_focus() const override
commit d8bc16bd5119a9921955b530442f7aed1eff900b
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Thu Feb 18 14:56:01 2021 +0000
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Mon Aug 16 10:12:57 2021 +0200

    move async focus-in/focus-out workaround to known client that needs it
    
    and for the normal case process immediately. Use-case is the
    bibliography editor, modified uncommitted entry, click in browser
    column margin area to select a new row, the entry should commit its
    old contents to the old row before filling from the new row
    
    Change-Id: Ib41d96afcfa86bcd1075b9512d4cfab593afa66d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111152
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    (cherry picked from commit c56e0c791a79dc414108e1b2fbf0f7eb38657f10)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120078
    Reviewed-by: Michael Stahl <michael.stahl at allotropia.de>

diff --git a/formula/source/ui/dlg/funcutl.cxx b/formula/source/ui/dlg/funcutl.cxx
index f64b6aff9bd5..361ec4c9ebaa 100644
--- a/formula/source/ui/dlg/funcutl.cxx
+++ b/formula/source/ui/dlg/funcutl.cxx
@@ -21,6 +21,7 @@
 
 #include <formula/funcutl.hxx>
 #include <formula/IControlReferenceHandler.hxx>
+#include <vcl/svapp.hxx>
 #include "ControlHelper.hxx"
 #include "parawin.hxx"
 #include <strings.hrc>
@@ -265,9 +266,11 @@ RefEdit::RefEdit(std::unique_ptr<weld::Entry> xControl)
     , aIdle("formula RefEdit Idle")
     , pAnyRefDlg(nullptr)
     , pLabelWidget(nullptr)
+    , mpFocusInEvent(nullptr)
+    , mpFocusOutEvent(nullptr)
 {
-    xEntry->connect_focus_in(LINK(this, RefEdit, GetFocus));
-    xEntry->connect_focus_out(LINK(this, RefEdit, LoseFocus));
+    xEntry->connect_focus_in(LINK(this, RefEdit, GetFocusHdl));
+    xEntry->connect_focus_out(LINK(this, RefEdit, LoseFocusHdl));
     xEntry->connect_key_press(LINK(this, RefEdit, KeyInputHdl));
     xEntry->connect_changed(LINK(this, RefEdit, Modify));
     aIdle.SetInvokeHandler( LINK( this, RefEdit, UpdateHdl ) );
@@ -275,6 +278,10 @@ RefEdit::RefEdit(std::unique_ptr<weld::Entry> xControl)
 
 RefEdit::~RefEdit()
 {
+    if (mpFocusInEvent)
+        Application::RemoveUserEvent(mpFocusInEvent);
+    if (mpFocusOutEvent)
+        Application::RemoveUserEvent(mpFocusOutEvent);
     aIdle.ClearInvokeHandler();
     aIdle.Stop();
 }
@@ -355,22 +362,53 @@ void RefEdit::GrabFocus()
     bool bHadFocus = xEntry->has_focus();
     xEntry->grab_focus();
     if (!bHadFocus && xEntry->has_focus())
-        GetFocus(*xEntry);
+        GetFocus();
 }
 
-IMPL_LINK_NOARG(RefEdit, GetFocus, weld::Widget&, void)
+void RefEdit::GetFocus()
 {
     maGetFocusHdl.Call(*this);
     StartUpdateData();
 }
 
-IMPL_LINK_NOARG(RefEdit, LoseFocus, weld::Widget&, void)
+void RefEdit::LoseFocus()
 {
     maLoseFocusHdl.Call(*this);
     if( pAnyRefDlg )
         pAnyRefDlg->HideReference();
 }
 
+IMPL_LINK_NOARG(RefEdit, GetFocusHdl, weld::Widget&, void)
+{
+    // in e.g. function wizard RefEdits we want to select all when we get focus
+    // but in the gtk case there are pending gtk handlers which change selection
+    // after our handler, so post our focus in event to happen after those complete
+    if (mpFocusInEvent)
+        Application::RemoveUserEvent(mpFocusInEvent);
+    mpFocusInEvent = Application::PostUserEvent(LINK(this, RefEdit, AsyncFocusInHdl));
+}
+
+IMPL_LINK_NOARG(RefEdit, LoseFocusHdl, weld::Widget&, void)
+{
+    // tdf#127262 because focus in is async, focus out must not appear out
+    // of sequence to focus in
+    if (mpFocusOutEvent)
+        Application::RemoveUserEvent(mpFocusOutEvent);
+    mpFocusOutEvent = Application::PostUserEvent(LINK(this, RefEdit, AsyncFocusOutHdl));
+}
+
+IMPL_LINK_NOARG(RefEdit, AsyncFocusInHdl, void*, void)
+{
+    mpFocusInEvent = nullptr;
+    GetFocus();
+}
+
+IMPL_LINK_NOARG(RefEdit, AsyncFocusOutHdl, void*, void)
+{
+    mpFocusOutEvent = nullptr;
+    LoseFocus();
+}
+
 IMPL_LINK_NOARG(RefEdit, UpdateHdl, Timer *, void)
 {
     if( pAnyRefDlg )
diff --git a/include/formula/funcutl.hxx b/include/formula/funcutl.hxx
index 0a14e62db159..4e008181eae7 100644
--- a/include/formula/funcutl.hxx
+++ b/include/formula/funcutl.hxx
@@ -27,6 +27,7 @@
 #include <vcl/weld.hxx>
 
 class KeyEvent;
+struct ImplSVEvent;
 
 namespace formula {
 
@@ -41,6 +42,9 @@ private:
     Idle aIdle;
     IControlReferenceHandler* pAnyRefDlg; // parent dialog
     weld::Label* pLabelWidget;
+    ImplSVEvent* mpFocusInEvent;
+    ImplSVEvent* mpFocusOutEvent;
+
     Link<RefEdit&,void> maGetFocusHdl;
     Link<RefEdit&,void> maLoseFocusHdl;
     Link<RefEdit&,void> maModifyHdl;
@@ -50,10 +54,15 @@ private:
 
 protected:
     DECL_LINK(KeyInputHdl, const KeyEvent&, bool);
-    DECL_LINK(GetFocus, weld::Widget&, void);
-    DECL_LINK(LoseFocus, weld::Widget&, void);
+    DECL_LINK(GetFocusHdl, weld::Widget&, void);
+    DECL_LINK(LoseFocusHdl, weld::Widget&, void);
+    DECL_LINK(AsyncFocusInHdl, void*, void);
+    DECL_LINK(AsyncFocusOutHdl, void*, void);
     DECL_LINK(Modify, weld::Entry&, void);
 
+    void GetFocus();
+    void LoseFocus();
+
     virtual bool KeyInput(const KeyEvent& rKEvt);
 
 public:
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 7e691e458d08..6b3c5339019f 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -1943,24 +1943,12 @@ protected:
     GtkWidget* m_pMouseEventBox;
     GtkInstanceBuilder* m_pBuilder;
 
-    DECL_LINK(async_signal_focus_in, void*, void);
-    DECL_LINK(async_signal_focus_out, void*, void);
     DECL_LINK(async_drag_cancel, void*, void);
 
-    void launch_signal_focus_in()
-    {
-        // in e.g. function wizard RefEdits we want to select all when we get focus
-        // but there are pending gtk handlers which change selection after our handler
-        // post our focus in event to happen after those finish
-        if (m_pFocusInEvent)
-            Application::RemoveUserEvent(m_pFocusInEvent);
-        m_pFocusInEvent = Application::PostUserEvent(LINK(this, GtkInstanceWidget, async_signal_focus_in));
-    }
-
     static gboolean signalFocusIn(GtkWidget*, GdkEvent*, gpointer widget)
     {
         GtkInstanceWidget* pThis = static_cast<GtkInstanceWidget*>(widget);
-        pThis->launch_signal_focus_in();
+        pThis->signal_focus_in();
         return false;
     }
 
@@ -1981,20 +1969,11 @@ protected:
         return m_aMnemonicActivateHdl.Call(*this);
     }
 
-    void launch_signal_focus_out()
-    {
-        // tdf#127262 because focus in is async, focus out must not appear out
-        // of sequence to focus in
-        if (m_pFocusOutEvent)
-            Application::RemoveUserEvent(m_pFocusOutEvent);
-        m_pFocusOutEvent = Application::PostUserEvent(LINK(this, GtkInstanceWidget, async_signal_focus_out));
-    }
-
     static gboolean signalFocusOut(GtkWidget*, GdkEvent*, gpointer widget)
     {
         GtkInstanceWidget* pThis = static_cast<GtkInstanceWidget*>(widget);
         SolarMutexGuard aGuard;
-        pThis->launch_signal_focus_out();
+        pThis->signal_focus_out();
         return false;
     }
 
@@ -2089,8 +2068,6 @@ private:
     int m_nPressedButton;
     int m_nPressStartX;
     int m_nPressStartY;
-    ImplSVEvent* m_pFocusInEvent;
-    ImplSVEvent* m_pFocusOutEvent;
     ImplSVEvent* m_pDragCancelEvent;
     GtkCssProvider* m_pBgCssProvider;
     GdkDragAction m_eDragAction;
@@ -2468,8 +2445,6 @@ public:
         , m_nPressedButton(-1)
         , m_nPressStartX(-1)
         , m_nPressStartY(-1)
-        , m_pFocusInEvent(nullptr)
-        , m_pFocusOutEvent(nullptr)
         , m_pDragCancelEvent(nullptr)
         , m_pBgCssProvider(nullptr)
         , m_eDragAction(GdkDragAction(0))
@@ -3079,10 +3054,6 @@ public:
 
     virtual ~GtkInstanceWidget() override
     {
-        if (m_pFocusInEvent)
-            Application::RemoveUserEvent(m_pFocusInEvent);
-        if (m_pFocusOutEvent)
-            Application::RemoveUserEvent(m_pFocusOutEvent);
         if (m_pDragCancelEvent)
             Application::RemoveUserEvent(m_pDragCancelEvent);
         if (m_nDragMotionSignalId)
@@ -3256,18 +3227,6 @@ public:
 
 }
 
-IMPL_LINK_NOARG(GtkInstanceWidget, async_signal_focus_in, void*, void)
-{
-    m_pFocusInEvent = nullptr;
-    signal_focus_in();
-}
-
-IMPL_LINK_NOARG(GtkInstanceWidget, async_signal_focus_out, void*, void)
-{
-    m_pFocusOutEvent = nullptr;
-    signal_focus_out();
-}
-
 IMPL_LINK(GtkInstanceWidget, async_drag_cancel, void*, arg, void)
 {
     m_pDragCancelEvent = nullptr;
@@ -15877,15 +15836,15 @@ public:
     virtual void connect_focus_in(const Link<Widget&, void>& rLink) override
     {
         if (!m_nToggleFocusInSignalId)
-            m_nToggleFocusInSignalId = g_signal_connect(m_pToggleButton, "focus-in-event", G_CALLBACK(signalFocusIn), this);
-        weld::Widget::connect_focus_in(rLink);
+            m_nToggleFocusInSignalId = g_signal_connect_after(m_pToggleButton, "focus-in-event", G_CALLBACK(signalFocusIn), this);
+        GtkInstanceContainer::connect_focus_in(rLink);
     }
 
     virtual void connect_focus_out(const Link<Widget&, void>& rLink) override
     {
         if (!m_nToggleFocusOutSignalId)
-            m_nToggleFocusOutSignalId = g_signal_connect(m_pToggleButton, "focus-out-event", G_CALLBACK(signalFocusOut), this);
-        weld::Widget::connect_focus_out(rLink);
+            m_nToggleFocusOutSignalId = g_signal_connect_after(m_pToggleButton, "focus-out-event", G_CALLBACK(signalFocusOut), this);
+        GtkInstanceContainer::connect_focus_out(rLink);
     }
 
     virtual void grab_focus() override
commit ca91ac10c8ffb77adca797aa623ec7b35dbcc417
Author:     Thorsten Behrens <thorsten.behrens at allotropia.de>
AuthorDate: Tue Aug 3 18:32:16 2021 +0200
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Mon Aug 16 10:12:57 2021 +0200

    Always provision PATH the cygwin way under Windows
    
    With PATH essentially serving the role of LD_LIBRARY_PATH under
    Windows, there was the notion that this needs to be provided in
    Windows notation, for win32 gnumake.
    
    That was perhaps once true; currently we're always evaluating PATH
    inside a shell, not the Makefile. So this since a while only worked
    accidentally, due to cygwin transparently converting between DOS and
    UNIX PATH vars. It did break though for corner-cases, e.g.
    SRCDIR!=BUILDDIR, and BUILDDIR e.g. D:\FOO.
    
    With that simplification, also GNUMAKE_WIN_NATIVE can go.
    
    Change-Id: Ied5a0443dc70e7dc629c0c0620e6ce911d9a73d0
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119941
    Tested-by: Jenkins
    Reviewed-by: Thorsten Behrens <thorsten.behrens at allotropia.de>
    (cherry picked from commit da36d655608c3da39fd79d95974e1f7404a27aa0)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119977
    Reviewed-by: Michael Stahl <michael.stahl at allotropia.de>

diff --git a/config_host.mk.in b/config_host.mk.in
index 42f4511a62e8..29626ec9fc42 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -243,7 +243,6 @@ export GNUTLS_CFLAGS=$(gb_SPACE)@GNUTLS_CFLAGS@
 export GNUTLS_LIBS=$(gb_SPACE)@GNUTLS_LIBS@
 export PARALLELISM?=@PARALLELISM@
 @x_GNUCP@ export GNUCOPY=@GNUCP@
-export GNUMAKE_WIN_NATIVE=@GNUMAKE_WIN_NATIVE@
 export GNUPATCH=@GNUPATCH@
 export GNUTAR=@GNUTAR@
 export GOBJECT_CFLAGS=$(gb_SPACE)@GOBJECT_CFLAGS@
diff --git a/configure.ac b/configure.ac
index 2a1b09e09db6..5d991218cef4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5915,7 +5915,6 @@ else
 fi
 rm -rf $TESTGMAKEFILEFUNC
 AC_SUBST(HAVE_GNUMAKE_FILE_FUNC)
-AC_SUBST(GNUMAKE_WIN_NATIVE)
 
 _make_ver_check=`$GNUMAKE --version | grep "Built for Windows"`
 STALE_MAKE=
diff --git a/solenv/gbuild/platform/com_MSC_class.mk b/solenv/gbuild/platform/com_MSC_class.mk
index 4564bc65cdde..505191069005 100644
--- a/solenv/gbuild/platform/com_MSC_class.mk
+++ b/solenv/gbuild/platform/com_MSC_class.mk
@@ -469,11 +469,7 @@ endef
 gb_CppunitTest_UNITTESTFAILED := $(GBUILDDIR)/platform/unittest-failed-WNT.sh
 gb_CppunitTest_PYTHONDEPS := $(call gb_Package_get_target,python3)
 gb_CppunitTest_DEFS := -D_DLL
-ifeq ($(GNUMAKE_WIN_NATIVE),TRUE)
-gb_CppunitTest_CPPTESTPRECOMMAND := $(call gb_Helper_prepend_ld_path,$(shell cygpath -w $(gb_Library_DLLDIR));$(shell cygpath -w $(WORKDIR)/UnpackedTarball/cppunit/src/cppunit/$(if $(MSVC_USE_DEBUG_RUNTIME),DebugDll,ReleaseDll)))
-else
 gb_CppunitTest_CPPTESTPRECOMMAND := $(call gb_Helper_prepend_ld_path,$(shell cygpath -u $(gb_Library_DLLDIR)):$(shell cygpath -u $(WORKDIR)/UnpackedTarball/cppunit/src/cppunit/$(if $(MSVC_USE_DEBUG_RUNTIME),DebugDll,ReleaseDll)))
-endif
 gb_CppunitTest_get_filename = test_$(1).dll
 gb_CppunitTest_get_ilibfilename = itest_$(1).lib
 
diff --git a/solenv/gbuild/platform/com_MSC_defs.mk b/solenv/gbuild/platform/com_MSC_defs.mk
index de856cf79cc6..90922db6b0d6 100644
--- a/solenv/gbuild/platform/com_MSC_defs.mk
+++ b/solenv/gbuild/platform/com_MSC_defs.mk
@@ -344,21 +344,15 @@ endif
 
 # Helper class
 
-ifeq ($(GNUMAKE_WIN_NATIVE),TRUE)
-gb_MAKE_CYGPATH := -w
-else
-gb_MAKE_CYGPATH := -u
-endif
-
-gb_Helper_set_ld_path := PATH="$(shell cygpath $(gb_MAKE_CYGPATH) $(INSTDIR_FOR_BUILD)/$(LIBO_URE_LIB_FOLDER));$(shell cygpath $(gb_MAKE_CYGPATH) $(INSTDIR_FOR_BUILD)/$(LIBO_BIN_FOLDER));$$PATH"
+gb_Helper_set_ld_path := PATH="$(shell cygpath -u $(INSTDIR_FOR_BUILD)/$(LIBO_URE_LIB_FOLDER)):$(shell cygpath -u $(INSTDIR_FOR_BUILD)/$(LIBO_BIN_FOLDER)):$$PATH"
 
 define gb_Helper_prepend_ld_path
-PATH="$(shell cygpath $(gb_MAKE_CYGPATH) $(INSTDIR_FOR_BUILD)/$(LIBO_URE_LIB_FOLDER));$(shell cygpath $(gb_MAKE_CYGPATH) $(INSTDIR_FOR_BUILD)/$(LIBO_BIN_FOLDER));$(1);$$PATH"
+PATH="$(shell cygpath -u $(INSTDIR_FOR_BUILD)/$(LIBO_URE_LIB_FOLDER)):$(shell cygpath -u $(INSTDIR_FOR_BUILD)/$(LIBO_BIN_FOLDER)):$(1):$$PATH"
 endef
 
 # $(1): one directory pathname to append to the ld path
 define gb_Helper_extend_ld_path
-$(gb_Helper_set_ld_path)';$(shell cygpath $(gb_MAKE_CYGPATH) $(1))'
+$(gb_Helper_set_ld_path)':$(shell cygpath -u $(1))'
 endef
 
 # common macros to build GPG related libraries
commit 83dd7efd8f6637d8f6a716c09badde42717912b5
Author:     Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
AuthorDate: Tue Aug 10 12:42:56 2021 +0200
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Mon Aug 16 10:12:56 2021 +0200

    update credits
    
    Change-Id: Iad0175ccc7a1ee903812f34bcacb86e3f90e58b3
    (cherry picked from commit 555366667c9a62f366230843c1727b0643a06b1a)

diff --git a/readlicense_oo/license/CREDITS.fodt b/readlicense_oo/license/CREDITS.fodt
index 2ba37f5aedc4..4cf5c381c1f6 100644
--- a/readlicense_oo/license/CREDITS.fodt
+++ b/readlicense_oo/license/CREDITS.fodt
@@ -1,13 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <office:document xmlns:officeooo="http://openoffice.org/2009/office" xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rpt="http://openoffice.org/2005/report" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns
 :config:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="ur
 n:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:xforms="http://www.w3.org/2002/xforms" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text">
- <office:meta><dc:title>Credits » LibreOffice</dc:title><meta:keyword>Credits</meta:keyword><meta:keyword>contributors</meta:keyword><meta:keyword>coders</meta:keyword><meta:keyword>developers</meta:keyword><dc:description>Credits for the LibreOffice development/coding.</dc:description><meta:generator>LibreOffice/7.1.3.2$Linux_X86_64 LibreOffice_project/47f78053abe362b9384784d31a6e56f8511eb1c1</meta:generator><dc:date>2012-02-20T22:17:18.060000000</dc:date><meta:editing-duration>PT14M12S</meta:editing-duration><meta:editing-cycles>3</meta:editing-cycles><meta:document-statistic meta:table-count="5" meta:image-count="1" meta:object-count="0" meta:page-count="2" meta:paragraph-count="4410" meta:word-count="16311" meta:character-count="117621" meta:non-whitespace-character-count="103071"/><meta:user-defined meta:name="google-site-verification">JUebjoxEpqXoQcpltWRTwzBZEEHtch3wApdhgiQPFiA</meta:user-defined></office:meta>
+ <office:meta><dc:title>Credits » LibreOffice</dc:title><meta:keyword>Credits</meta:keyword><meta:keyword>contributors</meta:keyword><meta:keyword>coders</meta:keyword><meta:keyword>developers</meta:keyword><dc:description>Credits for the LibreOffice development/coding.</dc:description><meta:generator>LibreOffice/7.1.5.2$Linux_X86_64 LibreOffice_project/85f04e9f809797b8199d13c421bd8a2b025d52b5</meta:generator><dc:date>2012-02-20T22:17:18.060000000</dc:date><meta:editing-duration>PT14M12S</meta:editing-duration><meta:editing-cycles>3</meta:editing-cycles><meta:document-statistic meta:table-count="5" meta:image-count="1" meta:object-count="0" meta:page-count="2" meta:paragraph-count="4420" meta:word-count="16345" meta:character-count="117887" meta:non-whitespace-character-count="103307"/><meta:user-defined meta:name="google-site-verification">JUebjoxEpqXoQcpltWRTwzBZEEHtch3wApdhgiQPFiA</meta:user-defined></office:meta>
  <office:settings>
   <config:config-item-set config:name="ooo:view-settings">
-   <config:config-item config:name="ViewAreaTop" config:type="long">512</config:config-item>
+   <config:config-item config:name="ViewAreaTop" config:type="long">531</config:config-item>
    <config:config-item config:name="ViewAreaLeft" config:type="long">501</config:config-item>
    <config:config-item config:name="ViewAreaWidth" config:type="long">48588</config:config-item>
-   <config:config-item config:name="ViewAreaHeight" config:type="long">26450</config:config-item>
+   <config:config-item config:name="ViewAreaHeight" config:type="long">27360</config:config-item>
    <config:config-item config:name="ShowRedlineChanges" config:type="boolean">true</config:config-item>
    <config:config-item config:name="InBrowseMode" config:type="boolean">true</config:config-item>
    <config:config-item-map-indexed config:name="Views">
@@ -16,9 +16,9 @@
      <config:config-item config:name="ViewLeft" config:type="long">3577</config:config-item>
      <config:config-item config:name="ViewTop" config:type="long">3434</config:config-item>
      <config:config-item config:name="VisibleLeft" config:type="long">501</config:config-item>
-     <config:config-item config:name="VisibleTop" config:type="long">512</config:config-item>
+     <config:config-item config:name="VisibleTop" config:type="long">531</config:config-item>
      <config:config-item config:name="VisibleRight" config:type="long">49087</config:config-item>
-     <config:config-item config:name="VisibleBottom" config:type="long">26959</config:config-item>
+     <config:config-item config:name="VisibleBottom" config:type="long">27889</config:config-item>
      <config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
      <config:config-item config:name="ViewLayoutColumns" config:type="short">0</config:config-item>
      <config:config-item config:name="ViewLayoutBookMode" config:type="boolean">false</config:config-item>
@@ -95,7 +95,7 @@
    </config:config-item-map-indexed>
    <config:config-item config:name="PrinterSetup" config:type="base64Binary"/>
    <config:config-item config:name="AddParaTableSpacingAtStart" config:type="boolean">true</config:config-item>
-   <config:config-item config:name="Rsid" config:type="int">10251881</config:config-item>
+   <config:config-item config:name="Rsid" config:type="int">10252920</config:config-item>
    <config:config-item config:name="EmbeddedDatabaseName" config:type="string"/>
    <config:config-item config:name="FieldAutoUpdate" config:type="boolean">true</config:config-item>
    <config:config-item config:name="OutlineLevelYieldsNumbering" config:type="boolean">false</config:config-item>
@@ -162,7 +162,7 @@
  <office:styles>
   <style:default-style style:family="graphic">
    <style:graphic-properties svg:stroke-color="#3465a4" draw:fill-color="#729fcf" fo:wrap-option="no-wrap" draw:shadow-offset-x="0.3cm" draw:shadow-offset-y="0.3cm" draw:start-line-spacing-horizontal="0.283cm" draw:start-line-spacing-vertical="0.283cm" draw:end-line-spacing-horizontal="0.283cm" draw:end-line-spacing-vertical="0.283cm" style:flow-with-text="true"/>
-   <style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" style:font-independent-line-spacing="false">
+   <style:paragraph-properties style:text-autospace="ideograph-alpha" style:line-break="strict" style:writing-mode="lr-tb" style:font-independent-line-spacing="false">
     <style:tab-stops/>
    </style:paragraph-properties>
    <style:text-properties style:use-window-font-color="true" loext:opacity="0%" style:font-name="Thorndale AMT" fo:font-size="12pt" fo:language="hu" fo:country="HU" style:letter-kerning="true" style:font-name-asian="SimSun" style:font-size-asian="12pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="Mangal" style:font-size-complex="12pt" style:language-complex="hi" style:country-complex="IN"/>
@@ -340,19 +340,19 @@
  </office:styles>
  <office:automatic-styles>
   <style:style style:name="Tabelle1" style:family="table">
-   <style:table-properties style:width="25.675cm" table:align="left"/>
+   <style:table-properties style:width="25.652cm" table:align="left"/>
   </style:style>
   <style:style style:name="Tabelle1.A" style:family="table-column">
-   <style:table-column-properties style:column-width="5.422cm"/>
+   <style:table-column-properties style:column-width="6.705cm"/>
   </style:style>
   <style:style style:name="Tabelle1.B" style:family="table-column">
-   <style:table-column-properties style:column-width="6.682cm"/>
+   <style:table-column-properties style:column-width="6.098cm"/>
   </style:style>
   <style:style style:name="Tabelle1.C" style:family="table-column">
-   <style:table-column-properties style:column-width="6.68cm"/>
+   <style:table-column-properties style:column-width="6.823cm"/>
   </style:style>
   <style:style style:name="Tabelle1.D" style:family="table-column">
-   <style:table-column-properties style:column-width="6.892cm"/>
+   <style:table-column-properties style:column-width="6.027cm"/>
   </style:style>
   <style:style style:name="Tabelle1.A1" style:family="table-cell">
    <style:table-cell-properties style:vertical-align="middle" fo:padding="0.049cm" fo:border="none"/>
@@ -418,24 +418,24 @@
    <style:table-cell-properties fo:padding="0.049cm" fo:border="none"/>
   </style:style>
   <style:style style:name="Tabelle5" style:family="table">
-   <style:table-properties style:width="32.494cm" table:align="left"/>
+   <style:table-properties style:width="31.492cm" table:align="left"/>
   </style:style>
   <style:style style:name="Tabelle5.A" style:family="table-column">
-   <style:table-column-properties style:column-width="11.779cm"/>
+   <style:table-column-properties style:column-width="6.657cm"/>
   </style:style>
   <style:style style:name="Tabelle5.B" style:family="table-column">
-   <style:table-column-properties style:column-width="7.938cm"/>
+   <style:table-column-properties style:column-width="6.262cm"/>
   </style:style>
   <style:style style:name="Tabelle5.C" style:family="table-column">
-   <style:table-column-properties style:column-width="6.424cm"/>
+   <style:table-column-properties style:column-width="11.756cm"/>
   </style:style>
   <style:style style:name="Tabelle5.D" style:family="table-column">
-   <style:table-column-properties style:column-width="6.354cm"/>
+   <style:table-column-properties style:column-width="6.817cm"/>
   </style:style>
   <style:style style:name="Tabelle5.A1" style:family="table-cell">
    <style:table-cell-properties style:vertical-align="middle" fo:padding="0.049cm" fo:border="none"/>
   </style:style>
-  <style:style style:name="Tabelle5.B669" style:family="table-cell">
+  <style:style style:name="Tabelle5.D670" style:family="table-cell">
    <style:table-cell-properties fo:padding="0.049cm" fo:border="none"/>
   </style:style>
   <style:style style:name="P1" style:family="paragraph" style:parent-style-name="Table_20_Contents">
@@ -1074,7 +1074,7 @@
    </draw:frame>
    <text:section text:style-name="Sect1" text:name="BgContainer">
     <text:p text:style-name="P16">Credits</text:p>
-    <text:p text:style-name="Text_20_body">1686 individuals contributed to OpenOffice.org (and whose contributions were imported into LibreOffice) or LibreOffice until 2021-07-16 16:03:49.</text:p>
+    <text:p text:style-name="Text_20_body">1690 individuals contributed to OpenOffice.org (and whose contributions were imported into LibreOffice) or LibreOffice until 2021-08-06 11:42:16.</text:p>
     <text:p text:style-name="Text_20_body"><text:span text:style-name="T1">*</text:span> marks developers whose first contributions happened after 2010-09-28.</text:p>
     <text:h text:style-name="Heading_20_2" text:outline-level="2">Developers committing code since 2010-09-28</text:h>
     <table:table table:name="Tabelle1" table:style-name="Tabelle1">
@@ -1082,7 +1082,7 @@
      <table:table-column table:style-name="Tabelle1.B"/>
      <table:table-column table:style-name="Tabelle1.C"/>
      <table:table-column table:style-name="Tabelle1.D"/>
-     <table:table-row table:style-name="TableLine134809184">
+     <table:table-row table:style-name="TableLine244633328">
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Ruediger Timm<text:line-break/>Commits: 82464<text:line-break/>Joined: 2000-10-10</text:p>
       </table:table-cell>
@@ -1090,13 +1090,13 @@
        <text:p text:style-name="Table_20_Contents">Kurt Zenker<text:line-break/>Commits: 31752<text:line-break/>Joined: 2000-09-25</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Caolán McNamara<text:line-break/>Commits: 31226<text:line-break/>Joined: 2000-10-10</text:p>
+       <text:p text:style-name="Table_20_Contents">Caolán McNamara<text:line-break/>Commits: 31314<text:line-break/>Joined: 2000-10-10</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Oliver Bolte<text:line-break/>Commits: 31008<text:line-break/>Joined: 2000-09-19</text:p>
       </table:table-cell>
      </table:table-row>
-     <table:table-row table:style-name="TableLine134809184">
+     <table:table-row table:style-name="TableLine244633328">
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Jens-Heiner Rechtien [hr]<text:line-break/>Commits: 28805<text:line-break/>Joined: 2000-09-18</text:p>
       </table:table-cell>
@@ -1104,27 +1104,27 @@
        <text:p text:style-name="Table_20_Contents">Vladimir Glazunov<text:line-break/>Commits: 25434<text:line-break/>Joined: 2000-12-04</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Stephan Bergmann<text:line-break/>Commits: 19135<text:line-break/>Joined: 2000-10-04</text:p>
+       <text:p text:style-name="Table_20_Contents">Stephan Bergmann<text:line-break/>Commits: 19177<text:line-break/>Joined: 2000-10-04</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Noel Grandin<text:line-break/>Commits: 14371<text:line-break/>Joined: <text:span text:style-name="T2">2011-12-12</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Noel Grandin<text:line-break/>Commits: 14660<text:line-break/>Joined: <text:span text:style-name="T2">2011-12-12</text:span></text:p>
       </table:table-cell>
      </table:table-row>
-     <table:table-row table:style-name="TableLine134809184">
+     <table:table-row table:style-name="TableLine244633328">
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Ivo Hinkelmann<text:line-break/>Commits: 9480<text:line-break/>Joined: 2002-09-09</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Tor Lillqvist<text:line-break/>Commits: 8990<text:line-break/>Joined: 2010-03-23</text:p>
+       <text:p text:style-name="Table_20_Contents">Tor Lillqvist<text:line-break/>Commits: 8992<text:line-break/>Joined: 2010-03-23</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Miklos Vajna<text:line-break/>Commits: 8532<text:line-break/>Joined: 2010-07-29</text:p>
+       <text:p text:style-name="Table_20_Contents">Miklos Vajna<text:line-break/>Commits: 8567<text:line-break/>Joined: 2010-07-29</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Michael Stahl<text:line-break/>Commits: 7707<text:line-break/>Joined: 2008-06-16</text:p>
+       <text:p text:style-name="Table_20_Contents">Michael Stahl<text:line-break/>Commits: 7710<text:line-break/>Joined: 2008-06-16</text:p>
       </table:table-cell>
      </table:table-row>
-     <table:table-row table:style-name="TableLine134809184">
+     <table:table-row table:style-name="TableLine244633328">
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Kohei Yoshida<text:line-break/>Commits: 5571<text:line-break/>Joined: 2009-06-19</text:p>
       </table:table-cell>
@@ -1135,29 +1135,29 @@
        <text:p text:style-name="Table_20_Contents">Frank Schoenheit [fs]<text:line-break/>Commits: 5008<text:line-break/>Joined: 2000-09-19</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Eike Rathke<text:line-break/>Commits: 4925<text:line-break/>Joined: 2000-10-11</text:p>
+       <text:p text:style-name="Table_20_Contents">Eike Rathke<text:line-break/>Commits: 4941<text:line-break/>Joined: 2000-10-11</text:p>
       </table:table-cell>
      </table:table-row>
-     <table:table-row table:style-name="TableLine134809184">
+     <table:table-row table:style-name="TableLine244633328">
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">David Tardon<text:line-break/>Commits: 3646<text:line-break/>Joined: 2009-11-12</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Julien Nabet<text:line-break/>Commits: 3129<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-04</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Julien Nabet<text:line-break/>Commits: 3147<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-04</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Hans-Joachim Lankenau<text:line-break/>Commits: 3007<text:line-break/>Joined: 2000-09-19</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Ocke Janssen [oj]<text:line-break/>Commits: 2850<text:line-break/>Joined: 2000-09-20</text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tomaž Vajngerl<text:line-break/>Commits: 2866<text:line-break/>Joined: <text:span text:style-name="T2">2012-06-02</text:span></text:p>
       </table:table-cell>
      </table:table-row>
-     <table:table-row table:style-name="TableLine134809184">
+     <table:table-row table:style-name="TableLine244633328">
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Tomaž Vajngerl<text:line-break/>Commits: 2849<text:line-break/>Joined: <text:span text:style-name="T2">2012-06-02</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andrea Gelmini<text:line-break/>Commits: 2862<text:line-break/>Joined: <text:span text:style-name="T2">2014-10-30</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andrea Gelmini<text:line-break/>Commits: 2842<text:line-break/>Joined: <text:span text:style-name="T2">2014-10-30</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents">Ocke Janssen [oj]<text:line-break/>Commits: 2850<text:line-break/>Joined: 2000-09-20</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Jan Holesovsky<text:line-break/>Commits: 2665<text:line-break/>Joined: 2009-06-23</text:p>
@@ -1166,21 +1166,21 @@
        <text:p text:style-name="Table_20_Contents">Mathias Bauer<text:line-break/>Commits: 2580<text:line-break/>Joined: 2000-09-20</text:p>
       </table:table-cell>
      </table:table-row>
-     <table:table-row table:style-name="TableLine134809184">
+     <table:table-row table:style-name="TableLine244633328">
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Oliver Specht<text:line-break/>Commits: 2549<text:line-break/>Joined: 2000-09-21</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Luboš Luňák<text:line-break/>Commits: 2496<text:line-break/>Joined: 2010-09-21</text:p>
+       <text:p text:style-name="Table_20_Contents">Luboš Luňák<text:line-break/>Commits: 2505<text:line-break/>Joined: 2010-09-21</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Michael Meeks<text:line-break/>Commits: 2461<text:line-break/>Joined: 2004-08-05</text:p>
+       <text:p text:style-name="Table_20_Contents">Michael Meeks<text:line-break/>Commits: 2462<text:line-break/>Joined: 2004-08-05</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Bjoern Michaelsen<text:line-break/>Commits: 2446<text:line-break/>Joined: 2009-10-14</text:p>
+       <text:p text:style-name="Table_20_Contents">Bjoern Michaelsen<text:line-break/>Commits: 2447<text:line-break/>Joined: 2009-10-14</text:p>
       </table:table-cell>
      </table:table-row>
-     <table:table-row table:style-name="TableLine134809184">
+     <table:table-row table:style-name="TableLine244633328">
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Norbert Thiebaud<text:line-break/>Commits: 2176<text:line-break/>Joined: <text:span text:style-name="T2">2010-09-29</text:span></text:p>
       </table:table-cell>
@@ -1194,26 +1194,26 @@
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andras Timar<text:line-break/>Commits: 1953<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-02</text:span></text:p>
       </table:table-cell>
      </table:table-row>
-     <table:table-row table:style-name="TableLine134809184">
+     <table:table-row table:style-name="TableLine244633328">
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Christian Lippka<text:line-break/>Commits: 1805<text:line-break/>Joined: 2000-09-25</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mike Kaganski<text:line-break/>Commits: 1723<text:line-break/>Joined: <text:span text:style-name="T2">2015-04-26</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Mike Kaganski<text:line-break/>Commits: 1761<text:line-break/>Joined: <text:span text:style-name="T2">2015-04-26</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Matúš Kukan<text:line-break/>Commits: 1712<text:line-break/>Joined: <text:span text:style-name="T2">2011-04-06</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Armin Le Grand (Allotropia)<text:line-break/>Commits: 1499<text:line-break/>Joined: 2000-09-25</text:p>
+       <text:p text:style-name="Table_20_Contents">Armin Le Grand (Allotropia)<text:line-break/>Commits: 1501<text:line-break/>Joined: 2000-09-25</text:p>
       </table:table-cell>
      </table:table-row>
-     <table:table-row table:style-name="TableLine134809184">
+     <table:table-row table:style-name="TableLine244633328">
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Takeshi Abe<text:line-break/>Commits: 1486<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-08</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Xisco Fauli<text:line-break/>Commits: 1488<text:line-break/>Joined: <text:span text:style-name="T2">2011-02-06</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Xisco Fauli<text:line-break/>Commits: 1481<text:line-break/>Joined: <text:span text:style-name="T2">2011-02-06</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Takeshi Abe<text:line-break/>Commits: 1486<text:line-break/>Joined: <text:span text:style-name="T2">2010-11-08</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Matteo Casalin<text:line-break/>Commits: 1476<text:line-break/>Joined: <text:span text:style-name="T2">2011-11-13</text:span></text:p>
@@ -1222,9 +1222,9 @@
        <text:p text:style-name="Table_20_Contents">Thorsten Behrens<text:line-break/>Commits: 1440<text:line-break/>Joined: 2001-04-25</text:p>
       </table:table-cell>
      </table:table-row>
-     <table:table-row table:style-name="TableLine134809184">
+     <table:table-row table:style-name="TableLine244633328">
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Olivier Hallot<text:line-break/>Commits: 1352<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-25</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Olivier Hallot<text:line-break/>Commits: 1363<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-25</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Fridrich Štrba<text:line-break/>Commits: 1338<text:line-break/>Joined: 2007-02-22</text:p>
@@ -1236,7 +1236,7 @@
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Chris Sherlock<text:line-break/>Commits: 1300<text:line-break/>Joined: <text:span text:style-name="T2">2013-02-25</text:span></text:p>
       </table:table-cell>
      </table:table-row>
-     <table:table-row table:style-name="TableLine134809184">
+     <table:table-row table:style-name="TableLine244633328">
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Niklas Nebel<text:line-break/>Commits: 1296<text:line-break/>Joined: 2000-09-19</text:p>
       </table:table-cell>
@@ -1250,21 +1250,21 @@
        <text:p text:style-name="Table_20_Contents">Daniel Rentz [dr]<text:line-break/>Commits: 1206<text:line-break/>Joined: 2000-09-28</text:p>
       </table:table-cell>
      </table:table-row>
-     <table:table-row table:style-name="TableLine134809184">
+     <table:table-row table:style-name="TableLine244633328">
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Lionel Elie Mamane<text:line-break/>Commits: 1051<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-15</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gabor Kelemen<text:line-break/>Commits: 1029<text:line-break/>Joined: <text:span text:style-name="T2">2013-06-18</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Gabor Kelemen<text:line-break/>Commits: 1030<text:line-break/>Joined: <text:span text:style-name="T2">2013-06-18</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jan-Marek Glogowski<text:line-break/>Commits: 990<text:line-break/>Joined: <text:span text:style-name="T2">2013-11-14</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jan-Marek Glogowski<text:line-break/>Commits: 996<text:line-break/>Joined: <text:span text:style-name="T2">2013-11-14</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Samuel Mehrbrodt<text:line-break/>Commits: 984<text:line-break/>Joined: <text:span text:style-name="T2">2011-06-08</text:span></text:p>
       </table:table-cell>
      </table:table-row>
-     <table:table-row table:style-name="TableLine134809184">
+     <table:table-row table:style-name="TableLine244633328">
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Petr Mladek<text:line-break/>Commits: 958<text:line-break/>Joined: 2006-10-03</text:p>
       </table:table-cell>
@@ -1272,18 +1272,18 @@
        <text:p text:style-name="Table_20_Contents">Noel Power<text:line-break/>Commits: 950<text:line-break/>Joined: 2002-09-24</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Christian Lohmaier<text:line-break/>Commits: 926<text:line-break/>Joined: 2008-06-01</text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Szymon Kłos<text:line-break/>Commits: 932<text:line-break/>Joined: <text:span text:style-name="T2">2014-03-22</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Kai Ahrens<text:line-break/>Commits: 909<text:line-break/>Joined: 2000-09-21</text:p>
+       <text:p text:style-name="Table_20_Contents">Christian Lohmaier<text:line-break/>Commits: 931<text:line-break/>Joined: 2008-06-01</text:p>
       </table:table-cell>
      </table:table-row>
-     <table:table-row table:style-name="TableLine134809184">
+     <table:table-row table:style-name="TableLine244633328">
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Henning Brinkmann<text:line-break/>Commits: 899<text:line-break/>Joined: 2002-08-14</text:p>
+       <text:p text:style-name="Table_20_Contents">Kai Ahrens<text:line-break/>Commits: 909<text:line-break/>Joined: 2000-09-21</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Szymon Kłos<text:line-break/>Commits: 890<text:line-break/>Joined: <text:span text:style-name="T2">2014-03-22</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents">Henning Brinkmann<text:line-break/>Commits: 899<text:line-break/>Joined: 2002-08-14</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Cédric Bosdonnat<text:line-break/>Commits: 882<text:line-break/>Joined: 2009-11-16</text:p>
@@ -1292,7 +1292,7 @@
        <text:p text:style-name="Table_20_Contents">Malte Timmermann [mt]<text:line-break/>Commits: 864<text:line-break/>Joined: 2000-10-10</text:p>
       </table:table-cell>
      </table:table-row>
-     <table:table-row table:style-name="TableLine134809184">
+     <table:table-row table:style-name="TableLine244633328">
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Sven Jacobi<text:line-break/>Commits: 850<text:line-break/>Joined: 2000-09-21</text:p>
       </table:table-cell>
@@ -1306,7 +1306,7 @@
        <text:p text:style-name="Table_20_Contents">Mikhail Voytenko<text:line-break/>Commits: 793<text:line-break/>Joined: 2001-01-16</text:p>
       </table:table-cell>
      </table:table-row>
-     <table:table-row table:style-name="TableLine134809184">
+     <table:table-row table:style-name="TableLine244633328">
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Maxim Monastirsky<text:line-break/>Commits: 779<text:line-break/>Joined: <text:span text:style-name="T2">2013-10-27</text:span></text:p>
       </table:table-cell>
@@ -1317,12 +1317,12 @@
        <text:p text:style-name="Table_20_Contents">Joachim Lingner<text:line-break/>Commits: 745<text:line-break/>Joined: 2000-10-05</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Katarina Behrens<text:line-break/>Commits: 740<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-13</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andrzej Hunt<text:line-break/>Commits: 743<text:line-break/>Joined: <text:span text:style-name="T2">2012-03-27</text:span></text:p>
       </table:table-cell>
      </table:table-row>
-     <table:table-row table:style-name="TableLine134809184">
+     <table:table-row table:style-name="TableLine244633328">
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Andrzej Hunt<text:line-break/>Commits: 737<text:line-break/>Joined: <text:span text:style-name="T2">2012-03-27</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Katarina Behrens<text:line-break/>Commits: 742<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-13</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Andre Fischer<text:line-break/>Commits: 730<text:line-break/>Joined: 2001-02-06</text:p>
@@ -1334,21 +1334,21 @@
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Zdeněk Crhonek<text:line-break/>Commits: 714<text:line-break/>Joined: <text:span text:style-name="T2">2016-05-19</text:span></text:p>
       </table:table-cell>
      </table:table-row>
-     <table:table-row table:style-name="TableLine134809184">
+     <table:table-row table:style-name="TableLine244633328">
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents">Joerg Skottke [jsk]<text:line-break/>Commits: 678<text:line-break/>Joined: 2008-06-17</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Joseph Powers<text:line-break/>Commits: 658<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-15</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Johnny_M<text:line-break/>Commits: 669<text:line-break/>Joined: <text:span text:style-name="T2">2016-05-12</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Johnny_M<text:line-break/>Commits: 656<text:line-break/>Joined: <text:span text:style-name="T2">2016-05-12</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Joseph Powers<text:line-break/>Commits: 658<text:line-break/>Joined: <text:span text:style-name="T2">2010-10-15</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>László Németh<text:line-break/>Commits: 654<text:line-break/>Joined: <text:span text:style-name="T2">2010-09-29</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>László Németh<text:line-break/>Commits: 656<text:line-break/>Joined: <text:span text:style-name="T2">2010-09-29</text:span></text:p>
       </table:table-cell>
      </table:table-row>
-     <table:table-row table:style-name="TableLine134809184">
+     <table:table-row table:style-name="TableLine244633328">
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jens Carl<text:line-break/>Commits: 654<text:line-break/>Joined: <text:span text:style-name="T2">2014-05-28</text:span></text:p>
       </table:table-cell>
@@ -1362,7 +1362,7 @@
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Rafael Dominguez<text:line-break/>Commits: 606<text:line-break/>Joined: <text:span text:style-name="T2">2011-02-13</text:span></text:p>
       </table:table-cell>
      </table:table-row>
-     <table:table-row table:style-name="TableLine134809184">
+     <table:table-row table:style-name="TableLine244633328">
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Jochen Nitschke<text:line-break/>Commits: 587<text:line-break/>Joined: <text:span text:style-name="T2">2016-02-02</text:span></text:p>
       </table:table-cell>
@@ -1373,10 +1373,10 @@
        <text:p text:style-name="Table_20_Contents">Thomas Benisch [tbe]<text:line-break/>Commits: 551<text:line-break/>Joined: 2000-10-23</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents">Rene Engelhard<text:line-break/>Commits: 543<text:line-break/>Joined: 2005-03-14</text:p>
+       <text:p text:style-name="Table_20_Contents">Rene Engelhard<text:line-break/>Commits: 544<text:line-break/>Joined: 2005-03-14</text:p>
       </table:table-cell>
      </table:table-row>
-     <table:table-row table:style-name="TableLine134809184">
+     <table:table-row table:style-name="TableLine244633328">
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Khaled Hosny<text:line-break/>Commits: 542<text:line-break/>Joined: <text:span text:style-name="T2">2011-01-28</text:span></text:p>
       </table:table-cell>
@@ -1384,15 +1384,15 @@
        <text:p text:style-name="Table_20_Contents">Jürgen Schmidt<text:line-break/>Commits: 512<text:line-break/>Joined: 2000-10-09</text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Justin Luth<text:line-break/>Commits: 499<text:line-break/>Joined: <text:span text:style-name="T2">2014-09-30</text:span></text:p>
+       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Justin Luth<text:line-break/>Commits: 503<text:line-break/>Joined: <text:span text:style-name="T2">2014-09-30</text:span></text:p>
       </table:table-cell>
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
        <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Peter Foley<text:line-break/>Commits: 489<text:line-break/>Joined: <text:span text:style-name="T2">2011-09-04</text:span></text:p>
       </table:table-cell>
      </table:table-row>
-     <table:table-row table:style-name="TableLine134809184">
+     <table:table-row table:style-name="TableLine244633328">
       <table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
-       <text:p text:style-name="Table_20_Contents"><text:span text:style-name="T1">*</text:span>Adolfo Jayme Barrientos<text:line-break/>Commits: 481<text:line-break/>Joined: <text:span text:style-name="T2">2013-06-21</text:span></text:p>

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list