Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Règle le problème des accents sur Linux (ou pas) #296

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

WinXaito
Copy link
Collaborator

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 ^ puis e, résultat ?

Si ça ne fonctionne pas, merci de fournir les logs.

@firm1
Copy link
Owner

firm1 commented Dec 15, 2016

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]

@WinXaito
Copy link
Collaborator Author

WinXaito commented Dec 15, 2016

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

@firm1
Copy link
Owner

firm1 commented Dec 15, 2016

Ce qui est bien bizarre c'est que ça fonctionne avec un TextArea normal

@WinXaito
Copy link
Collaborator Author

Vraiment ? Un textarea JavaFX ou AWT/Swing ?

@firm1
Copy link
Owner

firm1 commented Dec 15, 2016

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 ?

@WinXaito
Copy link
Collaborator Author

Ohhh !!!!!! C'est donc cela ! Je modifie ma PR de suite.

@WinXaito
Copy link
Collaborator Author

Si tu pouvais retester :)

@firm1
Copy link
Owner

firm1 commented Dec 15, 2016

Je tappe ^ puis e et j'ai dans mon texte eê (Youpi !)

@WinXaito
Copy link
Collaborator Author

WinXaito commented Dec 15, 2016

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.

@firm1
Copy link
Owner

firm1 commented Dec 15, 2016

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'

@WinXaito
Copy link
Collaborator Author

Il n'existe pas sur gradle, uniquement sur Maven.

@firm1
Copy link
Owner

firm1 commented Dec 15, 2016

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.

@WinXaito
Copy link
Collaborator Author

WinXaito commented Dec 15, 2016

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.

@firm1
Copy link
Owner

firm1 commented Dec 15, 2016

Peut etre problème de refresh. Au pire fait sans gradle et je pourrais integrer par la suite.

@WinXaito
Copy link
Collaborator Author

WinXaito commented Dec 15, 2016

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: ä ë ï ö ü ¨

@WinXaito
Copy link
Collaborator Author

Ah et quand tu m'a dit ça:

Le caractère " me renvoi un INFO KeyListener:27 - KeyPressed: Code: 4

Tu parles du caractère " ou ¨ (Car c'est ¨ qui m'intéresse, je me suis trompé avant).

@firm1
Copy link
Owner

firm1 commented Dec 15, 2016

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.

@WinXaito
Copy link
Collaborator Author

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.

@WinXaito
Copy link
Collaborator Author

WinXaito commented Dec 15, 2016

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 !

@WinXaito
Copy link
Collaborator Author

Up, @firm1 @roipoussiere @SpaceFox pour QA ? ça serait bien si on pouvait merge et release ça assez vite.

@SpaceFox
Copy link
Contributor

Je regarde ça.

@SpaceFox
Copy link
Contributor

Bon, c'est un échec, pour deux raisons :

  1. J'ai bien les caractères accentués dans les logs, mais à l'affichage c'est le caractère non accentué qui s'affiche.
  2. 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

@WinXaito
Copy link
Collaborator Author

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 !)

@WinXaito
Copy link
Collaborator Author

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é ? :)

@@ -46,8 +46,9 @@ public static boolean isWindowsOs(){
}

public static boolean isLinuxOs(){
String os = System.getProperty("os.name").toLowerCase();
return os.contains("lin") || os.contains("nix") || os.contains("nux") || os.contains("aix") || os.contains("uni");
return true;
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: Ne pas oublié de modifier ici (J'ai mis ça pour que je puisse essayé aussi :p)

@SpaceFox
Copy link
Contributor

Commit 68281d8

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)

@WinXaito
Copy link
Collaborator Author

Dommage. La je n'ai plus trop d'idée pour le coup.

@SpaceFox
Copy link
Contributor

SpaceFox commented Dec 17, 2016 via email

@roipoussiere
Copy link
Collaborator

roipoussiere commented Dec 19, 2016

Problème déplacé ici.

@firm1
Copy link
Owner

firm1 commented Dec 19, 2016

@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.

@SpaceFox
Copy link
Contributor

SpaceFox commented Dec 19, 2016 via email

@roipoussiere
Copy link
Collaborator

roipoussiere commented Dec 19, 2016

J'ai la même chose avec firm1/master, je fais un ticket séparé ici.

@WinXaito
Copy link
Collaborator Author

@roipoussiere je vois pas du tout le rapport en sonar et cette pr

@firm1
Copy link
Owner

firm1 commented Dec 23, 2016

Bon, je confirme que cette PR ne fait pas le résultat attendu chez moi :( Les même souci que @SpaceFox

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants