From 00fcd378291a6d34aed9c8e3785696a9080ccfad Mon Sep 17 00:00:00 2001 From: nightwing Date: Mon, 11 Nov 2013 02:41:35 +0400 Subject: [PATCH] allow widgets to have any height --- demo/kitchen-sink/demo.js | 13 ++++++------- lib/ace/line_widgets.js | 10 ++++++---- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/demo/kitchen-sink/demo.js b/demo/kitchen-sink/demo.js index 4d7233be..ec5718db 100644 --- a/demo/kitchen-sink/demo.js +++ b/demo/kitchen-sink/demo.js @@ -582,25 +582,24 @@ env.editor.commands.addCommand({ return; } - var rowCount = 10; - var w = { row: row, - rowCount: rowCount, + // rowCount: rowCount, fixedWidth: true, - el: inlineEditor.container, + el: dom.createElement("div"), editor: editor }; - var el = w.el + var el = w.el; + el.appendChild(inlineEditor.container); if (!editor.session.widgetManager) { editor.session.widgetManager = new LineWidgets(editor.session); editor.session.widgetManager.attach(editor); } - var h = rowCount*editor.renderer.layerConfig.lineHeight - 6; - el.style.height = h - 4 + "px" + var h = rowCount*editor.renderer.layerConfig.lineHeight; + inlineEditor.container.style.height = h + "px" el.style.position = "absolute" el.style.zIndex = "4" diff --git a/lib/ace/line_widgets.js b/lib/ace/line_widgets.js index ece7901a..597b3ca2 100644 --- a/lib/ace/line_widgets.js +++ b/lib/ace/line_widgets.js @@ -175,7 +175,7 @@ function LineWidgets(session) { w.pixelHeight = w.el.offsetHeight; } if (w.rowCount == null) - w.rowCount = Math.ceil(w.pixelHeight / renderer.layerConfig.lineHeight); + w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight; this.session._emit("changeFold", {data:{start:{row: w.row}}}); @@ -221,10 +221,12 @@ function LineWidgets(session) { w.screenWidth = Math.ceil(w.w / config.characterWidth); } - var rowCount = Math.ceil(w.h / config.lineHeight); - if (w.coverLine) + var rowCount = w.h / config.lineHeight; + if (w.coverLine) { rowCount -= this.session.getRowLineCount(w.row); - + if (rowCount < 0) + rowCount = 0; + } if (w.rowCount != rowCount) { w.rowCount = rowCount; if (w.row < min)