key handling, need bug finding hint

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 keybinding 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 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,
a table where lookup of the key has first succeded with lookup and
at later editor invocation failed. I have turned off passing to parent class.

              Best regards
              Roland Orre

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