aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/elementary
diff options
context:
space:
mode:
authorChris Michael <cp.michael@samsung.com>2017-02-27 10:09:34 -0500
committerChris Michael <cp.michael@samsung.com>2017-02-27 11:33:49 -0500
commit59bf5476eeb4ea4be2f617a401f078d8efe2fece (patch)
treec6046aa411ec60105826847d707dc5b0008182e5 /src/lib/elementary
parentecore_imf/ibus: Fix memory leak (diff)
downloadefl-59bf5476eeb4ea4be2f617a401f078d8efe2fece.tar.gz
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 https://phab.enlightenment.org/T5209 @fix Signed-off-by: Chris Michael <cp.michael@samsung.com>
Diffstat (limited to 'src/lib/elementary')
-rw-r--r--src/lib/elementary/efl_ui_win.c65
1 files changed, 27 insertions, 38 deletions
diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index 829891307a..85f9ea30f8 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);