From 33c7ebff064f96ef35e82bdecdc6f03dd36768e6 Mon Sep 17 00:00:00 2001 From: Rose Date: Wed, 14 Oct 2015 15:12:38 -0700 Subject: [PATCH 1/2] Add support for shift+enter to insert line breaks on mac Chrome and windows does this by default but mac/safari does ctrl+enter. This update allows people in safari to also use shift+enter so that the behaviour is consistent. --- src/wysihtml5/keyboard/line_break.js | 31 ++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/wysihtml5/keyboard/line_break.js diff --git a/src/wysihtml5/keyboard/line_break.js b/src/wysihtml5/keyboard/line_break.js new file mode 100644 index 00000000..8c732d3f --- /dev/null +++ b/src/wysihtml5/keyboard/line_break.js @@ -0,0 +1,31 @@ +import { Constants } from "../constants"; +import { Composer } from "../views/composer"; +import dom from "../dom"; + +/** + * Emulate native browser behaviour of Shift-Enter inserting a
instead + * of a new paragraph. +**/ +Composer.RegisterKeyboardHandler(function(e) { + return ( + e.type === "keydown" && + e.keyCode == Constants.ENTER_KEY && + e.shiftKey + ); +}, function(editor, composer, e) { + var breakElement = document.createElement("br"), + selectedNode = composer.selection.getSelectedNode(); + e.preventDefault(); + + if (selectedNode.nodeName === "P") { + selectedNode.appendChild(breakElement); + } else if (selectedNode.nodeName === "BR") { + dom.insert(breakElement).after(selectedNode); + } else { + var initialBreakElement = document.createElement("br"); + dom.insert(initialBreakElement).after(selectedNode); + dom.insert(breakElement).after(initialBreakElement); + } + + composer.selection.setAfter(breakElement); +}); From d7a1064c7376ee7c7350f2aaa7cf07d84f1df9a9 Mon Sep 17 00:00:00 2001 From: Ali Bosworth Date: Mon, 19 Dec 2016 19:24:48 +0100 Subject: [PATCH 2/2] fixup! include new file --- src/wysihtml5.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/wysihtml5.js b/src/wysihtml5.js index 4d4a0581..47e8efa6 100644 --- a/src/wysihtml5.js +++ b/src/wysihtml5.js @@ -31,6 +31,7 @@ import "wysihtml5/keyboard/break_list"; import "wysihtml5/keyboard/shortcuts"; import "wysihtml5/keyboard/delete_images"; import "wysihtml5/keyboard/delete_block_elements"; +import "wysihtml5/keyboard/line_break"; // Text Substitutions import "wysihtml5/text_substitutions/auto_link";