diff --git a/scim-wnn/src/scim_wnn_def.h b/scim-wnn/src/scim_wnn_def.h index 56a5ee1..ee7e282 100644 --- a/scim-wnn/src/scim_wnn_def.h +++ b/scim-wnn/src/scim_wnn_def.h @@ -71,6 +71,5 @@ #define SCIM_PROP_WNN_MODESTATUS "/IMEngine/Wnn/Property/ModeStatus" #define SCIM_PROP_WNN_INPUTMODE "/IMEngine/Wnn/InputMode" - #endif diff --git a/scim-wnn/src/scim_wnn_imengine.cpp b/scim-wnn/src/scim_wnn_imengine.cpp index d5aa7b7..e1719e2 100644 --- a/scim-wnn/src/scim_wnn_imengine.cpp +++ b/scim-wnn/src/scim_wnn_imengine.cpp @@ -176,6 +176,7 @@ : IMEngineInstanceBase (factory, encoding, id) { m_iconv.set_encoding ("EUC-JP"); + m_connected = false; preeditors.push_back(new Romkan(_scim_config)); preeditors.push_back(new KanaInput(_scim_config)); m_preeditor = preeditors.at(0); @@ -616,9 +617,7 @@ m_conversion = false; m_lookup = false; wnn.reset(); - //wnn.wnnDisconnect(); m_preeditor->reset(); - m_proplist.clear(); updatePreEditor(); } @@ -664,12 +663,13 @@ void WnnInstance::startConversion(WideString s) { hide_aux_string(); - if (!wnn.isConnected()) { - if (!wnn.wnnConnect(String("scim-wnn"),host,rc,0)) { - update_aux_string(utf8_mbstowcs(String(_("could not connect to jserver.")))); - show_aux_string(); - return; - } + if (!m_connected) { + m_connected = wnn.wnnConnect(String("scim-wnn"),host,rc,0); + } + if (!m_connected) { + update_aux_string(utf8_mbstowcs(String(_("could not connect to jserver.")))); + show_aux_string(); + return; } wnn.setYomiText(s); diff --git a/scim-wnn/src/scim_wnn_imengine.h b/scim-wnn/src/scim_wnn_imengine.h index 344f911..47447ca 100644 --- a/scim-wnn/src/scim_wnn_imengine.h +++ b/scim-wnn/src/scim_wnn_imengine.h @@ -93,6 +93,7 @@ bool mini_status; String host; String rc; + bool m_connected; IConvert m_iconv; vector preeditors; protected: diff --git a/scim-wnn/src/wnnconversion.cpp b/scim-wnn/src/wnnconversion.cpp index 69c7d24..fe24ae6 100644 --- a/scim-wnn/src/wnnconversion.cpp +++ b/scim-wnn/src/wnnconversion.cpp @@ -95,22 +95,11 @@ /*! - \fn WnnConversion::wnnDisconnect() - */ -void WnnConversion::wnnDisconnect() -{ - reset(); - if (isConnected()) jl_close(wnn); - wnn = 0; -} - - -/*! \fn WnnConversion::isConnected() */ bool WnnConversion::isConnected() { - if (wnn != NULL) return(true); + if (wnn) return(true); else (false); } @@ -369,4 +358,3 @@ { return(caretPos); } - diff --git a/scim-wnn/src/wnnconversion.h b/scim-wnn/src/wnnconversion.h index 0745380..30eab17 100644 --- a/scim-wnn/src/wnnconversion.h +++ b/scim-wnn/src/wnnconversion.h @@ -63,7 +63,6 @@ bool resizeRegion(int w); void updateFrequency(); bool wnnConnect(String name,String host,String rc,int timeout); - void wnnDisconnect(); int getCaretPos(); protected: diff --git a/scim-wnn/src/wnnproto.h b/scim-wnn/src/wnnproto.h index fa8da9f..f054a23 100644 --- a/scim-wnn/src/wnnproto.h +++ b/scim-wnn/src/wnnproto.h @@ -32,7 +32,7 @@ #define w_char unsigned short struct wnn_buf *jl_open_lang(char *,char *,char *,char *,int (*)(char *),int(*)(char *),int); #define jl_open(a,b,c,d,e,f) jl_open_lang(a,b,NULL,c,d,e,f) - void jl_close(struct wnn_buf*); + /*