vcl/unx/gtk3/gtkframe.cxx | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-)
New commits: commit 2d0e324eb9deaf113d63c9ff10d3d017befa665b Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Fri Nov 4 10:13:58 2022 +0000 Commit: Adolfo Jayme Barrientos <fit...@ubuntu.com> CommitDate: Mon Nov 7 20:50:16 2022 +0100 Resolves: tdf#151509 don't overwrite geometry for system childs Change-Id: I5ad73d0bd138b2ba1b99d63bca97773f43e39606 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142277 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fit...@ubuntu.com> diff --git a/vcl/unx/gtk3/gtkframe.cxx b/vcl/unx/gtk3/gtkframe.cxx index 3684dd560593..0a8b8021c127 100644 --- a/vcl/unx/gtk3/gtkframe.cxx +++ b/vcl/unx/gtk3/gtkframe.cxx @@ -3149,7 +3149,7 @@ gboolean GtkSalFrame::signalButton(GtkWidget*, GdkEventButton* pEvent, gpointer if (bDifferentEventWindow) translate_coords(pEvent->window, pEventWidget, nEventX, nEventY); - if (!aDel.isDeleted()) + if (!aDel.isDeleted() && !(pThis->m_nStyle & SalFrameStyleFlags::SYSTEMCHILD)) { int frame_x = static_cast<int>(pEvent->x_root - nEventX); int frame_y = static_cast<int>(pEvent->y_root - nEventY); @@ -3168,8 +3168,8 @@ gboolean GtkSalFrame::signalButton(GtkWidget*, GdkEventButton* pEvent, gpointer if (!aDel.isDeleted()) { bRet = pThis->DrawingAreaButton(nEventType, - pEvent->x_root - pThis->maGeometry.nX, - pEvent->y_root - pThis->maGeometry.nY, + nEventX, + nEventY, pEvent->button, pEvent->time, pEvent->state); @@ -3463,21 +3463,22 @@ gboolean GtkSalFrame::signalMotion( GtkWidget*, GdkEventMotion* pEvent, gpointer int frame_x = static_cast<int>(pEvent->x_root - nEventX); int frame_y = static_cast<int>(pEvent->y_root - nEventY); - if (pThis->m_bGeometryIsProvisional || frame_x != pThis->maGeometry.nX || frame_y != pThis->maGeometry.nY) + if (!aDel.isDeleted() && !(pThis->m_nStyle & SalFrameStyleFlags::SYSTEMCHILD)) { - pThis->m_bGeometryIsProvisional = false; - pThis->maGeometry.nX = frame_x; - pThis->maGeometry.nY = frame_y; - ImplSVData* pSVData = ImplGetSVData(); - if (pSVData->maNWFData.mbCanDetermineWindowPosition) - pThis->CallCallbackExc(SalEvent::Move, nullptr); + if (pThis->m_bGeometryIsProvisional || frame_x != pThis->maGeometry.nX || frame_y != pThis->maGeometry.nY) + { + pThis->m_bGeometryIsProvisional = false; + pThis->maGeometry.nX = frame_x; + pThis->maGeometry.nY = frame_y; + ImplSVData* pSVData = ImplGetSVData(); + if (pSVData->maNWFData.mbCanDetermineWindowPosition) + pThis->CallCallbackExc(SalEvent::Move, nullptr); + } } if (!aDel.isDeleted()) { - pThis->DrawingAreaMotion(pEvent->x_root - pThis->maGeometry.nX, - pEvent->y_root - pThis->maGeometry.nY, - pEvent->time, pEvent->state); + pThis->DrawingAreaMotion(nEventX, nEventY, pEvent->time, pEvent->state); } if (!aDel.isDeleted()) @@ -3530,8 +3531,8 @@ gboolean GtkSalFrame::signalCrossing( GtkWidget*, GdkEventCrossing* pEvent, gpoi { GtkSalFrame* pThis = static_cast<GtkSalFrame*>(frame); pThis->DrawingAreaCrossing((pEvent->type == GDK_ENTER_NOTIFY) ? SalEvent::MouseMove : SalEvent::MouseLeave, - pEvent->x_root - pThis->maGeometry.nX, - pEvent->y_root - pThis->maGeometry.nY, + pEvent->x, + pEvent->y, pEvent->time, pEvent->state); return true;