J'écris actuellement mon propre clavier virtuel pour Linux en utilisant la librairie X11 et je n'arrive pas à trouver le moyen de simuler un événement KeyPress d'une touche morte. J'ai essayé, par exemple, d'écrire "á" en utilisant la macro asigned, qui est XK_aacute, et rien ne se passe. plus tard, j'ai essayé d'envoyer XK_acute (la macro d'accent aigu) et puis XK_a, et encore, rien ne se passe :(Problème avec les touches mortes (aiguë, diaeresis, etc) C++
Dans le clavier virtuel KDE "Kvkbd" il est possible de le faire, donc j'ai téléchargé le code source , mais il ne supporte que la disposition du clavier anglais
Voici mon code de test:
#include <X11/Xlib.h>
#include <X11/keysym.h>
#include <X11/extensions/XTest.h>
#include <iostream>
int main(){
Display *display;
unsigned int keycode;
unsigned int keycode1;
display = XOpenDisplay(NULL);
keycode = XKeysymToKeycode(display, XK_aacute);
XTestFakeKeyEvent(display, keycode, True, 0);
XTestFakeKeyEvent(display, keycode, False, 0);
keycode1 = XKeysymToKeycode(display, XK_acute);
XTestFakeKeyEvent(display, keycode1, True, 0);
keycode = XKeysymToKeycode(display, XK_a);
XTestFakeKeyEvent(display, keycode, True, 0);
XTestFakeKeyEvent(display, keycode, False, 0);
XTestFakeKeyEvent(display, keycode1, False, 0);
keycode = XKeysymToKeycode(display, XK_D);
XTestFakeKeyEvent(display, keycode, True, 0);
XTestFakeKeyEvent(display, keycode, False, 0);
XFlush(display);
}
Toute aide ou idée sera beaucoup aprécié
cela m'a aidé avec mes remerciements d'application! – eqzx