From: SourceForge.net <no...@so...> - 2013-03-14 21:39:53
|
Patches item #3604532, was opened at 2013-02-13 08:18 Message generated for change (Comment added) made by elberry You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=300588&aid=3604532&group_id=588 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: texteditor Group: None >Status: Closed >Resolution: Accepted Priority: 5 Private: No Submitted By: Makarius (makarius) >Assigned to: Townsfolk (elberry) Summary: More accurate treatment ALT_KEY_PRESSED_DISABLED Initial Comment: The following patch against 5.0.0 (or trunk) is the result of studying key events several hours in Windows, Linux, Mac OS X, all with recent jdk-7 (e.g. 7u9). The patch addresses a misinterpretation of ALT_KEY_PRESSED_DISABLED==true if ALTERNATIVE_DISPATCHER==false: the exclusive-or of CTRL + ALT needs to take ALT_KEY_PRESSED_DISABLED into account and ignore ALT accordingly. I reckon that historically, ALT_KEY_PRESSED_DISABLED and ALTERNATIVE_DISPATCHER were usually either both on or both off. To understand the background of the patch, note that on Windows CTRL + ALT together used to be what is now a physical ALT_GRAPH key. In contrast, Mac OS X lacks ALT_GRAPH and both ALT keys produce an ALT modifier, but this needs to be ignored in the sense of ALT_KEY_PRESSED_DISABLED to make jEdit work -- ALT is then treated like SHIFT as integral part of the key event. All very confusing, especially due to the "yes I mean no" nature of ALT_KEY_PRESSED_DISABLED. Anyway, making the boolean expression more precise miraculously makes jdk-7 with German keymap work on Mac OS X, unlike the earlier attempt in http://sourceforge.net/tracker/index.php?func=detail&aid=3558572&group_id=588&atid=300588 The change should be conservative for everybody else. Many people have tested it with all platforms over several weeks (using jdk-7). Note that with jdk-6 on Mac OS X, you normally don't pass through this if statement, which also explains why the problem was not encountered before. ---------------------------------------------------------------------- >Comment By: Townsfolk (elberry) Date: 2013-03-14 14:39 Message: Applied in revision: 22842 ---------------------------------------------------------------------- Comment By: Alan Ezust (ezust) Date: 2013-02-26 14:07 Message: I see no difference in behavior testing this patch on linux. ---------------------------------------------------------------------- Comment By: Makarius (makarius) Date: 2013-02-18 11:09 Message: Two much ALT ALT ALT. The summary should read: Summary: * Linux and Windows are not affected by anything here, both flags are usually false * Mac OS X + Java 6 does not care about ALTERNATIVE_DISPATCHER * Mac OS X + Java 7 requires ALTERNATIVE_DISPATCHER=false ---------------------------------------------------------------------- Comment By: Makarius (makarius) Date: 2013-02-18 11:06 Message: Back at my German Mac Book Pro (Mountain Lion) and trying both Java 7 by Oracle or Java 6 by Apple, I've confirmed one of my suspicians: ALTERNATIVE_DISPATCHER seems to be a historic aritifact! It probably stems from very ancient Java versions by Apple. Java 6 may have it true (default in jEdit 5.0.0) or false, it both works. Java 7 does not tolerate ALTERNATIVE_DISPATCHER=true -- COMMAND modififer (META in Java terminology) is no longer recognized. But ALTERNATIVE_DISPATCHER=false then runs into the problem of ALT_KEY_PRESSED_DISABLED==true that the patch addresses. Summary: * Linux and Windows are not affected by anything here, both flags are usually false * Mac OS X + Java 6 does not care about ALT_KEY_PRESSED_DISABLED * Mac OS X + Java 7 requires ALT_KEY_PRESSED_DISABLED=false What I propose now is my full patch http://isabelle.in.tum.de/repos/isabelle/file/Isabelle2013/src/Tools/jEdit/patches/jedit/macos which does the following things: * detect Mac OS X platform properly: note that changing that alone will break COMMAND/META and ALT-5 for [ etc. on Java 7 * disable ALTERNATIVE_DISPATCHER uniformly (after 2 or 3 jEdit releases one might remove that alternative code path altogether -- it complicates internal key handling) * repair ALT_KEY_PRESSED_DISABLED according to the initial explanation of this ticket ---------------------------------------------------------------------- Comment By: Makarius (makarius) Date: 2013-02-18 02:47 Message: There is indeed a problem about testing. I am a German guy sitting presently in France, and I have surrounded myself by Windows, Linux, Mac machines with lots of variations of operating system versions and keyboards. I hope we manage to get jEdit on current Mac work smoothly again with the coming Java 7. (Java 6 reaches end-of-life about now, but it probably need to continue for some time, until the .app launcher is recovered, but I am no expert on that.) Taken in isolation, the patch should (1) be conservative for Linux and Windows -- this can be tested by many people, and (2) improve the situation for Mac OS on Java 7, without breaking Java 6 (I am myself testing Java 6 very rarely.) There are further details that need to be adjusted on the Mac. To understand the full picture, here is my full patch against jedit-5.0.0 that assumes Java 7 uniformly: http://isabelle.in.tum.de/repos/isabelle/file/Isabelle2013/src/Tools/jEdit/patches/jedit/macos If someone wants to test the fully integrated jEdit derivative that includes that patch already, see http://isabelle.in.tum.de/website-Isabelle2013 ---------------------------------------------------------------------- Comment By: Townsfolk (elberry) Date: 2013-02-17 13:11 Message: I don't have Java 7 on my Mac. I also don't have a German keyboard. Maybe Vampire or Thomas would be better to test this as you suggested earlier. ---------------------------------------------------------------------- Comment By: Alan Ezust (ezust) Date: 2013-02-16 22:05 Message: Or does it need to be handled by someone with Mac OS/X ? ---------------------------------------------------------------------- Comment By: Alan Ezust (ezust) Date: 2013-02-16 22:03 Message: I don't know how to test this patch. Especially if I am on Linux. And without a german keyboard. I suppose this needs to be handled by either Vampire0 or Thomas Meyer (our two German developers). ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=300588&aid=3604532&group_id=588 |