zest-writer
zest-writer copied to clipboard
Règle le problème des accents sur Linux (ou pas)
Ticket de référence : #120
Objet de la PR : Tente de règler les problèmes des accents sur Linux.
Pour essayer:
- Compiler puis lancer Zest-Writer (Vérifier que la librairie jnativehook-2.0.3.jar soit lié)
- Créer un tuto
- Ouvrir l'intro (Par exemple)
- Taper
^
puise
, résultat ?
Si ça ne fonctionne pas, merci de fournir les logs.
Pour le moment ça ne fonctionne pas chez moi.
En appuyant sur la touche ^
, puis e
, je n'ai que le caractère e
affiché.
Voici ce que j'ai dans la log.
2016-12-15 20:42:06 DEBUG MdTextController:220 - Tentative de création d'un nouvel onglet pour Introduction
2016-12-15 20:42:07 INFO MdConvertController:100 - Set sourceText for keyListener
2016-12-15 20:42:14 INFO MdConvertController:100 - Set sourceText for keyListener
2016-12-15 20:42:14 INFO MdTextController:273 - Nouvel onglet crée pour Introduction
2016-12-15 20:42:24 INFO KeyListener:27 - KeyPressed: Code: 28 Str: org.jnativehook.keyboard.NativeKeyEvent[source=class org.jnativehook.GlobalScreen]
2016-12-15 20:42:25 INFO KeyListener:27 - KeyPressed: Code: 28 Str: org.jnativehook.keyboard.NativeKeyEvent[source=class org.jnativehook.GlobalScreen]
2016-12-15 20:42:26 INFO KeyListener:27 - KeyPressed: Code: 26 Str: org.jnativehook.keyboard.NativeKeyEvent[source=class org.jnativehook.GlobalScreen]
2016-12-15 20:42:27 INFO KeyListener:27 - KeyPressed: Code: 18 Str: org.jnativehook.keyboard.NativeKeyEvent[source=class org.jnativehook.GlobalScreen]
2016-12-15 20:42:28 INFO KeyListener:27 - KeyPressed: Code: 26 Str: org.jnativehook.keyboard.NativeKeyEvent[source=class org.jnativehook.GlobalScreen]
2016-12-15 20:42:29 INFO KeyListener:27 - KeyPressed: Code: 19 Str: org.jnativehook.keyboard.NativeKeyEvent[source=class org.jnativehook.GlobalScreen]
2016-12-15 20:42:30 INFO KeyListener:27 - KeyPressed: Code: 56 Str: org.jnativehook.keyboard.NativeKeyEvent[source=class org.jnativehook.GlobalScreen]
2016-12-15 20:42:30 INFO KeyListener:27 - KeyPressed: Code: 15 Str: org.jnativehook.keyboard.NativeKeyEvent[source=class org.jnativehook.GlobalScreen]
Bon et bien le problème ne dois pas venir de JavaFX même, mais de bien plus profondément enfoui dans le Java. Donc la j'ai envie de dire Impossible pour nous à réaliser.
Car lorsque tu tapes ^
tu devrais avoir le log 2016-12-15 20:42:30 INFO KeyListener:27 - KeyPressed: Code: 27 Str: ....
Si quelqu'un veut encore faire des essais, il peut se calquer sur cette PR. Mais pour ma part je pense avoir consacré assez de temps pour un problème quasiment irrésolvable
Ce qui est bien bizarre c'est que ça fonctionne avec un TextArea normal
Vraiment ? Un textarea JavaFX
ou AWT/Swing
?
Vraiment ? Un textarea JavaFX ou AWT/Swing ?
JavaFx
De plus, l'appuie sur ^
renvoie dans ma console : 2016-12-15 20:54:42 INFO KeyListener:27 - KeyPressed: Code: 26 Str: org.jnativehook.keyboard.NativeKeyEvent[source=class org.jnativehook.GlobalScreen]
peut-être que mon 26 devrait correspondre à ton 27 ?
Ohhh !!!!!! C'est donc cela ! Je modifie ma PR de suite.
Si tu pouvais retester :)
Je tappe ^
puis e
et j'ai dans mon texte eê (Youpi !)
Super,
Bon J'ai pas le temps se soir de faire une jolie PR, surtout qu'il faudra faire plusieurs implémentation (Pour chaque lettre avec un ^
).
Au passage si tu pouvais juste indiquer qu'elle keyCode
te sort le caractère "
? :)
Et ça peut donner une idée de comment régler le problème chez RichTextFX, mais je pense que le plus urgent est de régler le problème chez nous (Bon on utilise une lib de plus, mais c'est pas si dramatique. Juste dommage qu'elle ne soit pas sur gradle).
Edit: Y a juste le e
qui vient en trop, mais c'est pas dramatique, on pourra l'enlever.
Génial, bien joué.
Le caractère "
me renvoi un INFO KeyListener:27 - KeyPressed: Code: 4
Ce n'est pas grave d'utiliser une lib en plus, mais vaut mieux la loader via gradle. Il suffit de rajouter dans le build.gradle dans les dependances, la ligne compile group: 'com.1stleg', name: 'jnativehook', version: '2.0.3'
Il n'existe pas sur gradle, uniquement sur Maven.
Oui oui mais toutes nos libs sont sur maven central. Gradle n'est que l'outil qui nous permet de les assembler. Tout ce qui va dans maven peut aussi aller dans gradle.
~~Ah oui en effet je viens de voir. Par contre je ne comprend pas pourquoi IntelliJ ne veut pas me télécharger la dépendance et ne compile pas !!~~
J'ai fait une rebuild complète et ça devrait être OK.
Peut etre problème de refresh. Au pire fait sans gradle et je pourrais integrer par la suite.
C'est ok pour gradle.
Par contre, pourrais-tu me dire parmis ces lettres les qu'elles tu n'arrive pas à écrire ? à â ç è é ê î ô ù û
, et y en a t'il d'autres ?
Edit: Et ceux-ci: ä ë ï ö ü ¨
Ah et quand tu m'a dit ça:
Le caractère
"
me renvoi unINFO KeyListener:27 - KeyPressed: Code: 4
Tu parles du caractère "
ou ¨
(Car c'est ¨
qui m'intéresse, je me suis trompé avant).
Alors, celles que je n'arrive pas à écrire :
-
â
-
ê
-
î
-
ô
-
û
-
ä
-
ë
-
ï
-
ö
-
ü
Et le caractère en question ¨
a le même code que ^
. Ils sont sur la même touche. La différence étant que dans un cas ou dans l'autre le shift est enclenché, ou je suis en mode majuscule.
Et le caractère en question ¨ a le même code que ^. Ils sont sur la même touche. La différence étant que dans un cas ou dans l'autre le shift est enclenché, ou je suis en mode majuscule.
Bon en gros ça va être plus chiant à capturer, mais ça reste faisable en théorie.
Voilà, QA ouverte :D
Edit: Il est fort possible que quelque chose ne joue pas, étant sur Windows avec des numéros de touche différent, c'est pas top. (Par exemple pour le modificateur Shift
j'ai pris le même numéro que j'ai sur Windows alors que j'en ai aucune idée).
Edit2: Je vais voir si je peux ajouter des tests (Je sais pas vraiment si ça fonctionne avec travis), car oui, j'ai appris à faire des tests !
Up, @firm1 @roipoussiere @SpaceFox pour QA ? ça serait bien si on pouvait merge et release ça assez vite.
Je regarde ça.
Bon, c'est un échec, pour deux raisons :
- J'ai bien les caractères accentués dans les logs, mais à l'affichage c'est le caractère non accentué qui s'affiche.
- Les codes sont ceux des touches physiques et non des caractères. Donc, dès que quelqu'un va utiliser autre chose que le mapping AZERTY-FR (BÉPO, mais aussi les claviers belges, suisses et québécois, pour ne citer qu'eux), ça va faire n'importe quoi.
Log AZERTY :
2016-12-17 14:51:17 DEBUG KeyListener:28 - Keypressed: 26 -- 0
2016-12-17 14:51:18 DEBUG KeyListener:28 - Keypressed: 18 -- 0
2016-12-17 14:51:18 DEBUG KeyListener:109 - Append special character (Linux Only): ê
Log BÉPO :
2016-12-17 14:53:42 DEBUG KeyListener:28 - Keypressed: 21 -- 0
2016-12-17 14:53:43 DEBUG KeyListener:28 - Keypressed: 33 -- 0
Ah je comprend mieux mes différences alors, c'est du au fait que j'ai un qwertz. Dommage. Je vais investiguer pour voir si on peut pas retrouver le code des caractères. Et c'est étrange que ça n'ajoute pas les caractères accentué, j'ai du faire une faute car ça fonctionnait pour @firm1
Je tappe ^ puis e et j'ai dans mon texte eê (Youpi !)
Voilà, j'ai trouvé pourquoi sa ne mettais pas le texture à jour (D'ailleurs @firm1 il faudra que je regarde avec toi car je ne comprend pas pourquoi ça ne fonctionnais pas avant) et j'ai remplacé les KeyCode
par des KeyRawCode
.
@SpaceFox tu aurais un petit moment pour re-testé ? :)
Commit 68281d81476d71e418bfea1d7ac73cfca199dd0a
Le système ne détecte même plus les accents dans les logs.
Extraits de log :
2016-12-17 15:51:47 INFO MainApp:93 - Version Java de l'utilisateur: 1.8.0_111
2016-12-17 15:51:47 INFO MainApp:94 - Architecture du système utilisateur: amd64
2016-12-17 15:51:47 INFO MainApp:95 - Nom du système utilisateur: Linux
2016-12-17 15:51:47 INFO MainApp:96 - Version du système utilisateur: 4.8.0-30-generic
ê en AZERTY :
2016-12-17 15:53:50 DEBUG KeyListener:28 - Keypressed: 122 -- 0
2016-12-17 15:53:51 DEBUG KeyListener:28 - Keypressed: 112 -- 0
ê en BÉPO (composé, il existe en accès direct et s'affiche correctement dans ce cas) :
2016-12-17 15:54:51 DEBUG KeyListener:28 - Keypressed: 65106 -- 0
2016-12-17 15:54:51 DEBUG KeyListener:28 - Keypressed: 101 -- 0
Donc les codes récupérés ne sont toujours pas liés aux caractères :(
Note que le comportement est le même que j'essaie avec la JVM Oracle ou OpenJDK.
spacefox@azathoth:~$ /usr/lib/jvm/java-8-oracle/bin/java -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
spacefox@azathoth:~$ /usr/lib/jvm/java-8-openjdk-amd64/bin/java -version
openjdk version "1.8.0_111"
OpenJDK Runtime Environment (build 1.8.0_111-8u111-b14-2ubuntu0.16.10.2-b14)
OpenJDK 64-Bit Server VM (build 25.111-b14, mixed mode)
Dommage. La je n'ai plus trop d'idée pour le coup.
Et puisque je suis curieux, c'est aussi pareil avec la JVM IBM (qui à ma grande surprise lance le projet).
2016-12-17 16:04 GMT+01:00 Kevin Vuilleumier [email protected]:
Dommage. La je n'ai plus trop d'idée pour le coup.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/firm1/zest-writer/pull/296#issuecomment-267767358, or mute the thread https://github.com/notifications/unsubscribe-auth/AFhKnOgK3NwwjDQ5H3Wb-OnIMRX7BmWAks5rI_oHgaJpZM4LOdLl .
Problème déplacé ici.
@roipoussiere ça me parait étonnant comme erreur. Tu pourrais essayer de builder avec :
./gradlew build --stacktrace
Pour voir si tu as encore la même erreur ?
Je n'ai pas eu l'occasion de tester la PR de mon coté ceci dit.
Personnellement je m'étais contenté de l'ouvrir dans IntelliJ et de forcer un rebuild.
2016-12-19 17:00 GMT+01:00 firm1 [email protected]:
@roipoussiere https://github.com/roipoussiere çame parait etonnant comme erreur. Tu pourrais essayer de builder avec :
./gradlew build --stacktrace
Pour voir si tu as encore la même erreur ?
Je n'ai pas eu l'occasion de tester la PR de mon coté ceci dit.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/firm1/zest-writer/pull/296#issuecomment-268001526, or mute the thread https://github.com/notifications/unsubscribe-auth/AFhKnGxQFIleov4-K-ZimvuEQqUv9qVMks5rJqoNgaJpZM4LOdLl .