From c3c044d2956ae8caab38dcb4a9648e76e74d1f0b Mon Sep 17 00:00:00 2001 From: benfry Date: Fri, 10 Nov 2006 16:20:49 +0000 Subject: [PATCH] fix for bug #349 with selection chars, more normalization of key commands --- app/syntax/InputHandler.java | 32 ++++++++++++++++++++--------- app/syntax/PdeTextAreaDefaults.java | 30 +++++++++++++++++++-------- 2 files changed, 43 insertions(+), 19 deletions(-) diff --git a/app/syntax/InputHandler.java b/app/syntax/InputHandler.java index daedd87ea..64c637f34 100644 --- a/app/syntax/InputHandler.java +++ b/app/syntax/InputHandler.java @@ -747,11 +747,17 @@ public abstract class InputHandler extends KeyAdapter return; } - if(select) - textArea.select(textArea.getMarkPosition(), - caret + 1); - else - textArea.setCaretPosition(caret + 1); + if (select) { + textArea.select(textArea.getMarkPosition(), caret+1); + } else { + int start = textArea.getSelectionStart(); + int end = textArea.getSelectionEnd(); + if (start != end) { + textArea.select(end, end); + } else { + textArea.setCaretPosition(caret + 1); + } + } } } @@ -899,11 +905,17 @@ public abstract class InputHandler extends KeyAdapter return; } - if(select) - textArea.select(textArea.getMarkPosition(), - caret - 1); - else - textArea.setCaretPosition(caret - 1); + if (select) { + textArea.select(textArea.getMarkPosition(), caret-1); + } else { + int start = textArea.getSelectionStart(); + int end = textArea.getSelectionEnd(); + if (start != end) { + textArea.select(start, start); + } else { + textArea.setCaretPosition(caret - 1); + } + } } } diff --git a/app/syntax/PdeTextAreaDefaults.java b/app/syntax/PdeTextAreaDefaults.java index b0f567614..673f87652 100644 --- a/app/syntax/PdeTextAreaDefaults.java +++ b/app/syntax/PdeTextAreaDefaults.java @@ -41,9 +41,10 @@ public class PdeTextAreaDefaults extends TextAreaDefaults { inputHandler.addKeyBinding("S+DELETE", InputHandler.DELETE); inputHandler.addKeyBinding("BACK_SPACE", InputHandler.BACKSPACE); - inputHandler.addKeyBinding("C+BACK_SPACE", InputHandler.BACKSPACE_WORD); inputHandler.addKeyBinding("DELETE", InputHandler.DELETE); - inputHandler.addKeyBinding("C+DELETE", InputHandler.DELETE_WORD); + // the following two were changing for 0122 for better mac/pc compatability + inputHandler.addKeyBinding(mod+"+BACK_SPACE", InputHandler.BACKSPACE_WORD); + inputHandler.addKeyBinding(mod+"+DELETE", InputHandler.DELETE_WORD); inputHandler.addKeyBinding("ENTER", InputHandler.INSERT_BREAK); inputHandler.addKeyBinding("TAB", InputHandler.INSERT_TAB); @@ -52,21 +53,32 @@ public class PdeTextAreaDefaults extends TextAreaDefaults { inputHandler.addKeyBinding("C+\\", InputHandler.TOGGLE_RECT); // beginning and ending of the current line + /* inputHandler.addKeyBinding("HOME", InputHandler.HOME); inputHandler.addKeyBinding("END", InputHandler.END); + inputHandler.addKeyBinding("S+HOME", InputHandler.SELECT_HOME); + inputHandler.addKeyBinding("S+END", InputHandler.SELECT_END); + */ + + // for 0122, these have been changed for better compatability + // HOME and END now mean the beginning/end of the document + inputHandler.addKeyBinding("HOME", InputHandler.DOCUMENT_HOME); + inputHandler.addKeyBinding("END", InputHandler.DOCUMENT_END); + inputHandler.addKeyBinding("S+HOME", InputHandler.SELECT_DOC_HOME); + inputHandler.addKeyBinding("S+END", InputHandler.SELECT_DOC_END); if (Base.isMacOS()) { inputHandler.addKeyBinding("M+LEFT", InputHandler.HOME); inputHandler.addKeyBinding("M+RIGHT", InputHandler.END); + inputHandler.addKeyBinding("M+S+LEFT", InputHandler.SELECT_HOME); // 0122 + inputHandler.addKeyBinding("M+S+RIGHT", InputHandler.SELECT_END); // 0122 + } else { + inputHandler.addKeyBinding("C+LEFT", InputHandler.HOME); // 0122 + inputHandler.addKeyBinding("C+RIGHT", InputHandler.END); // 0122 + inputHandler.addKeyBinding("C+S+HOME", InputHandler.SELECT_HOME); // 0122 + inputHandler.addKeyBinding("C+S+END", InputHandler.SELECT_END); // 0122 } - inputHandler.addKeyBinding("S+HOME", InputHandler.SELECT_HOME); - inputHandler.addKeyBinding("S+END", InputHandler.SELECT_END); - inputHandler.addKeyBinding(mod + "+HOME", InputHandler.DOCUMENT_HOME); - inputHandler.addKeyBinding(mod + "+END", InputHandler.DOCUMENT_END); - inputHandler.addKeyBinding(mod + "S+HOME", InputHandler.SELECT_DOC_HOME); - inputHandler.addKeyBinding(mod + "S+END", InputHandler.SELECT_DOC_END); - inputHandler.addKeyBinding("PAGE_UP", InputHandler.PREV_PAGE); inputHandler.addKeyBinding("PAGE_DOWN", InputHandler.NEXT_PAGE); inputHandler.addKeyBinding("S+PAGE_UP", InputHandler.SELECT_PREV_PAGE);