[Evolution-hackers] key handling bug, closer, but need help
- From: Roland Orre <roland orre gmail com>
- To: evolution-hackers lists ximian com
- Subject: [Evolution-hackers] key handling bug, closer, but need help
- Date: Mon, 11 Jul 2005 00:04:10 +0200
As I wrote earlier I had problems with emacs keys in
evolution and I have now localized the problem to
when gtk looks up the key in the key binding table.
I sent this message to the gtk-devel-list earlier as it
relates to gtk bug findings, but havent' got any reply
from there so I hope for better luck here.
---------- Forwarded message ----------
From: Roland Orre <roland orre gmail com>
Date: Jul 10, 2005 5:39 PM
Subject: key handling, need bug finding hint
To: gtk-devel-list gnome org
I'm trying to find a bug causing emacs keys not working properly in
evolution. I suspect that the key binding table becomes destroyed of
some reason, as the key table lookup may first
succeed, and later fail. I don't yet know which package to
suspect.
***************************************************************
My question: Is there a simple way to check/verify/print the
structure of the gtk key-binding hash table?
***************************************************************
Description follows:
In 50% of the invocations of evolution it works for the first editor
invocation of the editor, but not the following.
I'm using sources from gtk+-2.6.4, gtkhtml-3.6.1 and evolution 2.2.1.1 for now.
The key bindings are read from a file keybindingsrc.emacs with
gtk_rc_parse and lands into structure html_class->emacs_bindings
and are interpreted in the following way:
gtk_binding_set_activate (html_class->emacs_bindings,
event->keyval,event->state, GTK_OBJECT (widget));
This results in a call to binding_ht_lookup_entry where the follwing fails:
<<<<<
lookup_entry.keyval = keyval;
lookup_entry.modifiers = modifiers;
entry = g_hash_table_lookup (binding_entry_hash_table,
&lookup_entry);
/* added debug print roland orre neurologic se */
if (entry) {
printf("gtk: entry found for keyval %d\n", keyval);
printf("gtk: modifiers = %lx\n",modifiers);
}
else {
printf("gtk: entry was not found for keyval %d \n",keyval);
printf("gtk: modifiers = %lx\n",modifiers);
}
>>>>>
The key binding hash table is pointing to the same address all
the time, which is the reason I believe it has been distorted
before the second editor invocation. The lookup of the keys
from this table has first succeded and at the next editor
invocation failed. I have turned off passing of keys
to parent class.
Best regards
Roland Orre
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]