Evas_Object *popup;
Evas_Object *ent;
Evas_Object *caller;
+#ifdef HAVE_ELEMENTARY_WAYLAND
+ Evas_Object *cbhm_caller; //FIXME: remove when focus issue is resolved
+#endif
Eina_Rectangle *viewport_rect;
Evas_Coord_Rectangle selection_rect;
Eina_List *items;
* use this function. */
}
+static void
+_on_item_clicked(void *data, const Eldbus_Message *msg EINA_UNUSED)
+{
+ Evas_Object *obj = data;
+ if (!data)
+ {
+ return;
+ }
+ const char *txt;
+ //FIXME: because of focus issue: focus is moved to cbhm, not stayed in entry
+ //we cannot check focus object
+ //FIXME: request for focused obj only when focus issue is fixed
+ _check_and_paste(obj);
+}
+
void
-cbhm_eldbus_init()
+cbhm_eldbus_init(Evas_Object *obj)
{
EINA_LOG_ERR("IN");
Eldbus_Object *eldbus_obj;
eldbus_proxy = eldbus_proxy_get(eldbus_obj, CBHM_DBUS_INTERFACE);
eldbus_name_owner_changed_callback_add(cbhm_conn, CBHM_DBUS_INTERFACE,
_cbhm_on_name_owner_changed, cbhm_conn, EINA_TRUE);
+ eldbus_proxy_signal_handler_add(eldbus_proxy, "ItemClicked", _on_item_clicked, obj);
}
void
#include <Elementary.h>
#include <Eina.h>
#include "elm_priv.h"
+#include "elm_module_priv.h"
#ifdef HAVE_ELEMENTARY_X
#include <Ecore_X.h>
#endif /* CBHM_DBUS_INTERFACE */
Eldbus_Proxy* cbhm_proxy_get();
-void cbhm_eldbus_init();
+void cbhm_eldbus_init(Evas_Object *obj);
void cbhm_eldbus_deinit();
+void _check_and_paste(Evas_Object *obj);
#endif /* HAVE_ELEMENTARY_WAYLAND */
Eina_Bool _cbhm_msg_send(Evas_Object* obj, char *msg);
ext_mod->select(data, obj, event_info);
}
+void
+_check_and_paste(Evas_Object *obj)
+{
+ if ((!ext_mod) || (!obj)) return;
+ if (ext_mod->cbhm_caller == obj)
+ {
+ ext_mod->paste(obj, NULL, NULL);
+ }
+}
+
static void
_paste(void *data, Evas_Object *obj, void *event_info)
{
_ctxpopup_hide(obj);
// end for cbhm
elm_entry_select_none(data);
+#ifdef HAVE_ELEMENTARY_WAYLAND
+ ext_mod->cbhm_caller = data; //FIXME: remove when focus issue is removed
+#endif
}
static void
ELM_ICON_STANDARD, NULL, NULL);
#endif
#ifdef HAVE_ELEMENTARY_WAYLAND
- cbhm_eldbus_init();
+ cbhm_eldbus_init(obj);
#endif
}