Title: [158789] branches/safari-537.73-branch/Source/WebInspectorUI/UserInterface/External/CodeMirror/codemirror.js
Revision
158789
Author
[email protected]
Date
2013-11-06 14:27:34 -0800 (Wed, 06 Nov 2013)

Log Message

Merge patch for <rdar://problem/15406685>.

Modified Paths


Diff

Modified: branches/safari-537.73-branch/Source/WebInspectorUI/UserInterface/External/CodeMirror/codemirror.js (158788 => 158789)


--- branches/safari-537.73-branch/Source/WebInspectorUI/UserInterface/External/CodeMirror/codemirror.js	2013-11-06 22:08:46 UTC (rev 158788)
+++ branches/safari-537.73-branch/Source/WebInspectorUI/UserInterface/External/CodeMirror/codemirror.js	2013-11-06 22:27:34 UTC (rev 158789)
@@ -1786,15 +1786,8 @@
     }
   }
 
-  function clickInGutter(cm, e) {
+  function gutterEvent(cm, e, gutterEvent, mX, mY, signaler) {
     var display = cm.display;
-    try { var mX = e.clientX, mY = e.clientY; }
-    catch(e) { return false; }
-
-    if (mX >= Math.floor(getRect(display.gutters).right)) return false;
-    e_preventDefault(e);
-    if (!hasHandler(cm, "gutterClick")) return true;
-
     var lineBox = getRect(display.lineDiv);
     if (mY > lineBox.bottom) return true;
     mY -= lineBox.top - display.viewOffset;
@@ -1804,10 +1797,33 @@
       if (g && getRect(g).right >= mX) {
         var line = lineAtHeight(cm.doc, mY);
         var gutter = cm.options.gutters[i];
-        signalLater(cm, "gutterClick", cm, line, gutter, e);
-        break;
+        return signaler(cm, gutterEvent, cm, line, gutter, e);
       }
     }
+  }
+  
+  function contextMenuInGutter(cm, e) {
+    if (!hasHandler(cm, "gutterContextMenu")) return false;
+
+    try { var mX = e.clientX, mY = e.clientY; }
+    catch(e) { return false; }
+    if (mX >= Math.floor(getRect(cm.display.gutters).right)) return false;
+
+    return gutterEvent(cm, e, "gutterContextMenu", mX, mY, function() {
+      signal.apply(null, arguments);
+      return e_defaultPrevented(e);
+     });
+  }
+
+  function clickInGutter(cm, e) {
+    try { var mX = e.clientX, mY = e.clientY; }
+    catch(e) { return false; }
+
+    if (mX >= Math.floor(getRect(cm.display.gutters).right)) return false;
+    e_preventDefault(e);
+    if (!hasHandler(cm, "gutterClick")) return true;
+
+    gutterEvent(cm, e, "gutterClick", mX, mY, signalLater);
     return true;
   }
 
@@ -2081,7 +2097,8 @@
   function onContextMenu(cm, e) {
     var display = cm.display, sel = cm.doc.sel;
     if (eventInWidget(display, e)) return;
-
+    if (contextMenuInGutter(cm, e)) return;
+    
     var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop;
     if (!pos || opera) return; // Opera is difficult.
     if (posEq(sel.from, sel.to) || posLess(pos, sel.from) || !posLess(pos, sel.to))
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to