X11: Problem KeyPress/Keydown
-
Hallo zusammen,
Gibts es eine Möglichkeit ein KeyPress(also wiederkehrendes) und KeyDown event in X11 zu unterscheiden?
Mich interessiert wann eine Taste gedrückt und wann losgelassen wurde. Ich finde es schlecht an X, dass es KeyDown und KeyUp events in regelmäßigen Abständen hintereinander sendet. Meiner meinung nach musste es 3 verschiedene Events geben: KeyDown(Runterdrücken), KeyUp(Loslassen) und KeyPress(Regelmäßig wiederkehren für input-boxen).
Vielleicht bin ich einfach nur zu blöd und sowas gibts oder man kann das deaktivieren oder so.
Weis jemand mehr?
-
/* Check to see if this is a repeated key. (idea shamelessly lifted from GII -- thanks guys! :) */ static int X11_KeyRepeat(Display *display, XEvent *event) { XEvent peekevent; int repeated; repeated = 0; if ( XPending(display) ) { XPeekEvent(display, &peekevent); if ( (peekevent.type == KeyPress) && (peekevent.xkey.keycode == event->xkey.keycode) && ((peekevent.xkey.time-event->xkey.time) < 2) ) { repeated = 1; XNextEvent(display, &peekevent); } } return(repeated); }
-
achja das ist aus den SDL 1.2.8 quellen,also wisst ja copyright und so beachten...
-
Hi und danke für deine Antwort
Aber so wie das aussieht, geht das nur danach, in wie großen Zeitabständen die Events daherkamen. Das ist aber leicht zu täuschen. Wenn ich die A-Taste schnell hintereinander drücke, sieht er das als wiederholt an. Wenn ich in der X-config die Repeat-time sehr hoch stelle, sieht er's nich als wiederholt an. Oder liede ich da falsch?