forked from enlightenment/efl
be able to build without x - so it should work on the fb.. and it does... at
leats my mouse and keyboard do - and windows are fullscreen of course... and really you have a technical limit of 1 window... but hey! that's the fb! SVN revision: 38077
This commit is contained in:
parent
abed93c48e
commit
2a41db988e
|
@ -35,7 +35,6 @@ PKG_CHECK_MODULES([ELEMENTARY], [
|
|||
eet
|
||||
evas
|
||||
ecore
|
||||
ecore-x
|
||||
ecore-evas
|
||||
ecore-job
|
||||
ecore-txt
|
||||
|
@ -44,6 +43,22 @@ PKG_CHECK_MODULES([ELEMENTARY], [
|
|||
edbus
|
||||
])
|
||||
|
||||
have_elementary_x="no"
|
||||
PKG_CHECK_MODULES([ELEMENTARY_X], [ecore-x], [
|
||||
AC_DEFINE(HAVE_ELEMENTARY_X, 1, [X11 support for Elementary])
|
||||
have_elementary_x="yes"
|
||||
], [
|
||||
have_elementary_x="no"
|
||||
])
|
||||
|
||||
have_elementary_fb="no"
|
||||
PKG_CHECK_MODULES([ELEMENTARY_FB], [ecore-fb], [
|
||||
AC_DEFINE(HAVE_ELEMENTARY_FB, 1, [FB support for Elementary])
|
||||
have_elementary_fb="yes"
|
||||
], [
|
||||
have_elementary_fb="no"
|
||||
])
|
||||
|
||||
my_libs="-lm"
|
||||
AC_SUBST(my_libs)
|
||||
|
||||
|
|
|
@ -8,5 +8,5 @@ Description: Mobile device touchscreen widget library
|
|||
Requires: evas ecore ecore-x ecore-evas ecore-job ecore-txt ecore-file eet edje
|
||||
Version: @VERSION@
|
||||
Libs: -L${libdir} -lelementary
|
||||
Libs.private: @my_libs@ @ELEMENTARY_LIBS@
|
||||
Cflags: -I${includedir} -I${includedir}/elementary
|
||||
Libs.private: @my_libs@ @ELEMENTARY_LIBS@ @ELEMENTARY_X_LIBS@ @ELEMENTARY_FB_LIBS@
|
||||
Cflags: -I${includedir} -I${includedir}/elementary @ELEMENTARY_CFLAGS@ @ELEMENTARY_X_CFLAGS@ @ELEMENTARY_FB_CFLAGS@
|
||||
|
|
|
@ -7,7 +7,7 @@ AM_CPPFLAGS = \
|
|||
-I$(top_srcdir)/src/lib \
|
||||
-I$(top_srcdir)/src/bin \
|
||||
-DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
|
||||
@ELEMENTARY_CFLAGS@
|
||||
@ELEMENTARY_CFLAGS@ @ELEMENTARY_X_CFLAGS@ @ELEMENTARY_FB_CFLAGS@
|
||||
|
||||
bin_PROGRAMS = elementary_test
|
||||
|
||||
|
|
|
@ -45,7 +45,6 @@
|
|||
#include <Eet.h>
|
||||
#include <Evas.h>
|
||||
#include <Ecore.h>
|
||||
#include <Ecore_X.h>
|
||||
#include <Ecore_Evas.h>
|
||||
#include <Ecore_Job.h>
|
||||
#include <Ecore_Txt.h>
|
||||
|
|
|
@ -7,7 +7,7 @@ AM_CPPFLAGS = \
|
|||
-I$(top_srcdir) \
|
||||
-I$(top_srcdir)/src/lib \
|
||||
-DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
|
||||
@ELEMENTARY_CFLAGS@
|
||||
@ELEMENTARY_CFLAGS@ @ELEMENTARY_X_CFLAGS@ @ELEMENTARY_FB_CFLAGS@
|
||||
|
||||
lib_LTLIBRARIES = libelementary.la
|
||||
|
||||
|
@ -54,7 +54,7 @@ els_icon.h
|
|||
|
||||
|
||||
libelementary_la_CFLAGS =
|
||||
libelementary_la_LIBADD = @my_libs@ @ELEMENTARY_LIBS@
|
||||
libelementary_la_LIBADD = @my_libs@ @ELEMENTARY_LIBS@ @ELEMENTARY_X_LIBS@ @ELEMENTARY_FB_LIBS@
|
||||
libelementary_la_LDFLAGS = -version-info @version_info@
|
||||
libelementary_la_DEPENDENCIES = $(top_builddir)/elementary_config.h
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ typedef struct _Widget_Data Widget_Data;
|
|||
|
||||
struct _Widget_Data
|
||||
{
|
||||
Evas_Object *pop, *hover;
|
||||
Evas_Object *btn, *hover;
|
||||
Evas_Object *hover_parent;
|
||||
const char *hover_style;
|
||||
};
|
||||
|
@ -37,6 +37,8 @@ _sizing_eval(Evas_Object *obj)
|
|||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
Evas_Coord minw = -1, minh = -1, maxw = -1, maxh = -1;
|
||||
|
||||
evas_object_size_hint_min_get(wd->btn, &minw, &minh);
|
||||
evas_object_size_hint_max_get(wd->btn, &maxw, &maxh);
|
||||
evas_object_size_hint_min_set(obj, minw, minh);
|
||||
evas_object_size_hint_max_set(obj, maxw, maxh);
|
||||
}
|
||||
|
@ -53,6 +55,39 @@ _hover_clicked(void *data, Evas_Object *obj, void *event_info)
|
|||
elm_hoversel_hover_end(data);
|
||||
}
|
||||
|
||||
static void
|
||||
_button_clicked(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(data);
|
||||
Evas_Object *bt, *bx, *ic;
|
||||
wd->hover = elm_hover_add(data);
|
||||
elm_hover_style_set(wd->hover, "hoversel_vertical");
|
||||
evas_object_smart_callback_add(wd->hover, "clicked", _hover_clicked, data);
|
||||
elm_hover_parent_set(wd->hover, wd->hover_parent);
|
||||
elm_hover_target_set(wd->hover, wd->btn);
|
||||
|
||||
bx = elm_box_add(wd->hover);
|
||||
elm_box_homogenous_set(bx, 1);
|
||||
|
||||
bt = elm_button_add(wd->hover);
|
||||
elm_button_style_set(bt, "hoversel_vertical_entry");
|
||||
elm_button_label_set(bt, "Forward");
|
||||
evas_object_size_hint_weight_set(bt, 1.0, 0.0);
|
||||
evas_object_size_hint_align_set(bt, -1.0, -1.0);
|
||||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
// FIXME: fill.
|
||||
|
||||
elm_hover_content_set
|
||||
(wd->hover,
|
||||
elm_hover_best_content_location_get(wd->hover, ELM_HOVER_AXIS_VERTICAL),
|
||||
bx);
|
||||
evas_object_show(bx);
|
||||
|
||||
evas_object_show(wd->hover);
|
||||
}
|
||||
|
||||
static void
|
||||
_parent_del(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
|
@ -74,12 +109,12 @@ elm_hoversel_add(Evas_Object *parent)
|
|||
elm_widget_del_pre_hook_set(obj, _del_pre_hook);
|
||||
elm_widget_del_hook_set(obj, _del_hook);
|
||||
|
||||
// wd->scroller = elm_scroller_add(parent);
|
||||
// elm_widget_resize_object_set(obj, wd->scroller);
|
||||
|
||||
// evas_object_event_callback_add(wd->entry, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
|
||||
// _changed_size_hints, obj);
|
||||
|
||||
wd->btn = elm_button_add(parent);
|
||||
elm_button_style_set(wd->btn, "hoversel_vertical");
|
||||
elm_widget_resize_object_set(obj, wd->btn);
|
||||
evas_object_event_callback_add(wd->btn, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
|
||||
_changed_size_hints, obj);
|
||||
evas_object_smart_callback_add(wd->btn, "clicked", _button_clicked, obj);
|
||||
_sizing_eval(obj);
|
||||
return obj;
|
||||
}
|
||||
|
@ -96,20 +131,42 @@ elm_hoversel_hover_parent_set(Evas_Object *obj, Evas_Object *parent)
|
|||
}
|
||||
|
||||
EAPI void
|
||||
elm_hoversel_hover_style_set(Evas_Object *obj, const char *style)
|
||||
elm_hoversel_label_set(Evas_Object *obj, const char *label)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (wd->hover_style) eina_stringshare_del(wd->hover_style);
|
||||
wd->hover_style = NULL;
|
||||
if (style) wd->hover_style = eina_stringshare_add(style);
|
||||
}
|
||||
elm_button_label_set(wd->btn, label);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_hoversel_icon_set(Evas_Object *obj, Evas_Object *icon)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
elm_button_icon_set(wd->btn, icon);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_hoversel_hover_end(Evas_Object *obj)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
if (wd->hover) evas_object_del(wd->hover);
|
||||
if (wd->pop) evas_object_del(wd->pop);
|
||||
wd->hover = NULL;
|
||||
wd->pop = NULL;
|
||||
}
|
||||
|
||||
EAPI void * // FIXME: return some sort of handle other than void *
|
||||
elm_hoversel_item_add(Evas_Object *obj, const char *label, const char *icon_file, int icon_type, void (*func) (void *data, Evas_Object *obj, void *event_into), const void *data)
|
||||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
// FIXME: implement
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_hoversel_item_del(void *item)
|
||||
{
|
||||
// FIXME: implement
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_hoversel_item_enabled_set(void *item, Evas_Bool enabled)
|
||||
{
|
||||
// FIXME: implement
|
||||
}
|
||||
|
|
|
@ -42,8 +42,10 @@ _del_hook(Evas_Object *obj)
|
|||
{
|
||||
Widget_Data *wd = elm_widget_data_get(obj);
|
||||
entries = eina_list_remove(entries, obj);
|
||||
#ifdef HAVE_ELEMENTARY_X
|
||||
ecore_event_handler_del(wd->sel_notify_handler);
|
||||
ecore_event_handler_del(wd->sel_clear_handler);
|
||||
#endif
|
||||
if (wd->cut_sel) eina_stringshare_del(wd->cut_sel);
|
||||
if (wd->deferred_recalc_job) ecore_job_del(wd->deferred_recalc_job);
|
||||
free(wd);
|
||||
|
@ -548,6 +550,7 @@ _signal_key_enter(void *data, Evas_Object *obj, const char *emission, const char
|
|||
evas_object_smart_callback_call(data, "activated", NULL);
|
||||
}
|
||||
|
||||
#ifdef HAVE_ELEMENTARY_X
|
||||
static int
|
||||
_event_selection_notify(void *data, int type, void *event)
|
||||
{
|
||||
|
@ -590,6 +593,7 @@ _event_selection_clear(void *data, int type, void *event)
|
|||
}
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
EAPI Evas_Object *
|
||||
elm_entry_add(Evas_Object *parent)
|
||||
|
@ -632,6 +636,7 @@ elm_entry_add(Evas_Object *parent)
|
|||
elm_widget_resize_object_set(obj, wd->ent);
|
||||
_sizing_eval(obj);
|
||||
|
||||
#ifdef HAVE_ELEMENTARY_X
|
||||
if (elm_win_xwindow_get(elm_widget_top_get(parent)) != 0)
|
||||
{
|
||||
wd->sel_notify_handler =
|
||||
|
@ -641,6 +646,7 @@ elm_entry_add(Evas_Object *parent)
|
|||
ecore_event_handler_add(ECORE_X_EVENT_SELECTION_CLEAR,
|
||||
_event_selection_clear, obj);
|
||||
}
|
||||
#endif
|
||||
|
||||
entries = eina_list_prepend(entries, obj);
|
||||
return obj;
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
#include "elm_priv.h"
|
||||
|
||||
static int _elm_signal_exit(void *data, int ev_type, void *ev);
|
||||
#ifdef HAVE_ELEMENTARY_X
|
||||
static int _elm_window_property_change(void *data, int ev_type, void *ev);
|
||||
#endif
|
||||
static void _elm_rescale(void);
|
||||
|
||||
char *_elm_appname = NULL;
|
||||
|
@ -17,6 +19,7 @@ _elm_signal_exit(void *data, int ev_type, void *ev)
|
|||
return 1;
|
||||
}
|
||||
|
||||
#ifdef HAVE_ELEMENTARY_X
|
||||
static int
|
||||
_elm_window_property_change(void *data, int ev_type, void *ev)
|
||||
{
|
||||
|
@ -42,6 +45,7 @@ _elm_window_property_change(void *data, int ev_type, void *ev)
|
|||
}
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
static void
|
||||
_elm_rescale(void)
|
||||
|
@ -55,6 +59,7 @@ EAPI void
|
|||
elm_init(int argc, char **argv)
|
||||
{
|
||||
int i;
|
||||
const char *elm_engine, *elm_scale;
|
||||
|
||||
eet_init();
|
||||
ecore_init();
|
||||
|
@ -68,14 +73,46 @@ elm_init(int argc, char **argv)
|
|||
|
||||
_elm_appname = strdup(ecore_file_file_get(argv[0]));
|
||||
|
||||
elm_engine = getenv("ELM_ENGINE");
|
||||
elm_scale = getenv("ELM_SCALE");
|
||||
|
||||
// FIXME: actually load config
|
||||
_elm_config = ELM_NEW(Elm_Config);
|
||||
_elm_config->engine = ELM_SOFTWARE_X11;
|
||||
if (elm_engine)
|
||||
{
|
||||
if ((!strcasecmp(elm_engine, "x11")) ||
|
||||
(!strcasecmp(elm_engine, "x")) ||
|
||||
(!strcasecmp(elm_engine, "software-x11")) ||
|
||||
(!strcasecmp(elm_engine, "software_x11")))
|
||||
_elm_config->engine = ELM_SOFTWARE_X11;
|
||||
else if ((!strcasecmp(elm_engine, "x11-16")) ||
|
||||
(!strcasecmp(elm_engine, "x16")) ||
|
||||
(!strcasecmp(elm_engine, "software-16-x11")) ||
|
||||
(!strcasecmp(elm_engine, "software_16_x11")))
|
||||
_elm_config->engine = ELM_SOFTWARE_16_X11;
|
||||
else if ((!strcasecmp(elm_engine, "xrender")) ||
|
||||
(!strcasecmp(elm_engine, "xr")) ||
|
||||
(!strcasecmp(elm_engine, "xrender-x11")) ||
|
||||
(!strcasecmp(elm_engine, "xrender_x11")))
|
||||
_elm_config->engine = ELM_XRENDER_X11;
|
||||
else if ((!strcasecmp(elm_engine, "fb")) ||
|
||||
(!strcasecmp(elm_engine, "software-fb")) ||
|
||||
(!strcasecmp(elm_engine, "software_fb")))
|
||||
_elm_config->engine = ELM_SOFTWARE_FB;
|
||||
else if ((!strcasecmp(elm_engine, "opengl")) ||
|
||||
(!strcasecmp(elm_engine, "gl")) ||
|
||||
(!strcasecmp(elm_engine, "opengl-x11")) ||
|
||||
(!strcasecmp(elm_engine, "opengl_x11")))
|
||||
_elm_config->engine = ELM_OPENGL_X11;
|
||||
}
|
||||
|
||||
_elm_config->thumbscroll_enable = 1;
|
||||
_elm_config->thumbscroll_threshhold = 24;
|
||||
_elm_config->thumbscroll_momentum_threshhold = 100.0;
|
||||
_elm_config->thumbscroll_friction = 1.0;
|
||||
_elm_config->scale = 1.0;
|
||||
|
||||
_elm_config->bgpixmap = 0;
|
||||
_elm_config->compositing = 1;
|
||||
|
||||
|
@ -84,6 +121,7 @@ elm_init(int argc, char **argv)
|
|||
(_elm_config->engine == ELM_XRENDER_X11) ||
|
||||
(_elm_config->engine == ELM_OPENGL_X11))
|
||||
{
|
||||
#ifdef HAVE_ELEMENTARY_X
|
||||
int val = 1000;
|
||||
|
||||
ecore_x_init(NULL);
|
||||
|
@ -100,14 +138,31 @@ elm_init(int argc, char **argv)
|
|||
}
|
||||
if (!ecore_x_screen_is_composited(0))
|
||||
_elm_config->compositing = 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
if (elm_scale)
|
||||
{
|
||||
_elm_config->scale = atof(elm_scale);
|
||||
}
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_shutdown(void)
|
||||
{
|
||||
_elm_win_shutdown();
|
||||
|
||||
if ((_elm_config->engine == ELM_SOFTWARE_X11) ||
|
||||
(_elm_config->engine == ELM_SOFTWARE_16_X11) ||
|
||||
(_elm_config->engine == ELM_XRENDER_X11) ||
|
||||
(_elm_config->engine == ELM_OPENGL_X11))
|
||||
{
|
||||
#ifdef HAVE_ELEMENTARY_X
|
||||
ecore_event_handler_del(_elm_event_property_change);
|
||||
_elm_event_property_change = NULL;
|
||||
ecore_x_shutdown();
|
||||
#endif
|
||||
}
|
||||
|
||||
free(_elm_config);
|
||||
free(_elm_appname);
|
||||
|
|
|
@ -3,6 +3,12 @@
|
|||
|
||||
#include "elementary_config.h"
|
||||
|
||||
#ifdef HAVE_ELEMENTARY_X
|
||||
#include <Ecore_X.h>
|
||||
#endif
|
||||
#ifdef HAVE_ELEMENTARY_FB
|
||||
#include <Ecore_Fb.h>
|
||||
#endif
|
||||
#ifdef HAVE_ALLOCA_H
|
||||
#include <alloca.h>
|
||||
#endif
|
||||
|
|
|
@ -10,7 +10,9 @@ struct _Elm_Win
|
|||
Evas_Object *parent;
|
||||
Evas_Object *win_obj;
|
||||
Eina_List *subobjs;
|
||||
#ifdef HAVE_ELEMENTARY_X
|
||||
Ecore_X_Window xwin;
|
||||
#endif
|
||||
Ecore_Job *deferred_resize_job;
|
||||
Ecore_Job *deferred_child_eval_job;
|
||||
|
||||
|
@ -34,7 +36,9 @@ static void _elm_win_obj_callback_del(void *data, Evas *e, Evas_Object *obj, voi
|
|||
static void _elm_win_obj_callback_changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info);
|
||||
static void _elm_win_delete_request(Ecore_Evas *ee);
|
||||
static void _elm_win_resize_job(void *data);
|
||||
#ifdef HAVE_ELEMENTARY_X
|
||||
static void _elm_win_xwin_update(Elm_Win *win);
|
||||
#endif
|
||||
static void _elm_win_eval_subobjs(Evas_Object *obj);
|
||||
static void _elm_win_subobj_callback_del(void *data, Evas *e, Evas_Object *obj, void *event_info);
|
||||
static void _elm_win_subobj_callback_changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info);
|
||||
|
@ -78,7 +82,19 @@ static void
|
|||
_elm_win_obj_intercept_resize(void *data, Evas_Object *obj, Evas_Coord w, Evas_Coord h)
|
||||
{
|
||||
Elm_Win *win = data;
|
||||
ecore_evas_resize(win->ee, w, h);
|
||||
switch (_elm_config->engine)
|
||||
{
|
||||
case ELM_SOFTWARE_FB:
|
||||
break;
|
||||
case ELM_SOFTWARE_X11:
|
||||
case ELM_SOFTWARE_16_X11:
|
||||
case ELM_XRENDER_X11:
|
||||
case ELM_OPENGL_X11:
|
||||
ecore_evas_resize(win->ee, w, h);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -249,6 +265,7 @@ _elm_win_xwindow_get(Elm_Win *win)
|
|||
static void
|
||||
_elm_win_xwin_update(Elm_Win *win)
|
||||
{
|
||||
#ifdef HAVE_ELEMENTARY_X
|
||||
_elm_win_xwindow_get(win);
|
||||
if (win->parent)
|
||||
{
|
||||
|
@ -281,6 +298,7 @@ _elm_win_xwin_update(Elm_Win *win)
|
|||
if (win->xwin)
|
||||
ecore_x_e_virtual_keyboard_state_set
|
||||
(win->xwin, (Ecore_X_Virtual_Keyboard_State)win->kbdmode);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -367,7 +385,6 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type)
|
|||
break;
|
||||
case ELM_SOFTWARE_FB:
|
||||
win->ee = ecore_evas_fb_new(NULL, 0, 1, 1);
|
||||
ecore_evas_fullscreen_set(win->ee, 1);
|
||||
break;
|
||||
case ELM_SOFTWARE_16_X11:
|
||||
win->ee = ecore_evas_software_x11_16_new(NULL, 0, 0, 0, 1, 1);
|
||||
|
@ -430,13 +447,25 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type)
|
|||
// evas_font_hinting_set(win->evas, EVAS_FONT_HINTING_NONE);
|
||||
// evas_font_hinting_set(win->evas, EVAS_FONT_HINTING_AUTO);
|
||||
// evas_font_hinting_set(win->evas, EVAS_FONT_HINTING_BYTECODE);
|
||||
edje_frametime_set(1.0 / 30.0);
|
||||
edje_frametime_set(1.0 / 60.0);
|
||||
edje_scale_set(_elm_config->scale);
|
||||
|
||||
_elm_win_xwin_update(win);
|
||||
|
||||
_elm_win_list = eina_list_append(_elm_win_list, win->win_obj);
|
||||
|
||||
switch (_elm_config->engine)
|
||||
{
|
||||
case ELM_SOFTWARE_FB:
|
||||
ecore_evas_fullscreen_set(win->ee, 1);
|
||||
break;
|
||||
case ELM_SOFTWARE_X11:
|
||||
case ELM_SOFTWARE_16_X11:
|
||||
case ELM_XRENDER_X11:
|
||||
case ELM_OPENGL_X11:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return win->win_obj;
|
||||
}
|
||||
|
||||
|
@ -545,9 +574,11 @@ elm_win_keyboard_mode_set(Evas_Object *obj, Elm_Win_Keyboard_Mode mode)
|
|||
if (mode == win->kbdmode) return;
|
||||
_elm_win_xwindow_get(win);
|
||||
win->kbdmode = mode;
|
||||
#ifdef HAVE_ELEMENTARY_X
|
||||
if (win->xwin)
|
||||
ecore_x_e_virtual_keyboard_state_set
|
||||
(win->xwin, (Ecore_X_Virtual_Keyboard_State)win->kbdmode);
|
||||
#endif
|
||||
}
|
||||
|
||||
EAPI void
|
||||
|
@ -556,9 +587,11 @@ elm_win_keyboard_win_set(Evas_Object *obj, Evas_Bool is_keyboard)
|
|||
Elm_Win *win = evas_object_data_get(obj, "__Elm");
|
||||
if (!win) return;
|
||||
_elm_win_xwindow_get(win);
|
||||
#ifdef HAVE_ELEMENTARY_X
|
||||
if (win->xwin)
|
||||
ecore_x_e_virtual_keyboard_set
|
||||
(win->xwin, is_keyboard);
|
||||
#endif
|
||||
}
|
||||
|
||||
EAPI Ecore_X_Window
|
||||
|
|
Loading…
Reference in New Issue