#include "elm_interface_atspi_window.eo.h"
#include "elm_interface_atspi_widget.eo.h"
-#define MY_CLASS ELM_OBJ_WIN_CLASS
+#define MY_CLASS ELM_WIN_CLASS
#define MY_CLASS_NAME "Elm_Win"
#define MY_CLASS_NAME_LEGACY "elm_win"
Evas_Object *target = sd->focus_highlight.cur.target;
evas_object_geometry_get(obj, &px, &py, &pw, &ph);
- elm_widget_focus_highlight_geometry_get(target, &tx, &ty, &tw, &th, EINA_TRUE);
+ elm_widget_focus_highlight_geometry_get(target, &tx, &ty, &tw, &th);
evas_object_move(obj, tx, ty);
evas_object_resize(obj, tw, th);
Evas_Object *clip, *target = sd->focus_highlight.cur.target;
Evas_Coord x, y, w, h;
- elm_widget_focus_highlight_geometry_get(target, &x, &y, &w, &h, EINA_TRUE);
+ elm_widget_focus_highlight_geometry_get(target, &x, &y, &w, &h);
evas_object_move(obj, x, y);
evas_object_resize(obj, w, h);
}
static void
+_elm_win_focus_prev_target_del(void *data,
+ Evas *e EINA_UNUSED,
+ Evas_Object *obj EINA_UNUSED,
+ void *event_info EINA_UNUSED)
+{
+ ELM_WIN_DATA_GET(data, sd);
+ sd->focus_highlight.prev.target = NULL;
+}
+
+static void
_elm_win_focus_highlight_reconfigure_job(void *data)
{
ELM_WIN_DATA_GET(data, sd);
return;
if ((previous) && (sd->focus_highlight.prev.in_theme))
- elm_widget_signal_emit
- (previous, "elm,action,focus_highlight,hide", "elm");
+ {
+ evas_object_event_callback_del_full
+ (previous, EVAS_CALLBACK_DEL, _elm_win_focus_prev_target_del, data);
+ elm_widget_signal_emit
+ (previous, "elm,action,focus_highlight,hide", "elm");
+ }
if (!target)
common_visible = EINA_FALSE;
_elm_win_focus_highlight_visible_set(sd, common_visible);
sd->focus_highlight.geometry_changed = EINA_FALSE;
sd->focus_highlight.prev = sd->focus_highlight.cur;
+ evas_object_event_callback_add
+ (sd->focus_highlight.prev.target,
+ EVAS_CALLBACK_DEL, _elm_win_focus_prev_target_del, data);
}
static void
}
EOLIAN static void
-_elm_win_evas_smart_show(Eo *obj, Elm_Win_Data *sd)
+_elm_win_evas_object_smart_show(Eo *obj, Elm_Win_Data *sd)
{
if (sd->modal_count) return;
const Eina_List *l;
}
EOLIAN static void
-_elm_win_evas_smart_hide(Eo *obj, Elm_Win_Data *sd)
+_elm_win_evas_object_smart_hide(Eo *obj, Elm_Win_Data *sd)
{
if (sd->modal_count) return;
const Eina_List *l;
}
EOLIAN static void
-_elm_win_evas_smart_del(Eo *obj, Elm_Win_Data *sd)
+_elm_win_evas_object_smart_del(Eo *obj, Elm_Win_Data *sd)
{
const Eina_List *l;
Evas_Object *current;
}
EOLIAN static void
-_elm_win_evas_smart_move(Eo *obj, Elm_Win_Data *sd, Evas_Coord x, Evas_Coord y)
+_elm_win_evas_object_smart_move(Eo *obj, Elm_Win_Data *sd, Evas_Coord x, Evas_Coord y)
{
if (sd->img_obj)
{
}
EOLIAN static void
-_elm_win_evas_smart_resize(Eo *obj, Elm_Win_Data *sd, Evas_Coord w, Evas_Coord h)
+_elm_win_evas_object_smart_resize(Eo *obj, Elm_Win_Data *sd, Evas_Coord w, Evas_Coord h)
{
eo_do_super(obj, MY_CLASS, evas_obj_smart_resize(w, h));
}
EOLIAN static void
-_elm_win_evas_smart_add(Eo *obj, Elm_Win_Data *_pd EINA_UNUSED)
+_elm_win_evas_object_smart_add(Eo *obj, Elm_Win_Data *_pd EINA_UNUSED)
{
eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
{
if (_accel_is_gl())
{
- enginelist[0] = ELM_OPENGL_X11;
- enginelist[1] = ELM_WAYLAND_EGL;
- enginelist[2] = ELM_DRM;
- enginelist[3] = ELM_SOFTWARE_FB;
- enginelist[4] = ELM_OPENGL_COCOA;
- enginelist[5] = ELM_OPENGL_SDL;
- enginelist[6] = NULL;
+ enginelist[ 0] = ELM_OPENGL_X11;
+ enginelist[ 1] = ELM_WAYLAND_EGL;
+ enginelist[ 2] = ELM_DRM;
+ enginelist[ 3] = ELM_SOFTWARE_FB;
+ enginelist[ 4] = ELM_OPENGL_COCOA;
+ enginelist[ 5] = ELM_OPENGL_SDL;
+ enginelist[ 6] = ELM_SOFTWARE_X11;
+ enginelist[ 7] = ELM_WAYLAND_SHM;
+ enginelist[ 8] = ELM_SOFTWARE_SDL;
+ enginelist[ 9] = ELM_SOFTWARE_PSL1GHT;
+ enginelist[10] = NULL;
}
else
{
- enginelist[0] = ENGINE_GET();
- enginelist[1] = ELM_SOFTWARE_X11;
- enginelist[2] = ELM_WAYLAND_SHM;
- enginelist[3] = ELM_DRM;
- enginelist[4] = ELM_SOFTWARE_FB;
- enginelist[5] = ELM_OPENGL_COCOA;
- enginelist[6] = ELM_SOFTWARE_SDL;
- enginelist[7] = NULL;
+ enginelist[ 0] = ENGINE_GET();
+ enginelist[ 1] = ELM_SOFTWARE_X11;
+ enginelist[ 2] = ELM_WAYLAND_SHM;
+ enginelist[ 3] = ELM_DRM;
+ enginelist[ 4] = ELM_SOFTWARE_FB;
+ enginelist[ 5] = ELM_OPENGL_COCOA;
+ enginelist[ 6] = ELM_SOFTWARE_SDL;
+ enginelist[ 7] = ELM_OPENGL_X11;
+ enginelist[ 8] = ELM_WAYLAND_EGL;
+ enginelist[ 9] = ELM_DRM;
+ enginelist[10] = ELM_OPENGL_SDL;
+ enginelist[11] = ELM_SOFTWARE_WIN32;
+ enginelist[12] = NULL;
}
}
for (i = 0; i < 30; i++)
((!strcmp(engine_name, ELM_WAYLAND_SHM)) ||
(!strcmp(engine_name, ELM_WAYLAND_EGL)));
+ if (need_frame)
+ need_frame = !sd->fullscreen;
+
if (borderless)
{
if (need_frame)
{
// YYY: handle if sd->img_obj
if (ENGINE_COMPARE(ELM_SOFTWARE_FB) ||
- ENGINE_COMPARE(ELM_SOFTWARE_16_WINCE) ||
ENGINE_COMPARE(ELM_DRM))
{
// these engines... can ONLY be fullscreen
((!strcmp(engine_name, ELM_WAYLAND_SHM)) ||
(!strcmp(engine_name, ELM_WAYLAND_EGL)));
+ if (need_frame)
+ need_frame = !ecore_evas_borderless_get(sd->ee);
+
TRAP(sd, fullscreen_set, fullscreen);
if (fullscreen)
if (engine_name &&
((!strcmp(engine_name, ELM_SOFTWARE_FB)) ||
- (!strcmp(engine_name, ELM_SOFTWARE_16_WINCE)) ||
(!strcmp(engine_name, ELM_DRM))))
{
// these engines... can ONLY be fullscreen
}
void
+_elm_win_focus_highlight_in_theme_update(Evas_Object *obj, Eina_Bool in_theme)
+{
+ ELM_WIN_DATA_GET(obj, sd);
+ sd->focus_highlight.cur.in_theme = !!in_theme;
+}
+
+void
_elm_win_focus_highlight_start(Evas_Object *obj)
{
ELM_WIN_DATA_GET(obj, sd);