# HG changeset patch # User wenzelm # Date 1377675365 -7200 # Node ID ec6011bf23629a26071483a895737b77764c2a67 # Parent dabe46c68228619228c45cfad2c60e76fcebf793 dismiss popups more uniformly; diff -r dabe46c68228 -r ec6011bf2362 src/Tools/jEdit/src/completion_popup.scala --- a/src/Tools/jEdit/src/completion_popup.scala Wed Aug 28 09:12:50 2013 +0200 +++ b/src/Tools/jEdit/src/completion_popup.scala Wed Aug 28 09:36:05 2013 +0200 @@ -28,16 +28,28 @@ { override def toString: String = description } - /* register single instance within root */ + /* single instance within root */ + + def dismissed_view(view: View): Boolean = dismissed(view.getRootPane) + + private def dismissed(root: JComponent): Boolean = + { + Swing_Thread.require() + + root.getClientProperty(Completion_Popup) match { + case old_completion: Completion_Popup => + old_completion.hide_popup + true + case _ => + false + } + } private def register(root: JComponent, completion: Completion_Popup) { Swing_Thread.require() - root.getClientProperty(Completion_Popup) match { - case old_completion: Completion_Popup => old_completion.hide_popup - case _ => - } + dismissed(root) root.putClientProperty(Completion_Popup, completion) } @@ -69,13 +81,13 @@ { Swing_Thread.require() + dismissed(text_area) + val view = text_area.getView val root = view.getRootPane val buffer = text_area.getBuffer val painter = text_area.getPainter - register(root, null) - if (buffer.isEditable && !evt.isConsumed) { get_syntax match { case Some(syntax) => diff -r dabe46c68228 -r ec6011bf2362 src/Tools/jEdit/src/document_view.scala --- a/src/Tools/jEdit/src/document_view.scala Wed Aug 28 09:12:50 2013 +0200 +++ b/src/Tools/jEdit/src/document_view.scala Wed Aug 28 09:36:05 2013 +0200 @@ -154,7 +154,7 @@ key_typed = Completion_Popup.Text_Area.input(text_area, PIDE.get_recent_syntax, _), key_pressed = (evt: KeyEvent) => { - if (evt.getKeyCode == KeyEvent.VK_ESCAPE && Pretty_Tooltip.dismissed_all()) + if (evt.getKeyCode == KeyEvent.VK_ESCAPE && PIDE.dismissed_popups(text_area.getView)) evt.consume } ) diff -r dabe46c68228 -r ec6011bf2362 src/Tools/jEdit/src/plugin.scala --- a/src/Tools/jEdit/src/plugin.scala Wed Aug 28 09:12:50 2013 +0200 +++ b/src/Tools/jEdit/src/plugin.scala Wed Aug 28 09:36:05 2013 +0200 @@ -53,6 +53,16 @@ lazy val editor = new JEdit_Editor + /* popups */ + + def dismissed_popups(view: View): Boolean = + { + val b1 = Completion_Popup.dismissed_view(view) + val b2 = Pretty_Tooltip.dismissed_all() + b1 || b2 + } + + /* document model and view */ def document_model(buffer: Buffer): Option[Document_Model] = Document_Model(buffer) @@ -265,7 +275,7 @@ PIDE.init_view(buffer, text_area) } else { - Pretty_Tooltip.dismissed_all() + PIDE.dismissed_popups(text_area.getView) PIDE.exit_view(buffer, text_area) } } diff -r dabe46c68228 -r ec6011bf2362 src/Tools/jEdit/src/pretty_text_area.scala --- a/src/Tools/jEdit/src/pretty_text_area.scala Wed Aug 28 09:12:50 2013 +0200 +++ b/src/Tools/jEdit/src/pretty_text_area.scala Wed Aug 28 09:36:05 2013 +0200 @@ -177,7 +177,7 @@ evt.consume case KeyEvent.VK_ESCAPE => - if (Pretty_Tooltip.dismissed_all()) evt.consume + if (PIDE.dismissed_popups(view)) evt.consume case _ => }