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 <[EMAIL PROTECTED]> Date: Jul 10, 2005 5:39 PM Subject: key handling, need bug finding hint To: [email protected] 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 [EMAIL PROTECTED] */ 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 _______________________________________________ evolution-hackers maillist - [email protected] http://lists.ximian.com/mailman/listinfo/evolution-hackers
