From: <mal...@us...> - 2013-03-30 14:07:48
|
Revision: 22902 http://jedit.svn.sourceforge.net/jedit/?rev=22902&view=rev Author: malyvelky Date: 2013-03-30 14:07:34 +0000 (Sat, 30 Mar 2013) Log Message: ----------- Workaround for 1725711: Accept a completion with the TAB key Modified Paths: -------------- plugins/TextAutocomplete/trunk/TextAutocomplete.html plugins/TextAutocomplete/trunk/net/jakubholy/jedit/autocomplete/CompletionPopup.java plugins/TextAutocomplete/trunk/readme-development.md Modified: plugins/TextAutocomplete/trunk/TextAutocomplete.html =================================================================== --- plugins/TextAutocomplete/trunk/TextAutocomplete.html 2013-03-30 12:50:37 UTC (rev 22901) +++ plugins/TextAutocomplete/trunk/TextAutocomplete.html 2013-03-30 14:07:34 UTC (rev 22902) @@ -415,7 +415,11 @@ <h4>Version 1.0.0, April 2013</h4> -Build fixes for jEdit 5.0.0, improved docs. +Fixes: +<ul> + <li>Fixed 1725711: Make it possible to accept a completion with the TAB key</li> + <li>Build fixes for jEdit 5.0.0, improved docs.</li> +</ul> <h4>Version 0.9.9, August 2009</h4> Modified: plugins/TextAutocomplete/trunk/net/jakubholy/jedit/autocomplete/CompletionPopup.java =================================================================== --- plugins/TextAutocomplete/trunk/net/jakubholy/jedit/autocomplete/CompletionPopup.java 2013-03-30 12:50:37 UTC (rev 22901) +++ plugins/TextAutocomplete/trunk/net/jakubholy/jedit/autocomplete/CompletionPopup.java 2013-03-30 14:07:34 UTC (rev 22902) @@ -31,6 +31,7 @@ import java.awt.Point; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; +import java.lang.reflect.Field; import javax.swing.DefaultListCellRenderer; import javax.swing.JList; @@ -73,6 +74,21 @@ { super( view, location ); this.view = view; + + /* Dirty hack to enable using TAB to accept completion. + * Normally, TAB isn't passed to the JList's key handler for it is used for component traversal. + * See the "Version note" at http://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html + * TODO Remove when https://sourceforge.net/tracker/?func=detail&aid=3609550&group_id=588&atid=100588 fixed + */ + try { + final Field listField = org.gjt.sp.jedit.gui.CompletionPopup.class.getDeclaredField("list"); + listField.setAccessible(true); + final JList list = (JList) listField.get(this); + list.setFocusTraversalKeysEnabled(false); // enable use of TAB as a normal key + } catch (Exception e) { + Log.log(Log.DEBUG, TextAutocompletePlugin.class, "CompletionPopup.constructor: failed to " + + "disable focus traversal on the list: " + e); + } } //}}} //####################### METHODS USED BY THE PLUGIN ########################################### Modified: plugins/TextAutocomplete/trunk/readme-development.md =================================================================== --- plugins/TextAutocomplete/trunk/readme-development.md 2013-03-30 12:50:37 UTC (rev 22901) +++ plugins/TextAutocomplete/trunk/readme-development.md 2013-03-30 14:07:34 UTC (rev 22902) @@ -30,10 +30,10 @@ The content of `plugins/build.properties` should be (adjust as needed): + # Properties needed for builds: build.support=../../build-support junit.jar=${user.home}/.m2/repository/junit/junit/4.11/junit-4.11.jar - Check out the plugin itself: plugins$ svn co https://jedit.svn.sourceforge.net/svnroot/jedit/plugins/TextAutocomplete/trunk TextAutocomplete This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |