summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2016-11-16 11:52:39 +0000
committerCaolán McNamara <caolanm@redhat.com>2016-11-16 12:01:59 +0000
commitac4f846335fb71f4a11bae6f8f1704ca915ba6af (patch)
tree78cb58489f8440e7fdc7cdb2bb3ca9a949ec48eb /vcl
parent87d2c012ef51aca8bba127145c97409506217a4f (diff)
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
Diffstat (limited to 'vcl')
-rw-r--r--vcl/inc/svdata.hxx2
-rw-r--r--vcl/source/app/settings.cxx2
-rw-r--r--vcl/unx/gtk3/gtk3gtkframe.cxx10
-rw-r--r--vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx2
4 files changed, 11 insertions, 5 deletions
diff --git a/vcl/inc/svdata.hxx b/vcl/inc/svdata.hxx
index d8f04e80229e..5ed1464787ac 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 b8c5167b8a8a..215a9e1a9232 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 ce9e012de30c..196114c0c42e 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 9377172cc639..c4dff0bc22b3 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
}