Re: how to cancel an event?
- From: Carlo Agrusti <carlo-ag libero it>
- To: gtk-list gnome org
- Subject: Re: how to cancel an event?
- Date: Sat, 19 Mar 2005 09:59:41 +0100
kyanh o2 pl ha scritto lo scorso 19/03/2005 16:03:
Hi,
please help me: for a special purpose, i want to ignore some events. For example, in my multiline text editor, the keys Key Up and Key Down must be ignored in some cases.
I tried but failed. Thank you very much for replying.
You have to write your key_press_event callback, catch the event->keyval
you wish to treat and stop the signal propagation; something like this:
gboolean on_tvShell_key_press_event (GtkWidget * widget,
GdkEventKey * event,
gpointer user_data)
{
GtkTextBuffer * buffer;
GtkWidget * tvShell;
gboolean ret = FALSE;
tvShell = lookup_widget (widget, "tvShell");
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tvShell));
switch (event->keyval) {
case (GDK_Return):
/* the return key has been hit - are you interested in it?
*/
ret = FALSE;
break;
case (GDK_Up):
/* the arrow-up key has been hit - let's drop this
*/
g_signal_stop_emission_by_name (widget, "key-press");
ret = TRUE;
break;
case (GDK_Down):
ret = FALSE;
break;
case (GDK_Escape):
.
.
.
default:
ret = FALSE;
break;
}
return (ret);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]