lok: avoid emission storms of un-necessary invalidations.

Common when constructing widgets with VclBuilder - which avoids
the 'Show' detection Pranav introduced in 8de98e61fbc.

This saves ~80% of the ~100k mostly bogus calls I get to:
desktop::CallbackFlushHandler::processWindowEvent when opening
and closing a few windows.

Change-Id: Ie508d6e19274472b85543275aee33f078ddcbbb2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86534
Tested-by: Jenkins
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
diff --git a/vcl/source/window/paint.cxx b/vcl/source/window/paint.cxx
index 99c6ed98..9f110e6 100644
--- a/vcl/source/window/paint.cxx
+++ b/vcl/source/window/paint.cxx
@@ -1220,6 +1220,10 @@ void Window::PixelInvalidate(const tools::Rectangle* pRectangle)
    if (comphelper::LibreOfficeKit::isDialogPainting() || !comphelper::LibreOfficeKit::isActive())
        return;

    Size aSize = GetSizePixel();
    if (aSize.getWidth() <= 0 || aSize.getHeight() <= 0)
        return;

    if (const vcl::ILibreOfficeKitNotifier* pNotifier = GetLOKNotifier())
    {
        // In case we are routing the window, notify the client
@@ -1228,7 +1232,7 @@ void Window::PixelInvalidate(const tools::Rectangle* pRectangle)
            aPayload.emplace_back("rectangle", pRectangle->toString());
        else
        {
            const tools::Rectangle aRect(Point(0, 0), GetSizePixel());
            const tools::Rectangle aRect(Point(0, 0), aSize);
            aPayload.emplace_back("rectangle", aRect.toString());
        }

diff --git a/vcl/source/window/window2.cxx b/vcl/source/window/window2.cxx
index 8e46670..685b77a 100644
--- a/vcl/source/window/window2.cxx
+++ b/vcl/source/window/window2.cxx
@@ -1338,10 +1338,11 @@ void Window::queue_resize(StateChangedType eReason)
        if (pBorderWindow)
            pBorderWindow->Resize();
    }

    if (VclPtr<vcl::Window> pParent = GetParentWithLOKNotifier())
    {
        if (!pParent->IsInInitShow())
        Size aSize = GetSizePixel();
        if (aSize.getWidth() > 0 && aSize.getHeight() > 0 &&
            !pParent->IsInInitShow())
            LogicInvalidate(nullptr);
    }
}