# HG changeset patch # User wenzelm # Date 1357412784 -3600 # Node ID 44571ac53fedc954c38d56feddb19d3f34002979 # Parent 38114719a9bc56fa3ee5ad3770638265ad4a4694 propagate keys to enclosing view like org.gjt.sp.jedit.gui.CompletionPopup, but without its KeyEventInterceptor; diff -r 38114719a9bc -r 44571ac53fed src/Tools/jEdit/src/pretty_text_area.scala --- a/src/Tools/jEdit/src/pretty_text_area.scala Sat Jan 05 19:05:16 2013 +0100 +++ b/src/Tools/jEdit/src/pretty_text_area.scala Sat Jan 05 20:06:24 2013 +0100 @@ -54,7 +54,8 @@ class Pretty_Text_Area( view: View, - background: Option[Color] = None) extends JEditEmbeddedTextArea + background: Option[Color] = None, + propagate_keys: Boolean = false) extends JEditEmbeddedTextArea { text_area => @@ -167,13 +168,23 @@ case KeyEvent.VK_C if (evt.getModifiers & Toolkit.getDefaultToolkit.getMenuShortcutKeyMask) != 0 => Registers.copy(text_area, '$') + evt.consume case KeyEvent.VK_ESCAPE => Window.getWindows foreach { case c: Pretty_Tooltip => c.dispose case _ => } + evt.consume case _ => } + if (propagate_keys && !evt.isConsumed) + view.getInputHandler.processKeyEvent(evt, View.ACTION_BAR, false) + } + + override def keyTyped(evt: KeyEvent) + { + if (propagate_keys && !evt.isConsumed) + view.getInputHandler.processKeyEvent(evt, View.ACTION_BAR, false) } }) diff -r 38114719a9bc -r 44571ac53fed src/Tools/jEdit/src/pretty_tooltip.scala --- a/src/Tools/jEdit/src/pretty_tooltip.scala Sat Jan 05 19:05:16 2013 +0100 +++ b/src/Tools/jEdit/src/pretty_tooltip.scala Sat Jan 05 20:06:24 2013 +0100 @@ -10,7 +10,7 @@ import isabelle._ import java.awt.{Color, Point, BorderLayout, Window, Dimension} -import java.awt.event.{WindowEvent, WindowAdapter} +import java.awt.event.{WindowEvent, WindowAdapter, KeyEvent, KeyAdapter, KeyListener} import javax.swing.{SwingUtilities, JDialog, JPanel, JComponent} import javax.swing.border.LineBorder @@ -55,7 +55,7 @@ /* pretty text area */ - val pretty_text_area = new Pretty_Text_Area(view, Some(rendering.tooltip_color)) + val pretty_text_area = new Pretty_Text_Area(view, Some(rendering.tooltip_color), true) pretty_text_area.resize(Rendering.font_family(), Rendering.font_size("jedit_tooltip_font_scale").round) pretty_text_area.update(rendering.snapshot, results, body)