possible GtkIMContext bugs + questions



I've encountered several wierdnesses with gtk-2.2.1 while hacking on im-ja.

1.
the gtk_im_context_set_cursor_location(GtkIMContext *context, GdkRectangle
*area) function returns huge numbers for area->width and area->height on the
first call. 

2.
When a client window is moved such that the cursor location changes, the above
doesn't seem to be called. 
I want the status window to be moved together with the client window (just like
it is with kinput2), so i had to add an ugly hack for this. When the window is
moved, a focus_in and focus_out event occurs. I added g_signal_emit_by_name(cn,
"commit", "") to the focus_in event handler, which triggers the
set_cursor_location handler.

3.
I'd like to implement raw input. Right now I have this hack: 
    if (key->keyval == GDK_Return) return FALSE;
    if (key->keyval == GDK_space) {
      g_signal_emit_by_name(cn, "commit", " ");
      return TRUE;
    }
    g_signal_emit_by_name(cn, "commit", key->string);
    return FALSE;

What is the proper way to pass on the key events to the client window from
filter_keypress() ?

TIA.




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