if (!(ec = ips->ec)) return;
if (e_object_is_del(E_OBJECT(ec))) return;
-
if ((ips->showing) && (e_pixmap_usable_get(ec->pixmap)))
{
-#ifdef _TV
- _e_input_panel_position_set(ec, ec->client.w, ec->client.h);
- ec->visible = EINA_TRUE;
- evas_object_geometry_set(ec->frame, ec->x, ec->y, ec->w, ec->h);
- evas_object_show(ec->frame);
- e_comp_object_damage(ec->frame, 0, 0, ec->w, ec->h);
-#else
- if (ec->visible)
- return;
+ /* Now we can assure that previous SHOW request actually succeeded,
+ * no need for trying re-run panel show command */
+ if (panel_show_need_rerun)
+ e_input_panel_show_need_rerun_set(EINA_FALSE);
- WTI_LOG("IPS::DEFER_SHOW::ADD");
- ips->wait_update = EINA_TRUE;
- if (!ips->eh.buf_change)
+
+ if (_TV)
{
- ips->eh.buf_change =
- ecore_event_handler_add(E_EVENT_CLIENT_BUFFER_CHANGE,
- _ips_cb_buffer_change, ips);
+ _e_input_panel_position_set(ec, ec->client.w, ec->client.h);
+ ec->visible = EINA_TRUE;
+ evas_object_geometry_set(ec->frame, ec->x, ec->y, ec->w, ec->h);
+ evas_object_show(ec->frame);
+ e_comp_object_damage(ec->frame, 0, 0, ec->w, ec->h);
+ }
+ else
+ {
+ if (ec->visible)
+ return;
+
+ WTI_LOG("IPS::DEFER_SHOW::ADD");
+ ips->wait_update = EINA_TRUE;
+ if (!ips->eh.buf_change)
+ {
+ ips->eh.buf_change =
+ ecore_event_handler_add(E_EVENT_CLIENT_BUFFER_CHANGE,
+ _ips_cb_buffer_change, ips);
+ }
}
-#endif
}
else
{
context->input_method = input_method;
input_method->context = context;
- wl_input_method_send_activate(input_method->resource, context->resource, text_input->id);
+ if (context->resource)
+ wl_input_method_send_activate(input_method->resource, context->resource, text_input->id);
}
-#ifdef _TV
- set_soft_keyboard_mode();
-#endif
+ if (_TV)
+ set_soft_keyboard_mode();
if (text_input->resource)
wl_text_input_send_enter(text_input->resource, surface);
void e_input_panel_shutdown(void);
void e_input_panel_visibility_change(Eina_Bool visible);
Eina_Bool e_input_panel_client_find(E_Client *ec);
+ Eina_Bool e_input_panel_client_geometry_get(E_Client *ec, int *x, int *y, int *w, int *h);
EINTERN void e_input_panel_wait_update_set(Eina_Bool wait_update);
EINTERN void e_input_panel_transient_for_set(E_Client *parent);
+ void e_input_panel_show_need_rerun_set(Eina_Bool need_rerun);
+typedef enum {
+ TIZEN_PROFILE_UNKNOWN = 0,
+ TIZEN_PROFILE_MOBILE = 0x1,
+ TIZEN_PROFILE_WEARABLE = 0x2,
+ TIZEN_PROFILE_TV = 0x4,
+ TIZEN_PROFILE_IVI = 0x8,
+ TIZEN_PROFILE_COMMON = 0x10,
+} tizen_profile_t;
+extern tizen_profile_t _get_tizen_profile();
+#define _TV (_get_tizen_profile() == TIZEN_PROFILE_TV)
#endif