Beta classes won't have their namespaces validated at this point.
It is possible to set EOLIAN_CHECK_NAMESPACES_BETA=1 to enable
checking those as well, if you want to fix them all.
Summary:
Picking font on textrun, will now give priority into font picked by the user, regardless of script type.
picking font due script can cause many inconvenient results
Example of wrong results: (User font is **NotoColorEmoji**)
{F3847118} -> add 'a' at the end (notice how text render is wrong) {F3847119} -> add tab before 'a' (text rendering now is right) {F3847120}
After Change results: (User font is **NotoColorEmoji**)
{F3847118} -> add 'a' at the end -> {F3847122}-> add tab before 'a' -> {F3847123}
Also now the following lines will be shown exactly the same, regardless of characters order
```
"가123A321"
"A321가123"
"123가A321"
"A가123321"
```
Test Plan:
```
#include <Elementary.h>
/*
gcc -o example test.c `pkg-config --cflags --libs elementary`
*/
EAPI_MAIN int
elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
{
Evas_Object *win, *en;
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
win = elm_win_util_standard_add("", "");
elm_win_autodel_set(win, EINA_TRUE);
en = elm_entry_add(win);
elm_entry_scrollable_set(en, EINA_TRUE);
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_entry_text_style_user_push(en,"DEFAULT='font=NotoColorEmoji font_size=30 color=red'");
elm_object_text_set(en, "☪123456a");
evas_object_show(en);
elm_object_content_set(win, en);
evas_object_resize(win, 400, 200);
evas_object_show(win);
elm_run();
return 0;
}
ELM_MAIN()
```
Reviewers: woohyun, bowonryu, tasn, raster, cedric
Reviewed By: tasn
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8556
Differential Revision: https://phab.enlightenment.org/D11302
Summary:
This update make the textgrid same as evas_text and evas_textblock to use current picked font for text_props instead of script_font
This patch will fix terminology emoji rendering when used applying D11302.
Reviewers: raster, woohyun
Reviewed By: woohyun
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11729
we build these arrays to hold tjhings to clean up when done ... but if
one frame happens ot have a lot - the allocation stays huge as we only
clean not flush, so flush to keep memory down.
@optimize
If there is a string larger than the size of entry
and when the entry is auto scrolling, cursor is not visible.
Using _edje_entry_cursor_geometry_get guarantees the minimum size of the cursor,
and guarantee the size from edje. (min_restricted_calc)
Reviewed-by: Ali Alzyod <ali198724@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11649
```
#include <Elementary.h>
EAPI_MAIN int
elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
{
Evas_Object *win, *textblock;
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
win = elm_win_util_standard_add("", "");
elm_win_autodel_set(win, EINA_TRUE);
textblock = evas_object_textblock_add(win);
evas_object_resize(textblock, 360, 360);
evas_object_show(textblock);
evas_object_textblock_text_markup_set(textblock, "<b>b</b>");
evas_object_resize(win, 360, 360);
evas_object_show(win);
elm_run();
return 0;
}
ELM_MAIN()
```
this application will crash.
Any font format specified in text, if there are now style will cause the crash.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11686
Summary:
Now there are no need for special care for variation sequence text run break.
General method will care about all types of characters\
this is also related to D11096
Reviewers: woohyun, bowonryu
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11602
Summary:
Picking font on textrun, will now give priority into font picked by the user, regardless of script type.
picking font due script can cause many inconvenient results
Example of wrong results: (User font is **NotoColorEmoji**)
{F3847118} -> add 'a' at the end (notice how text render is wrong) {F3847119} -> add tab before 'a' (text rendering now is right) {F3847120}
After Change results: (User font is **NotoColorEmoji**)
{F3847118} -> add 'a' at the end -> {F3847122}-> add tab before 'a' -> {F3847123}
Also now the following lines will be shown exactly the same, regardless of characters order
```
"가123A321"
"A321가123"
"123가A321"
"A가123321"
```
Test Plan:
```
#include <Elementary.h>
/*
gcc -o example test.c `pkg-config --cflags --libs elementary`
*/
EAPI_MAIN int
elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
{
Evas_Object *win, *en;
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
win = elm_win_util_standard_add("", "");
elm_win_autodel_set(win, EINA_TRUE);
en = elm_entry_add(win);
elm_entry_scrollable_set(en, EINA_TRUE);
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_entry_text_style_user_push(en,"DEFAULT='font=NotoColorEmoji font_size=30 color=red'");
elm_object_text_set(en, "☪123456a");
evas_object_show(en);
elm_object_content_set(win, en);
evas_object_resize(win, 400, 200);
evas_object_show(win);
elm_run();
return 0;
}
ELM_MAIN()
```
Reviewers: woohyun, bowonryu, tasn, raster, cedric
Reviewed By: tasn
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8556
Differential Revision: https://phab.enlightenment.org/D11302
this was using a stringshare reference that was deleted. While that is
true, the stringshare reference will always be alive, because 2 people
took a reference. Anyways, this code is now searching the other way
arround, which makes the code also easier.
fixes: CID1420331
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11712
hoversel can't accurately determine its location until the hover object
has been calculated, so this needs to always happen before the hoversel
is made visible in order to correctly position the hover
fix T8642
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11646
this already happens automatically on every item destruction and passes
the item data through there to ensure the correct callback is removed
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11643
this pointer is never unset, which can cause errors when attempting to
access it after the hoversel has been deactivated
Differential Revision: https://phab.enlightenment.org/D11642
Summary:
when we have text that contains <ps> (example "p1<ps>p2") in a single line mode
and the cursor position is after the ps tag
then we try to insert any character using the keyboard it will show segmentation fault.
also with the same text if we try to select the text we will notice that it is corrupted.
this should resolve https://phab.enlightenment.org/T8594
Test Plan:
#define EFL_EO_API_SUPPORT 1
#define EFL_BETA_API_SUPPORT 1
#include <Eina.h>
#include <Elementary.h>
#include <Efl_Ui.h>
static void
_gui_quit_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED)
{
efl_exit(0);
}
static void
_gui_setup()
{
Eo *win, *box;
win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(),
efl_ui_win_type_set(efl_added, EFL_UI_WIN_TYPE_BASIC),
efl_text_set(efl_added, "Hello World"),
efl_ui_win_autodel_set(efl_added, EINA_TRUE));
// when the user clicks "close" on a window there is a request to delete
efl_event_callback_add(win, EFL_UI_WIN_EVENT_DELETE_REQUEST, _gui_quit_cb, NULL);
box = efl_add(EFL_UI_BOX_CLASS, win,
efl_content_set(win, efl_added),
efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(360, 240)));
Eo *text = efl_add(EFL_UI_TEXTBOX_CLASS, box,
efl_gfx_hint_weight_set(efl_added, 1.0, 1.0),
efl_gfx_hint_align_set(efl_added, 1.0, 1.0),
efl_pack(box, efl_added));
efl_text_interactive_selection_allowed_set(text, EINA_TRUE);
efl_text_multiline_set(text,EINA_FALSE);
efl_text_markup_set(text, "p1<ps>p2");
}
EAPI_MAIN void
efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
{
_gui_setup();
}
EFL_MAIN()
Reviewers: ali.alzyod, woohyun, zmike, bu5hm4n, segfaultxavi, stefan_schmidt
Reviewed By: ali.alzyod, woohyun
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11621
prevent leaking RGBA_Font in the for loop,
CID: 1382852
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11709
Make sure we check the return of evas_textblock_cursor_geometry_bidi_get() and print an error if needed.
CID:1425191
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11707
This patch brings in a lot of docs which were missing before.
Unfortunately, this brings along their warnings so this ends up adding
more warnings than it fixes. Still, a step in the right direction.
@ingroup puts the current block into the specified group, but IT DOES NOT
allow opening groups with @{.
This was used in lots of places, resulting in misplaced or ignored documentation.
@ingroup should be used only in individual docs. For groups we use @defgroup and
@addtogroup.
Also,this patch adds some small missing docs.
Summary:
this check was checking for focus_manager to be window_root. This is not
correct, it should check for the root element.
ref D11667
Depends on D11705
Reviewers: zmike, segfaultxavi
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11706
the text types added here were present as "TEXT" in selection manager,
so add them here again.
Reviewed-by: Christopher Michael <devilhorns@comcast.net>
Differential Revision: https://phab.enlightenment.org/D11684
Summary:
ecore_x_dnd_send_status can be used to indicate if a item can be dropped
on a client or not. However, we should only indicate that this can be
dropped, if there is a object we signaled that a drop is in.
Long story short: there is no assertion that after indicating that
things can be dropped, that a notify for the data is sent. A drag
implementation should always listen to a mouse up event, and abort the
drag if no further operations are sent.
Depends on D11698
Reviewers: zmike, stefan_schmidt, raster
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11699
Summary:
before this only worked for elm widgets. This however is the same
behaviour as in efl_ui_selection_manager.c. So this restores the
behaviour prior to selection_manager.
Depends on D11697
Reviewers: zmike, stefan_schmidt, raster
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11698
Summary:
_popup_show deletes the hide timer, hence we need to create the timer
later on, or this will not automatically hide the indicator.
Reviewers: stefan_schmidt, zmike, Jaehyun_Cho
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11679
Summary:
when a redirect manager is unset, all focus managers in the chain upper
to the set manager must be unset. The code uses redirect manager == NULL
as an check for the manager to be active or not.
ref D11667
Depends on D11671
Reviewers: zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11672
Summary:
when redirect gets unset, we shound search for a fallback. However, we
should never fallback to the value we have unset.
ref D11667
Depends on D11669
Reviewers: zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11670
Summary:
this is more usefull with a focusable and not a node, since the node can
be already freed in some cases.
ref D11667
Reviewers: zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11669
these files are not required for the unified API, but they have
namespace problems, so for now, do not install them
Differential Revision: https://phab.enlightenment.org/D11665
Efl.Input_Text is a namespace which should not be a interface in the
same moment. So rename this to Efl.Input_Text.Entity
ref T8648
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D11664
Three renames are applied here:
Efl.Text.Cursor -> Efl.Text_Cursor.Object (class)
Efl.Text.Cursor_Type -> Efl.Text_Cursor.Type (enum)
Efl.Text.Cursor_Move_Type -> Efl.Text_Cursor.Move_Type (enum)
Nothing changes for the enums on the C side. For the class... Well,
the method names are a bit more verbose now.
These renames are required to avoid clashing with the Efl.Text interface.
This did not cause trouble to C# because interfaces are prefixed with "I",
but it did cause trouble to Eolian when the EO files were installed and
somebody tried to use them.
Ref T8648
Differential Revision: https://phab.enlightenment.org/D11663
this is needed in order to not collide with the Efl.Text Interface.
Theoretically eolian should have ordered on that, however, the checks
are buggy and only work out of tree.
ref T8648
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D11662