static bool filter_hotkeys (EcoreIMFContextISF *ic,
const KeyEvent &key);
static bool filter_keys (const char *keyname,
- const char *config_path);
+ std::vector <String> &keys);
+
static void turn_on_ic (EcoreIMFContextISF *ic);
static void turn_off_ic (EcoreIMFContextISF *ic);
static void set_ic_capabilities (EcoreIMFContextISF *ic);
static int __current_hyper_mask = 0;
static int __current_numlock_mask = Mod2Mask;
+static std::vector <String> hide_ise_keys;
+static std::vector <String> ignore_keys;
+
extern Ecore_IMF_Input_Panel_State input_panel_state;
extern Ecore_IMF_Input_Panel_State notified_state;
extern Ecore_IMF_Context *input_panel_ctx;
Ecore_X_Window focus_win = ecore_x_window_focus_get ();
if ((client_win == focus_win) && ((_hide_ise_based_on_focus) ? (_focused_ic != 0):(true))) {
- if (filter_keys (ev->keyname, SCIM_CONFIG_HOTKEYS_FRONTEND_HIDE_ISE)) {
+ if (filter_keys (ev->keyname, hide_ise_keys)) {
if (get_keyboard_mode () == TOOLBAR_HELPER_MODE) {
if (ecore_imf_context_input_panel_state_get (active_ctx) == ECORE_IMF_INPUT_PANEL_STATE_HIDE)
return ECORE_CALLBACK_PASS_ON;
Ecore_X_Window focus_win = ecore_x_window_focus_get ();
if ((client_win == focus_win) && ((_hide_ise_based_on_focus) ? (_focused_ic != 0):(true))) {
- if (filter_keys (ev->keyname, SCIM_CONFIG_HOTKEYS_FRONTEND_HIDE_ISE)) {
+ if (filter_keys (ev->keyname, hide_ise_keys)) {
if (get_keyboard_mode () == TOOLBAR_HELPER_MODE) {
if (ecore_imf_context_input_panel_state_get (active_ctx) == ECORE_IMF_INPUT_PANEL_STATE_HIDE)
return ECORE_CALLBACK_PASS_ON;
get_input_language ();
vconf_notify_key_changed (VCONFKEY_ISF_INPUT_LANGUAGE, input_language_changed_cb, NULL);
+
+ scim_split_string_list (hide_ise_keys, _config->read (String (SCIM_CONFIG_HOTKEYS_FRONTEND_HIDE_ISE), String ("")), ',');
+
+ scim_split_string_list (ignore_keys, _config->read (String (SCIM_CONFIG_HOTKEYS_FRONTEND_IGNORE_KEY), String ("")), ',');
}
}
scim_set_device_info (key, ev->dev_name ? ev->dev_name : "", ev->dev_class, ev->dev_subclass);
timestamp = ev->timestamp;
- if (filter_keys (ev->keyname, SCIM_CONFIG_HOTKEYS_FRONTEND_IGNORE_KEY))
+ if (filter_keys (ev->keyname, ignore_keys))
return EINA_TRUE;
/* Hardware input detect code */
Ecore_IMF_Event_Key_Up *ev = (Ecore_IMF_Event_Key_Up *)event;
timestamp = ev->timestamp;
- if (filter_keys (ev->keyname, SCIM_CONFIG_HOTKEYS_FRONTEND_IGNORE_KEY))
+ if (filter_keys (ev->keyname, ignore_keys))
return EINA_TRUE;
}
}
static bool
-filter_keys (const char *keyname, const char *config_path)
+filter_keys (const char *keyname, std::vector <String> &keys)
{
SCIM_DEBUG_FRONTEND(1) << __FUNCTION__ << "...\n";
- if (!keyname || !_config)
+ if (!keyname)
return false;
- std::vector <String> keys;
- scim_split_string_list (keys, _config->read (String (config_path), String ("")), ',');
-
for (unsigned int i = 0; i < keys.size (); ++i) {
if (!strcmp (keyname, keys [i].c_str ())) {
return true;