From 59bf5476eeb4ea4be2f617a401f078d8efe2fece Mon Sep 17 00:00:00 2001 From: Chris Michael Date: Mon, 27 Feb 2017 10:09:34 -0500 Subject: [PATCH] elementary: Don't set pointer object theme on start As we are already resetting the pointer object theme when we make a call to set the cursor, don't set it on window creation. This should address the issue of animators getting created on window creation. ref T5209 @fix Signed-off-by: Chris Michael --- src/lib/elementary/efl_ui_win.c | 65 +++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 38 deletions(-) diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index 8298913..85f9ea3 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -3075,6 +3075,8 @@ _elm_win_wl_cursor_set(Evas_Object *obj, const char *cursor) &hx, &hy, NULL, NULL); sd->pointer.hot_x = hx; sd->pointer.hot_y = hy; + + ecore_evas_resize(sd->pointer.ee, mw, mh); } if ((sd->wl.win) && (sd->pointer.surf) && (sd->pointer.visible)) @@ -5100,44 +5102,6 @@ _elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, const char *name, Elm_W _elm_win_need_frame_adjust(sd, engine); _elm_win_apply_alpha(obj, sd); -#ifdef HAVE_ELEMENTARY_WL2 - if ((type != ELM_WIN_FAKE) && (type != ELM_WIN_INLINED_IMAGE)) - { - if ((engine) && - ((!strcmp(engine, ELM_WAYLAND_SHM) || - (!strcmp(engine, ELM_WAYLAND_EGL))))) - { - Evas *pevas; - Evas_Coord mw = 1, mh = 1, hx = 0, hy = 0; - - if (!strcmp(engine, ELM_WAYLAND_SHM)) - sd->pointer.ee = ecore_evas_wayland_shm_new(NULL, 0, 0, 0, 1, 1, 0); - else if (!strcmp(engine, ELM_WAYLAND_EGL)) - sd->pointer.ee = ecore_evas_wayland_egl_new(NULL, 0, 0, 0, 1, 1, 0); - - pevas = ecore_evas_get(sd->pointer.ee); - - sd->pointer.obj = edje_object_add(pevas); - _elm_theme_object_set(obj, sd->pointer.obj, - "pointer", "base", "default"); - edje_object_size_min_calc(sd->pointer.obj, &mw, &mh); - evas_object_move(sd->pointer.obj, 0, 0); - evas_object_resize(sd->pointer.obj, mw, mh); - edje_object_part_geometry_get(sd->pointer.obj, - "elm.swallow.hotspot", - &hx, &hy, NULL, NULL); - sd->pointer.hot_x = hx; - sd->pointer.hot_y = hy; - - sd->pointer.win = _elm_ee_wlwin_get(sd->pointer.ee); - ecore_wl2_window_type_set(sd->pointer.win, - ECORE_WL2_WINDOW_TYPE_NONE); - - ecore_evas_resize(sd->pointer.ee, mw, mh); - } - } -#endif - /* do not append to list; all windows render as black rects */ if (type != ELM_WIN_FAKE) { @@ -5168,6 +5132,31 @@ _elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, const char *name, Elm_W elm_win_focus_highlight_animate_set(obj, EINA_TRUE); } +#ifdef HAVE_ELEMENTARY_WL2 + if ((type != ELM_WIN_FAKE) && (type != ELM_WIN_INLINED_IMAGE)) + { + if ((engine) && + ((!strcmp(engine, ELM_WAYLAND_SHM) || + (!strcmp(engine, ELM_WAYLAND_EGL))))) + { + Evas *pevas; + + if (!strcmp(engine, ELM_WAYLAND_SHM)) + sd->pointer.ee = ecore_evas_wayland_shm_new(NULL, 0, 0, 0, 1, 1, 0); + else if (!strcmp(engine, ELM_WAYLAND_EGL)) + sd->pointer.ee = ecore_evas_wayland_egl_new(NULL, 0, 0, 0, 1, 1, 0); + + pevas = ecore_evas_get(sd->pointer.ee); + + sd->pointer.obj = edje_object_add(pevas); + + sd->pointer.win = ecore_evas_wayland2_window_get(sd->pointer.ee); + ecore_wl2_window_type_set(sd->pointer.win, + ECORE_WL2_WINDOW_TYPE_NONE); + } + } +#endif + elm_interface_atspi_accessible_role_set(obj, ELM_ATSPI_ROLE_WINDOW); if (_elm_config->atspi_mode) elm_interface_atspi_window_created_signal_emit(obj); -- 2.7.4