Re: Discarding key pressed events.

Luca Cappa wrote:


in my application I have some key handlers which receive input from the user. When the user press a key, a task has to be executed: this task could require a tiny time slice or a longer one. The problem is that if the user hold pressed a key and the relative task takes a lot of time to be executed, my application will be flooded of key pressed events. I would like to avoid the situation where I receive a lot of "key press" events, which force my application to execute a long time consuming task each time the event is received, and then the application is stuck until all the events are "eaten".

How to avoid this? maybe i could delete the keys' event from the events queue? Any help?

Actually I did a workaround for this problem:

1- get an key press event;
2- disable key press event with: set_events (get_events() ^ Gdk::KEY_PRESS_MASK);
3- start a timer which every 10 millisecs do a task;
4- receive a key release event;
5- stop the timer
6- reenable the key press event mask: set_events (get_events() | Gdk::KEY_PRESS_MASK);

The problem actually is that I cant call "set_events" on a widget which is already realized, and I am get a lot of warnings indeed.
So, my problem is still unresolved. Anyone could help me?

Thanks in advance,

p.s. I am using gtkmm, but there is no problem in talking to my about gtk+.

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]