vcl/inc/svdata.hxx | 2 +- vcl/source/app/settings.cxx | 2 +- vcl/unx/gtk3/gtk3gtkframe.cxx | 10 ++++++++-- vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx | 2 +- 4 files changed, 11 insertions(+), 5 deletions(-)
New commits: commit ac4f846335fb71f4a11bae6f8f1704ca915ba6af Author: Caolán McNamara <caol...@redhat.com> Date: Wed Nov 16 11:52:39 2016 +0000 gtk: under wayland tracking the window position is worthless which isn't news, but... with focus follows mouse enabled, activate filter menu of a calc autofilter. Move the mouse around and enter the menu, menu pops down because there are configure and mouse events which indicate that the position of the main application window has "moved" when LibreOffice detects the window has moved, it closes the windows popups, so the menu disappears. Change-Id: I2d1aa4a51153002c925e2dde4402da2d84e52de5 diff --git a/vcl/inc/svdata.hxx b/vcl/inc/svdata.hxx index d8f04e8..5ed1464 100644 --- a/vcl/inc/svdata.hxx +++ b/vcl/inc/svdata.hxx @@ -286,7 +286,7 @@ struct ImplSVNWFData // gnome#768128 I cannot see a route under wayland at present to support // floating toolbars that can be redocked because there's no way to track // that the toolbar is over a dockable area. - bool mbDockingFloatsSupported = true; + bool mbCanDetermineWindowPosition = true; }; struct BlendFrameCache diff --git a/vcl/source/app/settings.cxx b/vcl/source/app/settings.cxx index b8c5167..215a9e1 100644 --- a/vcl/source/app/settings.cxx +++ b/vcl/source/app/settings.cxx @@ -1889,7 +1889,7 @@ bool StyleSettings::GetDockingFloatsSupported() { ImplSVData* pSVData = ImplGetSVData(); - return pSVData->maNWFData.mbDockingFloatsSupported; + return pSVData->maNWFData.mbCanDetermineWindowPosition; } void diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx index ce9e012..196114c 100644 --- a/vcl/unx/gtk3/gtk3gtkframe.cxx +++ b/vcl/unx/gtk3/gtk3gtkframe.cxx @@ -2773,7 +2773,9 @@ gboolean GtkSalFrame::signalMotion( GtkWidget*, GdkEventMotion* pEvent, gpointer { pThis->maGeometry.nX = frame_x; pThis->maGeometry.nY = frame_y; - pThis->CallCallbackExc(SalEvent::Move, nullptr); + ImplSVData* pSVData = ImplGetSVData(); + if (pSVData->maNWFData.mbCanDetermineWindowPosition) + pThis->CallCallbackExc(SalEvent::Move, nullptr); } if( ! aDel.isDeleted() ) @@ -2894,7 +2896,11 @@ gboolean GtkSalFrame::signalConfigure(GtkWidget*, GdkEventConfigure* pEvent, gpo pThis->updateScreenNumber(); if (bMoved) - pThis->CallCallbackExc(SalEvent::Move, nullptr); + { + ImplSVData* pSVData = ImplGetSVData(); + if (pSVData->maNWFData.mbCanDetermineWindowPosition) + pThis->CallCallbackExc(SalEvent::Move, nullptr); + } return false; } diff --git a/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx index 9377172..c4dff0b 100644 --- a/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx +++ b/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx @@ -2897,7 +2897,7 @@ void GtkData::initNWF() //and floating dockable toolbars GdkDisplay *pDisplay = gdk_display_get_default(); if (GDK_IS_WAYLAND_DISPLAY(pDisplay)) - pSVData->maNWFData.mbDockingFloatsSupported = false; + pSVData->maNWFData.mbCanDetermineWindowPosition = false; #endif }
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits