summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Michael <cpmichael1@comcast.net>2012-07-11 11:53:29 +0000
committerChristopher Michael <cpmichael1@comcast.net>2012-07-11 11:53:29 +0000
commitbe725e588fcff3fd7cc2140e0f2954af5054beb2 (patch)
tree250ccd3e292cfbe17a1cf5d21ed2ad62fbf6a39c
parentb03d97a05e5690345ad8b186f0d802e37cfbc279 (diff)
Elm: Commit roberts patch which fixes the unsafe call to
ecore_evas_window_get with a replacement function that checks the currently used engine first. This fixes a segfault when running elm with the wayland engines. SVN revision: 73568
Diffstat (limited to '')
-rw-r--r--src/lib/elm_cnp.c2
-rw-r--r--src/lib/elm_priv.h2
-rw-r--r--src/lib/elm_win.c2
3 files changed, 4 insertions, 2 deletions
diff --git a/src/lib/elm_cnp.c b/src/lib/elm_cnp.c
index 7720e9bcb..b1c9e1b43 100644
--- a/src/lib/elm_cnp.c
+++ b/src/lib/elm_cnp.c
@@ -442,7 +442,7 @@ _elm_widget_xwin_get(const Evas_Object *obj)
442 if (!evas) return 0; 442 if (!evas) return 0;
443 ee = ecore_evas_ecore_evas_get(evas); 443 ee = ecore_evas_ecore_evas_get(evas);
444 if (!ee) return 0; 444 if (!ee) return 0;
445 xwin = (Ecore_X_Window)ecore_evas_window_get(ee); 445 xwin = _elm_ee_xwin_get(ee);
446 } 446 }
447 447
448 return xwin; 448 return xwin;
diff --git a/src/lib/elm_priv.h b/src/lib/elm_priv.h
index e405723fb..0bed660eb 100644
--- a/src/lib/elm_priv.h
+++ b/src/lib/elm_priv.h
@@ -232,6 +232,8 @@ void _elm_win_rescale(Elm_Theme *th, Eina_Bool use_theme);
232void _elm_win_access(Eina_Bool is_access); 232void _elm_win_access(Eina_Bool is_access);
233void _elm_win_translate(void); 233void _elm_win_translate(void);
234 234
235Ecore_X_Window _elm_ee_xwin_get(const Ecore_Evas *ee);
236
235Eina_Bool _elm_theme_object_set(Evas_Object *parent, Evas_Object *o, const char *clas, const char *group, const char *style); 237Eina_Bool _elm_theme_object_set(Evas_Object *parent, Evas_Object *o, const char *clas, const char *group, const char *style);
236Eina_Bool _elm_theme_object_icon_set(Evas_Object *o, const char *group, const char *style); 238Eina_Bool _elm_theme_object_icon_set(Evas_Object *o, const char *group, const char *style);
237Eina_Bool _elm_theme_set(Elm_Theme *th, Evas_Object *o, const char *clas, const char *group, const char *style); 239Eina_Bool _elm_theme_set(Elm_Theme *th, Evas_Object *o, const char *clas, const char *group, const char *style);
diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c
index 36f1a3fd5..daa588beb 100644
--- a/src/lib/elm_win.c
+++ b/src/lib/elm_win.c
@@ -1266,7 +1266,7 @@ _elm_win_delete_request(Ecore_Evas *ee)
1266 evas_object_unref(obj); 1266 evas_object_unref(obj);
1267} 1267}
1268 1268
1269static Ecore_X_Window 1269Ecore_X_Window
1270_elm_ee_xwin_get(const Ecore_Evas *ee) 1270_elm_ee_xwin_get(const Ecore_Evas *ee)
1271{ 1271{
1272#ifdef HAVE_ELEMENTARY_X 1272#ifdef HAVE_ELEMENTARY_X