diff --git a/lib/ace/keyboard/textinput.js b/lib/ace/keyboard/textinput.js index ef1aba4f..ee09b209 100644 --- a/lib/ace/keyboard/textinput.js +++ b/lib/ace/keyboard/textinput.js @@ -490,10 +490,12 @@ var TextInput = function(parentNode, host) { // firefox fires contextmenu event after opening it if (!useragent.isGecko || useragent.isMac) { - event.addListener(text, "contextmenu", function(e) { + var onContextMenu = function(e) { host.textInput.onContextMenu(e); onContextMenuClose(); - }); + }; + event.addListener(host.renderer.scroller, "contextmenu", onContextMenu); + event.addListener(text, "contextmenu", onContextMenu); } }; diff --git a/lib/ace/mouse/default_handlers.js b/lib/ace/mouse/default_handlers.js index d0c795d1..ebe9e0c7 100644 --- a/lib/ace/mouse/default_handlers.js +++ b/lib/ace/mouse/default_handlers.js @@ -118,8 +118,8 @@ function DefaultHandlers(mouseHandler) { editor.selection.clearSelection(); } }.bind(this), 0); - if (editor.renderer.content.setCapture) { - editor.renderer.content.setCapture(); + if (editor.renderer.scroller.setCapture) { + editor.renderer.scroller.setCapture(); } editor.setStyle("ace_selecting"); this.setState("select"); @@ -185,8 +185,8 @@ function DefaultHandlers(mouseHandler) { this.selectByWordsEnd = this.selectByLinesEnd = function() { this.editor.unsetStyle("ace_selecting"); - if (this.editor.renderer.content.releaseCapture) { - this.editor.renderer.content.releaseCapture(); + if (this.editor.renderer.scroller.releaseCapture) { + this.editor.renderer.scroller.releaseCapture(); } }; diff --git a/lib/ace/test/mockrenderer.js b/lib/ace/test/mockrenderer.js index e22104a7..73992111 100644 --- a/lib/ace/test/mockrenderer.js +++ b/lib/ace/test/mockrenderer.js @@ -33,6 +33,7 @@ define(function(require, exports, module) { var MockRenderer = exports.MockRenderer = function(visibleRowCount) { this.container = document.createElement("div"); + this.scroller = document.createElement("div"); this.visibleRowCount = visibleRowCount || 20; this.layerConfig = {