diff --git a/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c b/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c index 2c0d724505..f66b7be16e 100644 --- a/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c +++ b/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c @@ -325,6 +325,7 @@ _ecore_evas_title_set(Ecore_Evas *ee, const char *title) { INF("ecore evas title set"); + if (eina_streq(ee->prop.title, title)) return; if (ee->prop.title) free(ee->prop.title); ee->prop.title = NULL; if (title) ee->prop.title = strdup(title); diff --git a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c index 7e458e1456..40ec670550 100644 --- a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c +++ b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c @@ -692,6 +692,7 @@ _ecore_evas_drm_hide(Ecore_Evas *ee) static void _ecore_evas_drm_title_set(Ecore_Evas *ee, const char *title) { + if (eina_streq(ee->prop.title, title)) return; if (ee->prop.title) free(ee->prop.title); ee->prop.title = NULL; if (title) ee->prop.title = strdup(title); @@ -700,12 +701,18 @@ _ecore_evas_drm_title_set(Ecore_Evas *ee, const char *title) static void _ecore_evas_drm_name_class_set(Ecore_Evas *ee, const char *n, const char *c) { - if (ee->prop.name) free(ee->prop.name); - if (ee->prop.clas) free(ee->prop.clas); - ee->prop.name = NULL; - ee->prop.clas = NULL; - if (n) ee->prop.name = strdup(n); - if (c) ee->prop.clas = strdup(c); + if (!eina_streq(ee->prop.name, n)) + { + if (ee->prop.name) free(ee->prop.name); + ee->prop.name = NULL; + if (n) ee->prop.name = strdup(n); + } + if (!eina_streq(ee->prop.clas, c)) + { + if (ee->prop.clas) free(ee->prop.clas); + ee->prop.clas = NULL; + if (c) ee->prop.clas = strdup(c); + } } static void diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c index 76036c3b62..424a5aa87a 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c @@ -1098,6 +1098,7 @@ _ecore_evas_wl_common_title_set(Ecore_Evas *ee, const char *title) LOGFN(__FILE__, __LINE__, __FUNCTION__); if (!ee) return; + if (eina_streq(ee->prop.title, title)) return; if (ee->prop.title) free(ee->prop.title); ee->prop.title = NULL; if (title) ee->prop.title = strdup(title); @@ -1123,13 +1124,18 @@ _ecore_evas_wl_common_name_class_set(Ecore_Evas *ee, const char *n, const char * if (!ee) return; wdata = ee->engine.data; - if (ee->prop.name) free(ee->prop.name); - if (ee->prop.clas) free(ee->prop.clas); - ee->prop.name = NULL; - ee->prop.clas = NULL; - if (n) ee->prop.name = strdup(n); - if (c) ee->prop.clas = strdup(c); - + if (!eina_streq(ee->prop.name, n)) + { + if (ee->prop.name) free(ee->prop.name); + ee->prop.name = NULL; + if (n) ee->prop.name = strdup(n); + } + if (!eina_streq(ee->prop.clas, c)) + { + if (ee->prop.clas) free(ee->prop.clas); + ee->prop.clas = NULL; + if (c) ee->prop.clas = strdup(c); + } if (ee->prop.clas) ecore_wl_window_class_name_set(wdata->win, ee->prop.clas); } diff --git a/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c b/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c index 88397c7efe..933345584a 100644 --- a/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c +++ b/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c @@ -757,7 +757,7 @@ static void _ecore_evas_win32_title_set(Ecore_Evas *ee, const char *title) { INF("ecore evas title set"); - + if (eina_streq(ee->prop.title, title)) return; if (ee->prop.title) free(ee->prop.title); ee->prop.title = NULL; if (title) ee->prop.title = strdup(title); diff --git a/src/modules/ecore_evas/engines/x/ecore_evas_x.c b/src/modules/ecore_evas/engines/x/ecore_evas_x.c index a128e7cf1b..a401d465eb 100644 --- a/src/modules/ecore_evas/engines/x/ecore_evas_x.c +++ b/src/modules/ecore_evas/engines/x/ecore_evas_x.c @@ -2898,6 +2898,7 @@ _ecore_evas_x_activate(Ecore_Evas *ee) static void _ecore_evas_x_title_set(Ecore_Evas *ee, const char *t) { + if (eina_streq(ee->prop.title, t)) return; if (ee->prop.title) free(ee->prop.title); ee->prop.title = NULL; if (!t) return;