forked from enlightenment/enlightenment
parent
2ba3676d55
commit
d33e0931ee
|
@ -88,27 +88,27 @@ e_entry_add(Evas *evas)
|
||||||
if (!_e_entry_smart)
|
if (!_e_entry_smart)
|
||||||
{
|
{
|
||||||
static const Evas_Smart_Class sc =
|
static const Evas_Smart_Class sc =
|
||||||
{
|
{
|
||||||
"e_entry",
|
"e_entry",
|
||||||
EVAS_SMART_CLASS_VERSION,
|
EVAS_SMART_CLASS_VERSION,
|
||||||
_e_entry_smart_add,
|
_e_entry_smart_add,
|
||||||
_e_entry_smart_del,
|
_e_entry_smart_del,
|
||||||
_e_entry_smart_move,
|
_e_entry_smart_move,
|
||||||
_e_entry_smart_resize,
|
_e_entry_smart_resize,
|
||||||
_e_entry_smart_show,
|
_e_entry_smart_show,
|
||||||
_e_entry_smart_hide,
|
_e_entry_smart_hide,
|
||||||
_e_entry_color_set,
|
_e_entry_color_set,
|
||||||
_e_entry_clip_set,
|
_e_entry_clip_set,
|
||||||
_e_entry_clip_unset,
|
_e_entry_clip_unset,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
_e_entry_smart = evas_smart_class_new(&sc);
|
_e_entry_smart = evas_smart_class_new(&sc);
|
||||||
_e_entry_smart_use = 0;
|
_e_entry_smart_use = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -203,7 +203,7 @@ e_entry_password_set(Evas_Object *entry, int password_mode)
|
||||||
if (sd->imf_context)
|
if (sd->imf_context)
|
||||||
ecore_imf_context_input_mode_set(sd->imf_context,
|
ecore_imf_context_input_mode_set(sd->imf_context,
|
||||||
password_mode ? ECORE_IMF_INPUT_MODE_FULL & ECORE_IMF_INPUT_MODE_INVISIBLE :
|
password_mode ? ECORE_IMF_INPUT_MODE_FULL & ECORE_IMF_INPUT_MODE_INVISIBLE :
|
||||||
ECORE_IMF_INPUT_MODE_FULL);
|
ECORE_IMF_INPUT_MODE_FULL);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -243,7 +243,7 @@ e_entry_focus(Evas_Object *entry)
|
||||||
if ((!entry) || (!(sd = evas_object_smart_data_get(entry))))
|
if ((!entry) || (!(sd = evas_object_smart_data_get(entry))))
|
||||||
return;
|
return;
|
||||||
if (sd->focused)
|
if (sd->focused)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
evas_object_focus_set(entry, 1);
|
evas_object_focus_set(entry, 1);
|
||||||
edje_object_signal_emit(sd->entry_object, "e,state,focused", "e");
|
edje_object_signal_emit(sd->entry_object, "e,state,focused", "e");
|
||||||
|
@ -256,7 +256,7 @@ e_entry_focus(Evas_Object *entry)
|
||||||
e_editable_selection_move_to_end(sd->editable_object);
|
e_editable_selection_move_to_end(sd->editable_object);
|
||||||
}
|
}
|
||||||
if (sd->enabled)
|
if (sd->enabled)
|
||||||
e_editable_cursor_show(sd->editable_object);
|
e_editable_cursor_show(sd->editable_object);
|
||||||
e_editable_selection_show(sd->editable_object);
|
e_editable_selection_show(sd->editable_object);
|
||||||
#ifdef HAVE_ECORE_IMF
|
#ifdef HAVE_ECORE_IMF
|
||||||
if (sd->imf_context)
|
if (sd->imf_context)
|
||||||
|
@ -358,13 +358,13 @@ _e_entry_key_down_cb(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj
|
||||||
#ifdef HAVE_ECORE_IMF
|
#ifdef HAVE_ECORE_IMF
|
||||||
if (sd->imf_context)
|
if (sd->imf_context)
|
||||||
{
|
{
|
||||||
Ecore_IMF_Event_Key_Down ev;
|
Ecore_IMF_Event_Key_Down ev;
|
||||||
|
|
||||||
ecore_imf_evas_event_key_down_wrap(event_info, &ev);
|
ecore_imf_evas_event_key_down_wrap(event_info, &ev);
|
||||||
if (ecore_imf_context_filter_event(sd->imf_context,
|
if (ecore_imf_context_filter_event(sd->imf_context,
|
||||||
ECORE_IMF_EVENT_KEY_DOWN,
|
ECORE_IMF_EVENT_KEY_DOWN,
|
||||||
(Ecore_IMF_Event *) &ev))
|
(Ecore_IMF_Event *) &ev))
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -386,13 +386,13 @@ _e_entry_key_up_cb(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj,
|
||||||
#ifdef HAVE_ECORE_IMF
|
#ifdef HAVE_ECORE_IMF
|
||||||
if (sd->imf_context)
|
if (sd->imf_context)
|
||||||
{
|
{
|
||||||
Ecore_IMF_Event_Key_Up ev;
|
Ecore_IMF_Event_Key_Up ev;
|
||||||
|
|
||||||
ecore_imf_evas_event_key_up_wrap(event_info, &ev);
|
ecore_imf_evas_event_key_up_wrap(event_info, &ev);
|
||||||
if (ecore_imf_context_filter_event(sd->imf_context,
|
if (ecore_imf_context_filter_event(sd->imf_context,
|
||||||
ECORE_IMF_EVENT_KEY_UP,
|
ECORE_IMF_EVENT_KEY_UP,
|
||||||
(Ecore_IMF_Event *) &ev))
|
(Ecore_IMF_Event *) &ev))
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -414,13 +414,13 @@ _e_entry_mouse_down_cb(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *o
|
||||||
#ifdef HAVE_ECORE_IMF
|
#ifdef HAVE_ECORE_IMF
|
||||||
if (sd->imf_context)
|
if (sd->imf_context)
|
||||||
{
|
{
|
||||||
Ecore_IMF_Event_Mouse_Down ev;
|
Ecore_IMF_Event_Mouse_Down ev;
|
||||||
|
|
||||||
ecore_imf_evas_event_mouse_down_wrap(event_info, &ev);
|
ecore_imf_evas_event_mouse_down_wrap(event_info, &ev);
|
||||||
if (ecore_imf_context_filter_event(sd->imf_context,
|
if (ecore_imf_context_filter_event(sd->imf_context,
|
||||||
ECORE_IMF_EVENT_MOUSE_DOWN,
|
ECORE_IMF_EVENT_MOUSE_DOWN,
|
||||||
(Ecore_IMF_Event *) &ev))
|
(Ecore_IMF_Event *) &ev))
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -433,16 +433,16 @@ _e_entry_mouse_down_cb(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *o
|
||||||
|
|
||||||
if (event->button == 1)
|
if (event->button == 1)
|
||||||
{
|
{
|
||||||
if (event->flags & EVAS_BUTTON_TRIPLE_CLICK)
|
if (event->flags & EVAS_BUTTON_TRIPLE_CLICK)
|
||||||
{
|
{
|
||||||
e_editable_select_all(sd->editable_object);
|
e_editable_select_all(sd->editable_object);
|
||||||
_e_entry_x_selection_update(obj);
|
_e_entry_x_selection_update(obj);
|
||||||
}
|
}
|
||||||
else if (event->flags & EVAS_BUTTON_DOUBLE_CLICK)
|
else if (event->flags & EVAS_BUTTON_DOUBLE_CLICK)
|
||||||
{
|
{
|
||||||
e_editable_select_word(sd->editable_object, pos);
|
e_editable_select_word(sd->editable_object, pos);
|
||||||
_e_entry_x_selection_update(obj);
|
_e_entry_x_selection_update(obj);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
e_editable_cursor_pos_set(sd->editable_object, pos);
|
e_editable_cursor_pos_set(sd->editable_object, pos);
|
||||||
|
@ -461,40 +461,40 @@ _e_entry_mouse_down_cb(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *o
|
||||||
|
|
||||||
if ((win = e_win_evas_object_win_get(obj)))
|
if ((win = e_win_evas_object_win_get(obj)))
|
||||||
ecore_x_selection_primary_request(win->evas_win,
|
ecore_x_selection_primary_request(win->evas_win,
|
||||||
ECORE_X_SELECTION_TARGET_UTF8_STRING);
|
ECORE_X_SELECTION_TARGET_UTF8_STRING);
|
||||||
}
|
}
|
||||||
else if (event->button == 3)
|
else if (event->button == 3)
|
||||||
{
|
{
|
||||||
E_Menu_Item *mi;
|
E_Menu_Item *mi;
|
||||||
E_Manager *man;
|
E_Manager *man;
|
||||||
E_Container *con;
|
E_Container *con;
|
||||||
int x, y;
|
int x, y;
|
||||||
int cursor_pos, selection_pos;
|
int cursor_pos, selection_pos;
|
||||||
int start_pos, end_pos;
|
int start_pos, end_pos;
|
||||||
int s_enabled, s_selecting, s_empty, s_passwd;
|
int s_enabled, s_selecting, s_empty, s_passwd;
|
||||||
|
|
||||||
cursor_pos = e_editable_cursor_pos_get(sd->editable_object);
|
cursor_pos = e_editable_cursor_pos_get(sd->editable_object);
|
||||||
selection_pos = e_editable_selection_pos_get(sd->editable_object);
|
selection_pos = e_editable_selection_pos_get(sd->editable_object);
|
||||||
start_pos = (cursor_pos <= selection_pos) ? cursor_pos : selection_pos;
|
start_pos = (cursor_pos <= selection_pos) ? cursor_pos : selection_pos;
|
||||||
end_pos = (cursor_pos >= selection_pos) ? cursor_pos : selection_pos;
|
end_pos = (cursor_pos >= selection_pos) ? cursor_pos : selection_pos;
|
||||||
|
|
||||||
s_selecting = (start_pos != end_pos);
|
s_selecting = (start_pos != end_pos);
|
||||||
s_enabled = sd->enabled;
|
s_enabled = sd->enabled;
|
||||||
s_empty = !e_editable_text_length_get(sd->editable_object);
|
s_empty = !e_editable_text_length_get(sd->editable_object);
|
||||||
s_passwd = e_editable_password_get(sd->editable_object);
|
s_passwd = e_editable_password_get(sd->editable_object);
|
||||||
|
|
||||||
if (!s_selecting && !s_enabled && s_empty) return;
|
if (!s_selecting && !s_enabled && s_empty) return;
|
||||||
|
|
||||||
man = e_manager_current_get();
|
man = e_manager_current_get();
|
||||||
con = e_container_current_get(man);
|
con = e_container_current_get(man);
|
||||||
ecore_x_pointer_xy_get(con->win, &x, &y);
|
ecore_x_pointer_xy_get(con->win, &x, &y);
|
||||||
|
|
||||||
/* Popup a menu */
|
/* Popup a menu */
|
||||||
sd->popup = e_menu_new();
|
sd->popup = e_menu_new();
|
||||||
e_menu_post_deactivate_callback_set(sd->popup,
|
e_menu_post_deactivate_callback_set(sd->popup,
|
||||||
_e_entry_cb_menu_post, sd);
|
_e_entry_cb_menu_post, sd);
|
||||||
if (s_selecting)
|
if (s_selecting)
|
||||||
{
|
{
|
||||||
if (s_enabled)
|
if (s_enabled)
|
||||||
{
|
{
|
||||||
mi = e_menu_item_new(sd->popup);
|
mi = e_menu_item_new(sd->popup);
|
||||||
|
@ -515,12 +515,12 @@ _e_entry_mouse_down_cb(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *o
|
||||||
}
|
}
|
||||||
if (!s_passwd)
|
if (!s_passwd)
|
||||||
{
|
{
|
||||||
mi = e_menu_item_new(sd->popup);
|
mi = e_menu_item_new(sd->popup);
|
||||||
e_menu_item_label_set(mi, _("Copy"));
|
e_menu_item_label_set(mi, _("Copy"));
|
||||||
e_util_menu_item_theme_icon_set(mi, "edit-copy");
|
e_util_menu_item_theme_icon_set(mi, "edit-copy");
|
||||||
e_menu_item_callback_set(mi, _e_entry_cb_copy, sd);
|
e_menu_item_callback_set(mi, _e_entry_cb_copy, sd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (sd->enabled)
|
if (sd->enabled)
|
||||||
{
|
{
|
||||||
mi = e_menu_item_new(sd->popup);
|
mi = e_menu_item_new(sd->popup);
|
||||||
|
@ -539,9 +539,9 @@ _e_entry_mouse_down_cb(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *o
|
||||||
e_menu_item_callback_set(mi, _e_entry_cb_select_all, sd);
|
e_menu_item_callback_set(mi, _e_entry_cb_select_all, sd);
|
||||||
}
|
}
|
||||||
|
|
||||||
e_menu_activate_mouse(sd->popup, e_util_zone_current_get(man),
|
e_menu_activate_mouse(sd->popup, e_util_zone_current_get(man),
|
||||||
x, y, 1, 1,
|
x, y, 1, 1,
|
||||||
E_MENU_POP_DIRECTION_DOWN, event->timestamp);
|
E_MENU_POP_DIRECTION_DOWN, event->timestamp);
|
||||||
}
|
}
|
||||||
|
|
||||||
_e_entry_imf_cursor_info_set(obj);
|
_e_entry_imf_cursor_info_set(obj);
|
||||||
|
@ -559,13 +559,13 @@ _e_entry_mouse_up_cb(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj
|
||||||
#ifdef HAVE_ECORE_IMF
|
#ifdef HAVE_ECORE_IMF
|
||||||
if (sd->imf_context)
|
if (sd->imf_context)
|
||||||
{
|
{
|
||||||
Ecore_IMF_Event_Mouse_Up ev;
|
Ecore_IMF_Event_Mouse_Up ev;
|
||||||
|
|
||||||
ecore_imf_evas_event_mouse_up_wrap(event_info, &ev);
|
ecore_imf_evas_event_mouse_up_wrap(event_info, &ev);
|
||||||
if (ecore_imf_context_filter_event(sd->imf_context,
|
if (ecore_imf_context_filter_event(sd->imf_context,
|
||||||
ECORE_IMF_EVENT_MOUSE_UP,
|
ECORE_IMF_EVENT_MOUSE_UP,
|
||||||
(Ecore_IMF_Event *) &ev))
|
(Ecore_IMF_Event *) &ev))
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -593,13 +593,13 @@ _e_entry_mouse_move_cb(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *o
|
||||||
#ifdef HAVE_ECORE_IMF
|
#ifdef HAVE_ECORE_IMF
|
||||||
if (sd->imf_context)
|
if (sd->imf_context)
|
||||||
{
|
{
|
||||||
Ecore_IMF_Event_Mouse_Move ev;
|
Ecore_IMF_Event_Mouse_Move ev;
|
||||||
|
|
||||||
ecore_imf_evas_event_mouse_move_wrap(event_info, &ev);
|
ecore_imf_evas_event_mouse_move_wrap(event_info, &ev);
|
||||||
if (ecore_imf_context_filter_event(sd->imf_context,
|
if (ecore_imf_context_filter_event(sd->imf_context,
|
||||||
ECORE_IMF_EVENT_MOUSE_MOVE,
|
ECORE_IMF_EVENT_MOUSE_MOVE,
|
||||||
(Ecore_IMF_Event *) &ev))
|
(Ecore_IMF_Event *) &ev))
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -823,29 +823,29 @@ _e_entry_key_down_windows(Evas_Object *entry, Evas_Event_Key_Down *event)
|
||||||
{
|
{
|
||||||
if (!e_editable_password_get(editable) && selecting)
|
if (!e_editable_password_get(editable) && selecting)
|
||||||
{
|
{
|
||||||
range = e_editable_text_range_get(editable, start_pos, end_pos);
|
range = e_editable_text_range_get(editable, start_pos, end_pos);
|
||||||
if (range)
|
if (range)
|
||||||
{
|
{
|
||||||
if ((win = e_win_evas_object_win_get(entry)))
|
if ((win = e_win_evas_object_win_get(entry)))
|
||||||
ecore_x_selection_clipboard_set(win->evas_win,
|
ecore_x_selection_clipboard_set(win->evas_win,
|
||||||
range,
|
range,
|
||||||
strlen(range) + 1);
|
strlen(range) + 1);
|
||||||
free(range);
|
free(range);
|
||||||
}
|
}
|
||||||
if ((sd->enabled) && (strcmp(event->keyname, "x") == 0))
|
if ((sd->enabled) && (strcmp(event->keyname, "x") == 0))
|
||||||
changed = e_editable_delete(editable, start_pos, end_pos);
|
changed = e_editable_delete(editable, start_pos, end_pos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ((sd->enabled) && (strcmp(event->keyname, "v") == 0))
|
else if ((sd->enabled) && (strcmp(event->keyname, "v") == 0))
|
||||||
{
|
{
|
||||||
if ((win = e_win_evas_object_win_get(entry)))
|
if ((win = e_win_evas_object_win_get(entry)))
|
||||||
ecore_x_selection_clipboard_request(win->evas_win,
|
ecore_x_selection_clipboard_request(win->evas_win,
|
||||||
ECORE_X_SELECTION_TARGET_UTF8_STRING);
|
ECORE_X_SELECTION_TARGET_UTF8_STRING);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Otherwise, we insert the corresponding character */
|
/* Otherwise, we insert the corresponding character */
|
||||||
else if ((event->string) && ((sd->enabled)) &&
|
else if ((event->string) && ((sd->enabled)) &&
|
||||||
((strlen(event->string) != 1) || (event->string[0] >= 0x20)))
|
((strlen(event->string) != 1) || (event->string[0] >= 0x20)))
|
||||||
{
|
{
|
||||||
if (selecting)
|
if (selecting)
|
||||||
changed |= e_editable_delete(editable, start_pos, end_pos);
|
changed |= e_editable_delete(editable, start_pos, end_pos);
|
||||||
|
@ -892,32 +892,32 @@ _e_entry_key_down_emacs(Evas_Object *entry, Evas_Event_Key_Down *event)
|
||||||
|
|
||||||
/* Move the cursor/selection to the left */
|
/* Move the cursor/selection to the left */
|
||||||
if ((strcmp(event->key, "Left") == 0) ||
|
if ((strcmp(event->key, "Left") == 0) ||
|
||||||
((evas_key_modifier_is_set(event->modifiers, "Control")) &&
|
((evas_key_modifier_is_set(event->modifiers, "Control")) &&
|
||||||
(strcmp(event->key, "b") == 0)))
|
(strcmp(event->key, "b") == 0)))
|
||||||
{
|
{
|
||||||
e_editable_cursor_move_left(editable);
|
e_editable_cursor_move_left(editable);
|
||||||
if (sd->selection_mode)
|
if (sd->selection_mode)
|
||||||
selection_changed = 1;
|
selection_changed = 1;
|
||||||
else
|
else
|
||||||
e_editable_selection_pos_set(editable,
|
e_editable_selection_pos_set(editable,
|
||||||
e_editable_cursor_pos_get(editable));
|
e_editable_cursor_pos_get(editable));
|
||||||
}
|
}
|
||||||
/* Move the cursor/selection to the right */
|
/* Move the cursor/selection to the right */
|
||||||
else if ((strcmp(event->key, "Right") == 0) ||
|
else if ((strcmp(event->key, "Right") == 0) ||
|
||||||
((evas_key_modifier_is_set(event->modifiers, "Control")) &&
|
((evas_key_modifier_is_set(event->modifiers, "Control")) &&
|
||||||
(strcmp(event->key, "f") == 0)))
|
(strcmp(event->key, "f") == 0)))
|
||||||
{
|
{
|
||||||
e_editable_cursor_move_right(editable);
|
e_editable_cursor_move_right(editable);
|
||||||
if (sd->selection_mode)
|
if (sd->selection_mode)
|
||||||
selection_changed = 1;
|
selection_changed = 1;
|
||||||
else
|
else
|
||||||
e_editable_selection_pos_set(editable,
|
e_editable_selection_pos_set(editable,
|
||||||
e_editable_cursor_pos_get(editable));
|
e_editable_cursor_pos_get(editable));
|
||||||
}
|
}
|
||||||
/* Move the cursor/selection to the start of the entry */
|
/* Move the cursor/selection to the start of the entry */
|
||||||
else if ((strcmp(event->keyname, "Home") == 0) ||
|
else if ((strcmp(event->keyname, "Home") == 0) ||
|
||||||
((evas_key_modifier_is_set(event->modifiers, "Control")) &&
|
((evas_key_modifier_is_set(event->modifiers, "Control")) &&
|
||||||
(strcmp(event->key, "a") == 0)))
|
(strcmp(event->key, "a") == 0)))
|
||||||
{
|
{
|
||||||
e_editable_cursor_move_to_start(editable);
|
e_editable_cursor_move_to_start(editable);
|
||||||
if (sd->selection_mode)
|
if (sd->selection_mode)
|
||||||
|
@ -928,8 +928,8 @@ _e_entry_key_down_emacs(Evas_Object *entry, Evas_Event_Key_Down *event)
|
||||||
}
|
}
|
||||||
/* Move the cursor/selection to the end of the entry */
|
/* Move the cursor/selection to the end of the entry */
|
||||||
else if ((strcmp(event->keyname, "End") == 0) ||
|
else if ((strcmp(event->keyname, "End") == 0) ||
|
||||||
((evas_key_modifier_is_set(event->modifiers, "Control")) &&
|
((evas_key_modifier_is_set(event->modifiers, "Control")) &&
|
||||||
(strcmp(event->key, "e") == 0)))
|
(strcmp(event->key, "e") == 0)))
|
||||||
{
|
{
|
||||||
e_editable_cursor_move_to_end(editable);
|
e_editable_cursor_move_to_end(editable);
|
||||||
if (sd->selection_mode)
|
if (sd->selection_mode)
|
||||||
|
@ -943,63 +943,63 @@ _e_entry_key_down_emacs(Evas_Object *entry, Evas_Event_Key_Down *event)
|
||||||
changed = e_editable_delete(editable, cursor_pos - 1, cursor_pos);
|
changed = e_editable_delete(editable, cursor_pos - 1, cursor_pos);
|
||||||
/* Delete the next character */
|
/* Delete the next character */
|
||||||
else if ((sd->enabled) &&
|
else if ((sd->enabled) &&
|
||||||
((evas_key_modifier_is_set(event->modifiers, "Control")) &&
|
((evas_key_modifier_is_set(event->modifiers, "Control")) &&
|
||||||
(strcmp(event->key, "d") == 0)))
|
(strcmp(event->key, "d") == 0)))
|
||||||
changed = e_editable_delete(editable, cursor_pos, cursor_pos + 1);
|
changed = e_editable_delete(editable, cursor_pos, cursor_pos + 1);
|
||||||
/* Delete until end of line */
|
/* Delete until end of line */
|
||||||
else if ((sd->enabled) &&
|
else if ((sd->enabled) &&
|
||||||
((evas_key_modifier_is_set(event->modifiers, "Control")) &&
|
((evas_key_modifier_is_set(event->modifiers, "Control")) &&
|
||||||
(strcmp(event->key, "k") == 0)))
|
(strcmp(event->key, "k") == 0)))
|
||||||
changed = e_editable_delete(editable, cursor_pos,
|
changed = e_editable_delete(editable, cursor_pos,
|
||||||
e_editable_text_length_get(editable));
|
e_editable_text_length_get(editable));
|
||||||
/* Toggle the selection mode */
|
/* Toggle the selection mode */
|
||||||
else if ((evas_key_modifier_is_set(event->modifiers, "Control")) &&
|
else if ((evas_key_modifier_is_set(event->modifiers, "Control")) &&
|
||||||
(strcmp(event->key, "space") == 0))
|
(strcmp(event->key, "space") == 0))
|
||||||
{
|
{
|
||||||
if (sd->selection_mode)
|
if (sd->selection_mode)
|
||||||
{
|
{
|
||||||
e_editable_selection_pos_set(editable, cursor_pos);
|
e_editable_selection_pos_set(editable, cursor_pos);
|
||||||
sd->selection_mode = 0;
|
sd->selection_mode = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
sd->selection_mode = 1;
|
sd->selection_mode = 1;
|
||||||
}
|
}
|
||||||
/* Cut/Copy */
|
/* Cut/Copy */
|
||||||
else if ((evas_key_modifier_is_set(event->modifiers, "Control") ||
|
else if ((evas_key_modifier_is_set(event->modifiers, "Control") ||
|
||||||
evas_key_modifier_is_set(event->modifiers, "Shift")) &&
|
evas_key_modifier_is_set(event->modifiers, "Shift")) &&
|
||||||
(strcmp(event->key, "w") == 0))
|
(strcmp(event->key, "w") == 0))
|
||||||
{
|
{
|
||||||
if (!e_editable_password_get(editable) && selecting)
|
if (!e_editable_password_get(editable) && selecting)
|
||||||
{
|
{
|
||||||
range = e_editable_text_range_get(editable, start_pos, end_pos);
|
range = e_editable_text_range_get(editable, start_pos, end_pos);
|
||||||
if (range)
|
if (range)
|
||||||
{
|
{
|
||||||
if ((win = e_win_evas_object_win_get(entry)))
|
if ((win = e_win_evas_object_win_get(entry)))
|
||||||
ecore_x_selection_clipboard_set(win->evas_win,
|
ecore_x_selection_clipboard_set(win->evas_win,
|
||||||
range,
|
range,
|
||||||
strlen(range) + 1);
|
strlen(range) + 1);
|
||||||
free(range);
|
free(range);
|
||||||
}
|
}
|
||||||
if ((sd->enabled) && (evas_key_modifier_is_set(event->modifiers, "Control")))
|
if ((sd->enabled) && (evas_key_modifier_is_set(event->modifiers, "Control")))
|
||||||
{
|
{
|
||||||
changed = e_editable_delete(editable, start_pos, end_pos);
|
changed = e_editable_delete(editable, start_pos, end_pos);
|
||||||
sd->selection_mode = 0;
|
sd->selection_mode = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Paste */
|
/* Paste */
|
||||||
else if ((sd->enabled) &&
|
else if ((sd->enabled) &&
|
||||||
((evas_key_modifier_is_set(event->modifiers, "Control")) &&
|
((evas_key_modifier_is_set(event->modifiers, "Control")) &&
|
||||||
(strcmp(event->key, "y") == 0)))
|
(strcmp(event->key, "y") == 0)))
|
||||||
{
|
{
|
||||||
if ((win = e_win_evas_object_win_get(entry)))
|
if ((win = e_win_evas_object_win_get(entry)))
|
||||||
ecore_x_selection_clipboard_request(win->evas_win,
|
ecore_x_selection_clipboard_request(win->evas_win,
|
||||||
ECORE_X_SELECTION_TARGET_UTF8_STRING);
|
ECORE_X_SELECTION_TARGET_UTF8_STRING);
|
||||||
}
|
}
|
||||||
/* Otherwise, we insert the corresponding character */
|
/* Otherwise, we insert the corresponding character */
|
||||||
else if ((event->string) &&
|
else if ((event->string) &&
|
||||||
((strlen(event->string) != 1) ||
|
((strlen(event->string) != 1) ||
|
||||||
(event->string[0] >= 0x20 && event->string[0] != 0x7f)))
|
(event->string[0] >= 0x20 && event->string[0] != 0x7f)))
|
||||||
changed = e_editable_insert(editable, cursor_pos, event->string);
|
changed = e_editable_insert(editable, cursor_pos, event->string);
|
||||||
|
|
||||||
_e_entry_imf_cursor_info_set(entry);
|
_e_entry_imf_cursor_info_set(entry);
|
||||||
|
@ -1036,18 +1036,18 @@ _e_entry_smart_add(Evas_Object *object)
|
||||||
ctx_id = ecore_imf_context_default_id_get();
|
ctx_id = ecore_imf_context_default_id_get();
|
||||||
if (ctx_id)
|
if (ctx_id)
|
||||||
{
|
{
|
||||||
ctx_info = ecore_imf_context_info_by_id_get(ctx_id);
|
ctx_info = ecore_imf_context_info_by_id_get(ctx_id);
|
||||||
if (!ctx_info->canvas_type ||
|
if (!ctx_info->canvas_type ||
|
||||||
strcmp(ctx_info->canvas_type, "evas") == 0)
|
strcmp(ctx_info->canvas_type, "evas") == 0)
|
||||||
sd->imf_context = ecore_imf_context_add(ctx_id);
|
sd->imf_context = ecore_imf_context_add(ctx_id);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ctx_id = ecore_imf_context_default_id_by_canvas_type_get("evas");
|
ctx_id = ecore_imf_context_default_id_by_canvas_type_get("evas");
|
||||||
if (ctx_id)
|
if (ctx_id)
|
||||||
sd->imf_context = ecore_imf_context_add(ctx_id);
|
sd->imf_context = ecore_imf_context_add(ctx_id);
|
||||||
else
|
else
|
||||||
sd->imf_context = NULL;
|
sd->imf_context = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
sd->imf_context = NULL;
|
sd->imf_context = NULL;
|
||||||
|
@ -1055,7 +1055,7 @@ _e_entry_smart_add(Evas_Object *object)
|
||||||
if (sd->imf_context)
|
if (sd->imf_context)
|
||||||
{
|
{
|
||||||
ecore_imf_context_client_window_set(sd->imf_context,
|
ecore_imf_context_client_window_set(sd->imf_context,
|
||||||
(long *)ecore_evas_window_get(ecore_evas_ecore_evas_get(evas)));
|
(long *)ecore_evas_window_get(ecore_evas_ecore_evas_get(evas)));
|
||||||
ecore_imf_context_client_canvas_set(sd->imf_context, evas);
|
ecore_imf_context_client_canvas_set(sd->imf_context, evas);
|
||||||
ecore_imf_context_retrieve_surrounding_callback_set(sd->imf_context,
|
ecore_imf_context_retrieve_surrounding_callback_set(sd->imf_context,
|
||||||
_e_entry_cb_imf_retrieve_surrounding,
|
_e_entry_cb_imf_retrieve_surrounding,
|
||||||
|
@ -1118,7 +1118,7 @@ _e_entry_smart_del(Evas_Object *object)
|
||||||
ecore_imf_context_event_callback_del(sd->imf_context, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, _e_entry_cb_imf_event_preedit_changed);
|
ecore_imf_context_event_callback_del(sd->imf_context, ECORE_IMF_CALLBACK_PREEDIT_CHANGED, _e_entry_cb_imf_event_preedit_changed);
|
||||||
ecore_imf_context_event_callback_del(sd->imf_context, ECORE_IMF_CALLBACK_DELETE_SURROUNDING, _e_entry_cb_imf_event_delete_surrounding);
|
ecore_imf_context_event_callback_del(sd->imf_context, ECORE_IMF_CALLBACK_DELETE_SURROUNDING, _e_entry_cb_imf_event_delete_surrounding);
|
||||||
|
|
||||||
ecore_imf_context_del(sd->imf_context);
|
ecore_imf_context_del(sd->imf_context);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1255,10 +1255,10 @@ _e_entry_cb_cut(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi __UNUSED__)
|
||||||
range = e_editable_text_range_get(editable, start_pos, end_pos);
|
range = e_editable_text_range_get(editable, start_pos, end_pos);
|
||||||
if (range)
|
if (range)
|
||||||
{
|
{
|
||||||
if ((win = e_win_evas_object_win_get(sd->entry_object)))
|
if ((win = e_win_evas_object_win_get(sd->entry_object)))
|
||||||
ecore_x_selection_clipboard_set(win->evas_win,
|
ecore_x_selection_clipboard_set(win->evas_win,
|
||||||
range, strlen(range) + 1);
|
range, strlen(range) + 1);
|
||||||
free(range);
|
free(range);
|
||||||
}
|
}
|
||||||
changed = e_editable_delete(editable, start_pos, end_pos);
|
changed = e_editable_delete(editable, start_pos, end_pos);
|
||||||
if (changed)
|
if (changed)
|
||||||
|
@ -1289,10 +1289,10 @@ _e_entry_cb_copy(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi __UNUSED__)
|
||||||
range = e_editable_text_range_get(editable, start_pos, end_pos);
|
range = e_editable_text_range_get(editable, start_pos, end_pos);
|
||||||
if (range)
|
if (range)
|
||||||
{
|
{
|
||||||
if ((win = e_win_evas_object_win_get(sd->entry_object)))
|
if ((win = e_win_evas_object_win_get(sd->entry_object)))
|
||||||
ecore_x_selection_clipboard_set(win->evas_win,
|
ecore_x_selection_clipboard_set(win->evas_win,
|
||||||
range, strlen(range) + 1);
|
range, strlen(range) + 1);
|
||||||
free(range);
|
free(range);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1307,7 +1307,7 @@ _e_entry_cb_paste(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi __UNUSED__)
|
||||||
|
|
||||||
if ((win = e_win_evas_object_win_get(sd->entry_object)))
|
if ((win = e_win_evas_object_win_get(sd->entry_object)))
|
||||||
ecore_x_selection_clipboard_request(win->evas_win,
|
ecore_x_selection_clipboard_request(win->evas_win,
|
||||||
ECORE_X_SELECTION_TARGET_UTF8_STRING);
|
ECORE_X_SELECTION_TARGET_UTF8_STRING);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1344,9 +1344,9 @@ _e_entry_cb_delete(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi __UNUSED__)
|
||||||
range = e_editable_text_range_get(editable, start_pos, end_pos);
|
range = e_editable_text_range_get(editable, start_pos, end_pos);
|
||||||
if (range)
|
if (range)
|
||||||
{
|
{
|
||||||
e_editable_delete(editable, start_pos, end_pos);
|
e_editable_delete(editable, start_pos, end_pos);
|
||||||
evas_object_smart_callback_call(sd->entry_object, "changed", NULL);
|
evas_object_smart_callback_call(sd->entry_object, "changed", NULL);
|
||||||
free(range);
|
free(range);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue