From: <ez...@us...> - 2013-09-19 15:20:48
|
Revision: 23188 http://jedit.svn.sourceforge.net/jedit/?rev=23188&view=rev Author: ezust Date: 2013-09-19 15:20:41 +0000 (Thu, 19 Sep 2013) Log Message: ----------- New option to swap ctrl and alt keys. Modified Paths: -------------- plugins/MacOSX/trunk/CHANGES.txt plugins/MacOSX/trunk/MacOSX.props plugins/MacOSX/trunk/docs/MacOSX.html plugins/MacOSX/trunk/macosx/MacOSXPlugin.java plugins/MacOSX/trunk/macosx/MacOSXPluginOptionPane.java Modified: plugins/MacOSX/trunk/CHANGES.txt =================================================================== --- plugins/MacOSX/trunk/CHANGES.txt 2013-09-18 21:55:25 UTC (rev 23187) +++ plugins/MacOSX/trunk/CHANGES.txt 2013-09-19 15:20:41 UTC (rev 23188) @@ -3,6 +3,7 @@ - Updates for Java 7 and jEdit 5.2 - Got rid of alternative dispatcher stuff which was workaround for Java 5 bugs. - Fixed #1542027. +- New option to swap ctrl and alt keys. Max OS X Plugin 1.1 - CTRL is now mapped to the CMD button so CMD+C and CMD+V will work correctly in *all* windows. Modified: plugins/MacOSX/trunk/MacOSX.props =================================================================== --- plugins/MacOSX/trunk/MacOSX.props 2013-09-18 21:55:25 UTC (rev 23187) +++ plugins/MacOSX/trunk/MacOSX.props 2013-09-19 15:20:41 UTC (rev 23188) @@ -30,7 +30,7 @@ options.MacOSXPlugin.useQuartz=Use OS X native Quartz renderer (restart required) options.MacOSXPlugin.altDispatcher=Use alternative keyboard dispatcher (may help with buggy international keyboards) options.MacOSXPlugin.disableOption=Disable option-key shortcuts - +options.MacOSXPlugin.ctrlAltSwapped=Swap Ctrl and Alt keys (for Linux-like modifiers) # # Error dialogs # Modified: plugins/MacOSX/trunk/docs/MacOSX.html =================================================================== --- plugins/MacOSX/trunk/docs/MacOSX.html 2013-09-18 21:55:25 UTC (rev 23187) +++ plugins/MacOSX/trunk/docs/MacOSX.html 2013-09-19 15:20:41 UTC (rev 23188) @@ -21,9 +21,10 @@ </table> <h3>Provides Mac OS X specific features, such as:</h3> <ul> - <li>The Mac OSX Plugin offers an option to disable the default alt-key behavior + <li>The Mac OSX Plugin offers a checkbox option to disable the default alt-key behavior that inserts international characters instead of performing like a modifier key. </li> + <li> Another checkbox option lets you swap ctrl and alt modifier keys. </li> <li>jEdit exits cleanly when using Command-Q or "Quit" from the "File" menu.</li> <li>Files created or associated with jEdit can now be opened from the Finder, Modified: plugins/MacOSX/trunk/macosx/MacOSXPlugin.java =================================================================== --- plugins/MacOSX/trunk/macosx/MacOSXPlugin.java 2013-09-18 21:55:25 UTC (rev 23187) +++ plugins/MacOSX/trunk/macosx/MacOSXPlugin.java 2013-09-19 15:20:41 UTC (rev 23188) @@ -23,6 +23,8 @@ package macosx; //{{{ Imports +import java.awt.event.InputEvent; + import javax.swing.*; import java.util.regex.Pattern; import java.io.File; @@ -30,6 +32,7 @@ import java.lang.reflect.*; import org.gjt.sp.jedit.*; +import org.gjt.sp.jedit.gui.KeyEventTranslator; import org.gjt.sp.jedit.options.*; import org.gjt.sp.jedit.gui.*; import org.gjt.sp.jedit.msg.*; @@ -96,6 +99,11 @@ // Set global keyboard options from local properties Debug.ALT_KEY_PRESSED_DISABLED = jEdit.getBooleanProperty("plugin.MacOSXPlugin.disableOption"); + + + // swap ctrl-alt keys if desired: + boolean toSwap = isCtrlAltSwapped(); + setCtrlAltSwapped(toSwap); } } //}}} @@ -275,7 +283,26 @@ } } + // {{{ swap Ctrl-Alt key + public static boolean isCtrlAltSwapped() + { + return jEdit.getBooleanProperty("plugin.MacOSXPlugin.ctrlAltSwapped"); + } + public static void setCtrlAltSwapped(boolean isSwapped) + { + jEdit.setBooleanProperty("plugin.MacOSXPlugin.ctrlAltSwapped", isSwapped); + if (isSwapped) + KeyEventTranslator.setModifierMapping(InputEvent.CTRL_MASK, + InputEvent.META_MASK, InputEvent.ALT_MASK, + InputEvent.SHIFT_MASK); + else + KeyEventTranslator.setModifierMapping(InputEvent.META_MASK, /* == C+ */ + InputEvent.CTRL_MASK, /* == A+ */ + InputEvent.ALT_MASK, /* == M+ */ + InputEvent.SHIFT_MASK /* == S+ */); + } // }}} + public static void setDisableOption(boolean state) { Debug.ALT_KEY_PRESSED_DISABLED = state; Modified: plugins/MacOSX/trunk/macosx/MacOSXPluginOptionPane.java =================================================================== --- plugins/MacOSX/trunk/macosx/MacOSXPluginOptionPane.java 2013-09-18 21:55:25 UTC (rev 23187) +++ plugins/MacOSX/trunk/macosx/MacOSXPluginOptionPane.java 2013-09-19 15:20:41 UTC (rev 23188) @@ -32,6 +32,11 @@ public class MacOSXPluginOptionPane extends AbstractOptionPane { + private JCheckBox useQuartz; + private JCheckBox ctrlAltSwapped; + private JCheckBox disableOption; + private JCheckBox multiShortcut; + public MacOSXPluginOptionPane() { super("MacOSXPlugin"); @@ -56,14 +61,22 @@ "options.MacOSXPlugin.disableOption")); disableOption.setSelected(MacOSXPlugin.getDisableOption()); addComponent(disableOption); + + ctrlAltSwapped = new JCheckBox(jEdit.getProperty( + "options.MacOSXPlugin.ctrlAltSwapped")); + ctrlAltSwapped.setSelected(MacOSXPlugin.isCtrlAltSwapped()); + addComponent(ctrlAltSwapped); + } //}}} //{{{ _save() method protected void _save() { + setFileFlag("noquartz", !useQuartz.isSelected()); jEdit.setBooleanProperty("menu.multiShortcut", multiShortcut.isSelected()); MacOSXPlugin.setDisableOption(disableOption.isSelected()); + MacOSXPlugin.setCtrlAltSwapped(ctrlAltSwapped.isSelected()); } //}}} //{{{ setFileFlag() method @@ -98,9 +111,5 @@ } } //}}} - private JCheckBox useQuartz; - private JCheckBox altDispatcher; - private JCheckBox disableOption; - private JCheckBox multiShortcut; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |