From 2bd125cf21391bc1ff12f8e63d867b59c5e52df9 Mon Sep 17 00:00:00 2001 From: jbeich Date: Sat, 28 Oct 2017 15:42:21 +0000 Subject: gecko: double-click on tab bar crashfix for some WMs Obtained from: upstream (Firefox 58) PR: 222693 Submitted by: tobik MFH: 2017Q4 --- www/firefox-esr/files/patch-bug1186967 | 41 ++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 www/firefox-esr/files/patch-bug1186967 (limited to 'www/firefox-esr/files') diff --git a/www/firefox-esr/files/patch-bug1186967 b/www/firefox-esr/files/patch-bug1186967 new file mode 100644 index 000000000000..26d304fbd3e9 --- /dev/null +++ b/www/firefox-esr/files/patch-bug1186967 @@ -0,0 +1,41 @@ +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 +--- widget/gtk/nsWindow.cpp ++++ 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 -- cgit