From 66facc2bffcc3c07dfe8c63aeb7fe90e5c013f75 Mon Sep 17 00:00:00 2001 From: falldog Date: Sat, 1 Jun 2013 15:19:31 +0800 Subject: [PATCH] Fix the issue : the highlighter will not be repaint correctly when user press mouse select region Add MyCaret for EditorPane to force repaint the EditorPane when moveCaret --- Java/org/sikuli/ide/EditorPane.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Java/org/sikuli/ide/EditorPane.java b/Java/org/sikuli/ide/EditorPane.java index ad559c4..be90ba8 100755 --- a/Java/org/sikuli/ide/EditorPane.java +++ b/Java/org/sikuli/ide/EditorPane.java @@ -1,4 +1,4 @@ -/* +/* * Copyright 2010-2013, Sikuli.org * Released under the MIT License. * @@ -35,6 +35,18 @@ import org.sikuli.script.Debug; import org.sikuli.script.FileManager; import org.sikuli.script.Location; +class MyCaret extends DefaultCaret{ + private JTextComponent m_component; + public final void install(JTextComponent t){ + m_component = t; + super.install(t); + } + protected void moveCaret(MouseEvent e){ + super.moveCaret(e); + m_component.repaint();//for repaint correct highlighter + } +} + public class EditorPane extends JTextPane implements KeyListener, CaretListener { private PreferencesUser pref; @@ -80,6 +92,7 @@ public class EditorPane extends JTextPane implements KeyListener, CaretListener setEditorKitForContentType("text/python", new EditorKit()); setContentType("text/python"); initKeyMap(); + setCaret(new MyCaret()); setTransferHandler(new MyTransferHandler()); _highlighter = new EditorCurrentLineHighlighter(this); addCaretListener(_highlighter); -- 1.7.11.msysgit.1