Hi list,
I have a question regarding
signal handling in GTK 2.2
As fas as I know, Gtk has its default handler for
key press event, If I connect the signal key-press-event with my user defined
handler then it kind of wraps the default handler and whenever
key-press-event is occured, my default handler gets called. My specific problem
is :
In my text editor, I want to check whether I
can find out the pressed key is '\n' or not, if it is '\n' then I do some linked
list specific tasks. for this, in main gui function, I look for key-press-event
signal and associate it with my own handler which does the task of identifying
the key with the help of eventKey->keyval structure parameter. But the
problem that I am facing is, everytime i press any keys my handler associated
with key-press-event signal gets called and I can not print normal characters on
the text view as normal text editor does. I need to stop the emission of this
key-press-event signal in my handler so that i can type in the text view
freely.
Please provide me what should be necessary to
do ? which function should i use to stop the emission of key-press-event in
my handler?
following is my code:
===============
static void init_gui()
{
GtkWidget *text; /* text is nothing
but text_view object */
/* Text_view is created and displayed
in th GUI */
g_signal_connect(GTK_OBJECT(GTK_WIDGET(text)), "key-press-event",
GTK_SIGNAL_FUNC(detectEnter),NULL);
}
My handler
========
gboolean detectEnter(GtkWidget *w, GdkEventKey
*key, gpointer data)
{
switch(key->keyval)
{
case GDK_Return : /* case for detection of enter key and
linked list specific tasks */
ret
= TRUE;
case GDK_Down : /* down key is pressed */
case
GDK_Up: /* up key is pressed */
default: break;
}
return
ret;
}
please tell me where should i stop emission of
key-press-event so that I can type in freely and my handler will not be called
everytime i type any keys.
Waiting for reply as earliest,
Vikram
|