3 Stimmen

Xlib-Mausereignisse und ButtonPressMask

Ich habe ein einfaches Programm geschrieben, das Ereignisse beim Drücken und Loslassen von Tasten für ein bestimmtes Fenster meldet. In meinem Fall ist es meistens das Terminal, da ich das Programm über das Terminal aufrufe. Ich bin in der Lage, die Tastendruck- und -freigabeereignisse im Terminalfenster zu erhalten (ich habe XSelectInput() mit KeyPressMask und KeyReleaseMask auf dem Terminal verwendet), aber dasselbe funktioniert nicht mit ButtonPress und ButtonRelease. Nicht nur diese, sondern alle Ereignisse, die mit der Maus zu tun haben, werden nicht gemeldet. Haben Sie eine Idee, warum dies der Fall ist?

#include
#include
#include
#include
#include
#include

int main() {
Display *display = XOpenDisplay(NULL);
KeySym k;
int revert_to;
Window window;
XEvent event;

XGetInputFocus(display, &window, &revert_to);
XSelectInput(display, window, KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask);

while(1)
{
XNextEvent(display,&event);
  switch (event.type) {

  case KeyPress : printf("Key Pressed\n"); break;
  case KeyRelease : printf("Key Released\n"); break;
  case ButtonPress : printf("Button Pressed\n"); break;
  case ButtonRelease : printf("Button Released\n"); break;
  case EnterNotify : printf("Enter\n"); break;
  }
}
XCloseDisplay(display);
return 0;
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X