aboutsummaryrefslogtreecommitdiff
path: root/www/waterfox/files/patch-bug1186967
blob: 26d304fbd3e94f345f447377b0274b4866a04ed3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
commit 64bb4e051b50
Author: Martin Stransky <stransky@redhat.com>
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