From: ryo-dairiki <ryo...@us...> - 2006-05-30 11:42:22
|
Update of /cvsroot/scim/scim-bridge/client-common In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv16913/client-common Modified Files: Tag: plaintext scim-bridge-client.c scim-bridge-client.h scim-bridge-client-imcontext.h scim-bridge-client-messenger.c Log Message: Index: scim-bridge-client.h =================================================================== RCS file: /cvsroot/scim/scim-bridge/client-common/Attic/scim-bridge-client.h,v retrieving revision 1.1.2.5 retrieving revision 1.1.2.6 diff -C2 -d -r1.1.2.5 -r1.1.2.6 *** scim-bridge-client.h 30 May 2006 03:58:15 -0000 1.1.2.5 --- scim-bridge-client.h 30 May 2006 11:42:03 -0000 1.1.2.6 *************** *** 16,22 **** retval scim_bridge_client_handle_message (); ! retval scim_bridge_client_allocate_imcontext (ScimBrideClientIMContext *imcontext); retval scim_bridge_client_free_imcontext (const ScimBrideClientIMContext *imcontext); retval scim_bridge_client_reset_imcontext (const ScimBridgeClientIMContext *imcontext); retval scim_bridge_client_keyevent_occured (const ScimBridgeClientIMContext *imcontext, const KeyEvent *keyevent, boolean *consumed); --- 16,23 ---- retval scim_bridge_client_handle_message (); ! retval scim_bridge_client_alloc_imcontext (ScimBrideClientIMContext *imcontext); retval scim_bridge_client_free_imcontext (const ScimBrideClientIMContext *imcontext); retval scim_bridge_client_reset_imcontext (const ScimBridgeClientIMContext *imcontext); + retval scim_bridge_client_focus_changed (const ScimBridgeClientIMContext *imcontext, boolean focus_in); retval scim_bridge_client_keyevent_occured (const ScimBridgeClientIMContext *imcontext, const KeyEvent *keyevent, boolean *consumed); Index: scim-bridge-client-messenger.c =================================================================== RCS file: /cvsroot/scim/scim-bridge/client-common/scim-bridge-client-messenger.c,v retrieving revision 1.22.2.11 retrieving revision 1.22.2.12 diff -C2 -d -r1.22.2.11 -r1.22.2.12 *** scim-bridge-client-messenger.c 30 May 2006 03:58:15 -0000 1.22.2.11 --- scim-bridge-client-messenger.c 30 May 2006 11:42:03 -0000 1.22.2.12 *************** *** 272,280 **** const size_t attribute_count = (scim_bridge_message_get_argument_count (message) - 1) / 4; ! ScimBridgeAttribute *attributes = alloca (sizeof (ScimBridgeAttribute) * attribute_count); int i; for (i = 0; i < attribute_count; ++i) { ! ScimBridgeAttribute *attribute = attributes + i; const char *attribute_begin_str = scim_bridge_message_get_argument (message, i * 4 + 1); --- 272,280 ---- const size_t attribute_count = (scim_bridge_message_get_argument_count (message) - 1) / 4; ! ScimBridgeAttribute *attributes = scim_bridge_alloc_attribute_array (attribute_count); int i; for (i = 0; i < attribute_count; ++i) { ! ScimBridgeAttribute *attribute = &attributes[i]; const char *attribute_begin_str = scim_bridge_message_get_argument (message, i * 4 + 1); *************** *** 351,354 **** --- 351,355 ---- scim_bridge_client_set_attribute (ic_id, attributes, attribute_count); + scim_bridge_free_attribute_array (attributes, attribute_count); } } Index: scim-bridge-client.c =================================================================== RCS file: /cvsroot/scim/scim-bridge/client-common/Attic/scim-bridge-client.c,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -C2 -d -r1.1.2.3 -r1.1.2.4 *** scim-bridge-client.c 30 May 2006 03:58:15 -0000 1.1.2.3 --- scim-bridge-client.c 30 May 2006 11:42:03 -0000 1.1.2.4 *************** *** 244,252 **** /* Called from GUI through IMContext */ ! retval scim_bridge_client_allocate_imcontext (ScimBrideClientIMContext *imcontext) { scim_bridge_exception_clear (); ! scim_bridge_pdebugln (SCIM_BRIDGE_DEBUG_CLIENT, 5, "scim_bridge_client_allocate_imcontext"); if (!active) { --- 244,252 ---- /* Called from GUI through IMContext */ ! retval scim_bridge_client_alloc_imcontext (ScimBrideClientIMContext *imcontext) { scim_bridge_exception_clear (); ! scim_bridge_pdebugln (SCIM_BRIDGE_DEBUG_CLIENT, 5, "scim_bridge_client_alloc_imcontext"); if (!active) { *************** *** 256,262 **** } ! pending_imcontext_id = -2; if (scim_bridge_client_messenger_call_alloc_imcontext ()) { ! scim_bridge_exception_push_stack ("scim_bridge_client_allocate_imcontext ()"); connection_lost (); --- 256,262 ---- } ! pending_imcontext_id = -1; if (scim_bridge_client_messenger_call_alloc_imcontext ()) { ! scim_bridge_exception_push_stack ("scim_bridge_client_alloc_imcontext ()"); connection_lost (); *************** *** 264,270 **** } ! while (pending_imcontext_id == -2) { if (scim_bridge_client_messenger_read_and_dispatch ()) { ! scim_bridge_exception_push_stack ("scim_bridge_client_allocate_imcontext ()"); connection_lost (); --- 264,270 ---- } ! while (pending_imcontext_id == -1) { if (scim_bridge_client_messenger_read_and_dispatch ()) { ! scim_bridge_exception_push_stack ("scim_bridge_client_alloc_imcontext ()"); connection_lost (); *************** *** 286,289 **** --- 286,291 ---- scim_bridge_pdebugln (SCIM_BRIDGE_DEBUG_CLIENT, 5, "scim_bridge_client_free_imcontext: ic = %d", id); + if (id < 0) return RETVAL_SUCCEED; + if (!active) { scim_bridge_exception_occured (ILLEGAL_STATE_EXCEPTION, "ScimBridge is not active"); *************** *** 308,311 **** --- 310,315 ---- const ScimBridgeIMContextID id = scim_bridge_client_imcontext_get_id (imcontext); scim_bridge_pdebugln (SCIM_BRIDGE_DEBUG_CLIENT, 5, "scim_bridge_client_reset_imcontext: ic = %d", id); + + if (id < 0) return RETVAL_SUCCEED; if (!active) { *************** *** 340,343 **** --- 344,353 ---- const ScimBridgeKeyModifier key_modifiers = scim_bridge_keyevent_get_modifiers (keyevent); scim_bridge_pdebugln (SCIM_BRIDGE_DEBUG_CLIENT, 5, "scim_bridge_client_keyevent_occured: ic = %d, keycode = %u, pressed = %d, modifiers = %u", id, keycode, key_pressed, key_modifiers); + + if (id < 0) { + scim_bridge_exception_occured (ILLEGAL_STATE_EXCEPTION, "IMContext is not active"); + scim_bridge_push_stack ("scim_bridge_client_keyevent_occured ()"); + return RETVAL_FAILED; + } if (!active) { *************** *** 345,349 **** scim_bridge_push_stack ("scim_bridge_client_keyevent_occured ()"); - *consumed = scim_bridge_imcontext_fallback_filter_keyevent (keyevent); return RETVAL_FAILED; } --- 355,358 ---- *************** *** 353,358 **** scim_bridge_exception_push_stack ("scim_bridge_client_keyevent_occured ()"); connection_lost (); - - *consumed = scim_bridge_imcontext_fallback_filter_keyevent (keyevent); return RETVAL_FAILED; } --- 362,365 ---- *************** *** 362,367 **** scim_bridge_exception_push_stack ("scim_bridge_client_keyevent_occured ()"); connection_lost (); - - *consumed = scim_bridge_imcontext_fallback_filter_keyevent (keyevent); return RETVAL_FAILED; } --- 369,372 ---- *************** *** 370,378 **** if (keyevent_handling_status == KEYEVENT_IGNORED) { scim_bridge_pdebugln (SCIM_BRIDGE_DEBUG_CLIENT, 3, "The keyevent was ignored"); ! return scim_bridge_imcontext_fallback_filter_keyevent (keyevent); } else { scim_bridge_pdebugln (SCIM_BRIDGE_DEBUG_CLIENT, 2, "The keyevent was consumed"); ! return TRUE; } } --- 375,384 ---- if (keyevent_handling_status == KEYEVENT_IGNORED) { scim_bridge_pdebugln (SCIM_BRIDGE_DEBUG_CLIENT, 3, "The keyevent was ignored"); ! *consumed = FALSE; } else { scim_bridge_pdebugln (SCIM_BRIDGE_DEBUG_CLIENT, 2, "The keyevent was consumed"); ! *consumed = TRUE; } + return RETVAL_SUCCEED; } *************** *** 384,387 **** --- 390,395 ---- const ScimBridgeIMContextID id = scim_bridge_client_imcontext_get_id (imcontext); scim_bridge_pdebugln (SCIM_BRIDGE_DEBUG_CLIENT, 5, "scim_bridge_client_focus_changed: ic = %d", id); + + if (id < 0) return RETVAL_SUCCEED; if (!active) { *************** *** 407,410 **** --- 415,420 ---- const ScimBridgeIMContextID id = scim_bridge_client_imcontext_get_id (imcontext); scim_bridge_pdebugln (SCIM_BRIDGE_DEBUG_CLIENT, 5, "scim_bridge_client_cursor_position_changed: ic = %d, x = %d, y = %d", id, x, y); + + if (id < 0) return RETVAL_SUCCEED; if (!active) { Index: scim-bridge-client-imcontext.h =================================================================== RCS file: /cvsroot/scim/scim-bridge/client-common/Attic/scim-bridge-client-imcontext.h,v retrieving revision 1.1.2.7 retrieving revision 1.1.2.8 diff -C2 -d -r1.1.2.7 -r1.1.2.8 *** scim-bridge-client-imcontext.h 30 May 2006 03:58:15 -0000 1.1.2.7 --- scim-bridge-client-imcontext.h 30 May 2006 11:42:03 -0000 1.1.2.8 *************** *** 12,16 **** ScimBridgeClientIMContext *scim_bridge_client_find_imcontext (ScimBridgeIMContextID id); ScimBridgeIMContextID scim_bridge_client_imcontext_get_id (const ScimBridgeClientIMContext *imcontext); - boolean scim_bridge_imcontext_fallback_filter_keyevent (const ScimBridgeKeyEvent *keyevent); void scim_bridge_client_imcontext_set_preedit_string (ScimBridgeClientIMContext *imcontext, const char *preedit_string); void scim_bridge_client_imcontext_set_preedit_shown (ScimBridgeClientIMContext *imcontext, boolean preedit_shown); --- 12,15 ---- |