From b288373ee6c759ea0aca3dc33ac8666fc17dd42d Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Sun, 7 Mar 2021 12:22:28 +0000 Subject: [PATCH] efm - rename - select all up to the first dot so extension stays --- src/bin/e_fm.c | 11 ++++++++++- src/bin/e_widget_entry.c | 10 ++++++++++ src/bin/e_widget_entry.h | 4 ++-- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c index 1e25bda9b..e603cacec 100644 --- a/src/bin/e_fm.c +++ b/src/bin/e_fm.c @@ -10483,7 +10483,16 @@ _e_fm2_icon_entry_widget_add(E_Fm2_Icon *ic) e_widget_entry_text_set(ic->entry_widget, ic->info.file); e_widget_focus_set(ic->entry_widget, 1); ic->focus_hook = e_client_hook_add(E_CLIENT_HOOK_FOCUS_SET, _e_fm2_icon_entry_widget_focus_out, ic); - e_widget_entry_select_all(ic->entry_widget); + char *dot = strchr(ic->info.file, '.'); + if (dot) + { + int end = (int)((long)(dot - ic->info.file)); + printf("SEL: %i -> %i\n", 0, end); + e_widget_entry_select_set(ic->entry_widget, 0, + (int)((long)(dot - ic->info.file))); + } + else + e_widget_entry_select_all(ic->entry_widget); ic->sd->iop_icon = ic; ic->sd->typebuf.disabled = EINA_TRUE; if (e_comp->comp_type == E_PIXMAP_TYPE_X) diff --git a/src/bin/e_widget_entry.c b/src/bin/e_widget_entry.c index 46cd4c7c9..beccb4999 100644 --- a/src/bin/e_widget_entry.c +++ b/src/bin/e_widget_entry.c @@ -215,6 +215,16 @@ e_widget_entry_select_all(Evas_Object *entry) elm_entry_select_all(wd->o_entry); } +E_API void +e_widget_entry_select_set(Evas_Object *entry, int start, int end) +{ + E_Widget_Data *wd; + + if (!(entry) || (!(wd = e_widget_data_get(entry)))) + return; + elm_entry_select_region_set(wd->o_entry, start, end); +} + /* Private functions */ static void diff --git a/src/bin/e_widget_entry.h b/src/bin/e_widget_entry.h index 710339387..fc9774c9a 100644 --- a/src/bin/e_widget_entry.h +++ b/src/bin/e_widget_entry.h @@ -8,8 +8,8 @@ E_API void e_widget_entry_text_set (Evas_Object *entry, const E_API const char *e_widget_entry_text_get (Evas_Object *entry); E_API void e_widget_entry_clear (Evas_Object *entry); E_API void e_widget_entry_password_set (Evas_Object *entry, int password_mode); -E_API void e_widget_entry_readonly_set (Evas_Object *entry, int readonly_mode); +E_API void e_widget_entry_readonly_set (Evas_Object *entry, int readonly_mode); E_API void e_widget_entry_select_all (Evas_Object *entry); - +E_API void e_widget_entry_select_set (Evas_Object *entry, int start, int end); #endif #endif