ClementGre / PDF4Teachers

PDF editing software for teachers, focused on productivity. PDF4Teachers keeps recorded previous annotations, and offers features like marking scale, PDF conversion, vectorial drawing...
https://pdf4teachers.org/
Apache License 2.0
146 stars 18 forks source link

Impossible d'ouvrir les menus #71

Closed Rabidax closed 3 years ago

Rabidax commented 3 years ago

Bonjour

Describe the bug Les menus ne s'ouvrent pas correctement : ils apparaissent seulement pour la durée du clic (clignotent) et disparaisse sans que l'on puisse sélectionner un élément.

To Reproduce Steps to reproduce the behavior:

  1. Ouvrir l'app
  2. Cliquer sur un menu

Check the console Rien n'apparait quand j'ouvre la console et je reproduis le bug.

Desktop (please complete the following information):

MeisterLLD commented 3 years ago

Même problème sur Arch Linux 01.04.2021 et xmonad comme gestionnaire de fenêtres.

ClementGre commented 3 years ago

Bonjour,

après quelques recherches, étant donné qu'à la fois I3 et Xmonad n'ont pas de barre de titre au dessus des fenêtre (avec habituellement l'icône, le nom de l'application, et les boutons minimiser, maximiser, fermer...), je pense que ce bug serait dû au gestionnaire de fenêtres qui couperait le haut de la fenêtre, comme décrit dans cette issue : https://github.com/javafxports/openjdk-jfx/issues/546#issuecomment-741942108.

Ce serait bien si vous pouviez me dire s'il s'agit de ce bug là particulièrement. Si c'est le cas, vous devriez être capable d'ouvrir les menus en cliquant tout en bas (sauf si les menus sont trop petits). Je suppose aussi que vous n'avez aucun problème à ouvrir la page À Propos en cliquant au milieu du bouton ? Le menu qui s'affiche/clignote devrait aussi s'afficher trop bas par rapport au dessous du bouton cliqué ?

Est-ce que les menus contextuels comme le clic droit sur un document, s'affichent eux aussi plus bas que le pointeur de la souris, ou sont-il bien aligné ? Il y a plusieurs autres fonctions qui font référence aux coordonnées relatives à l'écran ou à la fenêtre, qui devraient être affectés, comme les pop up d'astuces, où même les dialogues et les fenêtres alternatives, mais ces changements seraient mineurs et compliqués à identifier.

Dans ce cas, il s'agirait d'un bug du gestionnaire de fenêtres et la seule chose que je puisse faire est d'ajouter de l'espace avant le menu pour ces configurations.

Sur ce rapport de bug : https://bugs.openjdk.java.net/browse/JDK-8251240?attachmentViewMode=list, le problème pourrait aussi venir du DPI de l'écran qui serait mal reconnu, et qui poserait aussi des problèmes de coordonnées (Je pense qu'il s'agit de ça pour vous @MeisterLLD), la résolution de #63 résoudrait donc le problème de votre côté.

Vous pouvez essayer les solutions proposées ici :

One possible explanation is that JavaFX is detecting Hi-DPI scaling in OpenJFX 14. If so, a possible workaround would be to set GDK_DISPLAY=1 in the environment. Another possibility is a bug in the GTK3 window toolkit (Glass) code. If so, another possible workaround would be to run with the following system property set:

$ java -Djdk.gtk.version=2

J'espère vous avoir aidé et vous remercie d'avance pour votre coopération ! Cordialement, Clément G.

MeisterLLD commented 3 years ago

Oui, bien vu, ça fonctionne bien si je clique tout en bas des boutons du menu. Pas de problème avec la page À propos même au milieu du bouton. Oui, les menus s'affichent un peu plus bas.

Pour les menus contextuels tout va bien.

Pour le lien avec #63, j'ai réduit ma résolution à 1920x1080 mais ça ne change rien au problème courant, donc pas sûr. Je vais répondre sur #63

Merci à vous !

MeisterLLD commented 3 years ago

Pour être plus précis, après avoir appliqué gsettings set org.gnome.desktop.interface scaling-factor 2 le problème est moindre : les menus apparaissent correctement tant que je clique sur la moitié basse des boutons (là où sans mise à l'échelle, il faut vraiment cliquer dans les 10% inférieurs à vue de nez).

ClementGre commented 3 years ago

D'accord, merci pour votre coopération ! Étant donné qu'il s'agit d'un problème interne au gestionnaire de fenêtres, il va être compliqué de résoudre ce problème dans PDF4Teachers, mais puisque l'application reconnaît bien le clic de l'utilisateur, je peut bien forcer le menu à s'ouvrir en le ré-ouvrant par exemple 50ms après un clic. Ce problème devrait donc être résolu pour la prochaine version. Vous pourrez tester tout ça dans la pre-release de la 1.3.0.

Merci à vous, Clément G.

ClementGre commented 3 years ago

Bonjour,

j'ai mis en place différentes manières de résoudre ce problème. Globalement, elles reposent toutes sur le même système : quand le menu s'ouvre, le forcer à rester ouvert durant les quelques ms qui suivent, en lui redemandant de se ré-ouvrir s'il n'y a plus de menu ouvert.

vous pourrez configurer tout ça dans les paramètres : image

Vous devez entrer le nombre de millisecondes d'attente entre le moment où le menu est ouvert et celui où PDF4Teachers lui re-demande de s'ouvrir.

Malheureusement, je crois bien que cela dépendra de la durée de votre clic, car il se referme au moment où vous relâchez le clic. J'ai ainsi créé des valeurs spéciales :

Vous me direz comment ça se passe lors de la pre-release ! Merci à vous, Clément

ClementGre commented 3 years ago

Bonjour, la pre-release de la 1.3.0 a été publiée. Je vous invite à l'installer pour tester cette "fonctionnalité", qui devrais résoudre le bug (Voir mon dernier message pour les différentes options/valeurs permettant de résoudre le bug).

Merci, Clément Grennerat.

ClementGre commented 3 years ago

Bonjour, la v1.3.0 finale va paraître dans quelques jours. Je supprime donc cette issue du projet 1.3.0 et je l'ajouterais au projet 1.3.1 ou 1.4.0 dans le cas où le bug n'est toujours pas résolu.

Merci à vous, Clément Grennerat

MeisterLLD commented 3 years ago

Bonjour. Avec 1ms ça fonctionne bien sous xmonad :)

ClementGre commented 3 years ago

Bonjour et merci pour votre réponse.

1ms correspond à ce fonctionnement : Si vous réglez sur 1ms, l'application va essayer de réouvrir le menu toutes les 50ms jusqu'à 500ms (Un clic dure rarement plus de 500ms). Ceci permet d'éviter d'avoir le menu qui se ferme, puis se réouvre 200ms plus tard, en le forçant à se réouvrir dès que possible.

J'imagine que 0ms ne fonctionnait pas. Je pense donc que je vais proposer le fonctionnement du 1ms uniquement dans la prochaine version.

Merci !