Resolves: tdf#154072 no effect when clicking some dropdown buttons

when toolbar overflows.

A problem since:

commit b534ee2e972711af2dbaadf2190813054adda902
Date:   Tue Nov 22 11:33:23 2022 +0000

    Resolves: tdf#152155 use gtk's knowledge of relative widget positions

    rather than effectively emulate it poorly

Change-Id: I18c08e43e9c0b642f2a30b5114d6f0a53f18a331
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165610
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
diff --git a/vcl/unx/gtk3/gtkframe.cxx b/vcl/unx/gtk3/gtkframe.cxx
index f996b43..8c097c5 100644
--- a/vcl/unx/gtk3/gtkframe.cxx
+++ b/vcl/unx/gtk3/gtkframe.cxx
@@ -3953,12 +3953,24 @@ void GtkSalFrame::signalRealize(GtkWidget*, gpointer frame)
    }

    AbsoluteScreenPixelRectangle aFloatRect = FloatingWindow::ImplConvertToAbsPos(pVclParent, pThis->m_aFloatRect);
    if (gdk_window_get_window_type(widget_get_surface(pThis->m_pParent->m_pWindow)) != GDK_WINDOW_TOPLEVEL)
    switch (gdk_window_get_window_type(widget_get_surface(pThis->m_pParent->m_pWindow)))
    {
        // See tdf#152155 for an example
        gtk_coord nX(0), nY(0.0);
        gtk_widget_translate_coordinates(pThis->m_pParent->m_pWindow, widget_get_toplevel(pThis->m_pParent->m_pWindow), 0, 0, &nX, &nY);
        aFloatRect.Move(nX, nY);
        case GDK_WINDOW_TOPLEVEL:
            break;
        case GDK_WINDOW_CHILD:
        {
            // See tdf#152155 for an example
            gtk_coord nX(0), nY(0.0);
            gtk_widget_translate_coordinates(pThis->m_pParent->m_pWindow, widget_get_toplevel(pThis->m_pParent->m_pWindow), 0, 0, &nX, &nY);
            aFloatRect.Move(nX, nY);
            break;
        }
        default:
        {
            // See tdf#154072 for an example
            aFloatRect.Move(-pThis->m_pParent->maGeometry.x(), -pThis->m_pParent->maGeometry.y());
            break;
        }
    }

    GdkRectangle rect {static_cast<int>(aFloatRect.Left()), static_cast<int>(aFloatRect.Top()),