ecore_imf: Add ecore_imf_input_panel_hide() API

This commit is contained in:
Jihoon Kim 2013-04-13 17:01:56 +09:00
parent 373fb30096
commit 58d7c5c1dc
5 changed files with 39 additions and 1 deletions

View File

@ -1,3 +1,7 @@
2013-04-13 Jihoon Kim
* Ecore_IMF: Add ecore_imf_input_panel_hide () API
2013-04-10 Rafael Antognolli 2013-04-10 Rafael Antognolli
* Ecore: Add support for double and triple click on Wayland. * Ecore: Add support for double and triple click on Wayland.

4
NEWS
View File

@ -90,7 +90,9 @@ Additions:
* Ecore: * Ecore:
- notify systemd that we are ready as soon as the main loop is running. - notify systemd that we are ready as soon as the main loop is running.
- automatically support Watchdog. - automatically support Watchdog.
* ecore_imf: Add ecore_imf_context_input_panel_layout_variation_set/get API * ecore_imf:
- Add ecore_imf_context_input_panel_layout_variation_set/get API
- Add ecore_imf_input_panel_hide API
* Add edje_object_part_text_input_panel_layout_variation_set/get API * Add edje_object_part_text_input_panel_layout_variation_set/get API
* Evil: * Evil:
- Add mkdtemp. - Add mkdtemp.

View File

@ -535,6 +535,14 @@ EAPI int ecore_imf_shutdown(void);
EAPI void ecore_imf_module_register(const Ecore_IMF_Context_Info *info, Ecore_IMF_Context *(*imf_module_create)(void), Ecore_IMF_Context *(*imf_module_exit)(void)); EAPI void ecore_imf_module_register(const Ecore_IMF_Context_Info *info, Ecore_IMF_Context *(*imf_module_create)(void), Ecore_IMF_Context *(*imf_module_exit)(void));
/**
* Hide the input panel.
* @return EINA_TRUE if the input panel will be hidden
EINA_FALSE if the input panel is already in hidden state
* @ingroup Ecore_IMF_Lib_Group
*/
EAPI Eina_Bool ecore_imf_input_panel_hide(void);
/** /**
* Get the list of the available Input Method Context ids. * Get the list of the available Input Method Context ids.
* *

View File

@ -16,6 +16,7 @@ EAPI int ECORE_IMF_EVENT_DELETE_SURROUNDING = 0;
int _ecore_imf_log_dom = -1; int _ecore_imf_log_dom = -1;
static int _ecore_imf_init_count = 0; static int _ecore_imf_init_count = 0;
extern Ecore_IMF_Context *show_req_ctx;
EAPI int EAPI int
ecore_imf_init(void) ecore_imf_init(void)
@ -52,3 +53,18 @@ ecore_imf_shutdown(void)
ecore_shutdown(); ecore_shutdown();
return _ecore_imf_init_count; return _ecore_imf_init_count;
} }
EAPI Eina_Bool
ecore_imf_input_panel_hide(void)
{
if (show_req_ctx)
{
if (ecore_imf_context_input_panel_state_get(show_req_ctx) != ECORE_IMF_INPUT_PANEL_STATE_HIDE)
{
ecore_imf_context_input_panel_hide(show_req_ctx);
return EINA_TRUE;
}
}
return EINA_FALSE;
}

View File

@ -12,6 +12,8 @@
#include "Ecore_IMF.h" #include "Ecore_IMF.h"
#include "ecore_imf_private.h" #include "ecore_imf_private.h"
Ecore_IMF_Context *show_req_ctx = NULL;
EAPI Eina_List * EAPI Eina_List *
ecore_imf_context_available_ids_get(void) ecore_imf_context_available_ids_get(void)
{ {
@ -251,6 +253,8 @@ ecore_imf_context_show(Ecore_IMF_Context *ctx)
"ecore_imf_context_show"); "ecore_imf_context_show");
return; return;
} }
show_req_ctx = ctx;
if (ctx->klass->show) ctx->klass->show(ctx); if (ctx->klass->show) ctx->klass->show(ctx);
} }
@ -263,6 +267,8 @@ ecore_imf_context_hide(Ecore_IMF_Context *ctx)
"ecore_imf_context_hide"); "ecore_imf_context_hide");
return; return;
} }
show_req_ctx = NULL;
if (ctx->klass->hide) ctx->klass->hide(ctx); if (ctx->klass->hide) ctx->klass->hide(ctx);
} }
@ -772,6 +778,7 @@ ecore_imf_context_input_panel_show(Ecore_IMF_Context *ctx)
return; return;
} }
show_req_ctx = ctx;
if (ctx->klass->show) ctx->klass->show(ctx); if (ctx->klass->show) ctx->klass->show(ctx);
} }
@ -785,6 +792,7 @@ ecore_imf_context_input_panel_hide(Ecore_IMF_Context *ctx)
return; return;
} }
show_req_ctx = NULL;
if (ctx->klass->hide) ctx->klass->hide(ctx); if (ctx->klass->hide) ctx->klass->hide(ctx);
} }