diff --git a/.ci/ci-configure.sh b/.ci/ci-configure.sh index 85aeb75202..77c196848b 100755 --- a/.ci/ci-configure.sh +++ b/.ci/ci-configure.sh @@ -17,7 +17,7 @@ if [ "$DISTRO" != "" ] ; then # - Ibus ENABLED_LINUX_COPTS=" -Dfb=true -Dsdl=true -Dbuffer=true -Dbuild-id=travis-build \ -Ddebug-threads=true -Dglib=true -Dg-mainloop=true -Dxpresent=true -Dxinput22=true \ - -Devas-loaders-disabler=json,avif -Decore-imf-loaders-disabler= \ + -Decore-imf-loaders-disabler= \ -Dharfbuzz=true -Dpixman=true -Dhyphen=true -Defl-one=true \ -Dvnc-server=true -Delua=true -Dbindings=lua,cxx,mono -Delogind=false -Dinstall-eo-files=true -Dphysics=true" @@ -26,7 +26,7 @@ if [ "$DISTRO" != "" ] ; then -Dopengl=none -Deina-magic-debug=false -Dbuild-examples=false -Dbuild-tests=false \ -Dcrypto=gnutls -Dglib=false -Dgstreamer=false -Dsystemd=false -Dpulseaudio=false \ -Dnetwork-backend=connman -Dxinput2=false -Dtslib=false \ - -Devas-loaders-disabler=gst,pdf,ps,raw,svg,xcf,bmp,dds,eet,generic,gif,ico,jp2k,json,pmaps,psd,tga,tgv,tiff,wbmp,webp,xpm,avif \ + -Devas-loaders-disabler=gst,pdf,ps,raw,svg,xcf,bmp,dds,eet,generic,gif,ico,jp2k,json,pmaps,psd,tga,tgv,tiff,wbmp,webp,xpm,avif,heif \ -Decore-imf-loaders-disabler=xim,ibus,scim \ -Dfribidi=false -Dfontconfig=false \ -Dedje-sound-and-video=false -Dembedded-lz4=false -Dlibmount=false -Dv4l2=false \ @@ -37,7 +37,7 @@ if [ "$DISTRO" != "" ] ; then MINGW_COPTS="--cross-file .ci/cross_toolchain.txt -Davahi=false -Deeze=false -Dsystemd=false \ -Dpulseaudio=false -Dx11=false -Dopengl=none -Dlibmount=false \ - -Devas-loaders-disabler=json,pdf,ps,raw,svg,rsvg,avif \ + -Devas-loaders-disabler=json,pdf,ps,raw,svg,rsvg,avif,heif \ -Dharfbuzz=true -Dpixman=true -Dembedded-lz4=false " if [ "$1" = "default" ]; then diff --git a/src/lib/elementary/efl_ui_collection.c b/src/lib/elementary/efl_ui_collection.c index bd3123a70f..2161181687 100644 --- a/src/lib/elementary/efl_ui_collection.c +++ b/src/lib/elementary/efl_ui_collection.c @@ -147,6 +147,7 @@ typedef struct { Efl_Gfx_Entity *sizer; unsigned int start_id, end_id; Eina_Bool allow_manual_deselection : 1; + Eina_Bool api_selection_change : 1; } Efl_Ui_Collection_Data; static Eina_Bool register_item(Eo *obj, Efl_Ui_Collection_Data *pd, Efl_Ui_Item *item); @@ -579,7 +580,7 @@ _selection_changed(void *data, const Efl_Event *ev) { _single_selection_behaviour(obj, pd, ev->object); } - else if (pd->mode == EFL_UI_SELECT_MODE_MULTI && _elm_config->desktop_entry) + else if (pd->mode == EFL_UI_SELECT_MODE_MULTI && _elm_config->desktop_entry && !pd->api_selection_change) { const Evas_Modifier *mod = evas_key_modifier_get(evas_object_evas_get(ev->object)); if (!(efl_input_clickable_interaction_get(ev->object) @@ -1111,13 +1112,17 @@ _selectable_range_apply(Eina_List *start, Eina_Bool flag) EOLIAN static void _efl_ui_collection_efl_ui_multi_selectable_all_select(Eo *obj EINA_UNUSED, Efl_Ui_Collection_Data *pd) { + pd->api_selection_change = EINA_TRUE; _selectable_range_apply(pd->items, EINA_TRUE); + pd->api_selection_change = EINA_FALSE; } EOLIAN static void _efl_ui_collection_efl_ui_multi_selectable_all_unselect(Eo *obj EINA_UNUSED, Efl_Ui_Collection_Data *pd) { + pd->api_selection_change = EINA_TRUE; _selectable_range_apply(pd->items, EINA_FALSE); + pd->api_selection_change = EINA_FALSE; } static void diff --git a/src/lib/elementary/efl_ui_layout.c b/src/lib/elementary/efl_ui_layout.c index f912043397..ae757b1bb4 100644 --- a/src/lib/elementary/efl_ui_layout.c +++ b/src/lib/elementary/efl_ui_layout.c @@ -1463,9 +1463,10 @@ _efl_ui_layout_text_generic_set(Eo *obj, Efl_Ui_Layout_Data *sd, const char *par { if ((sub_d->type == TEXT) && (!strcmp(part, sub_d->part))) { - if (!text) + if ((!text) || (text[0] == 0)) { - _text_signal_emit(sd, sub_d, EINA_FALSE); + if ((!strcmp(part, "elm.text") || !strcmp(part, "efl.text"))) + _text_signal_emit(sd, sub_d, EINA_FALSE); eina_stringshare_del(sub_d->part); free(sub_d); edje_object_part_text_escaped_set @@ -1479,7 +1480,7 @@ _efl_ui_layout_text_generic_set(Eo *obj, Efl_Ui_Layout_Data *sd, const char *par } } - if (!text) return EINA_TRUE; + if ((!text) || (text[0] == 0)) return EINA_TRUE; if (elm_widget_is_legacy(obj)) { @@ -1505,7 +1506,8 @@ _efl_ui_layout_text_generic_set(Eo *obj, Efl_Ui_Layout_Data *sd, const char *par sd->subs = eina_list_append(sd->subs, sub_d); } - _text_signal_emit(sd, sub_d, EINA_TRUE); + if ((!strcmp(part, "elm.text") || !strcmp(part, "efl.text"))) + _text_signal_emit(sd, sub_d, EINA_TRUE); efl_canvas_group_change(obj); diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c index 1e8e32cd94..84e08fcce1 100644 --- a/src/lib/evas/canvas/evas_object_image.c +++ b/src/lib/evas/canvas/evas_object_image.c @@ -284,8 +284,8 @@ _evas_image_init_set(const Eina_File *f, const char *key, ENFN->image_data_preload_cancel(ENC, o->engine_data, eo_obj, EINA_FALSE); } ENFN->image_free(ENC, o->engine_data); + o->engine_data = NULL; } - o->engine_data = NULL; o->load_error = EFL_GFX_IMAGE_LOAD_ERROR_NONE; if (!lo) return; lo->emile.scale_down_by = o->load_opts->scale_down_by; diff --git a/src/modules/evas/engines/gl_common/evas_gl_image.c b/src/modules/evas/engines/gl_common/evas_gl_image.c index c63e22ecc3..7d05cab15d 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_image.c +++ b/src/modules/evas/engines/gl_common/evas_gl_image.c @@ -702,6 +702,10 @@ evas_gl_common_image_free(Evas_GL_Image *im) im->fglyph->ext_dat = NULL; im->fglyph->ext_dat_free = NULL; } + else if ((im->gc) && (im->gc->shared)) + { + im->gc->shared->images = eina_list_remove(im->gc->shared->images, im); + } if (im->gc) evas_gl_common_context_flush(im->gc);