commit 64bb4e051b50 Author: Martin Stransky Date: Tue Oct 17 09:50:18 2017 +0200 Bug 1186967 - ignore double-click on WM without _NET_WM_MOVERESIZE support, r=jhorak MozReview-Commit-ID: 2Vs6i5leero --HG-- extra : rebase_source : d8f2bbaf9ef9b2025478f029a68ee7e87e07de79 --- widget/gtk/nsWindow.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git widget/gtk/nsWindow.cpp widget/gtk/nsWindow.cpp index eb2f0e5e95cd..955327297ac9 100644 --- mozilla/widget/gtk/nsWindow.cpp +++ mozilla/widget/gtk/nsWindow.cpp @@ -6444,6 +6444,22 @@ nsWindow::GetDragInfo(WidgetMouseEvent* aMouseEvent, return false; } + if (mIsX11Display) { + // Workaround for https://bugzilla.gnome.org/show_bug.cgi?id=789054 + // To avoid crashes disable double-click on WM without _NET_WM_MOVERESIZE. + // See _should_perform_ewmh_drag() at gdkwindow-x11.c + GdkScreen* screen = gdk_window_get_screen(gdk_window); + GdkAtom atom = gdk_atom_intern("_NET_WM_MOVERESIZE", FALSE); + if (!gdk_x11_screen_supports_net_wm_hint(screen, atom)) { + static unsigned int lastTimeStamp = 0; + if (lastTimeStamp != aMouseEvent->mTime) { + lastTimeStamp = aMouseEvent->mTime; + } else { + return false; + } + } + } + // FIXME: It would be nice to have the widget position at the time // of the event, but it's relatively unlikely that the widget has // moved since the mousedown. (On the other hand, it's quite likely