summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShibata Makoto <shibata@mac.tec.toyota.co.jp>2013-04-26 20:05:46 +0900
committerShibata Makoto <shibata@mac.tec.toyota.co.jp>2013-04-26 20:20:13 +0900
commitad1baa20e1cb3ab317bc85a27273160a4cb0ca68 (patch)
tree6aa8921456ed875ad427c14ffb1109b5c49586a6
downloadico-uxf-weston-plugin-submit/2.0alpha-wayland/20130426.191944.tar.gz
ico-uxf-weston-plugin-submit/2.0alpha-wayland/20130426.191944.tar.bz2
ico-uxf-weston-plugin-submit/2.0alpha-wayland/20130426.191944.zip
Change-Id: Ia0fbd2457f6bf9868b37287c3dba2b344a8d2e27 Signed-off-by: Shibata Makoto <shibata@mac.tec.toyota.co.jp>
-rw-r--r--COPYING23
-rw-r--r--Makefile.am6
-rwxr-xr-xautogen.sh9
-rw-r--r--configure.ac62
-rw-r--r--packaging/ico-uxf-weston-plugin.changes3
-rw-r--r--packaging/ico-uxf-weston-plugin.spec73
-rw-r--r--protocol/ico_input_mgr.xml120
-rw-r--r--protocol/ico_ivi_shell.xml41
-rw-r--r--protocol/ico_window_mgr.xml91
-rw-r--r--protocol/xxx.xml100
l---------shared1
-rw-r--r--src/.deps/ico_input_mgr-protocol.Plo100
-rw-r--r--src/.deps/ico_input_mgr_la-ico_input_mgr-protocol.Plo101
-rw-r--r--src/.deps/ico_input_mgr_la-ico_input_mgr.Plo299
-rw-r--r--src/.deps/ico_ivi_common_la-config-parser.Plo99
-rw-r--r--src/.deps/ico_ivi_common_la-ico_ivi_common.Plo216
-rw-r--r--src/.deps/ico_ivi_shell-protocol.Plo100
-rw-r--r--src/.deps/ico_ivi_shell_la-config-parser.Plo99
-rw-r--r--src/.deps/ico_ivi_shell_la-ico_ivi_shell-protocol.Plo101
-rw-r--r--src/.deps/ico_ivi_shell_la-ico_ivi_shell.Plo297
-rw-r--r--src/.deps/ico_plugin_loader_la-config-parser.Plo99
-rw-r--r--src/.deps/ico_plugin_loader_la-ico_plugin_loader.Plo218
-rw-r--r--src/.deps/ico_window_mgr-protocol.Plo101
-rw-r--r--src/.deps/ico_window_mgr_la-ico_window_mgr-protocol.Plo101
-rw-r--r--src/.deps/ico_window_mgr_la-ico_window_mgr.Plo335
-rw-r--r--src/Makefile888
-rw-r--r--src/Makefile.am103
-rw-r--r--src/compositor.h841
-rw-r--r--src/config-parser.c187
-rw-r--r--src/config-parser.h73
-rw-r--r--src/ico_input_mgr.c969
-rw-r--r--src/ico_ivi_common.c334
-rw-r--r--src/ico_ivi_common.h123
-rw-r--r--src/ico_ivi_shell.c1907
-rw-r--r--src/ico_ivi_shell.h75
-rw-r--r--src/ico_plugin_loader.c206
-rw-r--r--src/ico_window_mgr.c1614
-rw-r--r--src/ico_window_mgr.h38
-rw-r--r--src/matrix.h64
-rw-r--r--tests/Makefile.am38
-rw-r--r--tests/test-client.c641
-rw-r--r--tests/test-common.c423
-rw-r--r--tests/test-common.h52
-rw-r--r--tests/test-eflapp.c166
-rw-r--r--tests/test-homescreen.c1468
-rw-r--r--tests/test-send_event.c530
-rw-r--r--tests/testdata/cl_surface1.dat17
-rw-r--r--tests/testdata/cl_surface2.dat9
-rw-r--r--tests/testdata/cl_surface3.dat7
-rw-r--r--tests/testdata/hs_alltest.dat342
-rw-r--r--tests/testdata/hs_inputtest.dat129
-rw-r--r--tests/testdata/hs_layer.dat42
-rw-r--r--tests/testdata/hs_resize.dat109
-rw-r--r--tests/testdata/hs_resize_flower.dat25
-rw-r--r--tests/testdata/hs_resize_native.dat16
-rw-r--r--tests/testdata/hs_resize_smoke.dat23
-rw-r--r--tests/testdata/hs_resize_smoke2.dat23
-rw-r--r--tests/testdata/hs_resize_smoke_xm.dat21
-rw-r--r--tests/testdata/hs_resize_smoke_xym.dat25
-rw-r--r--tests/testdata/hs_resize_smoke_ym.dat19
-rw-r--r--tests/testdata/hs_sleep.dat8
-rw-r--r--tests/testlog/event_log.log72
-rw-r--r--tests/testlog/test-client01.log65
-rw-r--r--tests/testlog/test-client02.log70
-rw-r--r--tests/testlog/test-client11.log70
-rw-r--r--tests/testlog/test-client12.log66
-rw-r--r--tests/testlog/test-client13.log66
-rw-r--r--tests/testlog/test-eflapp1.log0
-rw-r--r--tests/testlog/test-eflapp2.log0
-rw-r--r--tests/testlog/test-eflapp3.log0
-rw-r--r--tests/testlog/test-eflapp4.log0
-rw-r--r--tests/testlog/test-eflapp5.log0
-rw-r--r--tests/testlog/test-homescreen.log848
-rw-r--r--tests/testlog/wayland-flower.log4
-rw-r--r--tests/testlog/wayland-smoke.log4
-rw-r--r--tests/testlog/weston.log3403
-rwxr-xr-xtests/weston-plugin-test76
-rwxr-xr-xtests/weston-plugin-test.homescreen42
-rwxr-xr-xtests/weston-plugin-test.input75
-rwxr-xr-xtests/weston-plugin-test.notouch76
-rwxr-xr-xtests/weston-plugin-test.resize76
-rwxr-xr-xtests/weston-plugin-test.resize_flower76
-rwxr-xr-xtests/weston-plugin-test.resize_native76
-rwxr-xr-xtests/weston-plugin-test.resize_smoke80
-rwxr-xr-xtests/weston-plugin-test.resize_smoke276
-rwxr-xr-xtests/weston-plugin-test_gdb75
-rw-r--r--tests/weston.ini25
-rw-r--r--tests/weston_ivi_plugin.ini18
-rw-r--r--weston.ini.ico23
-rw-r--r--weston_ivi_plugin.ini17
90 files changed, 19829 insertions, 0 deletions
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..dba95eb
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,23 @@
+Copyright © 2008-2012 Kristian Høgsberg
+Copyright © 2010-2012 Intel Corporation
+Copyright © 2010-2011 Benjamin Franzke
+Copyright © 2011-2012 Collabora, Ltd.
+Copyright © 2013 TOYOTA MOTOR CORPORATION.
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation, and
+that the name of the copyright holders not be used in advertising or
+publicity pertaining to distribution of the software without specific,
+written prior permission. The copyright holders make no representations
+about the suitability of this software for any purpose. It is provided "as
+is" without express or implied warranty.
+
+THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+OF THIS SOFTWARE.
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..709dae5
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,6 @@
+SUBDIRS = src tests
+
+DIST_SUBDIRS = src tests
+
+DISTCHECK_CONFIGURE_FLAGS = --disable-setuid-install
+
diff --git a/autogen.sh b/autogen.sh
new file mode 100755
index 0000000..916169a
--- /dev/null
+++ b/autogen.sh
@@ -0,0 +1,9 @@
+#! /bin/sh
+
+test -n "$srcdir" || srcdir=`dirname "$0"`
+test -n "$srcdir" || srcdir=.
+(
+ cd "$srcdir" &&
+ autoreconf --force -v --install
+) || exit
+test -n "$NOCONFIGURE" || "$srcdir/configure" "$@"
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..f50ba04
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,62 @@
+AC_PREREQ([2.68])
+AC_INIT([ico-uxf-weston-plugin],
+ [0.4.91],
+ [https://BUG-REPORT-ADDRESS])
+
+AC_CONFIG_HEADERS([config.h])
+
+AM_INIT_AUTOMAKE([1.11 foreign no-dist-gzip dist-xz])
+
+AM_SILENT_RULES([yes])
+
+# Check for programs
+AC_PROG_CC
+AC_PROG_CXX
+AC_PROG_SED
+
+# Initialize libtool
+LT_PREREQ([2.2])
+LT_INIT([disable-static])
+
+PKG_PROG_PKG_CONFIG()
+
+AC_CHECK_FUNC([dlopen], [],
+ AC_CHECK_LIB([dl], [dlopen], DLOPEN_LIBS="-ldl"))
+AC_SUBST(DLOPEN_LIBS)
+
+AC_CHECK_FUNC([aul_app_get_appid_bypid], [],
+ AC_CHECK_LIB([aul], [aul_app_get_appid_bypid], AUL_LIBS="-laul"))
+AC_SUBST(AUL_LIBS)
+
+AC_CHECK_HEADERS([execinfo.h])
+
+AC_CHECK_FUNCS([mkostemp strchrnul])
+
+PKG_CHECK_MODULES(COMPOSITOR,
+ [wayland-server egl >= 7.10 glesv2 xkbcommon pixman-1])
+
+AC_ARG_ENABLE(setuid-install, [ --enable-setuid-install],,
+ enable_setuid_install=yes)
+AM_CONDITIONAL(ENABLE_SETUID_INSTALL, test x$enable_setuid_install = xyes)
+
+COMPOSITOR_LIBS="$COMPOSITOR_LIBS $IMAGE_LIBS"
+COMPOSITOR_CFLAGS="$COMPOSITOR_CFLAGS $IMAGE_CFLAGS"
+
+AM_CONDITIONAL(ENABLE_DESKTOP_SHELL, true)
+
+if test "x$GCC" = "xyes"; then
+ my_common_gcc_flags="-Wall -Wextra -Wno-unused-parameter \
+ -Wno-missing-field-initializers -g -fvisibility=hidden"
+ GCC_CFLAGS="$my_common_gcc_flags \
+ -Wstrict-prototypes -Wmissing-prototypes"
+ GCC_CXXFLAGS="$my_common_gcc_flags"
+fi
+AC_SUBST(GCC_CFLAGS)
+AC_SUBST(GCC_CXXFLAGS)
+
+WAYLAND_SCANNER_RULES(['$(top_srcdir)/protocol'])
+
+AC_CONFIG_FILES([Makefile
+ src/Makefile
+ tests/Makefile])
+AC_OUTPUT
diff --git a/packaging/ico-uxf-weston-plugin.changes b/packaging/ico-uxf-weston-plugin.changes
new file mode 100644
index 0000000..f1ae57f
--- /dev/null
+++ b/packaging/ico-uxf-weston-plugin.changes
@@ -0,0 +1,3 @@
+* Fri Apr 26 2013 Shibata Makoto <shibata@mac.tec.toyota.co.jp> 3224fe9
+- Import initial.
+
diff --git a/packaging/ico-uxf-weston-plugin.spec b/packaging/ico-uxf-weston-plugin.spec
new file mode 100644
index 0000000..05db689
--- /dev/null
+++ b/packaging/ico-uxf-weston-plugin.spec
@@ -0,0 +1,73 @@
+Name: ico-uxf-weston-plugin
+Summary: Weston Plugins for IVI
+Version: 0.5.01
+Release: 1.1
+Group: System/GUI/Libraries
+License: MIT
+URL: ""
+Source0: %{name}-%{version}.tar.bz2
+
+BuildRequires: pkgconfig(wayland-server) >= 1.0
+BuildRequires: pkgconfig(wayland-client) >= 1.0
+BuildRequires: pkgconfig(wayland-egl)
+BuildRequires: pkgconfig(egl)
+BuildRequires: pkgconfig(glesv2)
+BuildRequires: pkgconfig(xkbcommon)
+BuildRequires: pkgconfig(pixman-1)
+BuildRequires: pkgconfig(eina)
+BuildRequires: pkgconfig(evas)
+BuildRequires: pkgconfig(eina)
+BuildRequires: pkgconfig(elementary)
+BuildRequires: pkgconfig(ecore-wayland)
+BuildRequires: aul-devel
+BuildRequires: ecore-devel
+Requires: weston >= 1.0
+
+%description
+Weston Plugins for IVI
+
+%package devel
+Summary: Development files for %{name}
+Group: Development/GUI/Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description devel
+Development files that expose the wayland extended protocols for IVI.
+
+%prep
+%setup -q -n %{name}-%{version}
+
+%build
+autoreconf --install
+
+%autogen --prefix=/usr
+
+%configure
+make %{?_smp_mflags}
+
+%install
+rm -rf %{buildroot}
+%make_install
+
+# configurations
+%define weston_conf /root/.config
+mkdir -p %{buildroot}%{weston_conf}
+install -m 0644 weston.ini.ico %{buildroot}%{weston_conf}
+install -m 0644 weston_ivi_plugin.ini %{buildroot}%{weston_conf}
+
+%files
+%defattr(-,root,root,-)
+%dir %{_libdir}/weston/
+%{_libdir}/weston/*.so
+%{_libdir}/libico-uxf-weston-plugin.so.0.0.5
+%{_libdir}/libico-uxf-weston-plugin.so.0
+%{_libdir}/libico-uxf-weston-plugin.so
+%{weston_conf}/weston.ini.ico
+%{weston_conf}/weston_ivi_plugin.ini
+
+%files devel
+%defattr(-,root,root,-)
+%{_includedir}/%{name}/ico_input_mgr-client-protocol.h
+%{_includedir}/%{name}/ico_ivi_shell-client-protocol.h
+%{_includedir}/%{name}/ico_window_mgr-client-protocol.h
+
diff --git a/protocol/ico_input_mgr.xml b/protocol/ico_input_mgr.xml
new file mode 100644
index 0000000..25df531
--- /dev/null
+++ b/protocol/ico_input_mgr.xml
@@ -0,0 +1,120 @@
+<protocol name="ico_input_mgr">
+
+ <interface name="ico_input_mgr_control" version="1">
+ <description summary="interface for manager(ex.HomeScreen)">
+ Order a correspondence charge account to the application of the input switch
+ to Multi Input Manager from HomeScreen.
+ </description>
+
+ <request name="add_input_app">
+ <description summary="assign input switch to application">
+ Assign input switch to application from HomeScreen.
+ </description>
+ <arg name="appid" type="string" summary="application Id for input switch"/>
+ <arg name="device" type="string" summary="input device name"/>
+ <arg name="input" type="int" summary="input switch number"/>
+ <arg name="fix" type="uint" summary="fixed assign to application"/>
+ </request>
+
+ <request name="del_input_app">
+ <description summary="de-assign input switch to application">
+ De-assign input switch to application from HomeScreen.
+ </description>
+ <arg name="appid" type="string" summary="application Id for input switch, if NULL all applications with out fixed assign"/>
+ <arg name="device" type="string" summary="input device name, if NULL, all devices with out fixed assign"/>
+ <arg name="input" type="int" summary="input switch number, if -1, all input with out dixed assign"/>
+ </request>
+ </interface>
+
+ <interface name="ico_exinput" version="1">
+ <description summary="interface for application">
+ Inform the switch name and number which there is for application,
+ and notify application of ON/OFF of the switch.
+ </description>
+
+ <event name="capabilities">
+ <description summary="event to application for input switch information">
+ Send Input device and switch information to application
+ </description>
+ <arg name="device" type="string" summary="input device name"/>
+ <arg name="type" type="int" summary="input device type (as enum type)"/>
+ <arg name="swname" type="string" summary="input switch name"/>
+ <arg name="input" type="int" summary="input switch number"/>
+ <arg name="codename" type="string" summary="input code name"/>
+ <arg name="code" type="int" summary="input code number"/>
+ </event>
+
+ <event name="code">
+ <description summary="event to application for input code information">
+ Send Input code information to application
+ </description>
+ <arg name="device" type="string" summary="input device name"/>
+ <arg name="input" type="int" summary="input switch number"/>
+ <arg name="codename" type="string" summary="input code name"/>
+ <arg name="code" type="int" summary="input code number"/>
+ </event>
+
+ <event name="input">
+ <description summary="event to application for switch input">
+ Send Input switch event to application
+ </description>
+ <arg name="time" type="uint" summary="input time of miri-sec"/>
+ <arg name="device" type="string" summary="input device name"/>
+ <arg name="input" type="int" summary="input switch number"/>
+ <arg name="code" type="int" summary="input switch code"/>
+ <arg name="state" type="int" summary="Of/Off status"/>
+ </event>
+ </interface>
+
+ <interface name="ico_input_mgr_device" version="1">
+ <description summary="interface for input controller">
+ An input controller informs attribute of the device and ON/OFF of the switch
+ to Multi Input Manager.
+ </description>
+
+ <enum name="type">
+ <description summary="capability bitmask">
+ Input Controller type mask define.
+ </description>
+ <entry name="pointer" value="1" summary="wl_pointer"/>
+ <entry name="keyboard" value="2" summary="wl_keyboard"/>
+ <entry name="touch" value="4" summary="wl_touch"/>
+ <entry name="switch" value="8" summary="exinput switch"/>
+ </enum>
+
+ <request name="configure_input">
+ <description summary="input controller define input switch">
+ Define input switch from Input Controller
+ </description>
+ <arg name="device" type="string" summary="input device name"/>
+ <arg name="type" type="int" summary="input device type (as enum type)"/>
+ <arg name="swname" type="string" summary="input switch name"/>
+ <arg name="input" type="int" summary="input switch number"/>
+ <arg name="codename" type="string" summary="input code name"/>
+ <arg name="code" type="int" summary="input code number"/>
+ </request>
+
+ <request name="configure_code">
+ <description summary="input controller define input code">
+ Define input code from Input Controller
+ </description>
+ <arg name="device" type="string" summary="input device name"/>
+ <arg name="input" type="int" summary="input switch number"/>
+ <arg name="codename" type="string" summary="input code name"/>
+ <arg name="code" type="int" summary="input code number"/>
+ </request>
+
+ <request name="input_event">
+ <description summary="input controller switch input event">
+ Event of switch input from Input Controller
+ </description>
+ <arg name="time" type="uint" summary="input time of day"/>
+ <arg name="device" type="string" summary="input device name"/>
+ <arg name="input" type="int" summary="input switch number"/>
+ <arg name="code" type="int" summary="input switch code"/>
+ <arg name="state" type="int" summary="Of/Off status"/>
+ </request>
+ </interface>
+
+</protocol>
+
diff --git a/protocol/ico_ivi_shell.xml b/protocol/ico_ivi_shell.xml
new file mode 100644
index 0000000..5acafa2
--- /dev/null
+++ b/protocol/ico_ivi_shell.xml
@@ -0,0 +1,41 @@
+<protocol name="ico_ivi_shell">
+
+ <interface name="ico_ivi_shell" version="1">
+ <description summary="create ivi desktop widgets and helpers">
+ In-Vehicle Infortaiment(IVI) interface to define the
+ foundations of typical desktops. Currently it's possible to set up
+ background, panels and locking surfaces.
+ </description>
+
+ <!-- We'll fold most of wl_shell into this interface and then
+ they'll share the configure event. -->
+ <event name="configure">
+ <arg name="edges" type="uint"/>
+ <arg name="surface" type="object" interface="wl_surface"/>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ </event>
+
+ <enum name="cursor">
+ <entry name="none" value="0"/>
+
+ <entry name="resize_top" value="1"/>
+ <entry name="resize_bottom" value="2"/>
+
+ <entry name="arrow" value="3"/>
+
+ <entry name="resize_left" value="4"/>
+ <entry name="resize_top_left" value="5"/>
+ <entry name="resize_bottom_left" value="6"/>
+
+ <entry name="move" value="7"/>
+
+ <entry name="resize_right" value="8"/>
+ <entry name="resize_top_right" value="9"/>
+ <entry name="resize_bottom_right" value="10"/>
+
+ <entry name="busy" value="11"/>
+ </enum>
+ </interface>
+
+</protocol>
diff --git a/protocol/ico_window_mgr.xml b/protocol/ico_window_mgr.xml
new file mode 100644
index 0000000..ea413ab
--- /dev/null
+++ b/protocol/ico_window_mgr.xml
@@ -0,0 +1,91 @@
+<protocol name="ico_window_mgr">
+
+ <interface name="ico_window_mgr" version="1">
+ <description summary="interface for HomeScreen Window Management">
+ for IVI HomeScreen interface.
+ </description>
+
+ <request name="set_user">
+ <arg name="pid" type="int"/>
+ <arg name="appid" type="string"/>
+ </request>
+
+ <request name="set_eventcb">
+ <arg name="eventcb" type="int"/>
+ </request>
+
+ <request name="set_window_layer">
+ <arg name="surfaceid" type="uint"/>
+ <arg name="layer" type="int"/>
+ </request>
+
+ <request name="set_positionsize">
+ <arg name="surfaceid" type="uint"/>
+ <arg name="x" type="int"/>
+ <arg name="y" type="int"/>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ </request>
+
+ <request name="set_visible">
+ <arg name="surfaceid" type="uint"/>
+ <arg name="visible" type="int"/>
+ <arg name="raise" type="int"/>
+ </request>
+
+ <request name="set_transition">
+ <arg name="surfaceid" type="uint"/>
+ <arg name="transition" type="int"/>
+ </request>
+
+ <request name="set_active">
+ <arg name="surfaceid" type="uint"/>
+ </request>
+
+ <request name="set_layer_visible">
+ <arg name="layer" type="int"/>
+ <arg name="visible" type="int"/>
+ </request>
+
+ <event name="window_created">
+ <arg name="surfaceid" type="uint"/>
+ <arg name="pid" type="int"/>
+ <arg name="appid" type="string"/>
+ </event>
+
+ <event name="window_destroyed">
+ <arg name="surfaceid" type="uint"/>
+ </event>
+
+ <event name="window_visible">
+ <arg name="surfaceid" type="uint"/>
+ <arg name="visible" type="int"/>
+ <arg name="raise" type="int"/>
+ <arg name="hint" type="int"/>
+ </event>
+
+ <event name="window_configure">
+ <arg name="surfaceid" type="uint"/>
+ <arg name="appid" type="string"/>
+ <arg name="layer" type="int"/>
+ <arg name="x" type="int"/>
+ <arg name="y" type="int"/>
+ <arg name="width" type="int"/>
+ <arg name="height" type="int"/>
+ <arg name="hint" type="int"/>
+ </event>
+
+ <event name="window_active">
+ <arg name="surfaceid" type="uint"/>
+ <arg name="active" type="uint"/>
+ </event>
+
+ <enum name="active">
+ <entry name="inactive" value="0"/>
+ <entry name="active" value="1"/>
+ <entry name="select" value="2"/>
+ </enum>
+ </interface>
+
+</protocol>
+
diff --git a/protocol/xxx.xml b/protocol/xxx.xml
new file mode 100644
index 0000000..a0e1a4e
--- /dev/null
+++ b/protocol/xxx.xml
@@ -0,0 +1,100 @@
+<protocol name="ico_input_mgr">
+
+ <interface name="ico_input_mgr_control" version="1">
+ <description summary="interface for manager(ex.HomeScreen)">
+ Order a correspondence charge account to the application of the input switch
+ to Multi Input Manager from HomeScreen.
+ </description>
+
+ <request name="add_input_app">
+ <description summary="assign input switch to application">
+ Assign input switch to application from HomeScreen.
+ </description>
+ <arg name="appid" type="string" summary="application Id for input switch"/>
+ <arg name="device" type="string" summary="input device name"/>
+ <arg name="input" type="uint" summary="input switch number"/>
+ </request>
+
+ <request name="del_input_app">
+ <description summary="de-assign input switch to application">
+ De-assign input switch to application from HomeScreen.
+ </description>
+ <arg name="appid" type="string" summary="application Id for input switch"/>
+ <arg name="device" type="string" summary="input device name"/>
+ <arg name="input" type="uint" summary="input switch number"/>
+ </request>
+ </interface>
+
+ <interface name="ico_exinput" version="1">
+ <description summary="interface for application">
+ Inform the switch name and number which there is for application,
+ and notify application of ON/OFF of the switch.
+ </description>
+
+ <request name="set_user">
+ <description summary="set appid for RemoteUI">
+ Set client application Id for RemoteUI
+ (currentry not support RemoteUI)
+ </description>
+ <arg name="appid" type="string" summary="application Id"/>
+ </request>
+
+ <event name="capabilities">
+ <description summary="event to application for input switch information">
+ Send Input device and switch information to application
+ </description>
+ <arg name="device" type="string" summary="input device name"/>
+ <arg name="type" type="int" summary="input device type (as enum type)"/>
+ <arg name="swname" type="string" summary="input switch name"/>
+ <arg name="input" type="uint" summary="input switch number"/>
+ </event>
+
+ <event name="input">
+ <description summary="event to application for switch input">
+ Send Input switch event to application
+ </description>
+ <arg name="time" type="uint" summary="input time of day"/>
+ <arg name="device" type="string" summary="input device name"/>
+ <arg name="input" type="uint" summary="input switch number"/>
+ <arg name="state" type="int" summary="Of/Off status"/>
+ </event>
+ </interface>
+
+ <interface name="ico_input_manager_device" version="1">
+ <description summary="interface for input controller">
+ An input controller informs attribute of the device and ON/OFF of the switch
+ to Multi Input Manager.
+ </description>
+
+ <enum name="type">
+ <description summary="capability bitmask">
+ Input Controller type mask define.
+ </description>
+ <entry name="pointer" value="1" summary="wl_pointer"/>
+ <entry name="keyboard" value="2" summary="wl_keyboard"/>
+ <entry name="touch" value="4" summary="wl_touch"/>
+ <entry name="switch" value="8" summary="exinput switch"/>
+ </enum>
+
+ <request name="configure_input">
+ <description summary="input controller define input switch">
+ Define input switch from Input Controller
+ </description>
+ <arg name="device" type="string" summary="input device name"/>
+ <arg name="type" type="int" summary="input device type (as enum type)"/>
+ <arg name="swname" type="string" summary="input switch name"/>
+ <arg name="input" type="uint" summary="input switch number"/>
+ </request>
+
+ <request name="input_event">
+ <description summary="input controller switch input event">
+ Event of switch input from Input Controller
+ </description>
+ <arg name="time" type="uint" summary="input time of day"/>
+ <arg name="input" type="uint" summary="input switch number"/>
+ <arg name="state" type="int" summary="Of/Off status"/>
+ </request>
+ </interface>
+
+</protocol>
+
diff --git a/shared b/shared
new file mode 120000
index 0000000..e831038
--- /dev/null
+++ b/shared
@@ -0,0 +1 @@
+src \ No newline at end of file
diff --git a/src/.deps/ico_input_mgr-protocol.Plo b/src/.deps/ico_input_mgr-protocol.Plo
new file mode 100644
index 0000000..3e1a43d
--- /dev/null
+++ b/src/.deps/ico_input_mgr-protocol.Plo
@@ -0,0 +1,100 @@
+ico_input_mgr-protocol.lo: ico_input_mgr-protocol.c /usr/include/stdlib.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/sys/types.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdint.h \
+ /usr/include/stdint.h /usr/include/bits/wchar.h \
+ /usr/include/wayland-util.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/inttypes.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-32.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/wayland-util.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/inttypes.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h:
diff --git a/src/.deps/ico_input_mgr_la-ico_input_mgr-protocol.Plo b/src/.deps/ico_input_mgr_la-ico_input_mgr-protocol.Plo
new file mode 100644
index 0000000..db3ee53
--- /dev/null
+++ b/src/.deps/ico_input_mgr_la-ico_input_mgr-protocol.Plo
@@ -0,0 +1,101 @@
+ico_input_mgr_la-ico_input_mgr-protocol.lo: ico_input_mgr-protocol.c \
+ /usr/include/stdlib.h /usr/include/features.h \
+ /usr/include/bits/predefs.h /usr/include/sys/cdefs.h \
+ /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-32.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/sys/types.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdint.h \
+ /usr/include/stdint.h /usr/include/bits/wchar.h \
+ /usr/include/wayland-util.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/inttypes.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-32.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/wayland-util.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/inttypes.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h:
diff --git a/src/.deps/ico_input_mgr_la-ico_input_mgr.Plo b/src/.deps/ico_input_mgr_la-ico_input_mgr.Plo
new file mode 100644
index 0000000..563b72a
--- /dev/null
+++ b/src/.deps/ico_input_mgr_la-ico_input_mgr.Plo
@@ -0,0 +1,299 @@
+ico_input_mgr_la-ico_input_mgr.lo: ico_input_mgr.c /usr/include/stdlib.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/sys/types.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/stdio.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdbool.h \
+ /usr/include/string.h /usr/include/xlocale.h /usr/include/bits/string.h \
+ /usr/include/bits/string2.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h \
+ /usr/include/linux/input.h /usr/include/sys/time.h \
+ /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h \
+ /usr/include/asm/ioctls.h /usr/include/asm-generic/ioctls.h \
+ /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h \
+ /usr/include/asm-generic/ioctl.h /usr/include/bits/ioctl-types.h \
+ /usr/include/sys/ttydefaults.h /usr/include/linux/types.h \
+ /usr/include/asm/types.h /usr/include/asm-generic/types.h \
+ /usr/include/asm-generic/int-ll64.h /usr/include/asm/bitsperlong.h \
+ /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
+ /usr/include/linux/stddef.h /usr/include/asm/posix_types.h \
+ /usr/include/asm/posix_types_32.h /usr/include/asm-generic/posix_types.h \
+ /usr/include/assert.h /usr/include/signal.h /usr/include/bits/signum.h \
+ /usr/include/bits/siginfo.h /usr/include/bits/sigaction.h \
+ /usr/include/bits/sigcontext.h /usr/include/asm/sigcontext.h \
+ /usr/include/bits/sigstack.h /usr/include/sys/ucontext.h \
+ /usr/include/bits/sigthread.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/wayland-server.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdint.h \
+ /usr/include/stdint.h /usr/include/bits/wchar.h \
+ /usr/include/wayland-util.h /usr/include/inttypes.h \
+ /usr/include/wayland-version.h /usr/include/wayland-server-protocol.h \
+ compositor.h /usr/include/pixman-1/pixman.h \
+ /usr/include/pixman-1/pixman-version.h \
+ /usr/include/xkbcommon/xkbcommon.h \
+ /usr/include/xkbcommon/xkbcommon-names.h \
+ /usr/include/xkbcommon/xkbcommon-keysyms.h /usr/include/GLES2/gl2.h \
+ /usr/include/GLES2/gl2platform.h /usr/include/KHR/khrplatform.h \
+ /usr/include/GLES2/gl2ext.h /usr/include/EGL/egl.h \
+ /usr/include/EGL/eglplatform.h /usr/include/X11/Xlib.h \
+ /usr/include/X11/X.h /usr/include/X11/Xfuncproto.h \
+ /usr/include/X11/Xosdefs.h /usr/include/X11/Xutil.h \
+ /usr/include/X11/keysym.h /usr/include/X11/keysymdef.h \
+ /usr/include/EGL/eglext.h /usr/include/EGL/eglmesaext.h matrix.h \
+ config-parser.h ico_ivi_common.h ico_ivi_shell.h ico_window_mgr.h \
+ ico_input_mgr-server-protocol.h /usr/include/wayland-util.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-32.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdbool.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/linux/input.h:
+
+/usr/include/sys/time.h:
+
+/usr/include/sys/ioctl.h:
+
+/usr/include/bits/ioctls.h:
+
+/usr/include/asm/ioctls.h:
+
+/usr/include/asm-generic/ioctls.h:
+
+/usr/include/linux/ioctl.h:
+
+/usr/include/asm/ioctl.h:
+
+/usr/include/asm-generic/ioctl.h:
+
+/usr/include/bits/ioctl-types.h:
+
+/usr/include/sys/ttydefaults.h:
+
+/usr/include/linux/types.h:
+
+/usr/include/asm/types.h:
+
+/usr/include/asm-generic/types.h:
+
+/usr/include/asm-generic/int-ll64.h:
+
+/usr/include/asm/bitsperlong.h:
+
+/usr/include/asm-generic/bitsperlong.h:
+
+/usr/include/linux/posix_types.h:
+
+/usr/include/linux/stddef.h:
+
+/usr/include/asm/posix_types.h:
+
+/usr/include/asm/posix_types_32.h:
+
+/usr/include/asm-generic/posix_types.h:
+
+/usr/include/assert.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/signum.h:
+
+/usr/include/bits/siginfo.h:
+
+/usr/include/bits/sigaction.h:
+
+/usr/include/bits/sigcontext.h:
+
+/usr/include/asm/sigcontext.h:
+
+/usr/include/bits/sigstack.h:
+
+/usr/include/sys/ucontext.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/wayland-server.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/wayland-util.h:
+
+/usr/include/inttypes.h:
+
+/usr/include/wayland-version.h:
+
+/usr/include/wayland-server-protocol.h:
+
+compositor.h:
+
+/usr/include/pixman-1/pixman.h:
+
+/usr/include/pixman-1/pixman-version.h:
+
+/usr/include/xkbcommon/xkbcommon.h:
+
+/usr/include/xkbcommon/xkbcommon-names.h:
+
+/usr/include/xkbcommon/xkbcommon-keysyms.h:
+
+/usr/include/GLES2/gl2.h:
+
+/usr/include/GLES2/gl2platform.h:
+
+/usr/include/KHR/khrplatform.h:
+
+/usr/include/GLES2/gl2ext.h:
+
+/usr/include/EGL/egl.h:
+
+/usr/include/EGL/eglplatform.h:
+
+/usr/include/X11/Xlib.h:
+
+/usr/include/X11/X.h:
+
+/usr/include/X11/Xfuncproto.h:
+
+/usr/include/X11/Xosdefs.h:
+
+/usr/include/X11/Xutil.h:
+
+/usr/include/X11/keysym.h:
+
+/usr/include/X11/keysymdef.h:
+
+/usr/include/EGL/eglext.h:
+
+/usr/include/EGL/eglmesaext.h:
+
+matrix.h:
+
+config-parser.h:
+
+ico_ivi_common.h:
+
+ico_ivi_shell.h:
+
+ico_window_mgr.h:
+
+ico_input_mgr-server-protocol.h:
+
+/usr/include/wayland-util.h:
diff --git a/src/.deps/ico_ivi_common_la-config-parser.Plo b/src/.deps/ico_ivi_common_la-config-parser.Plo
new file mode 100644
index 0000000..eb2a2ef
--- /dev/null
+++ b/src/.deps/ico_ivi_common_la-config-parser.Plo
@@ -0,0 +1,99 @@
+ico_ivi_common_la-config-parser.lo: ../shared/config-parser.c \
+ /usr/include/string.h /usr/include/features.h \
+ /usr/include/bits/predefs.h /usr/include/sys/cdefs.h \
+ /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-32.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h \
+ /usr/include/xlocale.h /usr/include/bits/string.h \
+ /usr/include/bits/string2.h /usr/include/endian.h \
+ /usr/include/bits/endian.h /usr/include/bits/byteswap.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/stdlib.h /usr/include/stdio.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h /usr/include/sys/types.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/assert.h /usr/include/ctype.h \
+ ../shared/config-parser.h
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-32.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/assert.h:
+
+/usr/include/ctype.h:
+
+../shared/config-parser.h:
diff --git a/src/.deps/ico_ivi_common_la-ico_ivi_common.Plo b/src/.deps/ico_ivi_common_la-ico_ivi_common.Plo
new file mode 100644
index 0000000..e150983
--- /dev/null
+++ b/src/.deps/ico_ivi_common_la-ico_ivi_common.Plo
@@ -0,0 +1,216 @@
+ico_ivi_common_la-ico_ivi_common.lo: ico_ivi_common.c \
+ /usr/include/stdlib.h /usr/include/features.h \
+ /usr/include/bits/predefs.h /usr/include/sys/cdefs.h \
+ /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-32.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/time.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/stdio.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdbool.h \
+ /usr/include/string.h /usr/include/bits/string.h \
+ /usr/include/bits/string2.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h /usr/include/dlfcn.h \
+ /usr/include/bits/dlfcn.h compositor.h /usr/include/pixman-1/pixman.h \
+ /usr/include/pixman-1/pixman-version.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdint.h \
+ /usr/include/stdint.h /usr/include/bits/wchar.h \
+ /usr/include/xkbcommon/xkbcommon.h \
+ /usr/include/xkbcommon/xkbcommon-names.h \
+ /usr/include/xkbcommon/xkbcommon-keysyms.h /usr/include/wayland-server.h \
+ /usr/include/wayland-util.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/inttypes.h /usr/include/wayland-version.h \
+ /usr/include/wayland-server-protocol.h /usr/include/GLES2/gl2.h \
+ /usr/include/GLES2/gl2platform.h /usr/include/KHR/khrplatform.h \
+ /usr/include/GLES2/gl2ext.h /usr/include/EGL/egl.h \
+ /usr/include/EGL/eglplatform.h /usr/include/X11/Xlib.h \
+ /usr/include/X11/X.h /usr/include/X11/Xfuncproto.h \
+ /usr/include/X11/Xosdefs.h /usr/include/X11/Xutil.h \
+ /usr/include/X11/keysym.h /usr/include/X11/keysymdef.h \
+ /usr/include/EGL/eglext.h /usr/include/EGL/eglmesaext.h matrix.h \
+ config-parser.h ico_ivi_common.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-32.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdbool.h:
+
+/usr/include/string.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/dlfcn.h:
+
+/usr/include/bits/dlfcn.h:
+
+compositor.h:
+
+/usr/include/pixman-1/pixman.h:
+
+/usr/include/pixman-1/pixman-version.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/xkbcommon/xkbcommon.h:
+
+/usr/include/xkbcommon/xkbcommon-names.h:
+
+/usr/include/xkbcommon/xkbcommon-keysyms.h:
+
+/usr/include/wayland-server.h:
+
+/usr/include/wayland-util.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/inttypes.h:
+
+/usr/include/wayland-version.h:
+
+/usr/include/wayland-server-protocol.h:
+
+/usr/include/GLES2/gl2.h:
+
+/usr/include/GLES2/gl2platform.h:
+
+/usr/include/KHR/khrplatform.h:
+
+/usr/include/GLES2/gl2ext.h:
+
+/usr/include/EGL/egl.h:
+
+/usr/include/EGL/eglplatform.h:
+
+/usr/include/X11/Xlib.h:
+
+/usr/include/X11/X.h:
+
+/usr/include/X11/Xfuncproto.h:
+
+/usr/include/X11/Xosdefs.h:
+
+/usr/include/X11/Xutil.h:
+
+/usr/include/X11/keysym.h:
+
+/usr/include/X11/keysymdef.h:
+
+/usr/include/EGL/eglext.h:
+
+/usr/include/EGL/eglmesaext.h:
+
+matrix.h:
+
+config-parser.h:
+
+ico_ivi_common.h:
diff --git a/src/.deps/ico_ivi_shell-protocol.Plo b/src/.deps/ico_ivi_shell-protocol.Plo
new file mode 100644
index 0000000..3a201d3
--- /dev/null
+++ b/src/.deps/ico_ivi_shell-protocol.Plo
@@ -0,0 +1,100 @@
+ico_ivi_shell-protocol.lo: ico_ivi_shell-protocol.c /usr/include/stdlib.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/sys/types.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdint.h \
+ /usr/include/stdint.h /usr/include/bits/wchar.h \
+ /usr/include/wayland-util.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/inttypes.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-32.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/wayland-util.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/inttypes.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h:
diff --git a/src/.deps/ico_ivi_shell_la-config-parser.Plo b/src/.deps/ico_ivi_shell_la-config-parser.Plo
new file mode 100644
index 0000000..e9d2044
--- /dev/null
+++ b/src/.deps/ico_ivi_shell_la-config-parser.Plo
@@ -0,0 +1,99 @@
+ico_ivi_shell_la-config-parser.lo: ../shared/config-parser.c \
+ /usr/include/string.h /usr/include/features.h \
+ /usr/include/bits/predefs.h /usr/include/sys/cdefs.h \
+ /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-32.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h \
+ /usr/include/xlocale.h /usr/include/bits/string.h \
+ /usr/include/bits/string2.h /usr/include/endian.h \
+ /usr/include/bits/endian.h /usr/include/bits/byteswap.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/stdlib.h /usr/include/stdio.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h /usr/include/sys/types.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/assert.h /usr/include/ctype.h \
+ ../shared/config-parser.h
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-32.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/assert.h:
+
+/usr/include/ctype.h:
+
+../shared/config-parser.h:
diff --git a/src/.deps/ico_ivi_shell_la-ico_ivi_shell-protocol.Plo b/src/.deps/ico_ivi_shell_la-ico_ivi_shell-protocol.Plo
new file mode 100644
index 0000000..5e31b84
--- /dev/null
+++ b/src/.deps/ico_ivi_shell_la-ico_ivi_shell-protocol.Plo
@@ -0,0 +1,101 @@
+ico_ivi_shell_la-ico_ivi_shell-protocol.lo: ico_ivi_shell-protocol.c \
+ /usr/include/stdlib.h /usr/include/features.h \
+ /usr/include/bits/predefs.h /usr/include/sys/cdefs.h \
+ /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-32.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/sys/types.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdint.h \
+ /usr/include/stdint.h /usr/include/bits/wchar.h \
+ /usr/include/wayland-util.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/inttypes.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-32.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/wayland-util.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/inttypes.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h:
diff --git a/src/.deps/ico_ivi_shell_la-ico_ivi_shell.Plo b/src/.deps/ico_ivi_shell_la-ico_ivi_shell.Plo
new file mode 100644
index 0000000..4ce3c69
--- /dev/null
+++ b/src/.deps/ico_ivi_shell_la-ico_ivi_shell.Plo
@@ -0,0 +1,297 @@
+ico_ivi_shell_la-ico_ivi_shell.lo: ico_ivi_shell.c /usr/include/stdlib.h \
+ /usr/include/features.h /usr/include/bits/predefs.h \
+ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+ /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/sys/types.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/stdio.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdbool.h \
+ /usr/include/string.h /usr/include/xlocale.h /usr/include/bits/string.h \
+ /usr/include/bits/string2.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h \
+ /usr/include/linux/input.h /usr/include/sys/time.h \
+ /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h \
+ /usr/include/asm/ioctls.h /usr/include/asm-generic/ioctls.h \
+ /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h \
+ /usr/include/asm-generic/ioctl.h /usr/include/bits/ioctl-types.h \
+ /usr/include/sys/ttydefaults.h /usr/include/linux/types.h \
+ /usr/include/asm/types.h /usr/include/asm-generic/types.h \
+ /usr/include/asm-generic/int-ll64.h /usr/include/asm/bitsperlong.h \
+ /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
+ /usr/include/linux/stddef.h /usr/include/asm/posix_types.h \
+ /usr/include/asm/posix_types_32.h /usr/include/asm-generic/posix_types.h \
+ /usr/include/assert.h /usr/include/signal.h /usr/include/bits/signum.h \
+ /usr/include/bits/siginfo.h /usr/include/bits/sigaction.h \
+ /usr/include/bits/sigcontext.h /usr/include/asm/sigcontext.h \
+ /usr/include/bits/sigstack.h /usr/include/sys/ucontext.h \
+ /usr/include/bits/sigthread.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/wayland-server.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdint.h \
+ /usr/include/stdint.h /usr/include/bits/wchar.h \
+ /usr/include/wayland-util.h /usr/include/inttypes.h \
+ /usr/include/wayland-version.h /usr/include/wayland-server-protocol.h \
+ compositor.h /usr/include/pixman-1/pixman.h \
+ /usr/include/pixman-1/pixman-version.h \
+ /usr/include/xkbcommon/xkbcommon.h \
+ /usr/include/xkbcommon/xkbcommon-names.h \
+ /usr/include/xkbcommon/xkbcommon-keysyms.h /usr/include/GLES2/gl2.h \
+ /usr/include/GLES2/gl2platform.h /usr/include/KHR/khrplatform.h \
+ /usr/include/GLES2/gl2ext.h /usr/include/EGL/egl.h \
+ /usr/include/EGL/eglplatform.h /usr/include/X11/Xlib.h \
+ /usr/include/X11/X.h /usr/include/X11/Xfuncproto.h \
+ /usr/include/X11/Xosdefs.h /usr/include/X11/Xutil.h \
+ /usr/include/X11/keysym.h /usr/include/X11/keysymdef.h \
+ /usr/include/EGL/eglext.h /usr/include/EGL/eglmesaext.h matrix.h \
+ config-parser.h ico_ivi_common.h ico_ivi_shell.h \
+ ico_ivi_shell-server-protocol.h /usr/include/wayland-util.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-32.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdbool.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/linux/input.h:
+
+/usr/include/sys/time.h:
+
+/usr/include/sys/ioctl.h:
+
+/usr/include/bits/ioctls.h:
+
+/usr/include/asm/ioctls.h:
+
+/usr/include/asm-generic/ioctls.h:
+
+/usr/include/linux/ioctl.h:
+
+/usr/include/asm/ioctl.h:
+
+/usr/include/asm-generic/ioctl.h:
+
+/usr/include/bits/ioctl-types.h:
+
+/usr/include/sys/ttydefaults.h:
+
+/usr/include/linux/types.h:
+
+/usr/include/asm/types.h:
+
+/usr/include/asm-generic/types.h:
+
+/usr/include/asm-generic/int-ll64.h:
+
+/usr/include/asm/bitsperlong.h:
+
+/usr/include/asm-generic/bitsperlong.h:
+
+/usr/include/linux/posix_types.h:
+
+/usr/include/linux/stddef.h:
+
+/usr/include/asm/posix_types.h:
+
+/usr/include/asm/posix_types_32.h:
+
+/usr/include/asm-generic/posix_types.h:
+
+/usr/include/assert.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/signum.h:
+
+/usr/include/bits/siginfo.h:
+
+/usr/include/bits/sigaction.h:
+
+/usr/include/bits/sigcontext.h:
+
+/usr/include/asm/sigcontext.h:
+
+/usr/include/bits/sigstack.h:
+
+/usr/include/sys/ucontext.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/wayland-server.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/wayland-util.h:
+
+/usr/include/inttypes.h:
+
+/usr/include/wayland-version.h:
+
+/usr/include/wayland-server-protocol.h:
+
+compositor.h:
+
+/usr/include/pixman-1/pixman.h:
+
+/usr/include/pixman-1/pixman-version.h:
+
+/usr/include/xkbcommon/xkbcommon.h:
+
+/usr/include/xkbcommon/xkbcommon-names.h:
+
+/usr/include/xkbcommon/xkbcommon-keysyms.h:
+
+/usr/include/GLES2/gl2.h:
+
+/usr/include/GLES2/gl2platform.h:
+
+/usr/include/KHR/khrplatform.h:
+
+/usr/include/GLES2/gl2ext.h:
+
+/usr/include/EGL/egl.h:
+
+/usr/include/EGL/eglplatform.h:
+
+/usr/include/X11/Xlib.h:
+
+/usr/include/X11/X.h:
+
+/usr/include/X11/Xfuncproto.h:
+
+/usr/include/X11/Xosdefs.h:
+
+/usr/include/X11/Xutil.h:
+
+/usr/include/X11/keysym.h:
+
+/usr/include/X11/keysymdef.h:
+
+/usr/include/EGL/eglext.h:
+
+/usr/include/EGL/eglmesaext.h:
+
+matrix.h:
+
+config-parser.h:
+
+ico_ivi_common.h:
+
+ico_ivi_shell.h:
+
+ico_ivi_shell-server-protocol.h:
+
+/usr/include/wayland-util.h:
diff --git a/src/.deps/ico_plugin_loader_la-config-parser.Plo b/src/.deps/ico_plugin_loader_la-config-parser.Plo
new file mode 100644
index 0000000..caff5f8
--- /dev/null
+++ b/src/.deps/ico_plugin_loader_la-config-parser.Plo
@@ -0,0 +1,99 @@
+ico_plugin_loader_la-config-parser.lo: ../shared/config-parser.c \
+ /usr/include/string.h /usr/include/features.h \
+ /usr/include/bits/predefs.h /usr/include/sys/cdefs.h \
+ /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-32.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h \
+ /usr/include/xlocale.h /usr/include/bits/string.h \
+ /usr/include/bits/string2.h /usr/include/endian.h \
+ /usr/include/bits/endian.h /usr/include/bits/byteswap.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/stdlib.h /usr/include/stdio.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h /usr/include/bits/waitflags.h \
+ /usr/include/bits/waitstatus.h /usr/include/sys/types.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/assert.h /usr/include/ctype.h \
+ ../shared/config-parser.h
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-32.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/assert.h:
+
+/usr/include/ctype.h:
+
+../shared/config-parser.h:
diff --git a/src/.deps/ico_plugin_loader_la-ico_plugin_loader.Plo b/src/.deps/ico_plugin_loader_la-ico_plugin_loader.Plo
new file mode 100644
index 0000000..cc11ee5
--- /dev/null
+++ b/src/.deps/ico_plugin_loader_la-ico_plugin_loader.Plo
@@ -0,0 +1,218 @@
+ico_plugin_loader_la-ico_plugin_loader.lo: ico_plugin_loader.c \
+ /usr/include/stdlib.h /usr/include/features.h \
+ /usr/include/bits/predefs.h /usr/include/sys/cdefs.h \
+ /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-32.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/time.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/stdio.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdbool.h \
+ /usr/include/string.h /usr/include/bits/string.h \
+ /usr/include/bits/string2.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h /usr/include/dlfcn.h \
+ /usr/include/bits/dlfcn.h /usr/include/sys/time.h compositor.h \
+ /usr/include/pixman-1/pixman.h /usr/include/pixman-1/pixman-version.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdint.h \
+ /usr/include/stdint.h /usr/include/bits/wchar.h \
+ /usr/include/xkbcommon/xkbcommon.h \
+ /usr/include/xkbcommon/xkbcommon-names.h \
+ /usr/include/xkbcommon/xkbcommon-keysyms.h /usr/include/wayland-server.h \
+ /usr/include/wayland-util.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/inttypes.h /usr/include/wayland-version.h \
+ /usr/include/wayland-server-protocol.h /usr/include/GLES2/gl2.h \
+ /usr/include/GLES2/gl2platform.h /usr/include/KHR/khrplatform.h \
+ /usr/include/GLES2/gl2ext.h /usr/include/EGL/egl.h \
+ /usr/include/EGL/eglplatform.h /usr/include/X11/Xlib.h \
+ /usr/include/X11/X.h /usr/include/X11/Xfuncproto.h \
+ /usr/include/X11/Xosdefs.h /usr/include/X11/Xutil.h \
+ /usr/include/X11/keysym.h /usr/include/X11/keysymdef.h \
+ /usr/include/EGL/eglext.h /usr/include/EGL/eglmesaext.h matrix.h \
+ config-parser.h ico_ivi_common.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-32.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdbool.h:
+
+/usr/include/string.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/dlfcn.h:
+
+/usr/include/bits/dlfcn.h:
+
+/usr/include/sys/time.h:
+
+compositor.h:
+
+/usr/include/pixman-1/pixman.h:
+
+/usr/include/pixman-1/pixman-version.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/xkbcommon/xkbcommon.h:
+
+/usr/include/xkbcommon/xkbcommon-names.h:
+
+/usr/include/xkbcommon/xkbcommon-keysyms.h:
+
+/usr/include/wayland-server.h:
+
+/usr/include/wayland-util.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/inttypes.h:
+
+/usr/include/wayland-version.h:
+
+/usr/include/wayland-server-protocol.h:
+
+/usr/include/GLES2/gl2.h:
+
+/usr/include/GLES2/gl2platform.h:
+
+/usr/include/KHR/khrplatform.h:
+
+/usr/include/GLES2/gl2ext.h:
+
+/usr/include/EGL/egl.h:
+
+/usr/include/EGL/eglplatform.h:
+
+/usr/include/X11/Xlib.h:
+
+/usr/include/X11/X.h:
+
+/usr/include/X11/Xfuncproto.h:
+
+/usr/include/X11/Xosdefs.h:
+
+/usr/include/X11/Xutil.h:
+
+/usr/include/X11/keysym.h:
+
+/usr/include/X11/keysymdef.h:
+
+/usr/include/EGL/eglext.h:
+
+/usr/include/EGL/eglmesaext.h:
+
+matrix.h:
+
+config-parser.h:
+
+ico_ivi_common.h:
diff --git a/src/.deps/ico_window_mgr-protocol.Plo b/src/.deps/ico_window_mgr-protocol.Plo
new file mode 100644
index 0000000..0efa35f
--- /dev/null
+++ b/src/.deps/ico_window_mgr-protocol.Plo
@@ -0,0 +1,101 @@
+ico_window_mgr-protocol.lo: ico_window_mgr-protocol.c \
+ /usr/include/stdlib.h /usr/include/features.h \
+ /usr/include/bits/predefs.h /usr/include/sys/cdefs.h \
+ /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-32.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/sys/types.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdint.h \
+ /usr/include/stdint.h /usr/include/bits/wchar.h \
+ /usr/include/wayland-util.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/inttypes.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-32.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/wayland-util.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/inttypes.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h:
diff --git a/src/.deps/ico_window_mgr_la-ico_window_mgr-protocol.Plo b/src/.deps/ico_window_mgr_la-ico_window_mgr-protocol.Plo
new file mode 100644
index 0000000..09edb45
--- /dev/null
+++ b/src/.deps/ico_window_mgr_la-ico_window_mgr-protocol.Plo
@@ -0,0 +1,101 @@
+ico_window_mgr_la-ico_window_mgr-protocol.lo: ico_window_mgr-protocol.c \
+ /usr/include/stdlib.h /usr/include/features.h \
+ /usr/include/bits/predefs.h /usr/include/sys/cdefs.h \
+ /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-32.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/sys/types.h \
+ /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+ /usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdint.h \
+ /usr/include/stdint.h /usr/include/bits/wchar.h \
+ /usr/include/wayland-util.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/inttypes.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-32.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/wayland-util.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/inttypes.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h:
diff --git a/src/.deps/ico_window_mgr_la-ico_window_mgr.Plo b/src/.deps/ico_window_mgr_la-ico_window_mgr.Plo
new file mode 100644
index 0000000..7a23249
--- /dev/null
+++ b/src/.deps/ico_window_mgr_la-ico_window_mgr.Plo
@@ -0,0 +1,335 @@
+ico_window_mgr_la-ico_window_mgr.lo: ico_window_mgr.c \
+ /usr/include/stdlib.h /usr/include/features.h \
+ /usr/include/bits/predefs.h /usr/include/sys/cdefs.h \
+ /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
+ /usr/include/gnu/stubs-32.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h \
+ /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
+ /usr/include/endian.h /usr/include/bits/endian.h \
+ /usr/include/bits/byteswap.h /usr/include/xlocale.h \
+ /usr/include/sys/types.h /usr/include/bits/types.h \
+ /usr/include/bits/typesizes.h /usr/include/time.h \
+ /usr/include/sys/select.h /usr/include/bits/select.h \
+ /usr/include/bits/sigset.h /usr/include/bits/time.h \
+ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+ /usr/include/alloca.h /usr/include/stdio.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/wchar.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h \
+ /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdio.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdbool.h \
+ /usr/include/string.h /usr/include/bits/string.h \
+ /usr/include/bits/string2.h /usr/include/unistd.h \
+ /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+ /usr/include/bits/confname.h /usr/include/getopt.h \
+ /usr/include/linux/input.h /usr/include/sys/time.h \
+ /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h \
+ /usr/include/asm/ioctls.h /usr/include/asm-generic/ioctls.h \
+ /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h \
+ /usr/include/asm-generic/ioctl.h /usr/include/bits/ioctl-types.h \
+ /usr/include/sys/ttydefaults.h /usr/include/linux/types.h \
+ /usr/include/asm/types.h /usr/include/asm-generic/types.h \
+ /usr/include/asm-generic/int-ll64.h /usr/include/asm/bitsperlong.h \
+ /usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
+ /usr/include/linux/stddef.h /usr/include/asm/posix_types.h \
+ /usr/include/asm/posix_types_32.h /usr/include/asm-generic/posix_types.h \
+ /usr/include/assert.h /usr/include/signal.h /usr/include/bits/signum.h \
+ /usr/include/bits/siginfo.h /usr/include/bits/sigaction.h \
+ /usr/include/bits/sigcontext.h /usr/include/asm/sigcontext.h \
+ /usr/include/bits/sigstack.h /usr/include/sys/ucontext.h \
+ /usr/include/bits/sigthread.h /usr/include/math.h \
+ /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h \
+ /usr/include/bits/huge_vall.h /usr/include/bits/inf.h \
+ /usr/include/bits/nan.h /usr/include/bits/mathdef.h \
+ /usr/include/bits/mathcalls.h /usr/include/bits/mathinline.h \
+ /usr/include/sys/stat.h /usr/include/bits/stat.h /usr/include/fcntl.h \
+ /usr/include/bits/fcntl.h /usr/include/bits/uio.h \
+ /usr/include/wayland-server.h \
+ /usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdint.h \
+ /usr/include/stdint.h /usr/include/bits/wchar.h \
+ /usr/include/wayland-util.h /usr/include/inttypes.h \
+ /usr/include/wayland-version.h /usr/include/wayland-server-protocol.h \
+ /usr/include/aul/aul.h /usr/include/errno.h /usr/include/bits/errno.h \
+ /usr/include/linux/errno.h /usr/include/asm/errno.h \
+ /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
+ /usr/include/bundle.h compositor.h /usr/include/pixman-1/pixman.h \
+ /usr/include/pixman-1/pixman-version.h \
+ /usr/include/xkbcommon/xkbcommon.h \
+ /usr/include/xkbcommon/xkbcommon-names.h \
+ /usr/include/xkbcommon/xkbcommon-keysyms.h /usr/include/GLES2/gl2.h \
+ /usr/include/GLES2/gl2platform.h /usr/include/KHR/khrplatform.h \
+ /usr/include/GLES2/gl2ext.h /usr/include/EGL/egl.h \
+ /usr/include/EGL/eglplatform.h /usr/include/X11/Xlib.h \
+ /usr/include/X11/X.h /usr/include/X11/Xfuncproto.h \
+ /usr/include/X11/Xosdefs.h /usr/include/X11/Xutil.h \
+ /usr/include/X11/keysym.h /usr/include/X11/keysymdef.h \
+ /usr/include/EGL/eglext.h /usr/include/EGL/eglmesaext.h matrix.h \
+ config-parser.h ico_ivi_common.h ico_ivi_shell.h ico_window_mgr.h \
+ ico_ivi_shell-server-protocol.h /usr/include/wayland-util.h \
+ ico_window_mgr-server-protocol.h
+
+/usr/include/stdlib.h:
+
+/usr/include/features.h:
+
+/usr/include/bits/predefs.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-32.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stddef.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/bits/byteswap.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdbool.h:
+
+/usr/include/string.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/linux/input.h:
+
+/usr/include/sys/time.h:
+
+/usr/include/sys/ioctl.h:
+
+/usr/include/bits/ioctls.h:
+
+/usr/include/asm/ioctls.h:
+
+/usr/include/asm-generic/ioctls.h:
+
+/usr/include/linux/ioctl.h:
+
+/usr/include/asm/ioctl.h:
+
+/usr/include/asm-generic/ioctl.h:
+
+/usr/include/bits/ioctl-types.h:
+
+/usr/include/sys/ttydefaults.h:
+
+/usr/include/linux/types.h:
+
+/usr/include/asm/types.h:
+
+/usr/include/asm-generic/types.h:
+
+/usr/include/asm-generic/int-ll64.h:
+
+/usr/include/asm/bitsperlong.h:
+
+/usr/include/asm-generic/bitsperlong.h:
+
+/usr/include/linux/posix_types.h:
+
+/usr/include/linux/stddef.h:
+
+/usr/include/asm/posix_types.h:
+
+/usr/include/asm/posix_types_32.h:
+
+/usr/include/asm-generic/posix_types.h:
+
+/usr/include/assert.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/signum.h:
+
+/usr/include/bits/siginfo.h:
+
+/usr/include/bits/sigaction.h:
+
+/usr/include/bits/sigcontext.h:
+
+/usr/include/asm/sigcontext.h:
+
+/usr/include/bits/sigstack.h:
+
+/usr/include/sys/ucontext.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/math.h:
+
+/usr/include/bits/huge_val.h:
+
+/usr/include/bits/huge_valf.h:
+
+/usr/include/bits/huge_vall.h:
+
+/usr/include/bits/inf.h:
+
+/usr/include/bits/nan.h:
+
+/usr/include/bits/mathdef.h:
+
+/usr/include/bits/mathcalls.h:
+
+/usr/include/bits/mathinline.h:
+
+/usr/include/sys/stat.h:
+
+/usr/include/bits/stat.h:
+
+/usr/include/fcntl.h:
+
+/usr/include/bits/fcntl.h:
+
+/usr/include/bits/uio.h:
+
+/usr/include/wayland-server.h:
+
+/usr/lib/gcc/i586-tizen-linux/4.5.3/include/stdint.h:
+
+/usr/include/stdint.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/wayland-util.h:
+
+/usr/include/inttypes.h:
+
+/usr/include/wayland-version.h:
+
+/usr/include/wayland-server-protocol.h:
+
+/usr/include/aul/aul.h:
+
+/usr/include/errno.h:
+
+/usr/include/bits/errno.h:
+
+/usr/include/linux/errno.h:
+
+/usr/include/asm/errno.h:
+
+/usr/include/asm-generic/errno.h:
+
+/usr/include/asm-generic/errno-base.h:
+
+/usr/include/bundle.h:
+
+compositor.h:
+
+/usr/include/pixman-1/pixman.h:
+
+/usr/include/pixman-1/pixman-version.h:
+
+/usr/include/xkbcommon/xkbcommon.h:
+
+/usr/include/xkbcommon/xkbcommon-names.h:
+
+/usr/include/xkbcommon/xkbcommon-keysyms.h:
+
+/usr/include/GLES2/gl2.h:
+
+/usr/include/GLES2/gl2platform.h:
+
+/usr/include/KHR/khrplatform.h:
+
+/usr/include/GLES2/gl2ext.h:
+
+/usr/include/EGL/egl.h:
+
+/usr/include/EGL/eglplatform.h:
+
+/usr/include/X11/Xlib.h:
+
+/usr/include/X11/X.h:
+
+/usr/include/X11/Xfuncproto.h:
+
+/usr/include/X11/Xosdefs.h:
+
+/usr/include/X11/Xutil.h:
+
+/usr/include/X11/keysym.h:
+
+/usr/include/X11/keysymdef.h:
+
+/usr/include/EGL/eglext.h:
+
+/usr/include/EGL/eglmesaext.h:
+
+matrix.h:
+
+config-parser.h:
+
+ico_ivi_common.h:
+
+ico_ivi_shell.h:
+
+ico_window_mgr.h:
+
+ico_ivi_shell-server-protocol.h:
+
+/usr/include/wayland-util.h:
+
+ico_window_mgr-server-protocol.h:
diff --git a/src/Makefile b/src/Makefile
new file mode 100644
index 0000000..49d47c7
--- /dev/null
+++ b/src/Makefile
@@ -0,0 +1,888 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# src/Makefile. Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+
+
+pkgdatadir = $(datadir)/ico-uxf-weston-plugin
+pkgincludedir = $(includedir)/ico-uxf-weston-plugin
+pkglibdir = $(libdir)/ico-uxf-weston-plugin
+pkglibexecdir = $(libexecdir)/ico-uxf-weston-plugin
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = i686-pc-linux-gnu
+host_triplet = i686-pc-linux-gnu
+subdir = src
+DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(moduledir)" \
+ "$(DESTDIR)$(includedir)"
+LTLIBRARIES = $(lib_LTLIBRARIES) $(module_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+ico_input_mgr_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_ico_input_mgr_la_OBJECTS = ico_input_mgr_la-ico_input_mgr.lo \
+ ico_input_mgr_la-ico_input_mgr-protocol.lo
+ico_input_mgr_la_OBJECTS = $(am_ico_input_mgr_la_OBJECTS)
+AM_V_lt = $(am__v_lt_$(V))
+am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+am__v_lt_0 = --silent
+ico_input_mgr_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(ico_input_mgr_la_CFLAGS) $(CFLAGS) \
+ $(ico_input_mgr_la_LDFLAGS) $(LDFLAGS) -o $@
+ico_ivi_common_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_ico_ivi_common_la_OBJECTS = ico_ivi_common_la-ico_ivi_common.lo \
+ ico_ivi_common_la-config-parser.lo
+ico_ivi_common_la_OBJECTS = $(am_ico_ivi_common_la_OBJECTS)
+ico_ivi_common_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(ico_ivi_common_la_CFLAGS) $(CFLAGS) \
+ $(ico_ivi_common_la_LDFLAGS) $(LDFLAGS) -o $@
+ico_ivi_shell_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_ico_ivi_shell_la_OBJECTS = ico_ivi_shell_la-ico_ivi_shell.lo \
+ ico_ivi_shell_la-config-parser.lo \
+ ico_ivi_shell_la-ico_ivi_shell-protocol.lo
+ico_ivi_shell_la_OBJECTS = $(am_ico_ivi_shell_la_OBJECTS)
+ico_ivi_shell_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(ico_ivi_shell_la_CFLAGS) $(CFLAGS) \
+ $(ico_ivi_shell_la_LDFLAGS) $(LDFLAGS) -o $@
+ico_plugin_loader_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_ico_plugin_loader_la_OBJECTS = \
+ ico_plugin_loader_la-ico_plugin_loader.lo \
+ ico_plugin_loader_la-config-parser.lo
+ico_plugin_loader_la_OBJECTS = $(am_ico_plugin_loader_la_OBJECTS)
+ico_plugin_loader_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(ico_plugin_loader_la_CFLAGS) $(CFLAGS) \
+ $(ico_plugin_loader_la_LDFLAGS) $(LDFLAGS) -o $@
+ico_window_mgr_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+am_ico_window_mgr_la_OBJECTS = ico_window_mgr_la-ico_window_mgr.lo \
+ ico_window_mgr_la-ico_window_mgr-protocol.lo
+ico_window_mgr_la_OBJECTS = $(am_ico_window_mgr_la_OBJECTS)
+ico_window_mgr_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(ico_window_mgr_la_CFLAGS) $(CFLAGS) \
+ $(ico_window_mgr_la_LDFLAGS) $(LDFLAGS) -o $@
+libico_uxf_weston_plugin_la_DEPENDENCIES =
+am_libico_uxf_weston_plugin_la_OBJECTS = ico_ivi_shell-protocol.lo \
+ ico_window_mgr-protocol.lo ico_input_mgr-protocol.lo
+libico_uxf_weston_plugin_la_OBJECTS = \
+ $(am_libico_uxf_weston_plugin_la_OBJECTS)
+libico_uxf_weston_plugin_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(libico_uxf_weston_plugin_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I. -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_$(V))
+am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+am__v_CC_0 = @echo " CC " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_$(V))
+am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_CCLD_0 = @echo " CCLD " $@;
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+SOURCES = $(ico_input_mgr_la_SOURCES) $(ico_ivi_common_la_SOURCES) \
+ $(ico_ivi_shell_la_SOURCES) $(ico_plugin_loader_la_SOURCES) \
+ $(ico_window_mgr_la_SOURCES) \
+ $(libico_uxf_weston_plugin_la_SOURCES)
+DIST_SOURCES = $(ico_input_mgr_la_SOURCES) \
+ $(ico_ivi_common_la_SOURCES) $(ico_ivi_shell_la_SOURCES) \
+ $(ico_plugin_loader_la_SOURCES) $(ico_window_mgr_la_SOURCES) \
+ $(libico_uxf_weston_plugin_la_SOURCES)
+HEADERS = $(include_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/tizen/takeo/ico-uxf-weston-plugin-0.5.01/missing --run aclocal-1.11
+AMTAR = ${SHELL} /home/tizen/takeo/ico-uxf-weston-plugin-0.5.01/missing --run tar
+AM_DEFAULT_VERBOSITY = 0
+AR = ar
+AUL_LIBS = -laul
+AUTOCONF = ${SHELL} /home/tizen/takeo/ico-uxf-weston-plugin-0.5.01/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/tizen/takeo/ico-uxf-weston-plugin-0.5.01/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/tizen/takeo/ico-uxf-weston-plugin-0.5.01/missing --run automake-1.11
+AWK = gawk
+CC = gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -g -O2
+COMPOSITOR_CFLAGS = -I/usr/include/libdrm -I/usr/include/pixman-1
+COMPOSITOR_LIBS = -lwayland-server -lEGL -lGLESv2 -lxkbcommon -lpixman-1
+CPP = gcc -E
+CPPFLAGS =
+CXX = g++
+CXXCPP = g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DLOPEN_LIBS = -ldl
+DSYMUTIL =
+DUMPBIN =
+ECHO_C =
+ECHO_N = -n
+ECHO_T =
+EGREP = /bin/grep -E
+EXEEXT =
+FGREP = /bin/grep -F
+GCC_CFLAGS = -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -g -fvisibility=hidden -Wstrict-prototypes -Wmissing-prototypes
+GCC_CXXFLAGS = -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -g -fvisibility=hidden
+GREP = /bin/grep
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+LD = /usr/bin/ld
+LDFLAGS =
+LIBOBJS =
+LIBS =
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIPO =
+LN_S = ln -s
+LTLIBOBJS =
+MAKEINFO = ${SHELL} /home/tizen/takeo/ico-uxf-weston-plugin-0.5.01/missing --run makeinfo
+MKDIR_P = /bin/mkdir -p
+NM = /usr/bin/nm -B
+NMEDIT =
+OBJDUMP = objdump
+OBJEXT = o
+OTOOL =
+OTOOL64 =
+PACKAGE = ico-uxf-weston-plugin
+PACKAGE_BUGREPORT = https://BUG-REPORT-ADDRESS
+PACKAGE_NAME = ico-uxf-weston-plugin
+PACKAGE_STRING = ico-uxf-weston-plugin 0.4.91
+PACKAGE_TARNAME = ico-uxf-weston-plugin
+PACKAGE_URL =
+PACKAGE_VERSION = 0.4.91
+PATH_SEPARATOR = :
+PKG_CONFIG = /usr/bin/pkg-config
+PKG_CONFIG_LIBDIR =
+PKG_CONFIG_PATH =
+RANLIB = ranlib
+SED = /bin/sed
+SET_MAKE =
+SHELL = /bin/sh
+STRIP = strip
+VERSION = 0.4.91
+abs_builddir = /home/tizen/takeo/ico-uxf-weston-plugin-0.5.01/src
+abs_srcdir = /home/tizen/takeo/ico-uxf-weston-plugin-0.5.01/src
+abs_top_builddir = /home/tizen/takeo/ico-uxf-weston-plugin-0.5.01
+abs_top_srcdir = /home/tizen/takeo/ico-uxf-weston-plugin-0.5.01
+ac_ct_CC = gcc
+ac_ct_CXX = g++
+ac_ct_DUMPBIN =
+am__include = include
+am__leading_dot = .
+am__quote =
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build = i686-pc-linux-gnu
+build_alias =
+build_cpu = i686
+build_os = linux-gnu
+build_vendor = pc
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host = i686-pc-linux-gnu
+host_alias =
+host_cpu = i686
+host_os = linux-gnu
+host_vendor = pc
+htmldir = ${docdir}
+includedir = /usr/include/ico-uxf-weston-plugin
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /home/tizen/takeo/ico-uxf-weston-plugin-0.5.01/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+lt_ECHO = echo
+mandir = ${datarootdir}/man
+mkdir_p = /bin/mkdir -p
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr
+program_transform_name = s,x,x,
+psdir = ${docdir}
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias =
+top_build_prefix = ../
+top_builddir = ..
+top_srcdir = ..
+wayland_protocoldir = $(top_srcdir)/protocol
+wayland_scanner = /usr/bin/wayland-scanner
+lib_LTLIBRARIES = libico-uxf-weston-plugin.la
+include_HEADERS = \
+ ico_ivi_shell-client-protocol.h \
+ ico_window_mgr-client-protocol.h \
+ ico_input_mgr-client-protocol.h
+
+libico_uxf_weston_plugin_la_LIBADD = -lrt -lm
+libico_uxf_weston_plugin_la_LDFLAGS = -version-info 0:5:0
+libico_uxf_weston_plugin_la_SOURCES = \
+ ico_ivi_shell-protocol.c \
+ ico_window_mgr-protocol.c \
+ ico_input_mgr-protocol.c
+
+AM_CPPFLAGS = \
+ -DDATADIR='"$(datadir)"' \
+ -DMODULEDIR='"$(moduledir)"' \
+ -DLIBEXECDIR='"$(libexecdir)"'
+
+EXT_CFLAGS =
+moduledir = ${exec_prefix}/lib/weston
+module_LTLIBRARIES = \
+ $(ico_plugin_loader) \
+ $(ico_ivi_common) \
+ $(ico_ivi_shell) \
+ $(ico_window_mgr) \
+ $(ico_input_mgr)
+
+
+# $(ico_input_mgr)
+
+# Weston Plugin Loader
+ico_plugin_loader = ico_plugin_loader.la
+ico_plugin_loader_la_LDFLAGS = -module -avoid-version
+ico_plugin_loader_la_LIBADD = $(COMPOSITOR_LIBS)
+ico_plugin_loader_la_CFLAGS = $(GCC_CFLAGS) $(EXT_CFLAGS) $(COMPOSITOR_CFLAGS)
+ico_plugin_loader_la_SOURCES = \
+ ico_plugin_loader.c ../shared/config-parser.c
+
+
+# IVI Common Functions
+ico_ivi_common = ico_ivi_common.la
+ico_ivi_common_la_LDFLAGS = -module -avoid-version
+ico_ivi_common_la_LIBADD = $(COMPOSITOR_LIBS)
+ico_ivi_common_la_CFLAGS = $(GCC_CFLAGS) $(EXT_CFLAGS) $(COMPOSITOR_CFLAGS)
+ico_ivi_common_la_SOURCES = \
+ ico_ivi_common.c ../shared/config-parser.c
+
+
+# IVI-Shell
+ico_ivi_shell = ico_ivi_shell.la
+ico_ivi_shell_la_LDFLAGS = -module -avoid-version
+ico_ivi_shell_la_LIBADD = $(COMPOSITOR_LIBS)
+ico_ivi_shell_la_CFLAGS = $(GCC_CFLAGS) $(EXT_CFLAGS) $(COMPOSITOR_CFLAGS)
+ico_ivi_shell_la_SOURCES = \
+ ico_ivi_shell.c \
+ ../shared/config-parser.c \
+ ico_ivi_shell-protocol.c \
+ ico_ivi_shell-server-protocol.h
+
+
+# Multi Window Manager
+ico_window_mgr = ico_window_mgr.la
+ico_window_mgr_la_LDFLAGS = -module -avoid-version
+ico_window_mgr_la_LIBADD = $(COMPOSITOR_LIBS) $(AUL_LIBS)
+ico_window_mgr_la_CFLAGS = $(GCC_CFLAGS) $(EXT_CFLAGS) $(COMPOSITOR_CFLAGS)
+ico_window_mgr_la_SOURCES = \
+ ico_window_mgr.c \
+ ico_window_mgr-protocol.c \
+ ico_window_mgr-server-protocol.h
+
+
+# Multi Input Manager
+ico_input_mgr = ico_input_mgr.la
+ico_input_mgr_la_LDFLAGS = -module -avoid-version
+ico_input_mgr_la_LIBADD = $(COMPOSITOR_LIBS)
+ico_input_mgr_la_CFLAGS = $(GCC_CFLAGS) $(EXT_CFLAGS) $(COMPOSITOR_CFLAGS)
+ico_input_mgr_la_SOURCES = \
+ ico_input_mgr.c \
+ ico_input_mgr-protocol.c \
+ ico_input_mgr-server-protocol.h
+
+
+# Wayland protocol(Build by wayland-scanner)
+BUILT_SOURCES = \
+ ico_ivi_shell-protocol.c \
+ ico_ivi_shell-server-protocol.h \
+ ico_ivi_shell-client-protocol.h \
+ ico_window_mgr-protocol.c \
+ ico_window_mgr-server-protocol.h \
+ ico_window_mgr-client-protocol.h \
+ ico_input_mgr-protocol.c \
+ ico_input_mgr-server-protocol.h \
+ ico_input_mgr-client-protocol.h \
+ git-version.h
+
+CLEANFILES = $(BUILT_SOURCES)
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign src/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
+ }
+
+uninstall-libLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
+ done
+
+clean-libLTLIBRARIES:
+ -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+install-moduleLTLIBRARIES: $(module_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(moduledir)" || $(MKDIR_P) "$(DESTDIR)$(moduledir)"
+ @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(moduledir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(moduledir)"; \
+ }
+
+uninstall-moduleLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(moduledir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(moduledir)/$$f"; \
+ done
+
+clean-moduleLTLIBRARIES:
+ -test -z "$(module_LTLIBRARIES)" || rm -f $(module_LTLIBRARIES)
+ @list='$(module_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+ico_input_mgr.la: $(ico_input_mgr_la_OBJECTS) $(ico_input_mgr_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(ico_input_mgr_la_LINK) -rpath $(moduledir) $(ico_input_mgr_la_OBJECTS) $(ico_input_mgr_la_LIBADD) $(LIBS)
+ico_ivi_common.la: $(ico_ivi_common_la_OBJECTS) $(ico_ivi_common_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(ico_ivi_common_la_LINK) -rpath $(moduledir) $(ico_ivi_common_la_OBJECTS) $(ico_ivi_common_la_LIBADD) $(LIBS)
+ico_ivi_shell.la: $(ico_ivi_shell_la_OBJECTS) $(ico_ivi_shell_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(ico_ivi_shell_la_LINK) -rpath $(moduledir) $(ico_ivi_shell_la_OBJECTS) $(ico_ivi_shell_la_LIBADD) $(LIBS)
+ico_plugin_loader.la: $(ico_plugin_loader_la_OBJECTS) $(ico_plugin_loader_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(ico_plugin_loader_la_LINK) -rpath $(moduledir) $(ico_plugin_loader_la_OBJECTS) $(ico_plugin_loader_la_LIBADD) $(LIBS)
+ico_window_mgr.la: $(ico_window_mgr_la_OBJECTS) $(ico_window_mgr_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(ico_window_mgr_la_LINK) -rpath $(moduledir) $(ico_window_mgr_la_OBJECTS) $(ico_window_mgr_la_LIBADD) $(LIBS)
+libico-uxf-weston-plugin.la: $(libico_uxf_weston_plugin_la_OBJECTS) $(libico_uxf_weston_plugin_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libico_uxf_weston_plugin_la_LINK) -rpath $(libdir) $(libico_uxf_weston_plugin_la_OBJECTS) $(libico_uxf_weston_plugin_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+include ./$(DEPDIR)/ico_input_mgr-protocol.Plo
+include ./$(DEPDIR)/ico_input_mgr_la-ico_input_mgr-protocol.Plo
+include ./$(DEPDIR)/ico_input_mgr_la-ico_input_mgr.Plo
+include ./$(DEPDIR)/ico_ivi_common_la-config-parser.Plo
+include ./$(DEPDIR)/ico_ivi_common_la-ico_ivi_common.Plo
+include ./$(DEPDIR)/ico_ivi_shell-protocol.Plo
+include ./$(DEPDIR)/ico_ivi_shell_la-config-parser.Plo
+include ./$(DEPDIR)/ico_ivi_shell_la-ico_ivi_shell-protocol.Plo
+include ./$(DEPDIR)/ico_ivi_shell_la-ico_ivi_shell.Plo
+include ./$(DEPDIR)/ico_plugin_loader_la-config-parser.Plo
+include ./$(DEPDIR)/ico_plugin_loader_la-ico_plugin_loader.Plo
+include ./$(DEPDIR)/ico_window_mgr-protocol.Plo
+include ./$(DEPDIR)/ico_window_mgr_la-ico_window_mgr-protocol.Plo
+include ./$(DEPDIR)/ico_window_mgr_la-ico_window_mgr.Plo
+
+.c.o:
+ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+# $(AM_V_CC) \
+# source='$<' object='$@' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(COMPILE) -c $<
+
+.c.obj:
+ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+# $(AM_V_CC) \
+# source='$<' object='$@' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+# $(AM_V_CC) \
+# source='$<' object='$@' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(LTCOMPILE) -c -o $@ $<
+
+ico_input_mgr_la-ico_input_mgr.lo: ico_input_mgr.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ico_input_mgr_la_CFLAGS) $(CFLAGS) -MT ico_input_mgr_la-ico_input_mgr.lo -MD -MP -MF $(DEPDIR)/ico_input_mgr_la-ico_input_mgr.Tpo -c -o ico_input_mgr_la-ico_input_mgr.lo `test -f 'ico_input_mgr.c' || echo '$(srcdir)/'`ico_input_mgr.c
+ $(AM_V_at)$(am__mv) $(DEPDIR)/ico_input_mgr_la-ico_input_mgr.Tpo $(DEPDIR)/ico_input_mgr_la-ico_input_mgr.Plo
+# $(AM_V_CC) \
+# source='ico_input_mgr.c' object='ico_input_mgr_la-ico_input_mgr.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ico_input_mgr_la_CFLAGS) $(CFLAGS) -c -o ico_input_mgr_la-ico_input_mgr.lo `test -f 'ico_input_mgr.c' || echo '$(srcdir)/'`ico_input_mgr.c
+
+ico_input_mgr_la-ico_input_mgr-protocol.lo: ico_input_mgr-protocol.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ico_input_mgr_la_CFLAGS) $(CFLAGS) -MT ico_input_mgr_la-ico_input_mgr-protocol.lo -MD -MP -MF $(DEPDIR)/ico_input_mgr_la-ico_input_mgr-protocol.Tpo -c -o ico_input_mgr_la-ico_input_mgr-protocol.lo `test -f 'ico_input_mgr-protocol.c' || echo '$(srcdir)/'`ico_input_mgr-protocol.c
+ $(AM_V_at)$(am__mv) $(DEPDIR)/ico_input_mgr_la-ico_input_mgr-protocol.Tpo $(DEPDIR)/ico_input_mgr_la-ico_input_mgr-protocol.Plo
+# $(AM_V_CC) \
+# source='ico_input_mgr-protocol.c' object='ico_input_mgr_la-ico_input_mgr-protocol.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ico_input_mgr_la_CFLAGS) $(CFLAGS) -c -o ico_input_mgr_la-ico_input_mgr-protocol.lo `test -f 'ico_input_mgr-protocol.c' || echo '$(srcdir)/'`ico_input_mgr-protocol.c
+
+ico_ivi_common_la-ico_ivi_common.lo: ico_ivi_common.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ico_ivi_common_la_CFLAGS) $(CFLAGS) -MT ico_ivi_common_la-ico_ivi_common.lo -MD -MP -MF $(DEPDIR)/ico_ivi_common_la-ico_ivi_common.Tpo -c -o ico_ivi_common_la-ico_ivi_common.lo `test -f 'ico_ivi_common.c' || echo '$(srcdir)/'`ico_ivi_common.c
+ $(AM_V_at)$(am__mv) $(DEPDIR)/ico_ivi_common_la-ico_ivi_common.Tpo $(DEPDIR)/ico_ivi_common_la-ico_ivi_common.Plo
+# $(AM_V_CC) \
+# source='ico_ivi_common.c' object='ico_ivi_common_la-ico_ivi_common.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ico_ivi_common_la_CFLAGS) $(CFLAGS) -c -o ico_ivi_common_la-ico_ivi_common.lo `test -f 'ico_ivi_common.c' || echo '$(srcdir)/'`ico_ivi_common.c
+
+ico_ivi_common_la-config-parser.lo: ../shared/config-parser.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ico_ivi_common_la_CFLAGS) $(CFLAGS) -MT ico_ivi_common_la-config-parser.lo -MD -MP -MF $(DEPDIR)/ico_ivi_common_la-config-parser.Tpo -c -o ico_ivi_common_la-config-parser.lo `test -f '../shared/config-parser.c' || echo '$(srcdir)/'`../shared/config-parser.c
+ $(AM_V_at)$(am__mv) $(DEPDIR)/ico_ivi_common_la-config-parser.Tpo $(DEPDIR)/ico_ivi_common_la-config-parser.Plo
+# $(AM_V_CC) \
+# source='../shared/config-parser.c' object='ico_ivi_common_la-config-parser.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ico_ivi_common_la_CFLAGS) $(CFLAGS) -c -o ico_ivi_common_la-config-parser.lo `test -f '../shared/config-parser.c' || echo '$(srcdir)/'`../shared/config-parser.c
+
+ico_ivi_shell_la-ico_ivi_shell.lo: ico_ivi_shell.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ico_ivi_shell_la_CFLAGS) $(CFLAGS) -MT ico_ivi_shell_la-ico_ivi_shell.lo -MD -MP -MF $(DEPDIR)/ico_ivi_shell_la-ico_ivi_shell.Tpo -c -o ico_ivi_shell_la-ico_ivi_shell.lo `test -f 'ico_ivi_shell.c' || echo '$(srcdir)/'`ico_ivi_shell.c
+ $(AM_V_at)$(am__mv) $(DEPDIR)/ico_ivi_shell_la-ico_ivi_shell.Tpo $(DEPDIR)/ico_ivi_shell_la-ico_ivi_shell.Plo
+# $(AM_V_CC) \
+# source='ico_ivi_shell.c' object='ico_ivi_shell_la-ico_ivi_shell.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ico_ivi_shell_la_CFLAGS) $(CFLAGS) -c -o ico_ivi_shell_la-ico_ivi_shell.lo `test -f 'ico_ivi_shell.c' || echo '$(srcdir)/'`ico_ivi_shell.c
+
+ico_ivi_shell_la-config-parser.lo: ../shared/config-parser.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ico_ivi_shell_la_CFLAGS) $(CFLAGS) -MT ico_ivi_shell_la-config-parser.lo -MD -MP -MF $(DEPDIR)/ico_ivi_shell_la-config-parser.Tpo -c -o ico_ivi_shell_la-config-parser.lo `test -f '../shared/config-parser.c' || echo '$(srcdir)/'`../shared/config-parser.c
+ $(AM_V_at)$(am__mv) $(DEPDIR)/ico_ivi_shell_la-config-parser.Tpo $(DEPDIR)/ico_ivi_shell_la-config-parser.Plo
+# $(AM_V_CC) \
+# source='../shared/config-parser.c' object='ico_ivi_shell_la-config-parser.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ico_ivi_shell_la_CFLAGS) $(CFLAGS) -c -o ico_ivi_shell_la-config-parser.lo `test -f '../shared/config-parser.c' || echo '$(srcdir)/'`../shared/config-parser.c
+
+ico_ivi_shell_la-ico_ivi_shell-protocol.lo: ico_ivi_shell-protocol.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ico_ivi_shell_la_CFLAGS) $(CFLAGS) -MT ico_ivi_shell_la-ico_ivi_shell-protocol.lo -MD -MP -MF $(DEPDIR)/ico_ivi_shell_la-ico_ivi_shell-protocol.Tpo -c -o ico_ivi_shell_la-ico_ivi_shell-protocol.lo `test -f 'ico_ivi_shell-protocol.c' || echo '$(srcdir)/'`ico_ivi_shell-protocol.c
+ $(AM_V_at)$(am__mv) $(DEPDIR)/ico_ivi_shell_la-ico_ivi_shell-protocol.Tpo $(DEPDIR)/ico_ivi_shell_la-ico_ivi_shell-protocol.Plo
+# $(AM_V_CC) \
+# source='ico_ivi_shell-protocol.c' object='ico_ivi_shell_la-ico_ivi_shell-protocol.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ico_ivi_shell_la_CFLAGS) $(CFLAGS) -c -o ico_ivi_shell_la-ico_ivi_shell-protocol.lo `test -f 'ico_ivi_shell-protocol.c' || echo '$(srcdir)/'`ico_ivi_shell-protocol.c
+
+ico_plugin_loader_la-ico_plugin_loader.lo: ico_plugin_loader.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ico_plugin_loader_la_CFLAGS) $(CFLAGS) -MT ico_plugin_loader_la-ico_plugin_loader.lo -MD -MP -MF $(DEPDIR)/ico_plugin_loader_la-ico_plugin_loader.Tpo -c -o ico_plugin_loader_la-ico_plugin_loader.lo `test -f 'ico_plugin_loader.c' || echo '$(srcdir)/'`ico_plugin_loader.c
+ $(AM_V_at)$(am__mv) $(DEPDIR)/ico_plugin_loader_la-ico_plugin_loader.Tpo $(DEPDIR)/ico_plugin_loader_la-ico_plugin_loader.Plo
+# $(AM_V_CC) \
+# source='ico_plugin_loader.c' object='ico_plugin_loader_la-ico_plugin_loader.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ico_plugin_loader_la_CFLAGS) $(CFLAGS) -c -o ico_plugin_loader_la-ico_plugin_loader.lo `test -f 'ico_plugin_loader.c' || echo '$(srcdir)/'`ico_plugin_loader.c
+
+ico_plugin_loader_la-config-parser.lo: ../shared/config-parser.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ico_plugin_loader_la_CFLAGS) $(CFLAGS) -MT ico_plugin_loader_la-config-parser.lo -MD -MP -MF $(DEPDIR)/ico_plugin_loader_la-config-parser.Tpo -c -o ico_plugin_loader_la-config-parser.lo `test -f '../shared/config-parser.c' || echo '$(srcdir)/'`../shared/config-parser.c
+ $(AM_V_at)$(am__mv) $(DEPDIR)/ico_plugin_loader_la-config-parser.Tpo $(DEPDIR)/ico_plugin_loader_la-config-parser.Plo
+# $(AM_V_CC) \
+# source='../shared/config-parser.c' object='ico_plugin_loader_la-config-parser.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ico_plugin_loader_la_CFLAGS) $(CFLAGS) -c -o ico_plugin_loader_la-config-parser.lo `test -f '../shared/config-parser.c' || echo '$(srcdir)/'`../shared/config-parser.c
+
+ico_window_mgr_la-ico_window_mgr.lo: ico_window_mgr.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ico_window_mgr_la_CFLAGS) $(CFLAGS) -MT ico_window_mgr_la-ico_window_mgr.lo -MD -MP -MF $(DEPDIR)/ico_window_mgr_la-ico_window_mgr.Tpo -c -o ico_window_mgr_la-ico_window_mgr.lo `test -f 'ico_window_mgr.c' || echo '$(srcdir)/'`ico_window_mgr.c
+ $(AM_V_at)$(am__mv) $(DEPDIR)/ico_window_mgr_la-ico_window_mgr.Tpo $(DEPDIR)/ico_window_mgr_la-ico_window_mgr.Plo
+# $(AM_V_CC) \
+# source='ico_window_mgr.c' object='ico_window_mgr_la-ico_window_mgr.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ico_window_mgr_la_CFLAGS) $(CFLAGS) -c -o ico_window_mgr_la-ico_window_mgr.lo `test -f 'ico_window_mgr.c' || echo '$(srcdir)/'`ico_window_mgr.c
+
+ico_window_mgr_la-ico_window_mgr-protocol.lo: ico_window_mgr-protocol.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ico_window_mgr_la_CFLAGS) $(CFLAGS) -MT ico_window_mgr_la-ico_window_mgr-protocol.lo -MD -MP -MF $(DEPDIR)/ico_window_mgr_la-ico_window_mgr-protocol.Tpo -c -o ico_window_mgr_la-ico_window_mgr-protocol.lo `test -f 'ico_window_mgr-protocol.c' || echo '$(srcdir)/'`ico_window_mgr-protocol.c
+ $(AM_V_at)$(am__mv) $(DEPDIR)/ico_window_mgr_la-ico_window_mgr-protocol.Tpo $(DEPDIR)/ico_window_mgr_la-ico_window_mgr-protocol.Plo
+# $(AM_V_CC) \
+# source='ico_window_mgr-protocol.c' object='ico_window_mgr_la-ico_window_mgr-protocol.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ico_window_mgr_la_CFLAGS) $(CFLAGS) -c -o ico_window_mgr_la-ico_window_mgr-protocol.lo `test -f 'ico_window_mgr-protocol.c' || echo '$(srcdir)/'`ico_window_mgr-protocol.c
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-includeHEADERS: $(include_HEADERS)
+ @$(NORMAL_INSTALL)
+ test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
+ @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \
+ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \
+ done
+
+uninstall-includeHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(includedir)" && rm -f $$files
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LTLIBRARIES) $(HEADERS)
+installdirs:
+ for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(moduledir)" "$(DESTDIR)$(includedir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
+ clean-moduleLTLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-includeHEADERS install-moduleLTLIBRARIES
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-libLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES \
+ uninstall-moduleLTLIBRARIES
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libLTLIBRARIES clean-libtool clean-moduleLTLIBRARIES \
+ ctags distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am \
+ install-includeHEADERS install-info install-info-am \
+ install-libLTLIBRARIES install-man install-moduleLTLIBRARIES \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am \
+ uninstall-includeHEADERS uninstall-libLTLIBRARIES \
+ uninstall-moduleLTLIBRARIES
+
+
+git-version.h : .FORCE
+ $(AM_V_GEN)(echo "#define BUILD_ID \"$(shell git --work-tree=$(top_srcdir) describe --always --dirty) $(shell git --work-tree=$(top_srcdir) log -1 --format='%s (%ci)')\"" > $@-new; \
+ cmp -s $@ $@-new || cp $@-new $@; \
+ rm $@-new)
+
+.FORCE :
+
+%-protocol.c : $(wayland_protocoldir)/%.xml
+ $(AM_V_GEN)$(wayland_scanner) code < $< > $@
+
+%-server-protocol.h : $(wayland_protocoldir)/%.xml
+ $(AM_V_GEN)$(wayland_scanner) server-header < $< > $@
+
+%-client-protocol.h : $(wayland_protocoldir)/%.xml
+ $(AM_V_GEN)$(wayland_scanner) client-header < $< > $@
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/Makefile.am b/src/Makefile.am
new file mode 100644
index 0000000..9401246
--- /dev/null
+++ b/src/Makefile.am
@@ -0,0 +1,103 @@
+lib_LTLIBRARIES = libico-uxf-weston-plugin.la
+
+include_HEADERS = \
+ ico_ivi_shell-client-protocol.h \
+ ico_window_mgr-client-protocol.h \
+ ico_input_mgr-client-protocol.h
+
+includedir = /usr/include/ico-uxf-weston-plugin
+
+libico_uxf_weston_plugin_la_LIBADD = -lrt -lm
+libico_uxf_weston_plugin_la_LDFLAGS = -version-info 0:5:0
+libico_uxf_weston_plugin_la_SOURCES = \
+ ico_ivi_shell-protocol.c \
+ ico_window_mgr-protocol.c \
+ ico_input_mgr-protocol.c
+
+AM_CPPFLAGS = \
+ -DDATADIR='"$(datadir)"' \
+ -DMODULEDIR='"$(moduledir)"' \
+ -DLIBEXECDIR='"$(libexecdir)"'
+
+EXT_CFLAGS =
+
+git-version.h : .FORCE
+ $(AM_V_GEN)(echo "#define BUILD_ID \"$(shell git --work-tree=$(top_srcdir) describe --always --dirty) $(shell git --work-tree=$(top_srcdir) log -1 --format='%s (%ci)')\"" > $@-new; \
+ cmp -s $@ $@-new || cp $@-new $@; \
+ rm $@-new)
+
+.FORCE :
+
+moduledir = @libdir@/weston
+module_LTLIBRARIES = \
+ $(ico_plugin_loader) \
+ $(ico_ivi_common) \
+ $(ico_ivi_shell) \
+ $(ico_window_mgr) \
+ $(ico_input_mgr)
+
+# $(ico_input_mgr)
+
+# Weston Plugin Loader
+ico_plugin_loader = ico_plugin_loader.la
+ico_plugin_loader_la_LDFLAGS = -module -avoid-version
+ico_plugin_loader_la_LIBADD = $(COMPOSITOR_LIBS)
+ico_plugin_loader_la_CFLAGS = $(GCC_CFLAGS) $(EXT_CFLAGS) $(COMPOSITOR_CFLAGS)
+ico_plugin_loader_la_SOURCES = \
+ ico_plugin_loader.c ../shared/config-parser.c
+
+# IVI Common Functions
+ico_ivi_common = ico_ivi_common.la
+ico_ivi_common_la_LDFLAGS = -module -avoid-version
+ico_ivi_common_la_LIBADD = $(COMPOSITOR_LIBS)
+ico_ivi_common_la_CFLAGS = $(GCC_CFLAGS) $(EXT_CFLAGS) $(COMPOSITOR_CFLAGS)
+ico_ivi_common_la_SOURCES = \
+ ico_ivi_common.c ../shared/config-parser.c
+
+# IVI-Shell
+ico_ivi_shell = ico_ivi_shell.la
+ico_ivi_shell_la_LDFLAGS = -module -avoid-version
+ico_ivi_shell_la_LIBADD = $(COMPOSITOR_LIBS)
+ico_ivi_shell_la_CFLAGS = $(GCC_CFLAGS) $(EXT_CFLAGS) $(COMPOSITOR_CFLAGS)
+ico_ivi_shell_la_SOURCES = \
+ ico_ivi_shell.c \
+ ../shared/config-parser.c \
+ ico_ivi_shell-protocol.c \
+ ico_ivi_shell-server-protocol.h
+
+# Multi Window Manager
+ico_window_mgr = ico_window_mgr.la
+ico_window_mgr_la_LDFLAGS = -module -avoid-version
+ico_window_mgr_la_LIBADD = $(COMPOSITOR_LIBS) $(AUL_LIBS)
+ico_window_mgr_la_CFLAGS = $(GCC_CFLAGS) $(EXT_CFLAGS) $(COMPOSITOR_CFLAGS)
+ico_window_mgr_la_SOURCES = \
+ ico_window_mgr.c \
+ ico_window_mgr-protocol.c \
+ ico_window_mgr-server-protocol.h
+
+# Multi Input Manager
+ico_input_mgr = ico_input_mgr.la
+ico_input_mgr_la_LDFLAGS = -module -avoid-version
+ico_input_mgr_la_LIBADD = $(COMPOSITOR_LIBS)
+ico_input_mgr_la_CFLAGS = $(GCC_CFLAGS) $(EXT_CFLAGS) $(COMPOSITOR_CFLAGS)
+ico_input_mgr_la_SOURCES = \
+ ico_input_mgr.c \
+ ico_input_mgr-protocol.c \
+ ico_input_mgr-server-protocol.h
+
+# Wayland protocol(Build by wayland-scanner)
+BUILT_SOURCES = \
+ ico_ivi_shell-protocol.c \
+ ico_ivi_shell-server-protocol.h \
+ ico_ivi_shell-client-protocol.h \
+ ico_window_mgr-protocol.c \
+ ico_window_mgr-server-protocol.h \
+ ico_window_mgr-client-protocol.h \
+ ico_input_mgr-protocol.c \
+ ico_input_mgr-server-protocol.h \
+ ico_input_mgr-client-protocol.h \
+ git-version.h
+
+CLEANFILES = $(BUILT_SOURCES)
+
+@wayland_scanner_rules@
diff --git a/src/compositor.h b/src/compositor.h
new file mode 100644
index 0000000..d2ae587
--- /dev/null
+++ b/src/compositor.h
@@ -0,0 +1,841 @@
+/*
+ * Copyright © 2008-2011 Kristian Høgsberg
+ * Copyright © 2012 Collabora, Ltd.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of the copyright holders not be used in
+ * advertising or publicity pertaining to distribution of the software
+ * without specific, written prior permission. The copyright holders make
+ * no representations about the suitability of this software for any
+ * purpose. It is provided "as is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef _WAYLAND_SYSTEM_COMPOSITOR_H_
+#define _WAYLAND_SYSTEM_COMPOSITOR_H_
+
+#include <pixman.h>
+#include <xkbcommon/xkbcommon.h>
+#include <wayland-server.h>
+
+#include <GLES2/gl2.h>
+#include <GLES2/gl2ext.h>
+#include <EGL/egl.h>
+#include <EGL/eglext.h>
+
+/* #include "version.h" */
+#include "matrix.h"
+#include "config-parser.h"
+
+#define ARRAY_LENGTH(a) (sizeof (a) / sizeof (a)[0])
+
+#define container_of(ptr, type, member) ({ \
+ const __typeof__( ((type *)0)->member ) *__mptr = (ptr); \
+ (type *)( (char *)__mptr - offsetof(type,member) );})
+
+struct weston_transform {
+ struct weston_matrix matrix;
+ struct wl_list link;
+};
+
+struct weston_surface;
+struct shell_surface;
+struct weston_seat;
+struct weston_output;
+struct input_method;
+
+enum weston_keyboard_modifier {
+ MODIFIER_CTRL = (1 << 0),
+ MODIFIER_ALT = (1 << 1),
+ MODIFIER_SUPER = (1 << 2),
+ MODIFIER_SHIFT = (1 << 3),
+};
+
+enum weston_led {
+ LED_NUM_LOCK = (1 << 0),
+ LED_CAPS_LOCK = (1 << 1),
+ LED_SCROLL_LOCK = (1 << 2),
+};
+
+struct weston_mode {
+ uint32_t flags;
+ int32_t width, height;
+ uint32_t refresh;
+ struct wl_list link;
+};
+
+struct weston_shell_client {
+ void (*send_configure)(struct weston_surface *surface,
+ uint32_t edges, int32_t width, int32_t height);
+};
+
+struct weston_shell_interface {
+ void *shell; /* either desktop or tablet */
+
+ struct shell_surface *(*create_shell_surface)(void *shell,
+ struct weston_surface *surface,
+ const struct weston_shell_client *client);
+
+ void (*set_toplevel)(struct shell_surface *shsurf);
+
+ void (*set_transient)(struct shell_surface *shsurf,
+ struct weston_surface *parent,
+ int x, int y, uint32_t flags);
+ int (*move)(struct shell_surface *shsurf, struct weston_seat *ws);
+ int (*resize)(struct shell_surface *shsurf,
+ struct weston_seat *ws, uint32_t edges);
+
+};
+
+struct weston_border {
+ int32_t left, right, top, bottom;
+};
+
+struct weston_animation {
+ void (*frame)(struct weston_animation *animation,
+ struct weston_output *output, uint32_t msecs);
+ int frame_counter;
+ struct wl_list link;
+};
+
+struct weston_spring {
+ double k;
+ double friction;
+ double current;
+ double target;
+ double previous;
+ uint32_t timestamp;
+};
+
+enum {
+ ZOOM_FOCUS_POINTER,
+ ZOOM_FOCUS_TEXT
+};
+
+struct weston_fixed_point {
+ wl_fixed_t x, y;
+};
+
+struct weston_output_zoom {
+ int active;
+ uint32_t type;
+ float increment;
+ float level;
+ float max_level;
+ float trans_x, trans_y;
+ struct weston_animation animation_z;
+ struct weston_spring spring_z;
+ struct weston_animation animation_xy;
+ struct weston_spring spring_xy;
+ struct weston_fixed_point from;
+ struct weston_fixed_point to;
+ struct weston_fixed_point current;
+ struct weston_fixed_point text_cursor;
+};
+
+/* bit compatible with drm definitions. */
+enum dpms_enum {
+ WESTON_DPMS_ON,
+ WESTON_DPMS_STANDBY,
+ WESTON_DPMS_SUSPEND,
+ WESTON_DPMS_OFF
+};
+
+struct weston_output {
+ uint32_t id;
+
+ EGLSurface egl_surface;
+ struct wl_list link;
+ struct wl_list resource_list;
+ struct wl_global *global;
+ struct weston_compositor *compositor;
+ struct weston_matrix matrix;
+ struct wl_list animation_list;
+ int32_t x, y, width, height;
+ int32_t mm_width, mm_height;
+ struct weston_border border;
+ pixman_region32_t region;
+ int current_buffer;
+ pixman_region32_t buffer_damage[2];
+ int repaint_needed;
+ int repaint_scheduled;
+ struct weston_output_zoom zoom;
+ int dirty;
+ struct wl_signal frame_signal;
+ uint32_t frame_time;
+ int disable_planes;
+
+ char *make, *model;
+ uint32_t subpixel;
+ uint32_t transform;
+
+ struct weston_mode *current;
+ struct weston_mode *origin;
+ struct wl_list mode_list;
+
+ void (*repaint)(struct weston_output *output,
+ pixman_region32_t *damage);
+ void (*destroy)(struct weston_output *output);
+ void (*assign_planes)(struct weston_output *output);
+ int (*switch_mode)(struct weston_output *output, struct weston_mode *mode);
+
+ /* backlight values are on 0-255 range, where higher is brighter */
+ uint32_t backlight_current;
+ void (*set_backlight)(struct weston_output *output, uint32_t value);
+ void (*set_dpms)(struct weston_output *output, enum dpms_enum level);
+};
+
+struct weston_xkb_info {
+ struct xkb_keymap *keymap;
+ int keymap_fd;
+ size_t keymap_size;
+ char *keymap_area;
+ xkb_mod_index_t shift_mod;
+ xkb_mod_index_t caps_mod;
+ xkb_mod_index_t ctrl_mod;
+ xkb_mod_index_t alt_mod;
+ xkb_mod_index_t mod2_mod;
+ xkb_mod_index_t mod3_mod;
+ xkb_mod_index_t super_mod;
+ xkb_mod_index_t mod5_mod;
+ xkb_led_index_t num_led;
+ xkb_led_index_t caps_led;
+ xkb_led_index_t scroll_led;
+};
+
+struct weston_seat {
+ struct wl_seat seat;
+ struct wl_pointer pointer;
+ int has_pointer;
+ struct wl_keyboard keyboard;
+ int has_keyboard;
+ struct wl_touch touch;
+ int has_touch;
+
+ struct weston_compositor *compositor;
+ struct weston_surface *sprite;
+ struct wl_listener sprite_destroy_listener;
+ struct weston_surface *drag_surface;
+ struct wl_listener drag_surface_destroy_listener;
+ int32_t hotspot_x, hotspot_y;
+ struct wl_list link;
+ enum weston_keyboard_modifier modifier_state;
+ struct wl_surface *saved_kbd_focus;
+ struct wl_listener saved_kbd_focus_listener;
+
+ uint32_t num_tp;
+
+ struct wl_listener new_drag_icon_listener;
+
+ void (*led_update)(struct weston_seat *ws, enum weston_led leds);
+
+ struct weston_xkb_info xkb_info;
+ struct {
+ struct xkb_state *state;
+ enum weston_led leds;
+ } xkb_state;
+
+ struct input_method *input_method;
+};
+
+struct weston_shader {
+ GLuint program;
+ GLuint vertex_shader, fragment_shader;
+ GLint proj_uniform;
+ GLint tex_uniforms[3];
+ GLint alpha_uniform;
+ GLint color_uniform;
+};
+
+enum {
+ WESTON_COMPOSITOR_ACTIVE,
+ WESTON_COMPOSITOR_IDLE, /* shell->unlock called on activity */
+ WESTON_COMPOSITOR_SLEEPING /* no rendering, no frame events */
+};
+
+struct weston_layer {
+ struct wl_list surface_list;
+ struct wl_list link;
+};
+
+struct weston_plane {
+ pixman_region32_t damage;
+ pixman_region32_t opaque;
+ int32_t x, y;
+};
+
+struct weston_renderer {
+ void (*repaint_output)(struct weston_output *output,
+ pixman_region32_t *output_damage);
+ void (*flush_damage)(struct weston_surface *surface);
+ void (*attach)(struct weston_surface *es, struct wl_buffer *buffer);
+ void (*destroy_surface)(struct weston_surface *surface);
+};
+
+struct weston_compositor {
+ struct wl_signal destroy_signal;
+
+ EGLDisplay egl_display;
+ EGLContext egl_context;
+ EGLConfig egl_config;
+ struct weston_shader texture_shader_rgba;
+ struct weston_shader texture_shader_rgbx;
+ struct weston_shader texture_shader_egl_external;
+ struct weston_shader texture_shader_y_uv;
+ struct weston_shader texture_shader_y_u_v;
+ struct weston_shader texture_shader_y_xuxv;
+ struct weston_shader solid_shader;
+ struct weston_shader *current_shader;
+ struct wl_display *wl_display;
+ struct weston_shell_interface shell_interface;
+
+ struct wl_signal activate_signal;
+ struct wl_signal kill_signal;
+ struct wl_signal lock_signal;
+ struct wl_signal unlock_signal;
+
+ struct wl_signal show_input_panel_signal;
+ struct wl_signal hide_input_panel_signal;
+
+ struct wl_event_loop *input_loop;
+ struct wl_event_source *input_loop_source;
+
+ struct weston_layer fade_layer;
+ struct weston_layer cursor_layer;
+
+ struct wl_list output_list;
+ struct wl_list seat_list;
+ struct wl_list layer_list;
+ struct wl_list surface_list;
+ struct wl_list key_binding_list;
+ struct wl_list button_binding_list;
+ struct wl_list axis_binding_list;
+ struct {
+ struct weston_spring spring;
+ struct weston_animation animation;
+ struct weston_surface *surface;
+ } fade;
+
+ uint32_t state;
+ struct wl_event_source *idle_source;
+ uint32_t idle_inhibit;
+ int option_idle_time; /* default timeout, s */
+ int idle_time; /* effective timeout, s */
+
+ /* Repaint state. */
+ struct wl_array vertices;
+ struct wl_array indices; /* only used in compositor-wayland */
+ struct wl_array vtxcnt;
+ struct weston_plane primary_plane;
+ int fan_debug;
+
+ uint32_t focus;
+
+ struct weston_renderer *renderer;
+
+ PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC
+ image_target_renderbuffer_storage;
+ PFNGLEGLIMAGETARGETTEXTURE2DOESPROC image_target_texture_2d;
+ PFNEGLCREATEIMAGEKHRPROC create_image;
+ PFNEGLDESTROYIMAGEKHRPROC destroy_image;
+
+ int has_unpack_subimage;
+ GLenum read_format;
+
+ PFNEGLBINDWAYLANDDISPLAYWL bind_display;
+ PFNEGLUNBINDWAYLANDDISPLAYWL unbind_display;
+ PFNEGLQUERYWAYLANDBUFFERWL query_buffer;
+ int has_bind_display;
+
+ void (*destroy)(struct weston_compositor *ec);
+ void (*restore)(struct weston_compositor *ec);
+ int (*authenticate)(struct weston_compositor *c, uint32_t id);
+
+ void (*ping_handler)(struct weston_surface *surface, uint32_t serial);
+
+ int launcher_sock;
+
+ uint32_t output_id_pool;
+
+ struct xkb_rule_names xkb_names;
+ struct xkb_context *xkb_context;
+ struct weston_xkb_info xkb_info;
+};
+
+struct weston_region {
+ struct wl_resource resource;
+ pixman_region32_t region;
+};
+
+/* Using weston_surface transformations
+ *
+ * To add a transformation to a surface, create a struct weston_transform, and
+ * add it to the list surface->geometry.transformation_list. Whenever you
+ * change the list, anything under surface->geometry, or anything in the
+ * weston_transforms linked into the list, you must set
+ * surface->geometry.dirty = 1.
+ *
+ * The order in the list defines the order of transformations. Let the list
+ * contain the transformation matrices M1, ..., Mn as head to tail. The
+ * transformation is applied to surface-local coordinate vector p as
+ * P = Mn * ... * M2 * M1 * p
+ * to produce the global coordinate vector P. The total transform
+ * Mn * ... * M2 * M1
+ * is cached in surface->transform.matrix, and the inverse of it in
+ * surface->transform.inverse.
+ *
+ * The list always contains surface->transform.position transformation, which
+ * is the translation by surface->geometry.x and y.
+ *
+ * If you want to apply a transformation in local coordinates, add your
+ * weston_transform to the head of the list. If you want to apply a
+ * transformation in global coordinates, add it to the tail of the list.
+ */
+
+struct weston_surface {
+ struct wl_surface surface;
+ struct weston_compositor *compositor;
+ GLuint textures[3];
+ int num_textures;
+ pixman_region32_t clip;
+ pixman_region32_t damage;
+ pixman_region32_t opaque;
+ pixman_region32_t input;
+ int32_t pitch;
+ struct wl_list link;
+ struct wl_list layer_link;
+ struct weston_shader *shader;
+ GLfloat color[4];
+ float alpha;
+ struct weston_plane *plane;
+
+ /* Surface geometry state, mutable.
+ * If you change anything, set dirty = 1.
+ * That includes the transformations referenced from the list.
+ */
+ struct {
+ float x, y; /* surface translation on display */
+ int32_t width, height;
+
+ /* struct weston_transform */
+ struct wl_list transformation_list;
+
+ int dirty;
+ } geometry;
+
+ /* State derived from geometry state, read-only.
+ * This is updated by weston_surface_update_transform().
+ */
+ struct {
+ pixman_region32_t boundingbox;
+ pixman_region32_t opaque;
+
+ /* matrix and inverse are used only if enabled = 1.
+ * If enabled = 0, use x, y, width, height directly.
+ */
+ int enabled;
+ struct weston_matrix matrix;
+ struct weston_matrix inverse;
+
+ struct weston_transform position; /* matrix from x, y */
+ } transform;
+
+ /*
+ * Which output to vsync this surface to.
+ * Used to determine, whether to send or queue frame events.
+ * Must be NULL, if 'link' is not in weston_compositor::surface_list.
+ */
+ struct weston_output *output;
+
+ /*
+ * A more complete representation of all outputs this surface is
+ * displayed on.
+ */
+ uint32_t output_mask;
+
+ struct wl_list frame_callback_list;
+
+ EGLImageKHR images[3];
+ GLenum target;
+ int num_images;
+
+ struct wl_buffer *buffer;
+ struct wl_listener buffer_destroy_listener;
+
+ /* All the pending state, that wl_surface.commit will apply. */
+ struct {
+ /* wl_surface.attach */
+ int remove_contents;
+ struct wl_buffer *buffer;
+ struct wl_listener buffer_destroy_listener;
+ int32_t sx;
+ int32_t sy;
+
+ /* wl_surface.damage */
+ pixman_region32_t damage;
+
+ /* wl_surface.set_opaque_region */
+ pixman_region32_t opaque;
+
+ /* wl_surface.set_input_region */
+ pixman_region32_t input;
+
+ /* wl_surface.frame */
+ struct wl_list frame_callback_list;
+ } pending;
+
+ /*
+ * If non-NULL, this function will be called on surface::attach after
+ * a new buffer has been set up for this surface. The integer params
+ * are the sx and sy paramerters supplied to surface::attach .
+ */
+ void (*configure)(struct weston_surface *es, int32_t sx, int32_t sy);
+ void *private;
+};
+
+enum weston_key_state_update {
+ STATE_UPDATE_AUTOMATIC,
+ STATE_UPDATE_NONE,
+};
+
+void
+weston_version(int *major, int *minor, int *micro);
+
+void
+weston_surface_update_transform(struct weston_surface *surface);
+
+void
+weston_surface_to_global_fixed(struct weston_surface *surface,
+ wl_fixed_t sx, wl_fixed_t sy,
+ wl_fixed_t *x, wl_fixed_t *y);
+void
+weston_surface_to_global_float(struct weston_surface *surface,
+ float sx, float sy, float *x, float *y);
+
+void
+weston_surface_from_global_float(struct weston_surface *surface,
+ float x, float y, float *sx, float *sy);
+void
+weston_surface_from_global(struct weston_surface *surface,
+ int32_t x, int32_t y, int32_t *sx, int32_t *sy);
+void
+weston_surface_from_global_fixed(struct weston_surface *surface,
+ wl_fixed_t x, wl_fixed_t y,
+ wl_fixed_t *sx, wl_fixed_t *sy);
+
+void
+weston_spring_init(struct weston_spring *spring,
+ double k, double current, double target);
+void
+weston_spring_update(struct weston_spring *spring, uint32_t msec);
+int
+weston_spring_done(struct weston_spring *spring);
+
+void
+weston_surface_activate(struct weston_surface *surface,
+ struct weston_seat *seat);
+void
+notify_motion(struct weston_seat *seat, uint32_t time,
+ wl_fixed_t x, wl_fixed_t y);
+void
+notify_button(struct weston_seat *seat, uint32_t time, int32_t button,
+ enum wl_pointer_button_state state);
+void
+notify_axis(struct weston_seat *seat, uint32_t time, uint32_t axis,
+ wl_fixed_t value);
+void
+notify_key(struct weston_seat *seat, uint32_t time, uint32_t key,
+ enum wl_keyboard_key_state state,
+ enum weston_key_state_update update_state);
+void
+notify_modifiers(struct weston_seat *seat, uint32_t serial);
+
+void
+notify_pointer_focus(struct weston_seat *seat, struct weston_output *output,
+ wl_fixed_t x, wl_fixed_t y);
+
+void
+notify_keyboard_focus_in(struct weston_seat *seat, struct wl_array *keys,
+ enum weston_key_state_update update_state);
+void
+notify_keyboard_focus_out(struct weston_seat *seat);
+
+void
+notify_touch(struct weston_seat *seat, uint32_t time, int touch_id,
+ wl_fixed_t x, wl_fixed_t y, int touch_type);
+
+void
+weston_layer_init(struct weston_layer *layer, struct wl_list *below);
+
+void
+weston_plane_init(struct weston_plane *plane, int32_t x, int32_t y);
+void
+weston_plane_release(struct weston_plane *plane);
+
+void
+weston_output_finish_frame(struct weston_output *output, uint32_t msecs);
+void
+weston_output_schedule_repaint(struct weston_output *output);
+void
+weston_output_damage(struct weston_output *output);
+void
+weston_compositor_schedule_repaint(struct weston_compositor *compositor);
+void
+weston_compositor_fade(struct weston_compositor *compositor, float tint);
+void
+weston_compositor_damage_all(struct weston_compositor *compositor);
+void
+weston_compositor_unlock(struct weston_compositor *compositor);
+void
+weston_compositor_wake(struct weston_compositor *compositor);
+void
+weston_compositor_activity(struct weston_compositor *compositor);
+void
+weston_compositor_update_drag_surfaces(struct weston_compositor *compositor);
+
+
+struct weston_binding;
+typedef void (*weston_key_binding_handler_t)(struct wl_seat *seat,
+ uint32_t time, uint32_t key,
+ void *data);
+struct weston_binding *
+weston_compositor_add_key_binding(struct weston_compositor *compositor,
+ uint32_t key,
+ enum weston_keyboard_modifier modifier,
+ weston_key_binding_handler_t binding,
+ void *data);
+
+typedef void (*weston_button_binding_handler_t)(struct wl_seat *seat,
+ uint32_t time, uint32_t button,
+ void *data);
+struct weston_binding *
+weston_compositor_add_button_binding(struct weston_compositor *compositor,
+ uint32_t button,
+ enum weston_keyboard_modifier modifier,
+ weston_button_binding_handler_t binding,
+ void *data);
+
+typedef void (*weston_axis_binding_handler_t)(struct wl_seat *seat,
+ uint32_t time, uint32_t axis,
+ wl_fixed_t value, void *data);
+struct weston_binding *
+weston_compositor_add_axis_binding(struct weston_compositor *compositor,
+ uint32_t axis,
+ enum weston_keyboard_modifier modifier,
+ weston_axis_binding_handler_t binding,
+ void *data);
+void
+weston_binding_destroy(struct weston_binding *binding);
+
+void
+weston_binding_list_destroy_all(struct wl_list *list);
+
+void
+weston_compositor_run_key_binding(struct weston_compositor *compositor,
+ struct weston_seat *seat, uint32_t time,
+ uint32_t key,
+ enum wl_keyboard_key_state state);
+void
+weston_compositor_run_button_binding(struct weston_compositor *compositor,
+ struct weston_seat *seat, uint32_t time,
+ uint32_t button,
+ enum wl_pointer_button_state value);
+void
+weston_compositor_run_axis_binding(struct weston_compositor *compositor,
+ struct weston_seat *seat, uint32_t time,
+ uint32_t axis, int32_t value);
+
+int
+weston_environment_get_fd(const char *env);
+
+struct wl_list *
+weston_compositor_top(struct weston_compositor *compositor);
+
+struct weston_surface *
+weston_surface_create(struct weston_compositor *compositor);
+
+void
+weston_surface_configure(struct weston_surface *surface,
+ float x, float y, int width, int height);
+
+void
+weston_surface_restack(struct weston_surface *surface, struct wl_list *below);
+
+void
+weston_surface_set_position(struct weston_surface *surface,
+ float x, float y);
+
+int
+weston_surface_is_mapped(struct weston_surface *surface);
+
+void
+weston_surface_schedule_repaint(struct weston_surface *surface);
+
+void
+weston_surface_damage(struct weston_surface *surface);
+
+void
+weston_surface_damage_below(struct weston_surface *surface);
+
+void
+weston_surface_move_to_plane(struct weston_surface *surface,
+ struct weston_plane *plane);
+void
+weston_surface_unmap(struct weston_surface *surface);
+
+void
+weston_buffer_post_release(struct wl_buffer *buffer);
+
+uint32_t
+weston_compositor_get_time(void);
+
+int
+weston_compositor_init(struct weston_compositor *ec, struct wl_display *display,
+ int argc, char *argv[], const char *config_file);
+void
+weston_compositor_shutdown(struct weston_compositor *ec);
+void
+weston_text_cursor_position_notify(struct weston_surface *surface,
+ wl_fixed_t x, wl_fixed_t y);
+void
+weston_output_init_zoom(struct weston_output *output);
+void
+weston_output_update_zoom(struct weston_output *output, uint32_t type);
+void
+weston_output_update_matrix(struct weston_output *output);
+void
+weston_output_move(struct weston_output *output, int x, int y);
+void
+weston_output_init(struct weston_output *output, struct weston_compositor *c,
+ int x, int y, int width, int height, uint32_t transform);
+void
+weston_output_destroy(struct weston_output *output);
+
+void
+weston_seat_init(struct weston_seat *seat, struct weston_compositor *ec);
+void
+weston_seat_init_pointer(struct weston_seat *seat);
+int
+weston_seat_init_keyboard(struct weston_seat *seat, struct xkb_keymap *keymap);
+void
+weston_seat_init_touch(struct weston_seat *seat);
+
+void
+weston_seat_release(struct weston_seat *seat);
+
+/* String literal of spaces, the same width as the timestamp. */
+#define STAMP_SPACE " "
+
+void
+weston_log_file_open(const char *filename);
+void
+weston_log_file_close(void);
+int
+weston_log(const char *fmt, ...)
+ __attribute__ ((format (printf, 1, 2)));
+int
+weston_log_continue(const char *fmt, ...)
+ __attribute__ ((format (printf, 1, 2)));
+
+enum {
+ TTY_ENTER_VT,
+ TTY_LEAVE_VT
+};
+
+typedef void (*tty_vt_func_t)(struct weston_compositor *compositor, int event);
+
+struct tty *
+tty_create(struct weston_compositor *compositor,
+ tty_vt_func_t vt_func, int tty_nr);
+
+void
+tty_destroy(struct tty *tty);
+
+void
+tty_reset(struct tty *tty);
+
+int
+tty_activate_vt(struct tty *tty, int vt);
+
+void
+screenshooter_create(struct weston_compositor *ec);
+
+struct clipboard *
+clipboard_create(struct weston_seat *seat);
+
+void
+text_cursor_position_notifier_create(struct weston_compositor *ec);
+
+void
+text_model_factory_create(struct weston_compositor *ec);
+
+void
+input_method_create(struct weston_compositor *ec,
+ struct weston_seat *seat);
+
+struct weston_process;
+typedef void (*weston_process_cleanup_func_t)(struct weston_process *process,
+ int status);
+
+struct weston_process {
+ pid_t pid;
+ weston_process_cleanup_func_t cleanup;
+ struct wl_list link;
+};
+
+struct wl_client *
+weston_client_launch(struct weston_compositor *compositor,
+ struct weston_process *proc,
+ const char *path,
+ weston_process_cleanup_func_t cleanup);
+
+void
+weston_watch_process(struct weston_process *process);
+
+struct weston_surface_animation;
+typedef void (*weston_surface_animation_done_func_t)(struct weston_surface_animation *animation, void *data);
+
+struct weston_surface_animation *
+weston_zoom_run(struct weston_surface *surface, float start, float stop,
+ weston_surface_animation_done_func_t done, void *data);
+
+struct weston_surface_animation *
+weston_fade_run(struct weston_surface *surface,
+ weston_surface_animation_done_func_t done, void *data);
+struct weston_surface_animation *
+weston_slide_run(struct weston_surface *surface, float start, float stop,
+ weston_surface_animation_done_func_t done, void *data);
+
+void
+weston_surface_set_color(struct weston_surface *surface,
+ float red, float green, float blue, float alpha);
+
+void
+weston_surface_destroy(struct weston_surface *surface);
+
+int
+weston_output_switch_mode(struct weston_output *output, struct weston_mode *mode);
+
+int
+gles2_renderer_init(struct weston_compositor *ec);
+void
+gles2_renderer_destroy(struct weston_compositor *ec);
+
+struct weston_compositor *
+backend_init(struct wl_display *display, int argc, char *argv[],
+ const char *config_file);
+
+int
+module_init(struct weston_compositor *compositor);
+
+#endif
diff --git a/src/config-parser.c b/src/config-parser.c
new file mode 100644
index 0000000..95c6cf8
--- /dev/null
+++ b/src/config-parser.c
@@ -0,0 +1,187 @@
+/*
+ * Copyright © 2011 Intel Corporation
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting documentation, and
+ * that the name of the copyright holders not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. The copyright holders make no representations
+ * about the suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ * OF THIS SOFTWARE.
+ */
+
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <assert.h>
+#include <ctype.h>
+
+#include "config-parser.h"
+
+static int
+handle_key(const struct config_key *key, const char *value)
+{
+ char *end, *s;
+ int i, len;
+ unsigned int ui;
+
+ switch (key->type) {
+ case CONFIG_KEY_INTEGER:
+ i = strtol(value, &end, 0);
+ if (*end != '\n') {
+ fprintf(stderr, "invalid integer: %s\n", value);
+ return -1;
+ }
+ *(int *)key->data = i;
+ return 0;
+
+ case CONFIG_KEY_UNSIGNED_INTEGER:
+ ui = strtoul(value, &end, 0);
+ if (*end != '\n') {
+ fprintf(stderr, "invalid integer: %s\n", value);
+ return -1;
+ }
+ *(unsigned int *)key->data = ui;
+ return 0;
+
+ case CONFIG_KEY_STRING:
+ len = strlen(value);
+ while (len > 0 && isspace(value[len - 1]))
+ len--;
+ s = malloc(len + 1);
+ if (s == NULL)
+ return -1;
+ memcpy(s, value, len);
+ s[len] = '\0';
+ *(char **)key->data = s;
+ return 0;
+
+ case CONFIG_KEY_BOOLEAN:
+ if (strcmp(value, "false\n") == 0)
+ *(int *)key->data = 0;
+ else if (strcmp(value, "true\n") == 0)
+ *(int *)key->data = 1;
+ else {
+ fprintf(stderr, "invalid bool: %s\n", value);
+ return -1;
+ }
+ return 0;
+
+ default:
+ assert(0);
+ break;
+ }
+
+ return -1;
+}
+
+int
+parse_config_file(const char *path,
+ const struct config_section *sections, int num_sections,
+ void *data)
+{
+ FILE *fp;
+ char line[512], *p;
+ const struct config_section *current = NULL;
+ int i;
+
+ fp = fopen(path, "r");
+ if (fp == NULL) {
+ fprintf(stderr, "couldn't open %s\n", path);
+ return -1;
+ }
+
+ while (fgets(line, sizeof line, fp)) {
+ if (line[0] == '#' || line[0] == '\n') {
+ continue;
+ } if (line[0] == '[') {
+ p = strchr(&line[1], ']');
+ if (!p || p[1] != '\n') {
+ fprintf(stderr, "malformed "
+ "section header: %s\n", line);
+ fclose(fp);
+ return -1;
+ }
+ if (current && current->done)
+ current->done(data);
+ p[0] = '\0';
+ for (i = 0; i < num_sections; i++) {
+ if (strcmp(sections[i].name, &line[1]) == 0) {
+ current = &sections[i];
+ break;
+ }
+ }
+ if (i == num_sections)
+ current = NULL;
+ } else if (p = strchr(line, '='), p != NULL) {
+ if (current == NULL)
+ continue;
+ p[0] = '\0';
+ for (i = 0; i < current->num_keys; i++) {
+ if (strcmp(current->keys[i].name, line) == 0) {
+ if (handle_key(&current->keys[i], &p[1]) < 0) {
+ fclose(fp);
+ return -1;
+ }
+ break;
+ }
+ }
+ } else {
+ fprintf(stderr, "malformed config line: %s\n", line);
+ fclose(fp);
+ return -1;
+ }
+ }
+
+ if (current && current->done)
+ current->done(data);
+
+ fclose(fp);
+
+ return 0;
+}
+
+char *
+config_file_path(const char *name)
+{
+ const char dotconf[] = "/.config/";
+ const char *config_dir;
+ const char *home_dir;
+ char *path;
+ size_t size;
+
+ config_dir = getenv("XDG_CONFIG_HOME");
+ if (!config_dir) {
+ home_dir = getenv("HOME");
+ if (!home_dir) {
+ fprintf(stderr, "HOME is not set, using cwd.\n");
+ return strdup(name);
+ }
+
+ size = strlen(home_dir) + sizeof dotconf + strlen(name);
+ path = malloc(size);
+ if (!path)
+ return NULL;
+
+ snprintf(path, size, "%s%s%s", home_dir, dotconf, name);
+ return path;
+ }
+
+ size = strlen(config_dir) + 1 + strlen(name) + 1;
+ path = malloc(size);
+ if (!path)
+ return NULL;
+
+ snprintf(path, size, "%s/%s", config_dir, name);
+ return path;
+}
diff --git a/src/config-parser.h b/src/config-parser.h
new file mode 100644
index 0000000..0f6ca84
--- /dev/null
+++ b/src/config-parser.h
@@ -0,0 +1,73 @@
+/*
+ * Copyright © 2008 Kristian Høgsberg
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting documentation, and
+ * that the name of the copyright holders not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. The copyright holders make no representations
+ * about the suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ * OF THIS SOFTWARE.
+ */
+
+#ifndef CONFIGPARSER_H
+#define CONFIGPARSER_H
+
+enum config_key_type {
+ CONFIG_KEY_INTEGER, /* typeof data = int */
+ CONFIG_KEY_UNSIGNED_INTEGER, /* typeof data = unsigned int */
+ CONFIG_KEY_STRING, /* typeof data = char* */
+ CONFIG_KEY_BOOLEAN /* typeof data = int */
+};
+
+struct config_key {
+ const char *name;
+ enum config_key_type type;
+ void *data;
+};
+
+struct config_section {
+ const char *name;
+ const struct config_key *keys;
+ int num_keys;
+ void (*done)(void *data);
+};
+
+int
+parse_config_file(const char *path,
+ const struct config_section *sections, int num_sections,
+ void *data);
+
+char *
+config_file_path(const char *name);
+
+enum weston_option_type {
+ WESTON_OPTION_INTEGER,
+ WESTON_OPTION_UNSIGNED_INTEGER,
+ WESTON_OPTION_STRING,
+ WESTON_OPTION_BOOLEAN
+};
+
+struct weston_option {
+ enum weston_option_type type;
+ const char *name;
+ int short_name;
+ void *data;
+};
+
+int
+parse_options(const struct weston_option *options,
+ int count, int argc, char *argv[]);
+
+#endif /* CONFIGPARSER_H */
+
diff --git a/src/ico_input_mgr.c b/src/ico_input_mgr.c
new file mode 100644
index 0000000..1d020b5
--- /dev/null
+++ b/src/ico_input_mgr.c
@@ -0,0 +1,969 @@
+/*
+ * Copyright © 2010-2011 Intel Corporation
+ * Copyright © 2008-2011 Kristian Høgsberg
+ * Copyright © 2013 TOYOTA MOTOR CORPORATION.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of the copyright holders not be used in
+ * advertising or publicity pertaining to distribution of the software
+ * without specific, written prior permission. The copyright holders make
+ * no representations about the suitability of this software for any
+ * purpose. It is provided "as is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+/**
+ * @brief Multi Input Manager (Weston(Wayland) PlugIn)
+ *
+ * @date Feb-08-2013
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdbool.h>
+#include <string.h>
+#include <unistd.h>
+#include <linux/input.h>
+#include <assert.h>
+#include <signal.h>
+#include <math.h>
+#include <time.h>
+#include <sys/types.h>
+
+#include <wayland-server.h>
+#include "compositor.h"
+#include "ico_ivi_common.h"
+#include "ico_ivi_shell.h"
+#include "ico_window_mgr.h"
+#include "ico_input_mgr-server-protocol.h"
+
+/* degine maximum length */
+#define ICO_MINPUT_DEVICE_LEN 32
+#define ICO_MINPUT_SW_LEN 20
+#define ICO_MINPUT_MAX_CODES 20
+
+/* structure definition */
+/* working table of Multi Input Manager */
+struct ico_input_mgr {
+ struct weston_compositor *compositor; /* Weston Compositor */
+ struct wl_list ictl_list; /* Input Controller List */
+ struct wl_list app_list; /* application List */
+ struct wl_resource *inputmgr;
+};
+
+/* Input Switch Table */
+struct ico_ictl_code {
+ uint16_t code; /* input code numner */
+ char name[ICO_MINPUT_SW_LEN]; /* input code name */
+};
+
+struct ico_ictl_input {
+ struct wl_list link; /* link */
+ char swname[ICO_MINPUT_SW_LEN]; /* input switch name */
+ int32_t input; /* input Id */
+ uint16_t fix; /* fixed assign to application */
+ uint16_t ncode; /* number of codes */
+ struct ico_ictl_code code[ICO_MINPUT_MAX_CODES]; /* codes */
+ struct ico_app_mgr *app; /* send event tagret application */
+};
+
+/* Input Controller Management Table */
+struct ico_ictl_mgr {
+ struct wl_list link; /* link */
+ struct wl_client *client; /* client */
+ struct wl_resource *resource; /* resource */
+ char device[ICO_MINPUT_DEVICE_LEN]; /* device name */
+ int type; /* device type */
+ struct wl_list ico_ictl_input; /* list of input switchs */
+};
+
+/* Application Management Table */
+struct ico_app_mgr {
+ struct wl_list link; /* link */
+ struct wl_client *client; /* client */
+ struct wl_resource *resource; /* resource for send event */
+ struct wl_resource *mgr_resource; /* resource as manager(if NULL, client) */
+ char appid[ICO_IVI_APPID_LENGTH]; /* application id */
+};
+
+/* prototype of static function */
+/* bind input manager form manager(ex.HomeScreen) */
+static void ico_control_bind(struct wl_client *client, void *data,
+ uint32_t version, uint32_t id);
+/* unbind input manager form manager(ex.HomeScreen) */
+static void ico_control_unbind(struct wl_resource *resource);
+/* bind input manager form input controller */
+static void ico_device_bind(struct wl_client *client, void *data,
+ uint32_t version, uint32_t id);
+/* unbind input manager form input controller */
+static void ico_device_unbind(struct wl_resource *resource);
+/* bind input manager (form application) */
+static void ico_exinput_bind(struct wl_client *client, void *data,
+ uint32_t version, uint32_t id);
+/* unbind input manager (form application) */
+static void ico_exinput_unbind(struct wl_resource *resource);
+
+/* find ictl manager by device name */
+static struct ico_ictl_mgr *find_ictlmgr_by_device(const char *device);
+/* find ictl input switch by input Id */
+static struct ico_ictl_input *find_ictlinput_by_input(struct ico_ictl_mgr *pIctlMgr,
+ const int32_t input);
+/* find app manager by application Id */
+static struct ico_app_mgr *find_app_by_appid(const char *appid);
+/* add input event to application */
+static void ico_mgr_add_input_app(struct wl_client *client, struct wl_resource *resource,
+ const char *appid, const char *device, int32_t input,
+ uint32_t fix);
+/* delete input event to application */
+static void ico_mgr_del_input_app(struct wl_client *client, struct wl_resource *resource,
+ const char *appid, const char *device, int32_t input);
+/* create and regist Input Controller table */
+static void ico_device_configure_input(struct wl_client *client,
+ struct wl_resource *resource, const char *device,
+ int32_t type, const char *swname, int32_t input,
+ const char *codename, int32_t code);
+/* add input to from Input Controller table */
+static void ico_device_configure_code(struct wl_client *client,
+ struct wl_resource *resource, const char *device,
+ int32_t input, const char *codename, int32_t code);
+/* device input event */
+static void ico_device_input_event(struct wl_client *client, struct wl_resource *resource,
+ uint32_t time, const char *device,
+ int32_t input, int32_t code, int32_t state);
+
+/* entry finction called by Weston */
+WL_EXPORT int module_init(struct weston_compositor *ec);
+
+/* definition of Wayland protocol */
+/* mgr interface */
+static const struct ico_input_mgr_control_interface ico_input_mgr_implementation = {
+ ico_mgr_add_input_app,
+ ico_mgr_del_input_app,
+};
+
+/* Input Controller interface */
+static const struct ico_input_mgr_device_interface input_mgr_ictl_implementation = {
+ ico_device_configure_input,
+ ico_device_configure_code,
+ ico_device_input_event
+};
+
+/* definition of class variable */
+struct ico_input_mgr *pInputMgr = NULL;
+
+/* implementation */
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_mgr_add_input_app: add input event to application from HomeScreen.
+ *
+ * @param[in] client client(HomeScreen)
+ * @param[in] resource resource of request
+ * @param[in] appid target application id
+ * @param[in] device device name
+ * @param[in] input input switch number
+ * @param[in] fix fix to application(1=fix,0=general)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+ico_mgr_add_input_app(struct wl_client *client, struct wl_resource *resource,
+ const char *appid, const char *device, int32_t input, uint32_t fix)
+{
+ uifw_trace("ico_mgr_add_input_app: Enter(appid=%s,dev=%s,input=%d,fix=%d)",
+ appid, device, input, fix);
+
+ struct ico_ictl_mgr *pIctlMgr;
+ struct ico_ictl_input *pInput;
+ struct ico_app_mgr *pAppMgr;
+
+ pIctlMgr = find_ictlmgr_by_device(device);
+ if (! pIctlMgr) {
+ /* not configure input controller, create */
+ ico_device_configure_input(NULL, NULL, device, 0, NULL, input, NULL, 0);
+ pIctlMgr = find_ictlmgr_by_device(device);
+ if (! pIctlMgr) {
+ uifw_error("ico_mgr_add_input_app: Leave(No Memory)");
+ return;
+ }
+ }
+ pInput = find_ictlinput_by_input(pIctlMgr, input);
+ if (! pInput) {
+ /* not configure input switch, create */
+ ico_device_configure_input(NULL, NULL, device, 0, NULL, input, NULL, 0);
+ pInput = find_ictlinput_by_input(pIctlMgr, input);
+ if (! pInput) {
+ uifw_error("ico_mgr_add_input_app: Leave(No Memory)");
+ return;
+ }
+ }
+
+ /* find application */
+ pAppMgr = find_app_by_appid(appid);
+ if (! pAppMgr) {
+ /* create Application Management Table */
+ pAppMgr = (struct ico_app_mgr *)malloc(sizeof(struct ico_app_mgr));
+ if (! pAppMgr) {
+ uifw_error("ico_mgr_add_input_app: Leave(No Memory)");
+ return;
+ }
+ memset(pAppMgr, 0, sizeof(struct ico_app_mgr));
+ strncpy(pAppMgr->appid, appid, sizeof(pAppMgr->appid)-1);
+ wl_list_insert(pInputMgr->app_list.prev, &pAppMgr->link);
+ }
+
+ pInput->app = pAppMgr;
+ pInput->fix = fix;
+ uifw_trace("ico_mgr_add_input_app: Leave(%s.%s[%d] assign to %s)",
+ pIctlMgr->device, pInput->swname ? pInput->swname : "(NULL)", input,
+ pAppMgr->appid);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_mgr_del_input_app: delete input event at application from HomeScreen.
+ *
+ * @param[in] client client(HomeScreen)
+ * @param[in] resource resource of request
+ * @param[in] appid target application id,
+ * if NULL, all applictions without fixed assign switch
+ * @param[in] device device name
+ * if NULL, all device without fixed assign switch
+ * @param[in] input input switch number
+ * if -1, all input without fixed assign switch
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+ico_mgr_del_input_app(struct wl_client *client, struct wl_resource *resource,
+ const char *appid, const char *device, int32_t input)
+{
+ uifw_trace("ico_mgr_del_input_app: Enter(appid=%s,dev=%s,input=%d)",
+ appid ? appid : "(NULL)", device ? device : "(NULL)", input);
+
+ int alldev = 0;
+ struct ico_ictl_mgr *pIctlMgr = NULL;
+ struct ico_ictl_input *pInput = NULL;
+ struct ico_app_mgr *pAppMgr;
+
+ if ((device != NULL) && (*device != 0)) {
+ pIctlMgr = find_ictlmgr_by_device(device);
+ if (! pIctlMgr) {
+ /* not configure input controller, NOP */
+ uifw_trace("ico_mgr_del_input_app: Leave(%s dose not exist)", device);
+ return;
+ }
+ if (input >= 0) {
+ pInput = find_ictlinput_by_input(pIctlMgr, input);
+ if (! pInput) {
+ /* not configure input switch, NOP */
+ uifw_trace("ico_mgr_del_input_app: Leave(%s.%d dose not exist)",
+ device, input);
+ return;
+ }
+ }
+ }
+ else {
+ alldev = 1;
+ }
+
+ /* find application */
+ if ((appid != NULL) && (*appid != 0)) {
+ pAppMgr = find_app_by_appid(appid);
+ if (! pAppMgr) {
+ /* application dose not exist, NOP */
+ uifw_trace("ico_mgr_del_input_app: Leave(app.%s dose not exist)", appid);
+ return;
+ }
+ if (alldev == 0) {
+ if (input >= 0) {
+ if (pInput->app != pAppMgr) {
+ /* not same application, NOP */
+ uifw_trace("ico_mgr_del_input_app: Leave(%s.%d not app.%s, current %s)",
+ device, input, appid,
+ pInput->app ? pInput->app->appid : "(NULL)");
+ return;
+ }
+ uifw_trace("ico_mgr_del_input_app: Leave(%s.%d app.%s deleted)",
+ device, input, appid);
+ pInput->app = NULL;
+ return;
+ }
+ else {
+ wl_list_for_each (pInput, &pIctlMgr->ico_ictl_input, link) {
+ if ((pInput->fix == 0) && (pInput->app == pAppMgr)) {
+ uifw_trace("ico_mgr_del_input_app: %s.%d app.%s deleted",
+ pIctlMgr->device, pInput->input, appid);
+ pInput->app = NULL;
+ }
+ }
+ }
+ }
+ else {
+ /* reset all device without fixed assign */
+ wl_list_for_each (pIctlMgr, &pInputMgr->ictl_list, link) {
+ wl_list_for_each (pInput, &pIctlMgr->ico_ictl_input, link) {
+ if ((pInput->fix == 0) && (pInput->app == pAppMgr)) {
+ uifw_trace("ico_mgr_del_input_app: %s.%d app.%s deleted",
+ pIctlMgr->device, pInput->input, pInput->app->appid);
+ pInput->app = NULL;
+ }
+ }
+ }
+ }
+ }
+ else {
+ if (alldev == 0) {
+ if (input >= 0) {
+ if ((pInput->fix == 0) && (pInput->app != NULL)) {
+ uifw_trace("ico_mgr_del_input_app: %s.%d app.%s deleted",
+ pIctlMgr->device, pInput->input, pInput->app->appid);
+ pInput->app = NULL;
+ }
+ }
+ else {
+ wl_list_for_each (pInput, &pIctlMgr->ico_ictl_input, link) {
+ if ((pInput->fix == 0) && (pInput->app != NULL)) {
+ uifw_trace("ico_mgr_del_input_app: %s.%d app.%s deleted",
+ pIctlMgr->device, pInput->input, pInput->app->appid);
+ pInput->app = NULL;
+ }
+ }
+ }
+ }
+ else {
+ /* reset all application without fixed assign */
+ wl_list_for_each (pIctlMgr, &pInputMgr->ictl_list, link) {
+ wl_list_for_each (pInput, &pIctlMgr->ico_ictl_input, link) {
+ if ((pInput->fix == 0) && (pInput->app != NULL)) {
+ uifw_trace("ico_mgr_del_input_app: %s.%d app.%s deleted",
+ pIctlMgr->device, pInput->input, pInput->app->appid);
+ pInput->app = NULL;
+ }
+ }
+ }
+ }
+ }
+ uifw_trace("ico_mgr_del_input_app: Leave");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_device_configure_input: configure input device and input switch
+ * from Device Input Controller.
+ *
+ * @param[in] client client(Device Input Controller)
+ * @param[in] resource resource of request
+ * @param[in] device device name
+ * @param[in] type device type(saved but unused)
+ * @param[in] swname input switch name
+ * @param[in] input input switch number
+ * @param[in] codename input code name
+ * @param[in] code input code number
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+ico_device_configure_input(struct wl_client *client, struct wl_resource *resource,
+ const char *device, int32_t type, const char *swname,
+ int32_t input, const char *codename, int32_t code)
+{
+ uifw_trace("ico_device_configure_input: Enter(client=%08x,dev=%s,type=%d,swname=%s,"
+ "input=%d,code=%d[%s])", (int)client, device, type,
+ swname ? swname : "(NULL)", input, code, codename ? codename : " ");
+
+ struct ico_ictl_mgr *pIctlMgr;
+ struct ico_ictl_input *pInput;
+ struct ico_app_mgr *pAppMgr;
+
+ pIctlMgr = find_ictlmgr_by_device(device);
+ if (! pIctlMgr) {
+ /* create ictl mgr table */
+ pIctlMgr = (struct ico_ictl_mgr *)malloc(sizeof(struct ico_ictl_mgr));
+ if (pIctlMgr == NULL) {
+ uifw_error("ico_device_configure_input: Leave(No Memory)");
+ return;
+ }
+ uifw_trace("ico_device_configure_input: create pIctlMgr(mgr=%08x,input=%d)",
+ (int)pIctlMgr, input);
+ memset(pIctlMgr, 0, sizeof(struct ico_ictl_mgr));
+ wl_list_init(&pIctlMgr->ico_ictl_input);
+ strncpy(pIctlMgr->device, device, sizeof(pIctlMgr->device)-1);
+
+ /* add list */
+ wl_list_insert(pInputMgr->ictl_list.prev, &pIctlMgr->link);
+ }
+ pIctlMgr->client = client;
+ pIctlMgr->resource = resource;
+ if (type) {
+ pIctlMgr->type = type;
+ }
+
+ /* search and add input switch */
+ wl_list_for_each (pInput, &pIctlMgr->ico_ictl_input, link) {
+ if (pInput->input == input) break;
+ }
+ if (&pInput->link == &pIctlMgr->ico_ictl_input) {
+ uifw_trace("ico_device_configure_input: create %s.%s(%d) switch",
+ device, swname, input);
+ pInput = (struct ico_ictl_input *)malloc(sizeof(struct ico_ictl_input));
+ if (pInput == NULL) {
+ uifw_error("ico_device_configure_input: Leave(No Memory)");
+ return;
+ }
+ memset(pInput, 0, sizeof(struct ico_ictl_input));
+ if (swname) {
+ strncpy(pInput->swname, swname, sizeof(pInput->swname)-1);
+ }
+ else {
+ strcpy(pInput->swname, "(Unknown)");
+ }
+ wl_list_insert(pIctlMgr->ico_ictl_input.prev, &pInput->link);
+ }
+ if (swname) {
+ strncpy(pInput->swname, swname, sizeof(pInput->swname)-1);
+ }
+ pInput->input = input;
+ memset(pInput->code, 0, sizeof(pInput->code));
+ pInput->ncode = 1;
+ pInput->code[0].code = code;
+ if (codename) {
+ strncpy(pInput->code[0].name, codename, sizeof(pInput->code[0].name)-1);
+ }
+
+ if (client == NULL) {
+ /* internal call for table create */
+ uifw_trace("ico_device_configure_input: Leave(table create)");
+ return;
+ }
+
+ /* send to application and manager(ex.HomeScreen) */
+ wl_list_for_each (pAppMgr, &pInputMgr->app_list, link) {
+ if (pAppMgr->resource == NULL) continue;
+ if ((pInput->app != NULL) && (pInput->app != pAppMgr) && (pInput->fix)) continue;
+
+ uifw_trace("ico_device_configure_input: send capabilities to app(%s) %s.%s[%d]",
+ pAppMgr->appid, device, pInput->swname, input);
+ ico_exinput_send_capabilities(pAppMgr->resource, device, pIctlMgr->type,
+ pInput->swname, input,
+ pInput->code[0].name, pInput->code[0].code);
+ }
+ uifw_trace("ico_device_configure_input: Leave");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_device_configure_code: add input switch from Device Input Controller.
+ *
+ * @param[in] client client(Device Input Controller)
+ * @param[in] resource resource of request
+ * @param[in] device device name
+ * @param[in] input input switch number
+ * @param[in] codename input code name
+ * @param[in] code input code number
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+ico_device_configure_code(struct wl_client *client, struct wl_resource *resource,
+ const char *device, int32_t input,
+ const char *codename, int32_t code)
+{
+ uifw_trace("ico_device_configure_code: Enter(client=%08x,dev=%s,input=%d,code=%d[%s])",
+ (int)client, device, input, code, codename ? codename : " ");
+
+ int i;
+ struct ico_ictl_mgr *pIctlMgr;
+ struct ico_ictl_input *pInput;
+ struct ico_app_mgr *pAppMgr;
+
+ pIctlMgr = find_ictlmgr_by_device(device);
+ if (! pIctlMgr) {
+ uifw_warn("ico_device_configure_code: Leave(dev=%s dose not exist)", device);
+ return;
+ }
+ /* search input switch */
+ wl_list_for_each (pInput, &pIctlMgr->ico_ictl_input, link) {
+ if (pInput->input == input) break;
+ }
+ if (&pInput->link == &pIctlMgr->ico_ictl_input) {
+ uifw_warn("ico_device_configure_code: Leave(input=%s.%d dose not exist)",
+ device, input);
+ return;
+ }
+
+ /* search input code */
+ for (i = 0; i < pInput->ncode; i++) {
+ if (pInput->code[i].code == code) break;
+ }
+ if (i >= pInput->ncode) {
+ /* code dose not exist, add */
+ if (pInput->ncode >= ICO_MINPUT_MAX_CODES) {
+ uifw_warn("ico_device_configure_code: Leave(input=%s.%d code overflow)",
+ device, input);
+ return;
+ }
+ i = pInput->ncode;
+ pInput->ncode ++;
+ pInput->code[i].code = code;
+ }
+ memset(pInput->code[i].name, 0, sizeof(pInput->code[i].name));
+ strncpy(pInput->code[i].name, codename, sizeof(pInput->code[i].name)-1);
+
+ /* send to application and manager(ex.HomeScreen) */
+ wl_list_for_each (pAppMgr, &pInputMgr->app_list, link) {
+ if (pAppMgr->resource == NULL) continue;
+ if ((pInput->app != NULL) && (pInput->app != pAppMgr) && (pInput->fix)) continue;
+ uifw_trace("ico_device_configure_input: send code to app(%s) %s.%s[%d]",
+ pAppMgr->appid, device, pInput->swname, input);
+ ico_exinput_send_code(pAppMgr->resource, device, input,
+ pInput->code[i].name, pInput->code[i].code);
+ }
+ uifw_trace("ico_device_configure_code: Leave");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_device_input_event: device input event from Device Input Controller.
+ *
+ * @param[in] client client(Device Input Controller)
+ * @param[in] resource resource of request
+ * @param[in] time device input time(miri-sec)
+ * @param[in] device device name
+ * @param[in] input input switch number
+ * @param[in] code input code number
+ * @param[in] state input state(1=On, 0=Off)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+ico_device_input_event(struct wl_client *client, struct wl_resource *resource,
+ uint32_t time, const char *device,
+ int32_t input, int32_t code, int32_t state)
+{
+ uifw_trace("ico_device_input_event: Enter(time=%d,dev=%s,input=%d,code=%d,state=%d)",
+ time, device, input, code, state);
+
+ struct ico_ictl_mgr *pIctlMgr;
+ struct ico_ictl_input *pInput;
+
+ /* find input devcie by client */
+ pIctlMgr = find_ictlmgr_by_device(device);
+ if (! pIctlMgr) {
+ uifw_error("ico_device_input_event: Leave(Unknown client(%08x))", (int)client);
+ return;
+ }
+ /* find input switch by input Id */
+ pInput = find_ictlinput_by_input(pIctlMgr, input);
+ if (! pInput) {
+ uifw_warn("ico_device_input_event: Leave(Unknown input(%s,%d))",
+ pIctlMgr->device, input);
+ return;
+ }
+
+ if (! pInput->app) {
+ uifw_trace("ico_device_input_event: Leave(%s.%s not assign)",
+ pIctlMgr->device, pInput->swname);
+ return;
+ }
+
+ /* send event to application */
+ uifw_trace("ico_device_input_event: send event=%s.%s[%d],%d,%d to App.%s",
+ pIctlMgr->device, pInput->swname, input, code, state, pInput->app->appid);
+ ico_exinput_send_input(pInput->app->resource, time, pIctlMgr->device,
+ input, code, state);
+
+ uifw_trace("ico_device_input_event: Leave");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_control_bind: ico_input_mgr_control bind from HomeScreen
+ *
+ * @param[in] client client(HomeScreen)
+ * @param[in] data data(unused)
+ * @param[in] version protocol version(unused)
+ * @param[in] id client object id
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+ico_control_bind(struct wl_client *client, void *data, uint32_t version, uint32_t id)
+{
+ char *appid;
+ struct ico_app_mgr *pAppMgr;
+
+ uifw_trace("ico_control_bind: Enter(client=%08x)", (int)client);
+ appid = ico_window_mgr_appid(client);
+
+ if (! appid) {
+ /* client dose not exist */
+ uifw_warn("ico_control_bind: Leave(client=%08x dose not exist)", (int)client);
+ return;
+ }
+
+ /* find application */
+ pAppMgr = find_app_by_appid(appid);
+ if (! pAppMgr) {
+ /* create Application Management Table */
+ pAppMgr = (struct ico_app_mgr *)malloc(sizeof(struct ico_app_mgr));
+ if (! pAppMgr) {
+ uifw_error("ico_control_bind: Leave(No Memory)");
+ return;
+ }
+ memset(pAppMgr, 0, sizeof(struct ico_app_mgr));
+ strncpy(pAppMgr->appid, appid, sizeof(pAppMgr->appid)-1);
+ wl_list_insert(pInputMgr->app_list.prev, &pAppMgr->link);
+ }
+ pAppMgr->client = client;
+ if (! pAppMgr->mgr_resource) {
+ pAppMgr->mgr_resource = wl_client_add_object(client,
+ &ico_input_mgr_control_interface,
+ &ico_input_mgr_implementation,
+ id, pInputMgr);
+ pAppMgr->mgr_resource->destroy = ico_control_unbind;
+ }
+ uifw_trace("ico_control_bind: Leave");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_control_unbind: ico_input_mgr_control unbind from HomeScreen
+ *
+ * @param[in] resource client resource(HomeScreen)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+ico_control_unbind(struct wl_resource *resource)
+{
+ struct ico_app_mgr *pAppMgr;
+
+ uifw_trace("ico_control_unbind: Enter(resource=%08x)", (int)resource);
+
+ wl_list_for_each (pAppMgr, &pInputMgr->app_list, link) {
+ if (pAppMgr->mgr_resource == resource) {
+ uifw_trace("ico_control_unbind: find app.%s", pAppMgr->appid);
+ pAppMgr->mgr_resource = NULL;
+ break;
+ }
+ }
+
+ free(resource);
+ uifw_trace("ico_control_unbind: Leave");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_device_bind: ico_input_mgr_device bind from Device Input Controller
+ *
+ * @param[in] client client(Device Input Controller)
+ * @param[in] data data(unused)
+ * @param[in] version protocol version(unused)
+ * @param[in] id client object id
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+ico_device_bind(struct wl_client *client, void *data, uint32_t version, uint32_t id)
+{
+ struct wl_resource *mgr_resource;
+
+ uifw_trace("ico_device_bind: Enter(client=%08x)", (int)client);
+
+ mgr_resource = wl_client_add_object(client, &ico_input_mgr_device_interface,
+ &input_mgr_ictl_implementation,
+ id, NULL);
+ mgr_resource->destroy = ico_device_unbind;
+ uifw_trace("ico_device_bind: Leave");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_device_unbind: ico_input_mgr_device unbind from Device Input Controller
+ *
+ * @param[in] resource client resource(Device Input Controller)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+ico_device_unbind(struct wl_resource *resource)
+{
+ uifw_trace("ico_device_unbind: Enter(resource=%08x)", (int)resource);
+ free(resource);
+ uifw_trace("ico_device_unbind: Leave");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_exinput_bind: ico_exinput bind from Application
+ *
+ * @param[in] client client(Application)
+ * @param[in] data data(unused)
+ * @param[in] version protocol version(unused)
+ * @param[in] id client object id
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+ico_exinput_bind(struct wl_client *client, void *data, uint32_t version, uint32_t id)
+{
+ int i;
+ char *appid;
+ struct ico_app_mgr *pAppMgr;
+ struct ico_ictl_mgr *pIctlMgr;
+ struct ico_ictl_input *pInput;
+
+ appid = ico_window_mgr_appid(client);
+ uifw_trace("ico_exinput_bind: Enter(client=%08x,%s)", (int)client,
+ appid ? appid : "(NULL)");
+
+ if (! appid) {
+ /* client dose not exist */
+ uifw_warn("ico_exinput_bind: Leave(client=%08x dose not exist)", (int)client);
+ return;
+ }
+
+ /* find application */
+ pAppMgr = find_app_by_appid(appid);
+ if (! pAppMgr) {
+ /* create Application Management Table */
+ pAppMgr = (struct ico_app_mgr *)malloc(sizeof(struct ico_app_mgr));
+ if (! pAppMgr) {
+ uifw_error("ico_exinput_bind: Leave(No Memory)");
+ return;
+ }
+ memset(pAppMgr, 0, sizeof(struct ico_app_mgr));
+ strncpy(pAppMgr->appid, appid, sizeof(pAppMgr->appid)-1);
+ wl_list_insert(pInputMgr->app_list.prev, &pAppMgr->link);
+ uifw_trace("ico_exinput_bind: Create App.%s table", appid);
+ }
+ pAppMgr->client = client;
+ if (! pAppMgr->resource) {
+ pAppMgr->resource = wl_client_add_object(client, &ico_exinput_interface,
+ NULL, id, pInputMgr);
+ pAppMgr->resource->destroy = ico_exinput_unbind;
+ }
+
+ /* send all capabilities */
+ wl_list_for_each (pIctlMgr, &pInputMgr->ictl_list, link) {
+ if (pIctlMgr->client == NULL) {
+ uifw_trace("ico_exinput_bind: Input controller.%s not initialized",
+ pIctlMgr->device);
+ continue;
+ }
+
+ wl_list_for_each (pInput, &pIctlMgr->ico_ictl_input, link) {
+ if (pInput->swname[0] == 0) {
+ uifw_trace("ico_exinput_bind: Input %s not initialized", pIctlMgr->device);
+ continue;
+ }
+ if ((pInput->app != NULL) && (pInput->app != pAppMgr) && (pInput->fix)) {
+ uifw_trace("ico_exinput_bind: Input %s.%s fixed assign to App.%s",
+ pIctlMgr->device, pInput->swname, pInput->app->appid);
+ continue;
+ }
+ uifw_trace("ico_exinput_bind: send capabilities to app(%s) %s.%s[%d]",
+ pAppMgr->appid, pIctlMgr->device, pInput->swname, pInput->input);
+ ico_exinput_send_capabilities(pAppMgr->resource, pIctlMgr->device,
+ pIctlMgr->type, pInput->swname, pInput->input,
+ pInput->code[0].name, pInput->code[0].code);
+ for (i = 1; i < pInput->ncode; i++) {
+ ico_exinput_send_code(pAppMgr->resource, pIctlMgr->device, pInput->input,
+ pInput->code[i].name, pInput->code[i].code);
+ }
+ }
+ }
+ uifw_trace("ico_exinput_bind: Leave");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_exinput_unbind: ico_exinput unbind from Application
+ *
+ * @param[in] resource client resource(Application)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+ico_exinput_unbind(struct wl_resource *resource)
+{
+ struct ico_app_mgr *pAppMgr;
+ struct ico_app_mgr *pAppMgrTmp;
+ struct ico_ictl_mgr *pIctlMgr;
+ struct ico_ictl_input *pInput;
+ int fix = 0;
+
+ uifw_trace("ico_exinput_unbind: Enter(resource=%08x)", (int)resource);
+
+ wl_list_for_each_safe (pAppMgr, pAppMgrTmp, &pInputMgr->app_list, link) {
+ if (pAppMgr->resource == resource) {
+ uifw_trace("ico_exinput_unbind: find app.%s", pAppMgr->appid);
+
+ /* release application from input switch */
+ wl_list_for_each (pIctlMgr, &pInputMgr->ictl_list, link) {
+ wl_list_for_each (pInput, &pIctlMgr->ico_ictl_input, link) {
+ if (pInput->app == pAppMgr) {
+ if (pInput->fix == 0) {
+ uifw_trace("ico_exinput_unbind: app.%s remove %s.%s",
+ pAppMgr->appid, pIctlMgr->device, pInput->swname);
+ pInput->app = NULL;
+ }
+ else {
+ uifw_trace("ico_exinput_unbind: app.%s fix assign %s.%s",
+ pAppMgr->appid, pIctlMgr->device, pInput->swname);
+ fix ++;
+ }
+ }
+ }
+ }
+ if (fix == 0) {
+ wl_list_remove(&pAppMgr->link);
+ free(pAppMgr);
+ }
+ else {
+ pAppMgr->client = NULL;
+ pAppMgr->resource = NULL;
+ }
+ }
+ }
+
+ free(resource);
+ uifw_trace("ico_exinput_unbind: Leave");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief find_ictlmgr_by_device: find Input Controller by device name
+ *
+ * @param[in] device device name
+ * @return Input Controller Manager table address
+ * @retval !=NULL address
+ * @retval ==NULL not exist
+ */
+/*--------------------------------------------------------------------------*/
+static struct ico_ictl_mgr *
+find_ictlmgr_by_device(const char *device)
+{
+ struct ico_ictl_mgr *pIctlMgr;
+
+ wl_list_for_each (pIctlMgr, &pInputMgr->ictl_list, link) {
+ if (strcmp(pIctlMgr->device, device) == 0) {
+ return pIctlMgr;
+ }
+ }
+ return NULL;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief find_ictlinput_by_input: find Input Switch by input Id
+ *
+ * @param[in] pIctlMgr Input Controller device
+ * @param[in] input Input Id
+ * @return Input Switch table address
+ * @retval !=NULL address
+ * @retval ==NULL not exist
+ */
+/*--------------------------------------------------------------------------*/
+static struct ico_ictl_input *
+find_ictlinput_by_input(struct ico_ictl_mgr *pIctlMgr, const int32_t input)
+{
+ struct ico_ictl_input *pInput;
+
+ wl_list_for_each (pInput, &pIctlMgr->ico_ictl_input, link) {
+ if (pInput->input == input) {
+ return pInput;
+ }
+ }
+ return NULL;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief find_app_by_appid: find Application by application Id
+ *
+ * @param[in] appid application Id
+ * @return Application Management table address
+ * @retval !=NULL address
+ * @retval ==NULL not exist
+ */
+/*--------------------------------------------------------------------------*/
+static struct ico_app_mgr *
+find_app_by_appid(const char *appid)
+{
+ struct ico_app_mgr *pAppMgr;
+
+ wl_list_for_each (pAppMgr, &pInputMgr->app_list, link) {
+ if (strcmp(pAppMgr->appid, appid) == 0) {
+ return pAppMgr;
+ }
+ }
+ return NULL;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief module_init: initialization of this plugin
+ *
+ * @param[in] ec weston compositor
+ * @return result
+ * @retval 0 OK
+ * @retval -1 error
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT int
+module_init(struct weston_compositor *ec)
+{
+ uifw_trace("ico_input_mgr: Enter(module_init)");
+
+ /* initialize management table */
+ pInputMgr = (struct ico_input_mgr *)malloc(sizeof(struct ico_input_mgr));
+ if (pInputMgr == NULL) {
+ uifw_trace("ico_input_mgr: malloc failed");
+ return -1;
+ }
+ memset(pInputMgr, 0, sizeof(struct ico_input_mgr));
+ pInputMgr->compositor = ec;
+
+ /* interface to desktop manager(ex.HomeScreen) */
+ if (wl_display_add_global(ec->wl_display,
+ &ico_input_mgr_control_interface,
+ pInputMgr,
+ ico_control_bind) == NULL) {
+ uifw_trace("ico_input_mgr: wl_display_add_global mgr failed");
+ return -1;
+ }
+
+ /* interface to Input Controller(ictl) */
+ if (wl_display_add_global(ec->wl_display,
+ &ico_input_mgr_device_interface,
+ pInputMgr,
+ ico_device_bind) == NULL) {
+ uifw_trace("ico_input_mgr: wl_display_add_global ictl failed");
+ return -1;
+ }
+
+ /* interface to App(exinput) */
+ if (wl_display_add_global(ec->wl_display, &ico_exinput_interface,
+ pInputMgr, ico_exinput_bind) == NULL) {
+ uifw_trace("ico_input_mgr: wl_display_add_global exseat failed");
+ return -1;
+ }
+
+ /* initialize list */
+ wl_list_init(&pInputMgr->ictl_list);
+ wl_list_init(&pInputMgr->app_list);
+
+ uifw_trace("ico_input_mgr: Leave(module_init)");
+ return 0;
+}
+
diff --git a/src/ico_ivi_common.c b/src/ico_ivi_common.c
new file mode 100644
index 0000000..39c84cb
--- /dev/null
+++ b/src/ico_ivi_common.c
@@ -0,0 +1,334 @@
+/*
+ * Copyright © 2010-2011 Intel Corporation
+ * Copyright © 2008-2011 Kristian Høgsberg
+ * Copyright © 2013 TOYOTA MOTOR CORPORATION.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of the copyright holders not be used in
+ * advertising or publicity pertaining to distribution of the software
+ * without specific, written prior permission. The copyright holders make
+ * no representations about the suitability of this software for any
+ * purpose. It is provided "as is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+/**
+ * @brief Weston(Wayland) Plugin: IVI Common Functions.
+ *
+ * @date Feb-08-2013
+ */
+
+#define _GNU_SOURCE
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdbool.h>
+#include <string.h>
+#include <unistd.h>
+#include <dlfcn.h>
+
+#include "compositor.h"
+#include "ico_ivi_common.h"
+
+/* IVI Plugin Common Table */
+struct ico_ivi_common {
+ int32_t myNodeId; /* (HostId << 16) | DisplayNo */
+ int (*usurf_2_node)(const int surfaceid);
+ /* Function address of nodeId from surfaceId*/
+ int (*send_to_mgr)(const int event, const int surfaceid, const char *appid,
+ const int param1, const int param2, const int param3,
+ const int param4, const int param5, const int param6);
+ /* Function address of send to manager */
+ int (*send_surface_change)(struct weston_surface *surface,
+ const int x, const int y, const int width, const int height);
+ /* Function address of send configure to manager*/
+};
+
+/* This function is called from the ico_plugin-loader and initializes this module.*/
+int module_init(struct weston_compositor *ec);
+
+/* Static area for control ico_ivi_common */
+static struct ico_ivi_common *_ico_ivi_common = NULL;
+
+/* Special options */
+static int _ico_option_flag = 0;
+
+/* Debug level */
+static int _ico_ivi_debug = 3;
+
+static const struct config_key debug_config_keys[] = {
+ { "option_flag", CONFIG_KEY_INTEGER, &_ico_option_flag },
+ { "ivi_debug", CONFIG_KEY_INTEGER, &_ico_ivi_debug },
+ };
+
+static const struct config_section conf_debug[] = {
+ { "debug", debug_config_keys, ARRAY_LENGTH(debug_config_keys) },
+ };
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_special_option: Answer special option flag
+ *
+ * @param None
+ * @return Special option flag
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT int
+ico_option_flag(void)
+{
+ return _ico_option_flag;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_ivi_debuglevel: Answer debug output level.
+ *
+ * @param None
+ * @return Debug output level
+ * @retval 0 No debug output
+ * @retval 1 Only error output
+ * @retval 2 Error and information output
+ * @retval 3 All output with debug write
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT int
+ico_ivi_debuglevel(void)
+{
+ return _ico_ivi_debug;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_ivi_get_mynode: Get my NodeId
+ *
+ * @param None
+ * @return NodeId of my node
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT int
+ico_ivi_get_mynode(void)
+{
+ /* Reference Platform 0.50 only support 1 ECU */
+ return 0;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_ivi_set_usurf_2_node: Regist function of convert surfaceId to NodeId
+ *
+ * @param[in] usurf_2_node Function address of usurf_2_node
+ * @return None
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT void
+ico_ivi_set_usurf_2_node(int (*usurf_2_node)(const int surfaceid))
+{
+ _ico_ivi_common->usurf_2_node = usurf_2_node;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_ivi_usurf_2_node: Convert surfaceId to NodeId
+ *
+ * @param[in] surfaceid ivi-shell surfaceId
+ * @return NodeId
+ * @retval >= 0 NodeId
+ * @retval < 0 Surface dose not exist
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT int
+ico_ivi_usurf_2_node(const int surfaceid)
+{
+ int nodeId;
+
+ if (_ico_ivi_common->usurf_2_node) {
+ /* If declared convert function, call function */
+ nodeId = (*_ico_ivi_common->usurf_2_node) (surfaceid);
+ if (nodeId >= 0) {
+ return nodeId;
+ }
+ }
+
+ /* If NOT declare convert function, convert from surfaceId */
+ return ICO_IVI_SURFACEID_2_NODEID(surfaceid);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_ivi_set_send_to_mgr: Regist function of send to manager
+ *
+ * @param[in] send_to_mgr Function address of send to manager
+ * @return None
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT void
+ico_ivi_set_send_to_mgr(int (*send_to_mgr)(const int event,
+ const int surfaceid, const char *appid,
+ const int param1, const int param2, const int param3,
+ const int param4, const int param5, const int param6))
+{
+ _ico_ivi_common->send_to_mgr = send_to_mgr;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_ivi_send_to_mgr: Send event to manager
+ *
+ * @param[in] event Event code
+ * @param[in] client_resource Client resource
+ * @param[in] surfaceid SurfaceId (depend of event code)
+ * @param[in] appid ApplicationId (depend of event code)
+ * @param[in] param1 Parameter.1 (depend of event code)
+ * @param[in] param2 Parameter.2 (depend of event code)
+ * @param[in] :
+ * @param[in] param6 Parameter.6 (depend of event code)
+ * @return number of managers
+ * @retval > 0 number of managers
+ * @retval 0 manager not exist
+ * @retval -1 Multi Input Manager not exist
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT int
+ico_ivi_send_to_mgr(const int event, struct wl_resource *client_resource,
+ const int surfaceid, const char *appid,
+ const int param1, const int param2, const int param3,
+ const int param4, const int param5, const int param6)
+{
+ if (_ico_ivi_common->send_to_mgr) {
+ return (*_ico_ivi_common->send_to_mgr)(event, surfaceid, appid,
+ param1, param2, param3,
+ param4, param5, param6);
+ }
+ return -1;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_ivi_set_send_surface_change: Regist function of surface change
+ *
+ * @param[in] send_surface_change Function address of surface change
+ * @return None
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT void
+ico_ivi_set_send_surface_change(int (*send_surface_change)(struct weston_surface *surface,
+ const int x, const int y,
+ const int width,
+ const int height))
+{
+ _ico_ivi_common->send_surface_change = send_surface_change;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_ivi_send_surface_change: Send surface change event to manager
+ *
+ * @param[in] surface Weston surface
+ * @return number of managers
+ * @retval > 0 number of managers
+ * @retval 0 manager not exist
+ * @retval -1 Multi Input Manager not exist
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT int
+ico_ivi_send_surface_change(struct weston_surface *surface,
+ const int x, const int y, const int width, const int height)
+{
+ if (_ico_ivi_common->send_surface_change) {
+ return (*_ico_ivi_common->send_surface_change)(surface, x, y, width, height);
+ }
+ return -1;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_ivi_nodename_2_node: Convert node name to hostId
+ *
+ * @param[in] nodename Node name(same as host name)
+ * @return HostId
+ * @retval >= 0 HostId
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT int
+ico_ivi_nodename_2_node(const char *nodename)
+{
+ if (nodename == NULL) {
+ uifw_trace("ico_ivi_nodename_2_node: NULL => %d",
+ ICO_IVI_NODEID_2_HOSTID(_ico_ivi_common->myNodeId));
+ return ICO_IVI_NODEID_2_HOSTID(_ico_ivi_common->myNodeId);
+ }
+
+ /* Reference Platform 0.50 only support 1 ECU */
+ uifw_trace("ico_ivi_nodename_2_node: %s => None", nodename );
+ return 0;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_ivi_dispname_2_node: Convert display name to nodeId
+ *
+ * @param[in] dispname Node name(same as display name)
+ * @return NodeId
+ * @retval >= 0 NodeId
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT int
+ico_ivi_dispname_2_node(const char *dispname)
+{
+ if (dispname == NULL) {
+ uifw_trace("ico_ivi_dispname_2_node: NULL => %x", _ico_ivi_common->myNodeId);
+ return _ico_ivi_common->myNodeId;
+ }
+
+ /* Reference Platform 0.50 only support 1 ECU */
+ uifw_trace("ico_ivi_dispname_2_node: %s => None", dispname);
+ return 0;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief IVI Common: Initialize function of ico_ivi_common.
+ *
+ * @param[in] ec Weston compositor. (from Weston)
+ * @return result
+ * @retval 0 Normal end
+ * @retval -1 Error
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT int
+module_init(struct weston_compositor *ec)
+{
+ char *config_file;
+
+ uifw_info("ico_ivi_common: Enter(module_init)");
+
+ /* Get debug level from config file */
+ config_file = config_file_path(ICO_IVI_PLUGIN_CONFIG);
+ parse_config_file(config_file, conf_debug, ARRAY_LENGTH(conf_debug), NULL);
+ free(config_file);
+
+ uifw_info("ico_ivi_common: option flag=0x%08x debug=%d",
+ ico_option_flag(), ico_ivi_debuglevel());
+
+ /* Allocate static area */
+ _ico_ivi_common = (struct ico_ivi_common *) malloc(sizeof(struct ico_ivi_common));
+ if (! _ico_ivi_common) {
+ uifw_error("ico_ivi_common: Leave(No Memory)");
+ return -1;
+ }
+ memset(_ico_ivi_common, 0, sizeof(struct ico_ivi_common));
+
+ uifw_info("ico_ivi_common: Leave(module_init)");
+
+ return 0;
+}
+
diff --git a/src/ico_ivi_common.h b/src/ico_ivi_common.h
new file mode 100644
index 0000000..58c4193
--- /dev/null
+++ b/src/ico_ivi_common.h
@@ -0,0 +1,123 @@
+/*
+ * Copyright © 2010-2011 Intel Corporation
+ * Copyright © 2008-2011 Kristian Høgsberg
+ * Copyright © 2013 TOYOTA MOTOR CORPORATION.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of the copyright holders not be used in
+ * advertising or publicity pertaining to distribution of the software
+ * without specific, written prior permission. The copyright holders make
+ * no representations about the suitability of this software for any
+ * purpose. It is provided "as is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+/**
+ * @brief The common functions that each Plugin is available.
+ *
+ * @date Feb-08-2013
+ */
+
+#ifndef _ICO_IVI_COMMON_H_
+#define _ICO_IVI_COMMON_H_
+
+/* Macros */
+#define ICO_IVI_NODEID_2_HOSTID( nodeid ) (((unsigned int)nodeid) >> 16)
+#define ICO_IVI_NODEID_2_DISPLAYNO( nodeid ) (((unsigned int)nodeid) & 0x0ffff)
+#define ICO_IVI_NODEDISP_2_NODEID( nodeid, displayno ) \
+ ((nodeid << 16) | displayno)
+#define ICO_IVI_SURFACEID_2_HOSTID( surfid ) (((unsigned int)surfid) >> 24)
+#define ICO_IVI_SURFACEID_2_DISPLAYNO( surfid ) ((((unsigned int)surfid) >> 16) & 0x0ff)
+#define ICO_IVI_SURFACEID_2_NODEID( surfid ) \
+ ICO_IVI_NODEDISP_2_NODEID( ICO_IVI_SURFACEID_2_HOSTID(surfid), \
+ ICO_IVI_SURFACEID_2_DISPLAYNO(surfid) )
+#define ICO_IVI_SURFACEID_BASE( nodeid ) \
+ (ICO_IVI_NODEID_2_HOSTID(nodeid) << 24) | \
+ (ICO_IVI_NODEID_2_DISPLAYNO(nodeid) << 16)
+
+/* Return value */
+#define ICO_IVI_EOK 0 /* OK */
+#define ICO_IVI_ENOENT -2 /* No such object */
+#define ICO_IVI_EIO -5 /* Send error */
+#define ICO_IVI_ENOMEM -12 /* Out of memory */
+#define ICO_IVI_EBUSY -16 /* Not available now */
+#define ICO_IVI_EINVAL -22 /* Invalid argument */
+
+/* Configuration file */
+#define ICO_IVI_PLUGIN_CONFIG "weston_ivi_plugin.ini"
+
+/* System limit */
+#define ICO_IVI_APPID_LENGTH (128) /* Maximum length of applicationId(AppCore) */
+ /* (with terminate NULL) */
+#define ICO_IVI_MAX_COORDINATE (16383) /* Maximum X or Y coordinate */
+/* Fixed value */
+#define ICO_IVI_DEFAULT_LAYER (0) /* Default layerId for surface creation */
+#ifndef TRUE
+#define TRUE 1
+#endif
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+/* Function prototype */
+ /* Get my node numner */
+int ico_ivi_get_mynode(void);
+ /* Convert host name to ECU number */
+int ico_ivi_nodename_2_node(const char *nodename);
+ /* Convert display name to nodeId */
+int ico_ivi_dispname_2_node(const char *dispname);
+ /* Regist function of display to nodeId convert*/
+void ico_ivi_set_usurf_2_node(int (*usurf_2_node)(const int surfaceid));
+ /* Convery surfaceId to nodeId */
+int ico_ivi_usurf_2_node(const int surfaceid);
+ /* Regist function of send event to manager */
+void ico_ivi_set_send_to_mgr(int (*send_to_mgr)(const int event,
+ const int surfaceid, const char *appid,
+ const int param1, const int param2, const int param3,
+ const int param4, const int param5, const int param6));
+ /* Send event to manager */
+int ico_ivi_send_to_mgr(const int event, struct wl_resource *client_resource,
+ const int surfaceid, const char *appid,
+ const int param1, const int param2, const int param3,
+ const int param4, const int param5, const int param6);
+
+void ico_ivi_set_send_surface_change(int (*send_surface_change)(
+ struct weston_surface *surface,
+ const int x, const int y, const int width, const int height));
+int ico_ivi_send_surface_change(struct weston_surface *surface,
+ const int x, const int y, const int width, const int height);
+
+int ico_option_flag(void);
+int ico_ivi_debuglevel(void);
+
+/* Debug Traces */
+/* Define for debug write */
+#define UIFW_DEBUG_OUT 1 /* 1=Debug Print/0=No Debug Print */
+
+#if UIFW_DEBUG_OUT > 0
+#define uifw_trace(fmt,...) \
+ { if (ico_ivi_debuglevel() >= 4) {weston_log("DBG>"fmt" (%s:%d)\n",##__VA_ARGS__,__FILE__,__LINE__);} }
+#else /*UIFW_DEBUG_OUT*/
+#define uifw_trace(fmt,...)
+#endif /*UIFW_DEBUG_OUT*/
+
+#define uifw_info(fmt,...) \
+ { if (ico_ivi_debuglevel() >= 3) {weston_log("INF>"fmt" (%s:%d)\n",##__VA_ARGS__,__FILE__,__LINE__);} }
+#define uifw_msg(fmt,...) \
+ { if (ico_ivi_debuglevel() >= 3) {weston_log("INF>"fmt"\n",##__VA_ARGS__);} }
+#define uifw_warn(fmt,...) \
+ { if (ico_ivi_debuglevel() >= 2) {weston_log("WRN>"fmt" (%s:%d)\n",##__VA_ARGS__,__FILE__,__LINE__);} }
+#define uifw_error(fmt,...) \
+ { if (ico_ivi_debuglevel() >= 1) {weston_log("ERR>"fmt" (%s:%d)\n",##__VA_ARGS__,__FILE__,__LINE__);} }
+
+#endif /*_ICO_IVI_COMMON_H_*/
+
diff --git a/src/ico_ivi_shell.c b/src/ico_ivi_shell.c
new file mode 100644
index 0000000..34c09da
--- /dev/null
+++ b/src/ico_ivi_shell.c
@@ -0,0 +1,1907 @@
+/*
+ * Copyright © 2010-2011 Intel Corporation
+ * Copyright © 2008-2011 Kristian Høgsberg
+ * Copyright © 2013 TOYOTA MOTOR CORPORATION.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of the copyright holders not be used in
+ * advertising or publicity pertaining to distribution of the software
+ * without specific, written prior permission. The copyright holders make
+ * no representations about the suitability of this software for any
+ * purpose. It is provided "as is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+/**
+ * @brief Weston(Wayland) IVI Shell
+ * @brief Shell for IVI(In-Vehicle Infotainment).
+ *
+ * @date Feb-08-2013
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdbool.h>
+#include <string.h>
+#include <unistd.h>
+#include <linux/input.h>
+#include <assert.h>
+#include <signal.h>
+#include <math.h>
+#include <sys/types.h>
+#include <sys/time.h>
+#include <time.h>
+
+#include <wayland-server.h>
+#include "compositor.h"
+#include "ico_ivi_common.h"
+#include "ico_ivi_shell.h"
+#include "ico_ivi_shell-server-protocol.h"
+
+/* Animation to apply at the time of indication start of the screen */
+enum animation_type {
+ ANIMATION_NONE, /* No animation */
+ ANIMATION_ZOOM, /* Zoom In */
+ ANIMATION_FADE, /* Fade In */
+ ANIMATION_SLIDE /* Slide In */
+};
+
+/* Layer management */
+struct ivi_layer_list {
+ int layer; /* Layer.ID */
+ int visible;
+ struct wl_list surface_list; /* Surfacae list */
+ struct wl_list link; /* Link pointer for layer list */
+};
+
+/* Static table for Shell */
+struct shell_surface;
+struct ivi_shell {
+ struct weston_compositor *compositor;
+ struct wl_listener destroy_listener;
+ struct weston_layer surface; /* Surface list */
+ struct ivi_layer_list ivi_layer; /* Layer list */
+ enum animation_type win_animation_type; /* Default animetion */
+ int win_visible_on_create; /* Visible on create surface */
+ struct shell_surface *active_shsurf; /* Active shell surface */
+};
+
+/* Surface type */
+enum shell_surface_type {
+ SHELL_SURFACE_NONE, /* Surface type undefine */
+ SHELL_SURFACE_TOPLEVEL, /* Top level surface for application */
+ SHELL_SURFACE_CHILD /* Child surface */
+};
+
+/* Shell surface table */
+struct shell_surface {
+ struct wl_resource resource;
+
+ struct weston_surface *surface;
+ struct wl_listener surface_destroy_listener;
+ struct weston_surface *parent;
+ struct ivi_shell *shell;
+
+ enum shell_surface_type type;
+ enum shell_surface_type next_type;
+ char *title;
+ char *class;
+
+ int geometry_x;
+ int geometry_y;
+ int geometry_width;
+ int geometry_height;
+ short visible;
+ short mapped;
+ struct ivi_layer_list *layer_list;
+ struct wl_list ivi_layer;
+
+ struct {
+ struct weston_transform transform;
+ struct weston_matrix rotation;
+ } rotation;
+
+ struct {
+ int32_t x;
+ int32_t y;
+ uint32_t flags;
+ } transient;
+
+ struct wl_list link;
+ const struct weston_shell_client *client;
+};
+
+static struct ivi_shell *default_shell = NULL;
+
+
+/* static function prototype */
+static void bind_shell(struct wl_client *client, void *data, uint32_t version, uint32_t id);
+static void unbind_shell(struct wl_resource *resource);
+static struct shell_surface *get_shell_surface(struct weston_surface *surface);
+static struct ivi_shell *shell_surface_get_shell(struct shell_surface *shsurf);
+static void ivi_shell_restack_ivi_layer(struct ivi_shell *shell,
+ struct shell_surface *shsurf);
+
+static void (*shell_hook_bind)(struct wl_client *client) = NULL;
+static void (*shell_hook_unbind)(struct wl_client *client) = NULL;
+static void (*shell_hook_create)(struct wl_client *client, struct wl_resource *resource,
+ struct weston_surface *surface,
+ struct shell_surface *shsurf) = NULL;
+static void (*shell_hook_destroy)(struct weston_surface *surface) = NULL;
+static void (*shell_hook_map)(struct weston_surface *surface, int32_t *width,
+ int32_t *height, int32_t *sx, int32_t *sy) = NULL;
+static void (*shell_hook_change)(struct weston_surface *surface, const int to,
+ const int manager) = NULL;
+static void (*shell_hook_select)(struct weston_surface *surface) = NULL;
+
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief get_animation_type: animetion type convert name to enumeration value.
+ *
+ * @param[in] animation animation name
+ * @return animetion enumeration value
+ * @retval ANIMATION_NONE no animetion
+ * @retval ANIMATION_ZOOM zoom animetion
+ * @retval ANIMATION_FADE fade animetion
+ * @retval ANIMATION_SLIDE slide animetion
+ */
+/*--------------------------------------------------------------------------*/
+static enum animation_type
+get_animation_type(char *animation)
+{
+ if (!animation)
+ return ANIMATION_NONE;
+
+ if (!strcmp("zoom", animation))
+ return ANIMATION_ZOOM;
+ else if (!strcmp("fade", animation))
+ return ANIMATION_FADE;
+ else if (!strcmp("slide", animation))
+ return ANIMATION_SLIDE;
+ else
+ return ANIMATION_NONE;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief shell_configuration: initiale configuration ico_ivi_shell
+ *
+ * @param[in] shell ico_ivi_shell static table area
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+shell_configuration(struct ivi_shell *shell)
+{
+ char *config_file;
+ char *win_animation = NULL;
+
+ struct config_key shell_keys[] = {
+ { "animation", CONFIG_KEY_STRING, &win_animation },
+ { "visible_on_create", CONFIG_KEY_INTEGER, &shell->win_visible_on_create },
+ };
+
+ struct config_section cs[] = {
+ { "shell", shell_keys, ARRAY_LENGTH(shell_keys), NULL },
+ };
+
+ config_file = config_file_path(ICO_IVI_PLUGIN_CONFIG);
+ parse_config_file(config_file, cs, ARRAY_LENGTH(cs), shell);
+ free(config_file);
+
+ shell->win_animation_type = get_animation_type(win_animation);
+
+ uifw_info("shell_configuration: Anima=%d Visible=%d Debug=%d",
+ shell->win_animation_type, shell->win_visible_on_create,
+ ico_ivi_debuglevel());
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief send_configure: send configure(resize) event to client applicstion
+ *
+ * @param[in] surface weston surface
+ * @param[in] edges surface resize position
+ * @param[in] width surface width
+ * @param[in] height surface height
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+send_configure(struct weston_surface *surface,
+ uint32_t edges, int32_t width, int32_t height)
+{
+ struct shell_surface *shsurf = get_shell_surface(surface);
+
+ wl_shell_surface_send_configure(&shsurf->resource,
+ edges, width, height);
+}
+
+static const struct weston_shell_client shell_client = {
+ send_configure
+};
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief reset_shell_surface_type: reset surface type
+ *
+ * @param[in] shsurf shell surface
+ * @return always 0
+ */
+/*--------------------------------------------------------------------------*/
+static int
+reset_shell_surface_type(struct shell_surface *shsurf)
+{
+ uifw_trace("reset_shell_surface_type: [%08x]", (int)shsurf);
+ shsurf->type = SHELL_SURFACE_NONE;
+ return 0;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief set_surface_type: set surface type
+ *
+ * @param[in] shsurf shell surface
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+set_surface_type(struct shell_surface *shsurf)
+{
+ struct weston_surface *surface = shsurf->surface;
+ struct weston_surface *pes = shsurf->parent;
+ struct shell_surface *psh;
+
+ uifw_trace("set_surface_type: [%08x] (%08x) type=%x",
+ (int)shsurf, (int)surface, (int)shsurf->next_type);
+
+ reset_shell_surface_type(shsurf);
+
+ shsurf->type = shsurf->next_type;
+ shsurf->next_type = SHELL_SURFACE_NONE;
+
+ switch (shsurf->type) {
+ case SHELL_SURFACE_TOPLEVEL:
+ break;
+ case SHELL_SURFACE_CHILD:
+ psh = get_shell_surface(pes);
+ if (psh) {
+ shsurf->geometry_x = psh->geometry_x + shsurf->transient.x;
+ shsurf->geometry_y = psh->geometry_y + shsurf->transient.y;
+ }
+ else {
+ shsurf->geometry_x = pes->geometry.x + shsurf->transient.x;
+ shsurf->geometry_y = pes->geometry.y + shsurf->transient.y;
+ }
+ break;
+ default:
+ break;
+ }
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief shell_surface_pong: recceive pong(ping reply) (NOP)
+ *
+ * @param[in] client wayland client
+ * @param[in] resource pong resource
+ * @param[in] serial event serial number
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+shell_surface_pong(struct wl_client *client, struct wl_resource *resource, uint32_t serial)
+{
+ uifw_trace("shell_surface_pong: NOP[%08x]", (int)resource->data);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief shell_surface_move: recceive move request (NOP)
+ *
+ * @param[in] client wayland client
+ * @param[in] resource move request resource
+ * @param[in] seat_resource seat resource
+ * @param[in] serial event serial number
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+shell_surface_move(struct wl_client *client, struct wl_resource *resource,
+ struct wl_resource *seat_resource, uint32_t serial)
+{
+ uifw_trace("shell_surface_move: NOP[%08x]", (int)resource->data);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief shell_surface_resize: recceive resize request (NOP)
+ *
+ * @param[in] client wayland client
+ * @param[in] resource resize request resource
+ * @param[in] seat_resource seat resource
+ * @param[in] serial event serial number
+ * @param[in] edges resize position
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+shell_surface_resize(struct wl_client *client, struct wl_resource *resource,
+ struct wl_resource *seat_resource, uint32_t serial,
+ uint32_t edges)
+{
+ uifw_trace("shell_surface_resize: NOP[%08x]", (int)resource->data);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief set_toplevel: set surface to TopLevel
+ *
+ * @param[in] shsurf shell surface
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+set_toplevel(struct shell_surface *shsurf)
+{
+ shsurf->next_type = SHELL_SURFACE_TOPLEVEL;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief shell_surface_set_toplevel: set surface to TopLevel(client interface)
+ *
+ * @param[in] client wayland client
+ * @param[in] resource set toplevel request resource
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+shell_surface_set_toplevel(struct wl_client *client, struct wl_resource *resource)
+{
+ struct shell_surface *shsurf = resource->data;
+
+ uifw_trace("shell_surface_set_toplevel: Set TopLevel[%08x] surf=%08x",
+ (int)shsurf, (int)shsurf->surface);
+
+ set_toplevel(shsurf);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief set_transient: set surface to child
+ *
+ * @param[in] shsurf shell surface
+ * @param[in] parent parent surface
+ * @param[in] x relative X position from a parent
+ * @param[in] y relative Y position from a parent
+ * @param[in] flags flag(unused)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+set_transient(struct shell_surface *shsurf,
+ struct weston_surface *parent, int x, int y, uint32_t flags)
+{
+ /* assign to parents output */
+ shsurf->parent = parent;
+ shsurf->transient.x = x;
+ shsurf->transient.y = y;
+ shsurf->transient.flags = flags;
+ shsurf->next_type = SHELL_SURFACE_CHILD;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief shell_surface_set_transient: set surface to child(client interface)
+ *
+ * @param[in] client wayland client
+ * @param[in] resource set transient request resource
+ * @param[in] parent_resource parent surface resource
+ * @param[in] x relative X position from a parent
+ * @param[in] y relative Y position from a parent
+ * @param[in] flags flag(unused)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+shell_surface_set_transient(struct wl_client *client, struct wl_resource *resource,
+ struct wl_resource *parent_resource,
+ int x, int y, uint32_t flags)
+{
+ struct shell_surface *shsurf = resource->data;
+ struct weston_surface *parent = parent_resource->data;
+
+ set_transient(shsurf, parent, x, y, flags);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief shell_surface_set_fullscreen: set surface to full screen(same as toplevel)
+ *
+ * @param[in] client wayland client
+ * @param[in] resource set fullscreen request resource
+ * @param[in] method method(unused)
+ * @param[in] framerate frame rate(unused)
+ * @param[in] output_resource output resource(unused)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+shell_surface_set_fullscreen(struct wl_client *client, struct wl_resource *resource,
+ uint32_t method, uint32_t framerate,
+ struct wl_resource *output_resource)
+{
+ struct shell_surface *shsurf = resource->data;
+ uifw_trace("shell_surface_set_fullscreen: "
+ "NOP(same as set_toplevel)[%08x]", (int)shsurf);
+ set_toplevel(shsurf);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief shell_surface_set_popup: set surface to popup(same as toplevel)
+ *
+ * @param[in] client wayland client
+ * @param[in] resource set popup request resource
+ * @param[in] seat_resource seat resource(unused)
+ * @param[in] serial event serial number(unused)
+ * @param[in] parent_resource parent resource(unused)
+ * @param[in] x relative X position from a parent(unused)
+ * @param[in] y relative Y position from a parent(unused)
+ * @param[in] flags flag(unused)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+shell_surface_set_popup(struct wl_client *client, struct wl_resource *resource,
+ struct wl_resource *seat_resource, uint32_t serial,
+ struct wl_resource *parent_resource,
+ int32_t x, int32_t y, uint32_t flags)
+{
+ struct shell_surface *shsurf = resource->data;
+ uifw_trace("shell_surface_set_popup: NOP(same as set_toplevel)[%08x]", (int)shsurf);
+ set_toplevel(shsurf);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief shell_surface_set_maximized: set surface to maximized(same as toplevel)
+ *
+ * @param[in] client wayland client
+ * @param[in] resource set maximized request resource
+ * @param[in] output_resource output resource(unused)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+shell_surface_set_maximized(struct wl_client *client, struct wl_resource *resource,
+ struct wl_resource *output_resource )
+{
+ struct shell_surface *shsurf = resource->data;
+ uifw_trace("shell_surface_set_maximized: NOP(same as set_toplevel)[%08x]", (int)shsurf);
+ set_toplevel(shsurf);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief shell_surface_set_title: set surface title
+ *
+ * @param[in] client wayland client
+ * @param[in] resource set title request resource
+ * @param[in] title surface title
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+shell_surface_set_title(struct wl_client *client,
+ struct wl_resource *resource, const char *title)
+{
+ struct shell_surface *shsurf = resource->data;
+
+ uifw_trace("shell_surface_set_title: [%08x] %s", (int)shsurf, title);
+
+ if (shsurf->title) {
+ free(shsurf->title);
+ }
+ shsurf->title = strdup(title);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief shell_surface_set_class: set surface class name
+ *
+ * @param[in] client wayland client
+ * @param[in] resource set class request resource
+ * @param[in] class surface class name
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+shell_surface_set_class(struct wl_client *client,
+ struct wl_resource *resource, const char *class)
+{
+ struct shell_surface *shsurf = resource->data;
+
+ uifw_trace("shell_surface_set_class: [%08x] %s", (int)shsurf, class);
+
+ if (shsurf->class) {
+ free(shsurf->class);
+ }
+ shsurf->class = strdup(class);
+}
+
+static const struct wl_shell_surface_interface shell_surface_implementation = {
+ shell_surface_pong,
+ shell_surface_move,
+ shell_surface_resize,
+ shell_surface_set_toplevel,
+ shell_surface_set_transient,
+ shell_surface_set_fullscreen,
+ shell_surface_set_popup,
+ shell_surface_set_maximized,
+ shell_surface_set_title,
+ shell_surface_set_class
+};
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief shell_surface_get_shell: get ico_ivi_shell static table
+ *
+ * @param[in] shsurf shell surface(if NULL, return default)
+ * @return ico_ivi_shell static table address
+ */
+/*--------------------------------------------------------------------------*/
+static struct ivi_shell *
+shell_surface_get_shell(struct shell_surface *shsurf)
+{
+ if (shsurf) {
+ return shsurf->shell;
+ }
+ return default_shell;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief destroy_shell_surface: destroy surface
+ *
+ * @param[in] shsurf shell surface
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+destroy_shell_surface(struct shell_surface *shsurf)
+{
+ uifw_trace("destroy_shell_surface: Enter[%08x]", (int)shsurf);
+
+ if (shsurf->visible != FALSE) {
+ shsurf->visible = FALSE;
+ ivi_shell_restack_ivi_layer(shell_surface_get_shell(shsurf), shsurf);
+ }
+
+ wl_list_remove(&shsurf->ivi_layer);
+
+ if (shell_hook_destroy) {
+ /* call sufrace destory hook routine */
+ uifw_trace("destroy_shell_surface: call ivi_shell_hook_destroy(%08x)",
+ (int)shsurf->surface);
+ (void) (*shell_hook_destroy) (shsurf->surface);
+ uifw_trace("destroy_shell_surface: ret");
+ }
+
+ wl_list_remove(&shsurf->surface_destroy_listener.link);
+ shsurf->surface->configure = NULL;
+
+ wl_list_remove(&shsurf->link);
+ free(shsurf);
+
+ uifw_trace("destroy_shell_surface: Leave");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief shell_destroy_shell_surface: destroy surface(client interface)
+ *
+ * @param[in] resource destroy request resource
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+shell_destroy_shell_surface(struct wl_resource *resource)
+{
+ struct shell_surface *shsurf = resource->data;
+
+ uifw_trace("shell_destroy_shell_surface: Enter [%08x]", (int)shsurf);
+
+ destroy_shell_surface(shsurf);
+
+ uifw_trace("shell_destroy_shell_surface: Leave");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief shell_handle_surface_destroy: destroy surface(listener interface)
+ *
+ * @param[in] listener listener
+ * @param[in] data user data(unused)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+shell_handle_surface_destroy(struct wl_listener *listener, void *data)
+{
+ struct shell_surface *shsurf = container_of(listener, struct shell_surface,
+ surface_destroy_listener);
+
+ uifw_trace("shell_handle_surface_destroy: Enter [%08x] data=%08x",
+ (int)shsurf, (int)data);
+
+ if (shsurf->resource.client) {
+ wl_resource_destroy(&shsurf->resource);
+ } else {
+ wl_signal_emit(&shsurf->resource.destroy_signal, &shsurf->resource);
+ destroy_shell_surface(shsurf);
+ }
+ uifw_trace("shell_handle_surface_destroy: Leave");
+}
+
+static void
+shell_surface_configure(struct weston_surface *, int32_t, int32_t);
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief get_shell_surface: get shell surface
+ *
+ * @param[in] surface weston surface
+ * @return shell surface address
+ */
+/*--------------------------------------------------------------------------*/
+static struct shell_surface *
+get_shell_surface(struct weston_surface *surface)
+{
+ if (surface->configure == shell_surface_configure)
+ return surface->private;
+ else
+ return NULL;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief create_shell_surface: create shell surface
+ *
+ * @param[in] surface weston surface
+ * @param[in] client client
+ * @return created shell surface address
+ */
+/*--------------------------------------------------------------------------*/
+static struct shell_surface *
+create_shell_surface(void *shell, struct weston_surface *surface,
+ const struct weston_shell_client *client)
+{
+ struct shell_surface *shsurf;
+
+ if (surface->configure) {
+ uifw_warn("create_shell_surface: surface->configure already set");
+ return NULL;
+ }
+
+ shsurf = calloc(1, sizeof *shsurf);
+ if (!shsurf) {
+ uifw_error("create_shell_surface: no memory to allocate shell surface");
+ return NULL;
+ }
+
+ uifw_trace("create_shell_surface: (%08x) [%08x] client=%08x (visible=%d)",
+ (int)surface, (int)shsurf, (int)client,
+ ((struct ivi_shell *)shell)->win_visible_on_create);
+
+ surface->configure = shell_surface_configure;
+ surface->private = shsurf;
+
+ shsurf->shell = (struct ivi_shell *) shell;
+ shsurf->surface = surface;
+ shsurf->visible = shsurf->shell->win_visible_on_create;
+
+ wl_signal_init(&shsurf->resource.destroy_signal);
+ shsurf->surface_destroy_listener.notify = shell_handle_surface_destroy;
+ wl_signal_add(&surface->surface.resource.destroy_signal,
+ &shsurf->surface_destroy_listener);
+
+ /* init link so its safe to always remove it in destroy_shell_surface */
+ wl_list_init(&shsurf->link);
+
+ /* empty when not in use */
+ wl_list_init(&shsurf->rotation.transform.link);
+ weston_matrix_init(&shsurf->rotation.rotation);
+
+ shsurf->type = SHELL_SURFACE_NONE;
+ shsurf->next_type = SHELL_SURFACE_NONE;
+
+ shsurf->client = client;
+
+ wl_list_init(&shsurf->ivi_layer);
+ return shsurf;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief shell_get_shell_surface: create shell surface(client interface)
+ *
+ * @param[in] client client
+ * @param[in] resource get shell surface request resource
+ * @param[in] id created shell surface object id in the client
+ * @param[in] surface_resource weston surface resource
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+shell_get_shell_surface(struct wl_client *client, struct wl_resource *resource,
+ uint32_t id, struct wl_resource *surface_resource)
+{
+ struct weston_surface *surface = surface_resource->data;
+ struct ivi_shell *shell = resource->data;
+ struct shell_surface *shsurf;
+
+ if (get_shell_surface(surface)) {
+ wl_resource_post_error(surface_resource,
+ WL_DISPLAY_ERROR_INVALID_OBJECT,
+ "ivi_shell::get_shell_surface already requested");
+ return;
+ }
+
+ uifw_trace("shell_get_shell_surface: Enter (%08x) client=%08x",
+ (int)surface, (int)client);
+
+ shsurf = create_shell_surface(shell, surface, &shell_client);
+ if (!shsurf) {
+ wl_resource_post_error(surface_resource,
+ WL_DISPLAY_ERROR_INVALID_OBJECT,
+ "surface->configure already set");
+ return;
+ }
+
+ shsurf->resource.destroy = shell_destroy_shell_surface;
+ shsurf->resource.object.id = id;
+ shsurf->resource.object.interface = &wl_shell_surface_interface;
+ shsurf->resource.object.implementation =
+ (void (**)(void)) &shell_surface_implementation;
+ shsurf->resource.data = shsurf;
+
+ wl_client_add_resource(client, &shsurf->resource);
+
+ wl_list_init(&shsurf->ivi_layer);
+ uifw_trace("shell_get_shell_surface: Init shsurf(%08x) weston_surf=%08x",
+ (int)shsurf, (int)surface);
+
+ if (shell_hook_create) {
+ /* call surface create hook routine */
+ uifw_trace("shell_get_shell_surface: call ivi_shell_hook_create(%08x,,%08x,%08x)",
+ (int)client, (int)surface, (int)shsurf);
+ (void) (*shell_hook_create)(client, resource, surface, shsurf);
+ uifw_trace("shell_get_shell_surface: ret ivi_shell_hook_create");
+ }
+ uifw_trace("shell_get_shell_surface: Leave");
+}
+
+static const struct wl_shell_interface shell_implementation = {
+ shell_get_shell_surface
+};
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief weston_surface_set_initial_position: set surface initial position
+ *
+ * @param[in] surface weston surface
+ * @param[in] shell ico_ivi_shell static table address
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+weston_surface_set_initial_position(struct weston_surface *surface, struct ivi_shell *shell)
+{
+ struct weston_output *output, *target_output;
+
+ if (shell->win_visible_on_create) {
+ wl_list_for_each (output, &shell->compositor->output_list, link) {
+ target_output = output;
+ break;
+ }
+ if (! target_output) {
+ weston_surface_set_position(surface, (float)(10 + random() % 400),
+ (float)(10 + random() % 400));
+ }
+ else {
+ int range_x = target_output->width - surface->geometry.width;
+ int range_y = target_output->height - surface->geometry.height;
+ if (range_x < 0) range_x = 400;
+ if (range_y < 0) range_y = 400;
+ weston_surface_set_position(surface, (float)(random() % range_x),
+ (float)(random() % range_y));
+ }
+ }
+ else {
+ weston_surface_set_position(surface, (float)0.0, (float)0.0);
+ }
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief map: surface initial mapping to screen
+ *
+ * @param[in] shell ico_ivi_shell static table address
+ * @param[in] surface weston surface
+ * @param[in] width surface width
+ * @param[in] height surface height
+ * @param[in] sx surface upper-left X position on screen
+ * @param[in] sy surface upper-left Y position on screen
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+map(struct ivi_shell *shell, struct weston_surface *surface,
+ int32_t width, int32_t height, int32_t sx, int32_t sy)
+{
+ struct shell_surface *shsurf = get_shell_surface(surface);
+ enum shell_surface_type surface_type = shsurf->type;
+ struct weston_surface *parent;
+
+ uifw_trace("map: Enter(%08x) sx/sy=%d/%d, w/h=%d/%d",
+ (int)surface, ((int)sx)/256, ((int)sy)/256, width, height);
+
+ shsurf->mapped = 1;
+ surface->geometry.width = width;
+ surface->geometry.height = height;
+ shsurf->geometry_x = sx;
+ shsurf->geometry_y = sy;
+ shsurf->geometry_width = width;
+ shsurf->geometry_height = height;
+ surface->geometry.dirty = 1;
+
+ /* initial positioning, see also configure() */
+ switch (surface_type) {
+ case SHELL_SURFACE_TOPLEVEL:
+ weston_surface_set_initial_position(surface, shell);
+ uifw_trace("map: TopLevel x/y=%d/%d w/h=%d/%d",
+ (int)surface->geometry.x, (int)surface->geometry.y,
+ (int)surface->geometry.width, (int)surface->geometry.height);
+ shsurf->geometry_x = surface->geometry.x;
+ shsurf->geometry_x = surface->geometry.y;
+ break;
+ case SHELL_SURFACE_NONE:
+ weston_surface_set_position(surface, (float)(surface->geometry.x + sx),
+ (float)(surface->geometry.y + sy));
+ break;
+ default:
+ ;
+ }
+ if ((ico_option_flag() & ICO_OPTION_FLAG_UNVISIBLE) && (shsurf->visible == FALSE)) {
+ surface->geometry.x = (float)(ICO_IVI_MAX_COORDINATE+1);
+ surface->geometry.y = (float)(ICO_IVI_MAX_COORDINATE+1);
+ }
+
+ switch (surface_type) {
+ case SHELL_SURFACE_CHILD:
+ parent = shsurf->parent;
+ wl_list_insert(parent->layer_link.prev, &surface->layer_link);
+ break;
+ case SHELL_SURFACE_NONE:
+ break;
+ default:
+ if (! shsurf->layer_list) {
+ ivi_shell_set_layer(shsurf, ICO_IVI_DEFAULT_LAYER);
+ }
+ break;
+ }
+
+ if (surface_type != SHELL_SURFACE_NONE) {
+ weston_surface_update_transform(surface);
+ ivi_shell_restack_ivi_layer(shell, shsurf);
+ }
+
+ if (surface_type == SHELL_SURFACE_TOPLEVEL) {
+ switch (shell->win_animation_type) {
+ case ANIMATION_FADE:
+ weston_fade_run(surface, NULL, NULL);
+ break;
+ case ANIMATION_ZOOM:
+ weston_zoom_run(surface, 0.8, 1.0, NULL, NULL);
+ break;
+ case ANIMATION_SLIDE:
+ weston_slide_run(surface, (float)surface->geometry.height, 0.0, NULL, NULL);
+ break;
+ default:
+ break;
+ }
+ }
+
+ if (shell_hook_map) {
+ /* Surface map hook routine */
+ uifw_trace("map: call ivi_shell_hook_map(%08x, x/y=%d/%d, w/h=%d/%d)",
+ (int)surface, sx, sy, width, height);
+ (void) (*shell_hook_map) (surface, &width, &height, &sx, &sy);
+ uifw_trace("map: ret ivi_shell_hook_map(%08x, x/y=%d/%d, w/h=%d/%d)",
+ (int)surface, sx, sy, width, height);
+ }
+
+ if (shell_hook_change) {
+ /* Surface change hook routine */
+ uifw_trace("map: call ivi_shell_hook_change(%08x)", (int)surface);
+ (void) (*shell_hook_change)(surface, -1, 1); /* Send to Manager */
+ uifw_trace("map: ret ivi_shell_hook_change")
+ }
+ uifw_trace("map: Leave");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief configure: surface change
+ *
+ * @param[in] shell ico_ivi_shell static table address
+ * @param[in] surface weston surface
+ * @param[in] x surface upper-left X position on screen
+ * @param[in] y surface upper-left Y position on screen
+ * @param[in] width surface width
+ * @param[in] height surface height
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+configure(struct ivi_shell *shell, struct weston_surface *surface,
+ GLfloat x, GLfloat y, int32_t width, int32_t height)
+{
+ enum shell_surface_type surface_type = SHELL_SURFACE_NONE;
+ struct shell_surface *shsurf;
+
+ shsurf = get_shell_surface(surface);
+
+ uifw_trace("configure: Enter(%08x) [%08x] x/y=%d/%d, w/h=%d/%d",
+ (int)surface, (int)shsurf, (int)x, (int)y, width, height);
+
+ if (shsurf) {
+ surface_type = shsurf->type;
+ shsurf->geometry_x = (int)x;
+ shsurf->geometry_y = (int)y;
+ shsurf->geometry_width = width;
+ shsurf->geometry_height = height;
+ ivi_shell_surface_configure(shsurf, x, y, width, height);
+ }
+ else {
+ surface->geometry.x = x;
+ surface->geometry.y = y;
+ surface->geometry.width = width;
+ surface->geometry.height = height;
+ surface->geometry.dirty = 1;
+ }
+
+ if (surface->output) {
+ weston_surface_update_transform(surface);
+ }
+
+ uifw_trace("configure: Leave");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief shell_surface_configure: shell surface change
+ *
+ * @param[in] es weston surface
+ * @param[in] sx surface upper-left X position on screen
+ * @param[in] sy surface upper-left Y position on screen
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+shell_surface_configure(struct weston_surface *es, int32_t sx, int32_t sy)
+{
+ struct shell_surface *shsurf = get_shell_surface(es);
+ struct ivi_shell *shell = shsurf->shell;
+ int type_changed = 0;
+ int num_mgr;
+
+ uifw_trace("shell_surface_configure: Enter(surf=%08x out=%08x buf=%08x)",
+ (int)es, (int)es->output, (int)es->buffer);
+
+ if (shsurf->next_type != SHELL_SURFACE_NONE &&
+ shsurf->type != shsurf->next_type) {
+ set_surface_type(shsurf);
+ type_changed = 1;
+ }
+
+ if (! weston_surface_is_mapped(es)) {
+ if ((es->geometry.width > 0) && (es->geometry.height >0)) {
+ uifw_trace("shell_surface_configure: map Surface size(sx/sy=%d/%d w/h=%d/%d)",
+ sx, sy, es->buffer->width, es->buffer->height);
+ map(shell, es, es->geometry.width, es->geometry.height, sx, sy);
+ }
+ else {
+ uifw_trace("shell_surface_configure: map Buffer size(sx/sy=%d/%d w/h=%d/%d)",
+ sx, sy, es->buffer->width, es->buffer->height);
+ map(shell, es, es->buffer->width, es->buffer->height, sx, sy);
+ }
+ }
+ else {
+ if ((shsurf->mapped == 0) && (es->buffer != NULL)) {
+ if ((es->geometry.width > 0) && (es->geometry.height >0)) {
+ uifw_trace("shell_surface_configure: map Surface size(sx/sy=%d/%d w/h=%d/%d)",
+ sx, sy, es->buffer->width, es->buffer->height);
+ map(shell, es, es->geometry.width, es->geometry.height, sx, sy);
+ }
+ else {
+ uifw_trace("shell_surface_configure: map Buffer size(sx/sy=%d/%d w/h=%d/%d)",
+ sx, sy, es->buffer->width, es->buffer->height);
+ map(shell, es, es->buffer->width, es->buffer->height, sx, sy);
+ }
+ }
+
+ GLfloat from_x, from_y;
+ GLfloat to_x, to_y;
+
+ weston_surface_to_global_float(es, 0, 0, &from_x, &from_y);
+ weston_surface_to_global_float(es, sx, sy, &to_x, &to_y);
+
+ if ((es->geometry.width <= 0) || (es->geometry.height <= 0)) {
+ num_mgr = 0;
+ }
+ else {
+ /* Surface change request from App */
+ uifw_trace("shell_surface_configure: App request change(sx/sy=%d/%d w/h=%d/%d)",
+ sx, sy, es->buffer->width, es->buffer->height);
+ es->geometry.width = shsurf->geometry_width;
+ es->geometry.height = shsurf->geometry_height;
+ es->geometry.x = shsurf->geometry_x;
+ es->geometry.y = shsurf->geometry_y;
+ if (es->geometry.width > es->buffer->width) {
+ es->geometry.width = es->buffer->width;
+ es->geometry.x = shsurf->geometry_x +
+ (shsurf->geometry_width - es->geometry.width)/2;
+ }
+ if (es->geometry.height > es->buffer->height) {
+ es->geometry.height = es->buffer->height;
+ es->geometry.y = shsurf->geometry_y +
+ (shsurf->geometry_height - es->geometry.height)/2;
+ }
+ ivi_shell_surface_configure(shsurf, es->geometry.x, es->geometry.y,
+ es->geometry.width, es->geometry.height);
+ uifw_trace("shell_surface_configure: w/h=%d/%d->%d/%d x/y=%d/%d->%d/%d",
+ shsurf->geometry_width, shsurf->geometry_height,
+ es->geometry.width, es->geometry.height,
+ shsurf->geometry_x, shsurf->geometry_y,
+ (int)es->geometry.x, (int)es->geometry.y);
+ num_mgr = ico_ivi_send_surface_change(es,
+ shsurf->geometry_x + to_x -from_x,
+ shsurf->geometry_y + to_y - from_y,
+ es->buffer->width, es->buffer->height);
+ uifw_trace("shell_surface_configure: ret ivi_shell_hook_change(%d)", num_mgr)
+ }
+ if (num_mgr <= 0) {
+ /* manager not exist, change surface */
+ uifw_trace("shell_surface_configure: configure to Buffer size(no Manager) "
+ "x=%d+%d-%d y=%d+%d-%d",
+ (int)es->geometry.x, (int)to_x, (int)from_x,
+ (int)es->geometry.y, (int)to_y, (int)from_y);
+ if ((es->geometry.x > ICO_IVI_MAX_COORDINATE) &&
+ (es->geometry.y > ICO_IVI_MAX_COORDINATE) &&
+ (shsurf->visible)) {
+ es->geometry.x = 0;
+ es->geometry.y = 0;
+ }
+ configure(shell, es,
+ es->geometry.x + to_x - from_x,
+ es->geometry.y + to_y - from_y,
+ es->buffer->width, es->buffer->height);
+ }
+ }
+ uifw_trace("shell_surface_configure: Leave(surf=%08x out=%08x buf=%08x)",
+ (int)es, (int)es->output, (int)es->buffer);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief bind_shell: client bind shell
+ *
+ * @param[in] client client(ex.HomeScreen)
+ * @param[in] data user data(ico_ivi_shell static table address)
+ * @param[in] version interface version number(unused)
+ * @param[in] id client object id
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+bind_shell(struct wl_client *client, void *data, uint32_t version, uint32_t id)
+{
+ struct ivi_shell *shell = data;
+ struct wl_resource *resource;
+
+ uifw_trace("bind_shell: client=%08x id=%d", (int)client, (int)id);
+
+ resource = wl_client_add_object(client, &wl_shell_interface,
+ &shell_implementation, id, shell);
+
+ resource->destroy = unbind_shell;
+
+ if (shell_hook_bind) {
+ (*shell_hook_bind)(client);
+ }
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief unbind_shell: client unbind shell
+ *
+ * @param[in] resource unbind request resource
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+unbind_shell(struct wl_resource *resource)
+{
+ uifw_trace("unbind_shell");
+
+ if (shell_hook_unbind) {
+ (*shell_hook_unbind)(resource->client);
+ }
+ free(resource);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief unbind_ivi_shell: client unbind ico_ivi_shell
+ *
+ * @param[in] resource unbind request resource
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+unbind_ivi_shell(struct wl_resource *resource)
+{
+ uifw_trace("unbind_ivi_shell");
+ free(resource);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief bind_ivi_shell: client bind ico_ivi_shell
+ *
+ * @param[in] client client(ex.HomeScreen)
+ * @param[in] data user data(ico_ivi_shell static table address)
+ * @param[in] version interface version number(unused)
+ * @param[in] id client object id
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+bind_ivi_shell(struct wl_client *client,
+ void *data, uint32_t version, uint32_t id)
+{
+ struct ivi_shell *shell = data;
+ struct wl_resource *resource;
+
+ resource = wl_client_add_object(client, &ico_ivi_shell_interface,
+ NULL, id, shell);
+
+ uifw_trace("bind_ivi_shell: client=%08x id=%d", (int)client, (int)id);
+
+ resource->destroy = unbind_ivi_shell;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief shell_destroy: destroy ico_ivi_shell
+ *
+ * @param[in] listener shell destroy listener
+ * @param[in] data user data(unused)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+shell_destroy(struct wl_listener *listener, void *data)
+{
+ struct ivi_shell *shell =
+ container_of(listener, struct ivi_shell, destroy_listener);
+
+ uifw_trace("shell_destroy");
+
+ free(shell);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ivi_shell_restack_ivi_layer: rebuild compositor surface list
+ *
+ * @param[in] shell ico_ivi_shell static table address
+ * @param[in] shsurf target shell surface(if NULL, no need change surface)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+ivi_shell_restack_ivi_layer(struct ivi_shell *shell, struct shell_surface *shsurf)
+{
+ struct shell_surface *es;
+ struct ivi_layer_list *el;
+ float new_x, new_y;
+
+ uifw_trace("ivi_shell_restack_ivi_layer: Enter[%08x]", (int)shsurf);
+
+ /* make compositor surface list */
+ wl_list_init(&shell->surface.surface_list);
+ wl_list_for_each (el, &shell->ivi_layer.link, link) {
+ if (ico_option_flag() & ICO_OPTION_FLAG_UNVISIBLE) {
+ wl_list_for_each (es, &el->surface_list, ivi_layer) {
+ if (es->surface != NULL) {
+ if ((el->visible == FALSE) || (es->visible == FALSE)) {
+ new_x = (float)(ICO_IVI_MAX_COORDINATE+1);
+ new_y = (float)(ICO_IVI_MAX_COORDINATE+1);
+ }
+ else if (es->surface->buffer) {
+ if (es->geometry_width > es->surface->buffer->width) {
+ new_x = (float)(es->geometry_x +
+ (es->geometry_width - es->surface->geometry.width)/2);
+ }
+ else {
+ new_x = (float)es->geometry_x;
+ }
+ if (es->geometry_height > es->surface->buffer->height) {
+ new_y = (float) (es->geometry_y +
+ (es->geometry_height - es->surface->geometry.height)/2);
+ }
+ else {
+ new_y = (float)es->geometry_y;
+ }
+ }
+ else {
+ new_x = (float)(ICO_IVI_MAX_COORDINATE+1);
+ new_y = (float)(ICO_IVI_MAX_COORDINATE+1);
+ }
+ wl_list_insert(shell->surface.surface_list.prev,
+ &es->surface->layer_link);
+ if ((new_x != es->surface->geometry.x) ||
+ (new_y != es->surface->geometry.y)) {
+ weston_surface_damage_below(es->surface);
+ es->surface->geometry.x = new_x;
+ es->surface->geometry.y = new_y;
+ weston_surface_damage_below(es->surface);
+ }
+ }
+ }
+ }
+ else {
+ if (el->visible != FALSE) {
+ wl_list_for_each (es, &el->surface_list, ivi_layer) {
+ if ((es->visible != FALSE) && (es->surface) &&
+ (es->surface->output != NULL) &&
+ (es->surface->shader != NULL)) {
+ wl_list_insert(shell->surface.surface_list.prev,
+ &es->surface->layer_link);
+ }
+ }
+ }
+ }
+ }
+
+ /* damage(redraw) target surfacem if target exist */
+ if (shsurf) {
+ weston_surface_damage_below(shsurf->surface);
+ }
+
+ /* composit and draw screen(plane) */
+ weston_compositor_schedule_repaint(shell->compositor);
+
+ uifw_trace("ivi_shell_restack_ivi_layer: Leave");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief click_to_activate_binding: clieck and select surface
+ *
+ * @param[in] seat clicked target seat
+ * @param[in] button click button(unused)
+ * @param[in] data user data(ico_ivi_shell static table address)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+click_to_activate_binding(struct wl_seat *seat, uint32_t time, uint32_t button, void *data)
+{
+ struct ivi_shell *shell = data;
+ struct shell_surface *shsurf;
+ struct weston_surface *surface;
+
+ if ((! seat) || (! seat->pointer) || (! seat->pointer->focus)) {
+ uifw_trace("click_to_activate_binding: Surface dose not exist");
+ }
+ else {
+ surface = (struct weston_surface *) seat->pointer->focus;
+ shsurf = get_shell_surface(surface);
+ if (! shsurf) {
+ uifw_trace("click_to_activate_binding: Shell surface dose not exist");
+ }
+ else if ((shsurf->type == SHELL_SURFACE_NONE) ||
+ (shsurf->visible == 0)) {
+ uifw_trace("click_to_activate_binding: Surface[%08x] is not visible",
+ (int)shsurf);
+ }
+ else if (shell_hook_select) {
+ if (shell->active_shsurf != shsurf) {
+ shell->active_shsurf = shsurf;
+ /* surface select hook routine */
+ uifw_trace("click_to_activate_binding: call ivi_shell_hook_select[%08x]",
+ (int)shsurf);
+ (void) (*shell_hook_select)(surface);
+ uifw_trace("click_to_activate_binding: ret ivi_shell_hook_select")
+ }
+ else {
+ uifw_trace("click_to_activate_binding: ShellSurface[%08x] already active",
+ (int)shsurf);
+ }
+ }
+ else {
+ uifw_trace("click_to_activate_binding: no hook[%08x]", (int)shsurf);
+ }
+ }
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ivi_shell_set_visible: surface visible control
+ * API for other weston plugin
+ *
+ * @param[in] shsurf shell surface
+ * @param[in] visible visibility(1=visible/0=unvisible)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT void
+ivi_shell_set_visible(struct shell_surface *shsurf, const int visible)
+{
+ struct ivi_shell *shell = shell_surface_get_shell(shsurf);
+ int next;
+
+ uifw_trace("ivi_shell_set_visible: [%08x] visible=%d", (int)shsurf, (int)visible);
+
+ if (visible < 0) {
+ next = shell->win_visible_on_create;
+ }
+ else {
+ next = visible;
+ }
+
+ if ((shsurf->visible != FALSE) && (next == 0)) {
+ /* change show ==> hide */
+ shsurf->visible = FALSE;
+ ivi_shell_restack_ivi_layer(shell, shsurf);
+ }
+ else if ((shsurf->visible == FALSE) && (next != 0)) {
+ /* change hide ==> show */
+ shsurf->visible = TRUE;
+ ivi_shell_restack_ivi_layer(shell, shsurf);
+ }
+ else {
+ /* other case, no change */
+ uifw_trace("ivi_shell_set_visible: No change");
+ }
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ivi_shell_is_visible: get surface visibility
+ * API for other weston plugin
+ *
+ * @param[in] shsurf shell surface
+ * @return visibility
+ * @retval true visible
+ * @retval false unvisible
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT bool
+ivi_shell_is_visible(struct shell_surface *shsurf)
+{
+ return(shsurf->visible);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ivi_shell_set_layer: set(or change) surface layer
+ * API for other weston plugin
+ *
+ * @param[in] shsurf shell surface
+ * @param[in] layer layer id
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT void
+ivi_shell_set_layer(struct shell_surface *shsurf, const int layer)
+{
+ struct ivi_shell *shell;
+ struct ivi_layer_list *el;
+ struct ivi_layer_list *new_el;
+
+ uifw_trace("ivi_shell_set_layer: Enter([%08x],%08x,%d)",
+ (int)shsurf, (int)shsurf->surface, layer);
+
+ shell = shell_surface_get_shell(shsurf);
+
+ /* check if same layer */
+ if ((shsurf->layer_list != NULL) && (shsurf->layer_list->layer == layer)) {
+ uifw_trace("ivi_shell_set_layer: Leave(Same Layer)");
+ return;
+ }
+
+ /* search existing layer */
+ wl_list_for_each (el, &shell->ivi_layer.link, link) {
+ uifw_trace("ivi_shell_set_layer: el=%08x(%d)", (int)el, el->layer);
+ if (el->layer == layer) break;
+ }
+
+ if (&el->link == &shell->ivi_layer.link) {
+ /* layer not exist, create new layer */
+ uifw_trace("ivi_shell_set_layer: New Layer %d", layer);
+ new_el = malloc(sizeof(struct ivi_layer_list));
+ if (! new_el) {
+ uifw_trace("ivi_shell_set_layer: Leave(No Memory)");
+ return;
+ }
+
+ memset(new_el, 0, sizeof(struct ivi_layer_list));
+ new_el->layer = layer;
+ new_el->visible = TRUE;
+ wl_list_init(&new_el->surface_list);
+ wl_list_init(&new_el->link);
+
+ wl_list_remove(&shsurf->ivi_layer);
+ wl_list_insert(&new_el->surface_list, &shsurf->ivi_layer);
+ shsurf->layer_list = new_el;
+
+ wl_list_for_each (el, &shell->ivi_layer.link, link) {
+ if (layer >= el->layer) break;
+ }
+ if (&el->link == &shell->ivi_layer.link) {
+ wl_list_insert(shell->ivi_layer.link.prev, &new_el->link);
+ }
+ else {
+ wl_list_insert(el->link.prev, &new_el->link);
+ }
+ }
+ else {
+ uifw_trace("ivi_shell_set_layer: Add surface to Layer %d", layer);
+ wl_list_remove(&shsurf->ivi_layer);
+ wl_list_insert(&el->surface_list, &shsurf->ivi_layer);
+ shsurf->layer_list = el;
+ }
+
+ /* rebild compositor surface list */
+ ivi_shell_restack_ivi_layer(shell, shsurf);
+
+ uifw_trace("ivi_shell_set_layer: Leave");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ivi_shell_set_raise: surface stack control
+ * API for other weston plugin
+ *
+ * @param[in] shsurf shell surface
+ * @param[in] raise raise/lower(1=raise/0=lower)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT void
+ivi_shell_set_raise(struct shell_surface *shsurf, const int raise)
+{
+ uifw_trace("ivi_shell_set_raise: Enter(%08x,%d) layer_list=%08x",
+ (int)shsurf->surface, raise, (int)shsurf->layer_list);
+
+ wl_list_remove(&shsurf->ivi_layer);
+ if (raise) {
+ /* raise ... surface stack to top of layer */
+ wl_list_insert(&shsurf->layer_list->surface_list, &shsurf->ivi_layer);
+ uifw_trace("ivi_shell_set_raise: Raise Link to Top");
+ }
+ else {
+ /* Lower ... surface stack to bottom of layer */
+ wl_list_insert(shsurf->layer_list->surface_list.prev, &shsurf->ivi_layer);
+ uifw_trace("ivi_shell_set_raise: Lower Link to Bottom");
+ }
+
+ /* rebild compositor surface list */
+ ivi_shell_restack_ivi_layer(shell_surface_get_shell(shsurf), shsurf);
+
+ uifw_trace("ivi_shell_set_raise: Leave");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ivi_shell_set_toplevel: set surface type toplevel
+ * API for other weston plugin
+ *
+ * @param[in] shsurf shell surface
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT void
+ivi_shell_set_toplevel(struct shell_surface *shsurf)
+{
+ uifw_trace("ivi_shell_set_toplevel: (%08x)", (int)shsurf->surface);
+ set_toplevel(shsurf);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ivi_shell_set_surface_type: set surface type
+ * API for other weston plugin
+ *
+ * @param[in] shsurf shell surface
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT void
+ivi_shell_set_surface_type(struct shell_surface *shsurf)
+{
+ uifw_trace("ivi_shell_set_surfacetype: (%08x)", (int)shsurf->surface);
+ set_surface_type(shsurf);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ivi_shell_send_configure: send surface resize event
+ * API for other weston plugin
+ *
+ * @param[in] shsurf shell surface
+ * @param[in] id client object id(unused)
+ * @param[in] edges surface resize position
+ * @param[in] width surface width
+ * @param[in] height surface height
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT void
+ivi_shell_send_configure(struct shell_surface *shsurf, const int id,
+ const int edges, const int width, const int height)
+{
+ /* send cgange event to manager */
+ uifw_trace("ivi_shell_send_configure: (%08x) edges=%x w/h=%d/%d",
+ (int)shsurf->surface, edges, width, height);
+ shsurf->geometry_width = width;
+ shsurf->geometry_height = height;
+ wl_shell_surface_send_configure(&shsurf->resource, edges, width, height);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ivi_shell_set_positionsize: set surface position and size
+ * API for other weston plugin
+ *
+ * @param[in] shsurf shell surface
+ * @param[in] x surface upper-left X position on screen
+ * @param[in] y surface upper-left Y position on screen
+ * @param[in] width surface width
+ * @param[in] height surface height
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT void
+ivi_shell_set_positionsize(struct shell_surface *shsurf,
+ const int x, const int y, const int width, const int height)
+{
+ shsurf->geometry_x = x;
+ shsurf->geometry_y = y;
+ shsurf->geometry_width = width;
+ shsurf->geometry_height = height;
+
+ weston_compositor_schedule_repaint(shell_surface_get_shell(shsurf)->compositor);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ivi_shell_set_layer_visible: layer visible control
+ * API for other weston plugin
+ *
+ * @param[in] layer layer id
+ * @param[in] visible visibility(1=visible/0=unvisible)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT void
+ivi_shell_set_layer_visible(const int layer, const int visible)
+{
+ struct ivi_shell *shell;
+ struct ivi_layer_list *el;
+ struct ivi_layer_list *new_el;
+ struct shell_surface *es;
+
+ uifw_trace("ivi_shell_set_layer_visible: Enter(layer=%d, visible=%d)", layer, visible);
+
+ shell = shell_surface_get_shell(NULL);
+
+ /* Search Layer */
+ wl_list_for_each (el, &shell->ivi_layer.link, link) {
+ if (el->layer == layer) break;
+ }
+
+ if (&el->link == &shell->ivi_layer.link) {
+ /* layer not exist, create new layer */
+ uifw_trace("ivi_shell_set_layer_visible: New Layer %d", layer);
+ new_el = malloc(sizeof(struct ivi_layer_list));
+ if (! new_el) {
+ uifw_trace("ivi_shell_set_layer_visible: Leave(No Memory)");
+ return;
+ }
+
+ memset(new_el, 0, sizeof(struct ivi_layer_list));
+ new_el->layer = layer;
+ new_el->visible = TRUE;
+ wl_list_init(&new_el->surface_list);
+ wl_list_init(&new_el->link);
+
+ wl_list_for_each (el, &shell->ivi_layer.link, link) {
+ if (layer >= el->layer) break;
+ }
+ if (&el->link == &shell->ivi_layer.link) {
+ wl_list_insert(shell->ivi_layer.link.prev, &new_el->link);
+ }
+ else {
+ wl_list_insert(el->link.prev, &new_el->link);
+ }
+ uifw_trace("ivi_shell_set_layer_visible: Leave(new layer)");
+ return;
+ }
+
+ /* control all surface in layer */
+ if ((el->visible != FALSE) && (visible == 0)) {
+ /* layer change to NOT visible */
+ uifw_trace("ivi_shell_set_layer_visible: change to not visible");
+ el->visible = FALSE;
+ }
+ else if ((el->visible == FALSE) && (visible != 0)) {
+ /* layer change to visible */
+ uifw_trace("ivi_shell_set_layer_visible: change to visible");
+ el->visible = TRUE;
+ }
+ else {
+ /* no change */
+ uifw_trace("ivi_shell_set_layer_visible: Leave(no Change %d=>%d)",
+ el->visible, visible);
+ return;
+ }
+
+ /* set damege area */
+ wl_list_for_each (es, &el->surface_list, ivi_layer) {
+ if ((es->visible != FALSE) &&
+ (es->surface->output != NULL) &&
+ (es->surface->shader != NULL)) {
+ /* Damage(redraw) target surface */
+ weston_surface_damage_below(es->surface);
+ }
+ }
+
+ /* rebild compositor surface list */
+ ivi_shell_restack_ivi_layer(shell, NULL);
+
+ uifw_trace("ivi_shell_set_layer_visible: Leave");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ivi_shell_surface_configure: surface change
+ * API for other weston plugin
+ *
+ * @param[in] shsurf shell surface
+ * @param[in] x surface upper-left X position on screen
+ * @param[in] y surface upper-left Y position on screen
+ * @param[in] width surface width
+ * @param[in] height surface height
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT void
+ivi_shell_surface_configure(struct shell_surface *shsurf, const int x,
+ const int y, const int width, const int height)
+{
+ int set_unvisible = 0;
+
+ if (ico_option_flag() & ICO_OPTION_FLAG_UNVISIBLE) {
+ if ((shsurf->surface != NULL) && (shsurf->surface->buffer != NULL) &&
+ (shsurf->surface->output != NULL) && (shsurf->surface->shader != NULL)) {
+ if ((shsurf->visible == FALSE) ||
+ ((shsurf->layer_list != NULL) &&
+ (shsurf->layer_list->visible == FALSE))) {
+ set_unvisible = 1;
+ }
+ }
+ }
+ if (set_unvisible) {
+ uifw_trace("ivi_shell_surface_configure: %08x %d,%d(%d/%d) unvisible",
+ (int)shsurf, x, y, width, height);
+ weston_surface_configure(shsurf->surface,
+ ICO_IVI_MAX_COORDINATE+1, ICO_IVI_MAX_COORDINATE+1,
+ width, height);
+ }
+ else {
+ uifw_trace("ivi_shell_surface_configure: %08x %d,%d(%d/%d) visible",
+ (int)shsurf, x, y, width, height);
+ weston_surface_configure(shsurf->surface, x, y, width, height);
+ }
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ivi_shell_hook_bind: regist hook function for shell bind
+ * API for other weston plugin
+ *
+ * @param[in] hook_bind hook function(if NULL, reset hook function)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT void
+ivi_shell_hook_bind(void (*hook_bind)(struct wl_client *client))
+{
+ uifw_trace("ivi_shell_hook_bind: Hook %08x", (int)hook_bind);
+ shell_hook_bind = hook_bind;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ivi_shell_hook_unbind: regist hook function for shell unbind
+ * API for other weston plugin
+ *
+ * @param[in] hook_unbind hook function(if NULL, reset hook function)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT void
+ivi_shell_hook_unbind(void (*hook_unbind)(struct wl_client *client))
+{
+ uifw_trace("ivi_shell_hook_unbind: Hook %08x", (int)hook_unbind);
+ shell_hook_unbind = hook_unbind;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ivi_shell_hook_create: regist hook function for create shell surface
+ * API for other weston plugin
+ *
+ * @param[in] hook_create hook function(if NULL, reset hook function)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT void
+ivi_shell_hook_create(void (*hook_create)(struct wl_client *client,
+ struct wl_resource *resource, struct weston_surface *surface,
+ struct shell_surface *shsurf))
+{
+ uifw_trace("ivi_shell_hook_create: Hook %08x", (int)hook_create);
+ shell_hook_create = hook_create;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ivi_shell_hook_destroy: regist hook function for destroy shell surface
+ * API for other weston plugin
+ *
+ * @param[in] hook_destroy hook function(if NULL, reset hook function)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT void
+ivi_shell_hook_destroy(void (*hook_destroy)(struct weston_surface *surface))
+{
+ uifw_trace("ivi_shell_hook_destroy: Hook %08x", (int)hook_destroy);
+ shell_hook_destroy = hook_destroy;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ivi_shell_hook_map: regist hook function for map shell surface
+ * API for other weston plugin
+ *
+ * @param[in] hook_map hook function(if NULL, reset hook function)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT void
+ivi_shell_hook_map(void (*hook_map)(struct weston_surface *surface,
+ int32_t *width, int32_t *height, int32_t *sx, int32_t *sy))
+{
+ uifw_trace("ivi_shell_hook_map: Hook %08x", (int)hook_map);
+ shell_hook_map = hook_map;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ivi_shell_hook_change: regist hook function for change shell surface
+ * API for other weston plugin
+ *
+ * @param[in] hook_change hook function(if NULL, reset hook function)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT void
+ivi_shell_hook_change(void (*hook_change)(struct weston_surface *surface,
+ const int to, const int manager))
+{
+ uifw_trace("ivi_shell_hook_change: Hook %08x", (int)hook_change);
+ shell_hook_change = hook_change;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ivi_shell_hook_select: regist hook function for select(active) shell surface
+ * API for other weston plugin
+ *
+ * @param[in] hook_select hook function(if NULL, reset hook function)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT void
+ivi_shell_hook_select(void (*hook_select)(struct weston_surface *surface))
+{
+ uifw_trace("ivi_shell_hook_select: Hook %08x", (int)hook_select);
+ shell_hook_select = hook_select;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief module_init: initialize ico_ivi_shell
+ * this function called from ico_pluign_loader
+ *
+ * @param[in] es weston compositor
+ * @return result
+ * @retval 0 sccess
+ * @retval -1 error
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT int
+module_init(struct weston_compositor *ec)
+{
+ struct ivi_shell *shell;
+
+ uifw_info("ico_ivi_shell: Enter(module_init)");
+
+ shell = malloc(sizeof *shell);
+ if (shell == NULL) return -1;
+ default_shell = shell;
+
+ memset(shell, 0, sizeof *shell);
+ shell->compositor = ec;
+
+ shell->destroy_listener.notify = shell_destroy;
+ wl_signal_add(&ec->destroy_signal, &shell->destroy_listener);
+ ec->shell_interface.shell = shell;
+ ec->shell_interface.create_shell_surface = create_shell_surface;
+ ec->shell_interface.set_toplevel = set_toplevel;
+ ec->shell_interface.set_transient = set_transient;
+
+ wl_list_init(&shell->ivi_layer.link);
+ weston_layer_init(&shell->surface, &ec->cursor_layer.link);
+
+ uifw_trace("ico_ivi_shell: shell(%08x) ivi_layer.link.%08x=%08x/%08x",
+ (int)shell, (int)&shell->ivi_layer.link,
+ (int)shell->ivi_layer.link.next, (int)shell->ivi_layer.link.prev);
+
+ shell_configuration(shell);
+
+ if (wl_display_add_global(ec->wl_display, &wl_shell_interface, shell, bind_shell)
+ == NULL) {
+ return -1;
+ }
+ if (wl_display_add_global(ec->wl_display, &ico_ivi_shell_interface,
+ shell, bind_ivi_shell) == NULL) {
+ return -1;
+ }
+
+ weston_compositor_add_button_binding(ec, BTN_LEFT, 0,
+ click_to_activate_binding, shell);
+
+ uifw_info("ico_ivi_shell: Leave(module_init)");
+ return 0;
+}
+
diff --git a/src/ico_ivi_shell.h b/src/ico_ivi_shell.h
new file mode 100644
index 0000000..2a0d9da
--- /dev/null
+++ b/src/ico_ivi_shell.h
@@ -0,0 +1,75 @@
+/*
+ * Copyright © 2010-2011 Intel Corporation
+ * Copyright © 2008-2011 Kristian Høgsberg
+ * Copyright © 2013 TOYOTA MOTOR CORPORATION.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of the copyright holders not be used in
+ * advertising or publicity pertaining to distribution of the software
+ * without specific, written prior permission. The copyright holders make
+ * no representations about the suitability of this software for any
+ * purpose. It is provided "as is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+/**
+ * @brief Public functions in ico_ivi_shell Weston plugin
+ *
+ * @date Feb-08-2013
+ */
+
+#ifndef _ICO_IVI_SHELL_H_
+#define _ICO_IVI_SHELL_H_
+
+struct shell_surface;
+
+/* option flag */
+#define ICO_OPTION_FLAG_UNVISIBLE 0x00000001 /* unvisible control */
+
+/* Prototype for set function */
+void ivi_shell_set_layer(struct shell_surface *shsurf, const int layer);
+bool ivi_shell_is_visible(struct shell_surface *shsurf);
+void ivi_shell_set_visible(struct shell_surface *shsurf, const int visible);
+void ivi_shell_set_raise(struct shell_surface *shsurf, const int raise);
+void ivi_shell_set_toplevel(struct shell_surface *shsurf);
+void ivi_shell_set_surface_type(struct shell_surface *shsurf);
+void ivi_shell_send_configure(struct shell_surface *shsurf, const int id,
+ const int edges, const int width, const int height);
+void ivi_shell_set_positionsize(struct shell_surface *shsurf, const int x,
+ const int y, const int width, const int height);
+void ivi_shell_set_layer_visible(const int layer, const int visible);
+void ivi_shell_surface_configure(struct shell_surface *shsurf, const int x,
+ const int y, const int width, const int height);
+
+/* Prototypr for hook routine */
+void ivi_shell_hook_bind(void (*hook_bind)(struct wl_client *client));
+void ivi_shell_hook_unbind(void (*hook_unbind)(struct wl_client *client));
+void ivi_shell_hook_create(void (*hook_create)(struct wl_client *client,
+ struct wl_resource *resource, struct weston_surface *surface,
+ struct shell_surface *shsurf));
+void ivi_shell_hook_destroy(void (*hook_destroy)(struct weston_surface *surface));
+void ivi_shell_hook_map(void (*hook_map)(struct weston_surface *surface,
+ int32_t *width, int32_t *height, int32_t *sx, int32_t *sy));
+void ivi_shell_hook_change(void (*hook_change)(struct weston_surface *surface,
+ const int to, const int manager));
+void ivi_shell_hook_select(void (*hook_select)(struct weston_surface *surface));
+
+/* Prototype for hook of Multi Input Manager */
+void ico_win_mgr_hook_set_user(void (*hook_set_user)(struct wl_client *client,
+ const char *appid));
+void ico_win_mgr_hook_create(void (*hook_create)(struct wl_client *client,
+ struct weston_surface *surface,
+ int surfaceId,
+ const char *appid));
+void ico_win_mgr_hook_destroy(void (*hook_destroy)(struct weston_surface *surface));
+
+#endif /*_ICO_IVI_SHELL_H_*/
diff --git a/src/ico_plugin_loader.c b/src/ico_plugin_loader.c
new file mode 100644
index 0000000..18b476f
--- /dev/null
+++ b/src/ico_plugin_loader.c
@@ -0,0 +1,206 @@
+/*
+ * Copyright © 2010-2011 Intel Corporation
+ * Copyright © 2008-2011 Kristian Høgsberg
+ * Copyright © 2013 TOYOTA MOTOR CORPORATION.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of the copyright holders not be used in
+ * advertising or publicity pertaining to distribution of the software
+ * without specific, written prior permission. The copyright holders make
+ * no representations about the suitability of this software for any
+ * purpose. It is provided "as is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+/**
+ * @brief Weston(Wayland) Plugin Loader
+ * @brief Load the Weston plugins, because plugin loader of main body of Weston
+ * @brief cannot use other plugin functions by a other plugin.
+ *
+ * @date Feb-08-2013
+ */
+
+#define _GNU_SOURCE
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdbool.h>
+#include <string.h>
+#include <unistd.h>
+#include <dlfcn.h>
+#include <sys/time.h>
+#include <time.h>
+
+#include "compositor.h"
+#include "ico_ivi_common.h"
+
+/* This function is called from the main body of Weston and initializes this module.*/
+int module_init(struct weston_compositor *ec);
+
+/* Internal function to load one plugin. */
+static void load_module(struct weston_compositor *ec, const char *path, const char *entry);
+
+/* Static valiables */
+static char *moddir = NULL; /* Answer back from configuration */
+static char *modules = NULL; /* Answer back from configuration */
+static int debug_level = 3; /* Debug Level */
+
+/* Configuration key */
+static const struct config_key plugin_config_keys[] = {
+ { "moddir", CONFIG_KEY_STRING, &moddir },
+ { "modules", CONFIG_KEY_STRING, &modules },
+ };
+
+static const struct config_section conf_plugin[] = {
+ { "plugin", plugin_config_keys, ARRAY_LENGTH(plugin_config_keys) },
+ };
+
+static const struct config_key debug_config_keys[] = {
+ { "ivi_debug", CONFIG_KEY_INTEGER, &debug_level },
+ };
+
+static const struct config_section conf_debug[] = {
+ { "debug", debug_config_keys, ARRAY_LENGTH(debug_config_keys) },
+ };
+
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_ivi_debuglevel: answer debug output level.
+ *
+ * @param none
+ * @return debug output level
+ * @retval 0 No debug output
+ * @retval 1 Only error output
+ * @retval 2 Error and information output
+ * @retval 3 All output with debug write
+ */
+/*--------------------------------------------------------------------------*/
+int
+ico_ivi_debuglevel(void)
+{
+ return debug_level;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief load_module: load one plugin module.
+ *
+ * @param[in] ec weston compositor. (from weston)
+ * @param[in] path file path of plugin module.
+ * @param[in] entry entry function name of plugin module.
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+load_module(struct weston_compositor *ec, const char *path, const char *entry)
+{
+ void *module; /* module informations (dlopen) */
+ int (*init)(struct weston_compositor *ec);
+ /* enter function of loaded plugin */
+
+ uifw_info("ico_plugin_loader: Load(path=%s entry=%s)", path, entry);
+
+ /* get module informations */
+ module = dlopen(path, RTLD_NOW | RTLD_NOLOAD);
+
+ if (module) {
+ /* plugin module already loaded */
+ dlclose(module);
+ uifw_error("ico_plugin_loader: Load Error(%s already loaded)", path);
+ return;
+ }
+
+ /* load plugin module */
+ uifw_trace("ico_plugin_loader: %s loading", path);
+
+ module = dlopen(path, RTLD_NOW | RTLD_GLOBAL);
+
+ if (! module) {
+ /* plugin module dose not exist */
+ uifw_error("ico_plugin_loader: Load Error(%s error<%s>)", path, dlerror());
+ return;
+ }
+
+ /* find initialize function */
+ if (entry) {
+ init = dlsym(module, entry);
+ if (! init) {
+ uifw_error("ico_plugin_loader: Load Error(%s, function %s dose not exist(%s))",
+ path, entry, dlerror());
+ }
+ else {
+ /* call initialize function */
+ uifw_trace("ico_plugin_loader: Call %s:%s(%08x)", path, entry, (int)init);
+ init(ec);
+ uifw_info("ico_plugin_loader: %s Loaded", path);
+ }
+ }
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief module_init: initialize function of ico_plugin_loader
+ * called from weston compositor.
+ *
+ * @param[in] ec weston compositor(from weston)
+ * @return result
+ * @retval 0 sccess
+ * @retval -1 error
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT int
+module_init(struct weston_compositor *ec)
+{
+ char *config_file;
+ char *p;
+ char *end;
+ char buffer[256];
+
+ uifw_info("ico_plugin_loader: Enter(module_init)");
+
+ /* get plugin module name from config file(weston_ivi_plugin.ini) */
+ config_file = config_file_path(ICO_IVI_PLUGIN_CONFIG);
+ parse_config_file(config_file, conf_plugin, ARRAY_LENGTH(conf_plugin), NULL);
+ parse_config_file(config_file, conf_debug, ARRAY_LENGTH(conf_debug), NULL);
+ free(config_file);
+
+ if (modules == NULL) {
+ uifw_error("ico_plugin_loader: Leave(No Plugin in config)");
+ return -1;
+ }
+ moddir = getenv("WESTON_IVI_PLUGIN_DIR");
+
+ p = modules;
+ while (*p) {
+ end = strchrnul(p, ',');
+ if (*p == '/') {
+ snprintf(buffer, sizeof(buffer), "%.*s", (int) (end - p), p);
+ }
+ else if (moddir) {
+ snprintf(buffer, sizeof(buffer), "%s/%.*s", moddir, (int) (end - p), p);
+ }
+ else {
+ snprintf(buffer, sizeof(buffer), "%s/%.*s", MODULEDIR, (int) (end - p), p);
+ }
+ load_module(ec, buffer, "module_init");
+ p = end;
+ while (*p == ',') {
+ p++;
+ }
+ }
+
+ uifw_info("ico_plugin_loader: Leave(module_init)");
+
+ return 0;
+}
+
diff --git a/src/ico_window_mgr.c b/src/ico_window_mgr.c
new file mode 100644
index 0000000..963e7c9
--- /dev/null
+++ b/src/ico_window_mgr.c
@@ -0,0 +1,1614 @@
+/*
+ * Copyright © 2010-2011 Intel Corporation
+ * Copyright © 2008-2011 Kristian Høgsberg
+ * Copyright © 2013 TOYOTA MOTOR CORPORATION.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of the copyright holders not be used in
+ * advertising or publicity pertaining to distribution of the software
+ * without specific, written prior permission. The copyright holders make
+ * no representations about the suitability of this software for any
+ * purpose. It is provided "as is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+/**
+ * @brief Multi Window Manager (Weston(Wayland) PlugIn)
+ *
+ * @date Feb-08-2013
+ */
+
+#define _GNU_SOURCE
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdbool.h>
+#include <string.h>
+#include <unistd.h>
+#include <linux/input.h>
+#include <assert.h>
+#include <signal.h>
+#include <math.h>
+#include <time.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <wayland-server.h>
+#include <aul/aul.h>
+#include <bundle.h>
+
+#include "compositor.h"
+#include "ico_ivi_common.h"
+#include "ico_ivi_shell.h"
+#include "ico_window_mgr.h"
+#include "ico_ivi_shell-server-protocol.h"
+#include "ico_window_mgr-server-protocol.h"
+
+/* SurfaceID */
+#define INIT_SURFACE_IDS 1024 /* SurfaceId table initiale size */
+#define ADD_SURFACE_IDS 512 /* SurfaceId table additional size */
+#define SURCAFE_ID_MASK 0x0ffff /* SurfaceId bit mask pattern */
+#define UIFW_HASH 64 /* Hash value (2's compliment) */
+
+/* Cleint management table */
+struct uifw_client {
+ struct wl_client *client; /* Wayland client */
+ int pid; /* ProcessId (pid) */
+ char appid[ICO_IVI_APPID_LENGTH]; /* ApplicationId(from AppCore AUL) */
+ int manager; /* Manager flag (Need send event) */
+ struct wl_resource *resource;
+ struct wl_list link;
+};
+
+/* UIFW Surface */
+struct shell_surface;
+struct uifw_win_surface {
+ uint32_t id; /* UIFW SurfaceId */
+ int layer; /* LayerId */
+ struct weston_surface *surface; /* Weston surface */
+ struct shell_surface *shsurf; /* Shell(IVI-Shell) surface */
+ struct uifw_client *uclient; /* Client */
+ int x; /* X-axis */
+ int y; /* Y-axis */
+ int width; /* Width */
+ int height; /* Height */
+ int transition; /* Transition */
+ struct wl_list link; /* */
+ struct uifw_win_surface *next_idhash; /* UIFW SurfaceId hash list */
+ struct uifw_win_surface *next_wshash; /* Weston SurfaceId hash list */
+};
+
+/* Manager table */
+struct uifw_manager {
+ struct wl_resource *resource; /* Manager resource */
+ int eventcb; /* Event send flag */
+ struct wl_list link; /* link to next manager */
+};
+
+/* Multi Windiw Manager */
+struct ico_win_mgr {
+ struct weston_compositor *compositor; /* Weston compositor */
+ int32_t surface_head; /* (HostID << 24) | (DisplayNo << 16) */
+
+ struct wl_list client_list; /* Clients */
+ struct wl_list manager_list; /* Manager(ex.HomeScreen) list */
+ int num_manager; /* Number of managers */
+ struct wl_list surface_list; /* Surface list */
+ struct uifw_win_surface *active_surface;/* Active Surface */
+
+ struct uifw_win_surface *idhash[UIFW_HASH]; /* UIFW SerfaceID */
+ struct uifw_win_surface *wshash[UIFW_HASH]; /* Weston Surface */
+
+ uint32_t surfaceid_count; /* Number of surface id */
+ uint32_t surfaceid_max; /* Maximum number of surface id */
+ uint16_t *surfaceid_map; /* SurfaceId assign bit map */
+};
+
+/* Internal macros */
+/* UIFW SurfaceID */
+#define MAKE_IDHASH(v) (((uint32_t)v) & (UIFW_HASH-1))
+/* Weston Surface */
+#define MAKE_WSHASH(v) ((((uint32_t)v) >> 5) & (UIFW_HASH-1))
+
+/* function prototype */
+ /* weston compositor interface */
+int module_init(struct weston_compositor *ec);
+ /* get surface table from surfece id */
+static struct uifw_win_surface* find_uifw_win_surface_by_id(uint32_t surfaceid);
+ /* get surface table from weston surface*/
+static struct uifw_win_surface* find_uifw_win_surface_by_ws(
+ struct weston_surface *wsurf);
+ /* get client table from weston client */
+static struct uifw_client* find_client_from_client(struct wl_client* client);
+ /* assign new surface id */
+static uint32_t generate_id(void);
+ /* bind shell client */
+static void bind_shell_client(struct wl_client *client);
+ /* unind shell client */
+static void unbind_shell_client(struct wl_client *client);
+ /* create new surface */
+static void client_register_surface(
+ struct wl_client *client, struct wl_resource *resource,
+ struct weston_surface *surface, struct shell_surface *shsurf);
+ /* map new surface */
+static void win_mgr_map_surface(struct weston_surface *surface, int32_t *width,
+ int32_t *height, int32_t *sx, int32_t *sy);
+ /* set applicationId for RemoteUI */
+static void uifw_set_user(struct wl_client *client, struct wl_resource *resource,
+ int pid, const char *appid);
+ /* set/reset event flag */
+static void uifw_set_eventcb(struct wl_client *client, struct wl_resource *resource,
+ int eventcb);
+ /* set window layer */
+static void uifw_set_window_layer(struct wl_client *client,
+ struct wl_resource *resource,
+ uint32_t surfaceid, int layer);
+ /* set surface size and position */
+static void uifw_set_positionsize(struct wl_client *client,
+ struct wl_resource *resource, uint32_t surfaceid,
+ int32_t x, int32_t y, int32_t width, int32_t height);
+ /* show/hide and raise/lower surface */
+static void uifw_set_visible(struct wl_client *client, struct wl_resource *resource,
+ uint32_t surfaceid, int32_t visible, int32_t raise);
+ /* set surface transition */
+static void uifw_set_transition(struct wl_client *client, struct wl_resource *resource,
+ uint32_t surfaceid, int32_t transition);
+ /* set active surface (form HomeScreen) */
+static void uifw_set_active(struct wl_client *client, struct wl_resource *resource,
+ uint32_t surfaceid);
+ /* layer visibility control */
+static void uifw_set_layer_visible(struct wl_client *client, struct wl_resource *resource,
+ int32_t layer, int32_t visible);
+ /* send surface change event to manager */
+static void win_mgr_surface_change(struct weston_surface *surface,
+ const int to, const int manager);
+ /* surface change from manager */
+static int win_mgr_surface_change_mgr(struct weston_surface *surface, const int x,
+ const int y, const int width, const int height);
+ /* surface destory */
+static void win_mgr_surface_destroy(struct weston_surface *surface);
+ /* bind manager */
+static void bind_ico_win_mgr(struct wl_client *client,
+ void *data, uint32_t version, uint32_t id);
+ /* unbind manager */
+static void unbind_ico_win_mgr(struct wl_resource *resource);
+ /* convert surfaceId to nodeId */
+static int ico_winmgr_usurf_2_node(const int surfaceid);
+ /* send event to manager */
+static int ico_win_mgr_send_to_mgr(const int event, const int surfaceid,
+ const char *appid, const int param1,
+ const int param2, const int param3, const int param4,
+ const int param5, const int param6);
+ /* hook for set user */
+static void (*win_mgr_hook_set_user)
+ (struct wl_client *client, const char *appid) = NULL;
+ /* hook for surface create */
+static void (*win_mgr_hook_create)
+ (struct wl_client *client, struct weston_surface *surface,
+ int surfaceId, const char *appid) = NULL;
+ /* hook for surface destory */
+static void (*win_mgr_hook_destroy)(struct weston_surface *surface) = NULL;
+
+/* static tables */
+/* Multi Window Manager interface */
+static const struct ico_window_mgr_interface ico_window_mgr_implementation = {
+ uifw_set_user,
+ uifw_set_eventcb,
+ uifw_set_window_layer,
+ uifw_set_positionsize,
+ uifw_set_visible,
+ uifw_set_transition,
+ uifw_set_active,
+ uifw_set_layer_visible
+};
+
+/* static management table */
+static struct ico_win_mgr *_ico_win_mgr = NULL;
+
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief find_uifw_win_surface_by_id: find UIFW surface by surface id
+ *
+ * @param[in] surfaceid UIFW surface id
+ * @return UIFW surface table address
+ * @retval !=NULL success(surface table address)
+ * @retval NULL error(surface id dose not exist)
+ */
+/*--------------------------------------------------------------------------*/
+static struct uifw_win_surface*
+find_uifw_win_surface_by_id(uint32_t surfaceid)
+{
+ struct uifw_win_surface* usurf;
+
+ usurf = _ico_win_mgr->idhash[MAKE_IDHASH(surfaceid)];
+
+ while (usurf) {
+ if (usurf->id == surfaceid) {
+ return usurf;
+ }
+ usurf = usurf->next_idhash;
+ }
+ uifw_trace("find_uifw_win_surface_by_id: NULL");
+ return NULL;
+}
+
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief find_uifw_win_surface_by_ws: find UIFW srurace by weston surface
+ *
+ * @param[in] wsurf Weston surface
+ * @return UIFW surface table address
+ * @retval !=NULL success(surface table address)
+ * @retval NULL error(surface dose not exist)
+ */
+/*--------------------------------------------------------------------------*/
+static struct uifw_win_surface*
+find_uifw_win_surface_by_ws(struct weston_surface *wsurf)
+{
+ struct uifw_win_surface* usurf;
+
+ usurf = _ico_win_mgr->wshash[MAKE_WSHASH(wsurf)];
+
+ while (usurf) {
+ if (usurf->surface == wsurf) {
+ return usurf;
+ }
+ usurf = usurf->next_wshash;
+ }
+ uifw_trace("find_uifw_win_surface_by_ws: NULL");
+ return NULL;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief find_client_from_client: find UIFW client by wayland client
+ *
+ * @param[in] client Wayland client
+ * @return UIFW client table address
+ * @retval !=NULL success(client table address)
+ * @retval NULL error(client dose not exist)
+ */
+/*--------------------------------------------------------------------------*/
+static struct uifw_client*
+find_client_from_client(struct wl_client* client)
+{
+ struct uifw_client *uclient;
+
+ wl_list_for_each (uclient, &_ico_win_mgr->client_list, link) {
+ if (uclient->client == client) {
+ return(uclient);
+ }
+ }
+ uifw_trace("find_client_from_client: NULL");
+ return NULL;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_window_mgr_appid: find application id by wayland client
+ *
+ * @param[in] client Wayland client
+ * @return application id
+ * @retval !=NULL success(application id)
+ * @retval NULL error(client dose not exist)
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT char *
+ico_window_mgr_appid(struct wl_client* client)
+{
+ struct uifw_client *uclient;
+
+ uclient = find_client_from_client(client);
+
+ if (! uclient) {
+ return NULL;
+ }
+ return uclient->appid;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief generate_id: generate uniq id for UIFW surface id
+ *
+ * @param none
+ * @return uniq id for UIFW surface id
+ */
+/*--------------------------------------------------------------------------*/
+static uint32_t
+generate_id(void)
+{
+ int rep;
+ int i;
+ int map;
+ uint16_t *new_map;
+ uint32_t surfaceId;
+
+ /* next assign id */
+ _ico_win_mgr->surfaceid_count ++;
+
+ /* serach free id from bitmap */
+ for (rep = 0; rep < (int)(_ico_win_mgr->surfaceid_max/16); rep++) {
+ if (_ico_win_mgr->surfaceid_count >= _ico_win_mgr->surfaceid_max) {
+ _ico_win_mgr->surfaceid_count = 0;
+ }
+ if (_ico_win_mgr->surfaceid_map[_ico_win_mgr->surfaceid_count/16] != 0xffff) {
+ /* find free id from bitmap */
+ map = 1 << (_ico_win_mgr->surfaceid_count % 16);
+ for (i = (_ico_win_mgr->surfaceid_count % 16); i < 16; i++) {
+ if ((_ico_win_mgr->surfaceid_map[_ico_win_mgr->surfaceid_count/16] & map)
+ == 0) {
+ _ico_win_mgr->surfaceid_map[_ico_win_mgr->surfaceid_count/16] |= map;
+ _ico_win_mgr->surfaceid_count
+ = (_ico_win_mgr->surfaceid_count/16)*16 + i;
+
+ surfaceId = (_ico_win_mgr->surfaceid_count + 1)
+ | _ico_win_mgr->surface_head;
+ uifw_trace("generate_id: SurfaceId=%08x", surfaceId);
+ return(surfaceId);
+ }
+ map = map << 1;
+ }
+ }
+ _ico_win_mgr->surfaceid_count += 16;
+ }
+
+ /* no free id in bitmap, extend bitmap */
+ if ((_ico_win_mgr->surfaceid_max + ADD_SURFACE_IDS) > SURCAFE_ID_MASK) {
+ /* too many surfaces, system error */
+ uifw_trace("generate_id: SurffaceId Overflow(%d, Max=%d), Abort",
+ _ico_win_mgr->surfaceid_max + ADD_SURFACE_IDS, SURCAFE_ID_MASK);
+ fprintf(stderr, "generate_id: SurffaceId Overflow(%d, Max=%d), Abort\n",
+ _ico_win_mgr->surfaceid_max + ADD_SURFACE_IDS, SURCAFE_ID_MASK);
+ abort();
+ }
+
+ new_map = (uint16_t *) malloc((_ico_win_mgr->surfaceid_max + ADD_SURFACE_IDS) / 8);
+ memcpy(new_map, _ico_win_mgr->surfaceid_map, _ico_win_mgr->surfaceid_max/8);
+ memset(&new_map[_ico_win_mgr->surfaceid_max/16], 0, ADD_SURFACE_IDS/8);
+ _ico_win_mgr->surfaceid_count = _ico_win_mgr->surfaceid_max;
+ new_map[_ico_win_mgr->surfaceid_count/16] |= 1;
+ _ico_win_mgr->surfaceid_max += ADD_SURFACE_IDS;
+ free(_ico_win_mgr->surfaceid_map);
+ _ico_win_mgr->surfaceid_map = new_map;
+
+ uifw_trace("generate_id: Extent SurfaceId=%d(Max.%d)",
+ _ico_win_mgr->surfaceid_count+1, _ico_win_mgr->surfaceid_max);
+ surfaceId = (_ico_win_mgr->surfaceid_count + 1) | _ico_win_mgr->surface_head;
+
+ uifw_trace("generate_id: SurfaceId=%08x", surfaceId);
+ return(surfaceId);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief bind_shell_client: ico_ivi_shell from client
+ *
+ * @param[in] client Wayland client
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+bind_shell_client(struct wl_client *client)
+{
+ struct uifw_client *uclient;
+ pid_t pid;
+ uid_t uid;
+ gid_t gid;
+ int fd;
+ int size;
+ int i;
+ int j;
+ char procpath[128];
+
+ uifw_trace("bind_shell_client: Enter(client=%08x)", (int)client);
+
+ /* set client */
+ uclient = find_client_from_client(client);
+ if (! uclient) {
+ /* client not exist, create client management table */
+ uifw_trace("bind_shell_client: Create Client");
+ uclient = (struct uifw_client *)malloc(sizeof(struct uifw_client));
+ if (!uclient) {
+ uifw_error("bind_shell_client: Error, No Memory");
+ return;
+ }
+ memset(uclient, 0, sizeof(struct uifw_client));
+ uclient->client = client;
+ wl_list_insert(&_ico_win_mgr->client_list, &uclient->link);
+ }
+ wl_client_get_credentials(client, &pid, &uid, &gid);
+ uifw_trace("bind_shell_client: client=%08x pid=%d uid=%d gid=%d",
+ (int)client, (int)pid, (int)uid, (int)gid);
+ if (pid > 0) {
+ uclient->pid = (int)pid;
+ /* get applicationId from AppCore(AUL) */
+ if (aul_app_get_appid_bypid(uclient->pid, uclient->appid, ICO_IVI_APPID_LENGTH)
+ == AUL_R_OK) {
+ uifw_trace("bind_shell_client: client=%08x pid=%d appid=<%s>",
+ (int)client, uclient->pid, uclient->appid);
+ }
+ else {
+ /* client dose not exist in AppCore, search Linux process table */
+ uifw_trace("bind_shell_client: pid=%d dose not exist in AppCore(AUL)",
+ uclient->pid);
+
+ memset(uclient->appid, 0, ICO_IVI_APPID_LENGTH);
+ snprintf(procpath, sizeof(procpath)-1, "/proc/%d/cmdline", uclient->pid);
+ fd = open(procpath, O_RDONLY);
+ if (fd >= 0) {
+ size = read(fd, procpath, sizeof(procpath));
+ for (; size > 0; size--) {
+ if (procpath[size-1]) break;
+ }
+ if (size > 0) {
+ /* get program base name */
+ i = 0;
+ for (j = 0; j < size; j++) {
+ if (procpath[j] == 0) break;
+ if (procpath[j] == '/') i = j + 1;
+ }
+ j = 0;
+ for (; i < size; i++) {
+ uclient->appid[j] = procpath[i];
+ if ((uclient->appid[j] == 0) ||
+ (j >= (ICO_IVI_APPID_LENGTH-1))) break;
+ j++;
+ }
+ /* search application number in apprication start option */
+ if ((uclient->appid[j] == 0) && (j < (ICO_IVI_APPID_LENGTH-2))) {
+ for (; i < size; i++) {
+ if ((procpath[i] == 0) &&
+ (procpath[i+1] == '@')) {
+ strncpy(&uclient->appid[j], &procpath[i+1],
+ ICO_IVI_APPID_LENGTH - j - 2);
+ }
+ }
+ }
+ }
+ close(fd);
+ }
+ if (uclient->appid[0]) {
+ uifw_trace("bind_shell_client: client=%08x pid=%d appid=<%s> from "
+ "Process table", (int)client, uclient->pid, uclient->appid);
+ }
+ else {
+ uifw_trace("bind_shell_client: pid=%d dose not exist in Process table",
+ uclient->pid);
+ sprintf(uclient->appid, "?%d?", uclient->pid);
+ }
+ }
+ }
+ else {
+ uifw_trace("bind_shell_client: client=%08x pid dose not exist", (int)client);
+ }
+ uifw_trace("bind_shell_client: Leave");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief unbind_shell_client: unbind ico_ivi_shell from client
+ *
+ * @param[in] client Wayland client
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+unbind_shell_client(struct wl_client *client)
+{
+ struct uifw_client *uclient;
+
+ uifw_trace("unbind_shell_client: Enter(client=%08x)", (int)client);
+
+ uclient = find_client_from_client(client);
+ if (uclient) {
+ /* Client exist, Destory client management table */
+ wl_list_remove(&uclient->link);
+ free(uclient);
+ }
+ uifw_trace("unbind_shell_client: Leave");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief client_register_surface: create UIFW surface
+ *
+ * @param[in] client Wayland client
+ * @param[in] resource client resource
+ * @param[in] surface Weston surface
+ * @param[in] shsurf shell surface
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+client_register_surface(struct wl_client *client, struct wl_resource *resource,
+ struct weston_surface *surface, struct shell_surface *shsurf)
+{
+ struct uifw_win_surface *us;
+ struct uifw_win_surface *phash;
+ struct uifw_win_surface *bhash;
+ uint32_t hash;
+
+ uifw_trace("client_register_surface: Enter(surf=%08x,client=%08x,res=%08x)",
+ (int)surface, (int)client, (int)resource);
+
+ /* check new surface */
+ if (find_uifw_win_surface_by_ws(surface)) {
+ /* surface exist, NOP */
+ uifw_trace("client_register_surface: Leave(Already Exist)");
+ return;
+ }
+
+ /* create UIFW surface management table */
+ us = malloc(sizeof(struct uifw_win_surface));
+ if (!us) {
+ uifw_error("client_register_surface: No Memory");
+ return;
+ }
+
+ memset(us, 0, sizeof(struct uifw_win_surface));
+
+ us->id = generate_id();
+ us->surface = surface;
+ us->shsurf = shsurf;
+ if (_ico_win_mgr->num_manager <= 0) {
+ uifw_trace("client_register_surface: No Manager, Force visible");
+ ivi_shell_set_visible(shsurf, 1); /* NOT exist HomeScreen */
+ }
+ else {
+ uifw_trace("client_register_surface: Manager exist, Not visible");
+ ivi_shell_set_visible(shsurf, -1); /* Exist HomeScreen */
+ }
+
+ /* set client */
+ us->uclient = find_client_from_client(client);
+ if (! us->uclient) {
+ /* client not exist, create client management table */
+ uifw_trace("client_register_surface: Create Client");
+ bind_shell_client(client);
+ us->uclient = find_client_from_client(client);
+ if (! us->uclient) {
+ uifw_error("client_register_surface: No Memory");
+ return;
+ }
+ }
+ wl_list_insert(&_ico_win_mgr->surface_list, &us->link);
+
+ /* make surface id hash table */
+ hash = MAKE_IDHASH(us->id);
+ phash = _ico_win_mgr->idhash[hash];
+ bhash = NULL;
+ while (phash) {
+ bhash = phash;
+ phash = phash->next_idhash;
+ }
+ if (bhash) {
+ bhash->next_idhash = us;
+ }
+ else {
+ _ico_win_mgr->idhash[hash] = us;
+ }
+
+ /* make weston surface hash table */
+ hash = MAKE_WSHASH(us->surface);
+ phash = _ico_win_mgr->wshash[hash];
+ bhash = NULL;
+ while (phash) {
+ bhash = phash;
+ phash = phash->next_wshash;
+ }
+ if (bhash) {
+ bhash->next_wshash = us;
+ }
+ else {
+ _ico_win_mgr->wshash[hash] = us;
+ }
+ /* set default layer id */
+ ivi_shell_set_layer(shsurf, 0);
+
+ /* send event to manager */
+ ico_win_mgr_send_to_mgr(ICO_WINDOW_MGR_WINDOW_CREATED,
+ us->id, us->uclient->appid, us->uclient->pid, 0,0,0,0,0);
+
+ if (win_mgr_hook_create) {
+ /* call surface create hook for ico_window_mgr */
+ (void) (*win_mgr_hook_create)(client, surface, us->id, us->uclient->appid);
+ }
+ uifw_trace("client_register_surface: Leave(surfaceId=%08x)", us->id);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief win_mgr_map_surface: map surface
+ *
+ * @param[in] surface Weston surface
+ * @param[in] width surface width
+ * @param[in] height surface height
+ * @param[in] sx X coordinate on screen
+ * @param[in] sy Y coordinate on screen
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+win_mgr_map_surface(struct weston_surface *surface, int32_t *width, int32_t *height,
+ int32_t *sx, int32_t *sy)
+{
+ struct uifw_win_surface *usurf;
+
+ uifw_trace("win_mgr_map_surface: Enter(%08x, x/y=%d/%d w/h=%d/%d)",
+ (int)surface, *sx, *sy, *width, *height);
+
+ usurf = find_uifw_win_surface_by_ws(surface);
+
+ if (usurf) {
+ uifw_trace("win_mgr_map_surface: surf=%08x w/h=%d/%d vis=%d",
+ usurf->id, usurf->width, usurf->height,
+ ivi_shell_is_visible(usurf->shsurf));
+
+ if ((usurf->width > 0) && (usurf->height > 0)) {
+ uifw_trace("win_mgr_map_surface: HomeScreen registed, PositionSize"
+ "(surf=%08x x/y=%d/%d w/h=%d/%d vis=%d",
+ usurf->id, usurf->x, usurf->y, usurf->width, usurf->height,
+ ivi_shell_is_visible(usurf->shsurf));
+ *width = usurf->width;
+ *height = usurf->height;
+ surface->geometry.x = usurf->x;
+ surface->geometry.y = usurf->y;
+ }
+ else {
+ uifw_trace("win_mgr_map_surface: HomeScreen not regist Surface, "
+ "Change PositionSize(surf=%08x x/y=%d/%d w/h=%d/%d)",
+ usurf->id, *sx, *sy, *width, *height);
+ usurf->width = *width;
+ usurf->height = *height;
+ usurf->x = *sx;
+ usurf->y = *sy;
+ if (usurf->x < 0) usurf->x = 0;
+ if (usurf->y < 0) usurf->y = 0;
+
+ if (_ico_win_mgr->num_manager > 0) {
+ /* HomeScreen exist, coodinate set by HomeScreen */
+ surface->geometry.x = 0;
+ surface->geometry.y = 0;
+
+ /* change surface size, because HomeScreen change surface size */
+ *width = 1;
+ *height = 1;
+ uifw_trace("win_mgr_map_surface: Change size and position");
+ }
+ else {
+ uifw_trace("win_mgr_map_surface: Np HomeScreen, chaneg to Visible");
+ ivi_shell_set_visible(usurf->shsurf, 1);
+ }
+ }
+ ivi_shell_set_positionsize(usurf->shsurf,
+ usurf->x, usurf->y, usurf->width, usurf->height);
+ uifw_trace("win_mgr_map_surface: Leave");
+ }
+ else {
+ uifw_trace("win_mgr_map_surface: Leave(No Window Manager Surface)");
+ }
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @briefdwi uifw_set_user: set user id (for RemoteUI)
+ *
+ * @param[in] client Weyland client
+ * @param[in] resource resource of request
+ * @param[in] pid client process id
+ * @param[in] appid application id
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+uifw_set_user(struct wl_client *client, struct wl_resource *resource,
+ int pid, const char *appid)
+{
+ struct uifw_client *uclient;
+
+ uifw_trace("uifw_set_user: Enter(client=%08x pid=%d appid=%s)",
+ (int)client, pid, appid);
+
+ uclient = find_client_from_client(client);
+ if (uclient) {
+ uclient->pid = pid;
+ memset(uclient->appid, 0, ICO_IVI_APPID_LENGTH);
+ strncpy(uclient->appid, appid, ICO_IVI_APPID_LENGTH-1);
+ uclient->resource = resource;
+ uifw_trace("uifw_set_user: Leave(Client Exist, change PID/AppId)");
+ return;
+ }
+
+ uclient = (struct uifw_client *)malloc(sizeof(struct uifw_client));
+ if (! uclient) {
+ uifw_trace("uifw_set_user: Leave(Error, No Memory)");
+ return;
+ }
+
+ memset(uclient, 0, sizeof(struct uifw_client));
+ uclient->client = client;
+ uclient->pid = pid;
+ memset(uclient->appid, 0, ICO_IVI_APPID_LENGTH);
+ strncpy(uclient->appid, appid, ICO_IVI_APPID_LENGTH-1);
+ uclient->resource = resource;
+
+ wl_list_insert(&_ico_win_mgr->client_list, &uclient->link);
+
+ if (win_mgr_hook_set_user) {
+ (void) (*win_mgr_hook_set_user) (client, uclient->appid);
+ }
+ uifw_trace("uifw_set_user: Leave");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief uifw_set_eventcb: set event callback flag for HomeScreen
+ *
+ * @param[in] client Weyland client
+ * @param[in] resource resource of request
+ * @param[in] eventcb event callback flag(1=callback, 0=no callback)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+uifw_set_eventcb(struct wl_client *client, struct wl_resource *resource, int eventcb)
+{
+ struct uifw_manager* mgr;
+ struct uifw_win_surface *usurf;
+ struct uifw_client *uclient;
+
+ uifw_trace("uifw_set_eventcb: Enter client=%08x eventcb=%d",
+ (int)client, eventcb);
+
+ uclient = find_client_from_client(client);
+ if (uclient) {
+ uclient->manager = eventcb;
+ }
+
+ /* client set to manager */
+ _ico_win_mgr->num_manager = 0;
+ wl_list_for_each (mgr, &_ico_win_mgr->manager_list, link) {
+ if (mgr->resource == resource) {
+ if (mgr->eventcb != eventcb) {
+ uifw_trace("uifw_set_eventcb: Event Callback %d=>%d",
+ mgr->eventcb, eventcb);
+ mgr->eventcb = eventcb;
+
+ if (eventcb) {
+ wl_list_for_each (usurf, &_ico_win_mgr->surface_list, link) {
+ /* send window create event to manager */
+ uifw_trace("uifw_set_eventcb: Send manager(%08x) WINDOW_CREATED"
+ "(surf=%08x,pid=%d,appid=%s)", (int)resource, usurf->id,
+ usurf->uclient->pid, usurf->uclient->appid);
+ ico_window_mgr_send_window_created(resource,
+ usurf->id, usurf->uclient->pid, usurf->uclient->appid);
+ }
+ }
+ }
+ }
+ if (mgr->eventcb) {
+ _ico_win_mgr->num_manager++;
+ }
+ }
+ uifw_trace("uifw_set_eventcb: Leave(managers=%d)", _ico_win_mgr->num_manager);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief uifw_set_window_layer: set layer id to surface
+ *
+ * @param[in] client Weyland client
+ * @param[in] resource resource of request
+ * @param[in] surfaceid UIFW surface id
+ * @param[in] layer layer id
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+uifw_set_window_layer(struct wl_client *client, struct wl_resource *resource,
+ uint32_t surfaceid, int32_t layer)
+{
+ uifw_trace("uifw_set_window_layer: Enter res=%08x surfaceid=%08x layer=%d",
+ (int)resource, surfaceid, layer);
+
+ struct uifw_win_surface *usurf = find_uifw_win_surface_by_id(surfaceid);
+
+ if (! usurf) {
+ uifw_trace("uifw_set_window_layer: Leave(No Surface(id=%08x)", surfaceid);
+ return;
+ }
+ else if (usurf->layer != layer) {
+ usurf->layer = layer;
+ uifw_trace("uifw_set_window_layer: Set Layer(%d) to Shell Surface", layer);
+ ivi_shell_set_layer(usurf->shsurf, layer);
+
+ win_mgr_surface_change(usurf->surface, 1, 1);
+ }
+ uifw_trace("uifw_set_window_layer: Leave");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief uifw_set_weston_surface: set weston surface from UIFW surface
+ *
+ * @param[in] usurf UIFW surface
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+uifw_set_weston_surface(struct uifw_win_surface *usurf)
+{
+ struct weston_surface *es = usurf->surface;
+ int width = usurf->width;
+ int height = usurf->height;
+ int x = usurf->x;
+ int y = usurf->y;
+
+ if ((es != NULL) && (es->buffer != NULL)) {
+ if (usurf->width > es->buffer->width) {
+ width = es->buffer->width;
+ x += (usurf->width - es->buffer->width)/2;
+ }
+ if (usurf->height > es->buffer->height) {
+ height = es->buffer->height;
+ y += (usurf->height - es->buffer->height)/2;
+ }
+ }
+ ivi_shell_set_positionsize(usurf->shsurf,
+ usurf->x, usurf->y, usurf->width, usurf->height);
+ uifw_trace("uifw_set_weston_surface: w/h=%d/%d->%d/%d x/y=%d/%d->%d/%d",
+ usurf->width, usurf->height, width, height, usurf->x, usurf->y, x, y);
+ ivi_shell_surface_configure(usurf->shsurf, x, y, width, height);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief uifw_set_positionsize: set surface position and size
+ *
+ * @param[in] client Weyland client
+ * @param[in] resource resource of request
+ * @param[in] surfaceid UIFW surface id
+ * @param[in] x X coordinate on screen(if bigger than 16383, no change)
+ * @param[in] y Y coordinate on screen(if bigger than 16383, no change)
+ * @param[in] width surface width(if bigger than 16383, no change)
+ * @param[in] height surface height(if bigger than 16383, no change)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+uifw_set_positionsize(struct wl_client *client, struct wl_resource *resource,
+ uint32_t surfaceid,
+ int32_t x, int32_t y, int32_t width, int32_t height)
+{
+ struct uifw_client *uclient;
+
+ uifw_trace("uifw_set_positionsize: Enter res=%08x surf=%08x x/y/w/h=%d/%d/%d/%d",
+ (int)resource, surfaceid, x, y, width, height);
+
+ struct uifw_win_surface* usurf = find_uifw_win_surface_by_id(surfaceid);
+
+ if (usurf && (usurf->surface)) {
+ /* weston surface exist */
+ struct weston_surface *es = usurf->surface;
+
+ /* if x,y,width,height bigger then ICO_IVI_MAX_COORDINATE, no change */
+ if (x > ICO_IVI_MAX_COORDINATE) x = usurf->x;
+ if (y > ICO_IVI_MAX_COORDINATE) y = usurf->y;
+ if (width > ICO_IVI_MAX_COORDINATE) width = usurf->width;
+ if (height > ICO_IVI_MAX_COORDINATE) height = usurf->height;
+
+ uclient = find_client_from_client(client);
+ if (uclient) {
+ if (! uclient->manager) uclient = NULL;
+ }
+ if (! uclient) {
+ if ((usurf->width > 0) && (usurf->height > 0)) {
+ win_mgr_surface_change_mgr(es, x, y, width, height);
+ uifw_trace("uifw_set_positionsize: Leave(Request from App)");
+ return;
+ }
+
+ uifw_trace("uifw_set_positionsize: Initial Position/Size visible=%d",
+ ivi_shell_is_visible(usurf->shsurf));
+ /* Initiale position is (0,0) */
+ es->geometry.x = 0;
+ es->geometry.y = 0;
+ }
+
+ uifw_trace("uifw_set_positionsize: Old geometry x/y=%d/%d,w/h=%d/%d",
+ (int)es->geometry.x, (int)es->geometry.y,
+ (int)es->geometry.width, (int)es->geometry.height);
+
+ usurf->x = x;
+ usurf->y = y;
+ usurf->width = width;
+ usurf->height = height;
+ ivi_shell_set_positionsize(usurf->shsurf, x, y, width, height);
+ if (_ico_win_mgr->num_manager <= 0) {
+ /* no manager(HomeScreen), set geometory */
+ es->geometry.x = x;
+ es->geometry.y = y;
+ }
+ if ((es->output) && (es->buffer) &&
+ (es->geometry.width > 0) && (es->geometry.height > 0)) {
+ uifw_trace("uifw_set_positionsize: Fixed Geometry, Change(Vis=%d)",
+ ivi_shell_is_visible(usurf->shsurf));
+ uifw_set_weston_surface(usurf);
+ weston_surface_damage_below(es);
+ weston_surface_damage(es);
+ weston_compositor_schedule_repaint(_ico_win_mgr->compositor);
+ }
+ win_mgr_surface_change(es, 0, 1);
+
+ uifw_trace("uifw_set_positionsize: Leave(OK,output=%x)", (int)es->output);
+ }
+ else {
+ uifw_trace("uifw_set_positionsize: Leave(surf=%08x NOT Found)", surfaceid);
+ }
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief uifw_set_visible: surface visible/raise control
+ *
+ * @param[in] client Weyland client
+ * @param[in] resource resource of request
+ * @param[in] surfaceid UIFW surface id
+ * @param[in] visible visible(1=show/0=hide/other=no change)
+ * @param[in] raise raise(1=raise/0=lower/other=no change)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+uifw_set_visible(struct wl_client *client, struct wl_resource *resource,
+ uint32_t surfaceid, int32_t visible, int32_t raise)
+{
+ struct uifw_win_surface* usurf;
+ struct uifw_client *uclient;
+
+ uifw_trace("uifw_set_visible: Enter(surf=%08x,%d,%d)", surfaceid, visible, raise);
+
+ uclient = find_client_from_client(client);
+ if (uclient) {
+ if (! uclient->manager) {
+ uifw_trace("uifw_set_visible: Request from App(%s), not Manager",
+ uclient->appid);
+ uclient = NULL;
+ }
+ else {
+ uifw_trace("uifw_set_visible: Request from Manager(%s)", uclient->appid);
+ }
+ }
+ else {
+ uifw_trace("uifw_set_visible: Request from Unknown App, not Manager");
+ }
+
+ usurf = find_uifw_win_surface_by_id(surfaceid);
+
+ if ((! usurf) || (! usurf->surface)) {
+ uifw_trace("uifw_set_visible: Leave(Surface Not Exist)");
+ return;
+ }
+
+ if (visible == 1) {
+ if ((usurf->width <= 0) || (usurf->height <= 0)) {
+ /* not declare surface geometry, initialize */
+ usurf->width = usurf->surface->geometry.width;
+ usurf->height = usurf->surface->geometry.height;
+ uifw_trace("uifw_set_visible: Set w/h=%d/%d", usurf->width, usurf->height);
+ }
+ if (! ivi_shell_is_visible(usurf->shsurf)) {
+ if (uclient) {
+ /* manager exist, change to visible */
+ ivi_shell_set_visible(usurf->shsurf, 1);
+ }
+ uifw_trace("uifw_set_visible: Change to Visible");
+
+ ivi_shell_set_toplevel(usurf->shsurf);
+
+ /* Weston surface configure */
+ uifw_trace("uifw_set_visible: Visible to Weston WSurf=%08x,%d/%d/%d/%d",
+ (int)usurf->surface, usurf->x, usurf->y,
+ usurf->width, usurf->height);
+ uifw_set_weston_surface(usurf);
+ ivi_shell_set_surface_type(usurf->shsurf);
+ }
+ else if ((raise != 0) && (raise != 1)) {
+ uifw_trace("uifw_set_visible: Leave(No Change)");
+ return;
+ }
+ }
+ else if (visible == 0) {
+
+ if (ivi_shell_is_visible(usurf->shsurf)) {
+ ivi_shell_set_visible(usurf->shsurf, 0);
+ uifw_trace("uifw_set_visible: Change to UnVisible");
+
+ /* Weston surface configure */
+ uifw_set_weston_surface(usurf);
+ }
+ else if ((raise != 0) && (raise != 1)) {
+ uifw_trace("uifw_set_visible: Leave(No Change)");
+ return;
+ }
+ }
+ else if ((raise != 0) && (raise != 1)) {
+ uifw_trace("uifw_set_visible: Leave(No Change)");
+ return;
+ }
+
+ /* raise/lower */
+ if ((raise == 1) || (raise == 0)) {
+ ivi_shell_set_raise(usurf->shsurf, raise);
+ }
+
+ if ((usurf->surface) && (usurf->surface->buffer) && (usurf->surface->output)) {
+ weston_surface_damage_below(usurf->surface);
+ weston_surface_damage(usurf->surface);
+ weston_compositor_schedule_repaint(_ico_win_mgr->compositor);
+ }
+ /* send event(VISIBLE) to manager */
+ ico_win_mgr_send_to_mgr(ICO_WINDOW_MGR_WINDOW_VISIBLE,
+ surfaceid, NULL, visible, raise, uclient ? 0 : 1, 0,0,0);
+
+ uifw_trace("uifw_set_visible: Leave(OK)");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief uifw_set_transition: set transition of surface visible/unvisible
+ *
+ * @param[in] client Weyland client
+ * @param[in] resource resource of request
+ * @param[in] surfaceid UIFW surface id
+ * @param[in] transition transiton id
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+uifw_set_transition(struct wl_client *client, struct wl_resource *resource,
+ uint32_t surfaceid, int32_t transition)
+{
+ struct uifw_win_surface* usurf = find_uifw_win_surface_by_id(surfaceid);
+
+ uifw_trace("uifw_set_transition: Enter(surf=%08x, transition=%d)",
+ surfaceid, transition);
+
+ if (usurf) {
+ usurf->transition = transition;
+ uifw_trace("uifw_set_transition: Leave(OK)");
+ }
+ else {
+ uifw_trace("uifw_set_transition: Leave(Surface(%08x) Not exist)", surfaceid);
+ }
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief uifw_set_active: set active surface
+ *
+ * @param[in] client Weyland client
+ * @param[in] resource resource of request
+ * @param[in] surfaceid UIFW surface id
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+uifw_set_active(struct wl_client *client, struct wl_resource *resource, uint32_t surfaceid)
+{
+ struct uifw_win_surface* usurf = find_uifw_win_surface_by_id(surfaceid);
+
+ uifw_trace("uifw_set_active: Enter(surf=%08x)", surfaceid);
+
+ if (usurf) {
+ if (usurf != _ico_win_mgr->active_surface) {
+ if (_ico_win_mgr->active_surface) {
+ ico_win_mgr_send_to_mgr(ICO_WINDOW_MGR_WINDOW_ACTIVE,
+ surfaceid, NULL, ICO_WINDOW_MGR_ACTIVE_INACTIVE,
+ 0,0,0,0,0);
+ }
+ _ico_win_mgr->active_surface = usurf;
+ ico_win_mgr_send_to_mgr(ICO_WINDOW_MGR_WINDOW_ACTIVE,
+ surfaceid, NULL, ICO_WINDOW_MGR_ACTIVE_ACTIVE,
+ 0,0,0,0,0);
+ }
+ uifw_trace("uifw_set_active: Leave(Change Active)");
+ }
+ else {
+ uifw_trace("uifw_set_active: Leave(Surface(%08x) Not exist)", surfaceid);
+ }
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief uifw_set_layer_visible: layer visible control
+ *
+ * @param[in] client Weyland client
+ * @param[in] resource resource of request
+ * @param[in] layer layer id
+ * @param[in] visible visible(1=show/0=hide)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+uifw_set_layer_visible(struct wl_client *client, struct wl_resource *resource,
+ int32_t layer, int32_t visible)
+{
+ uifw_trace("uifw_set_layer_visible: Enter(layer=%d, visilbe=%d)", layer, visible);
+
+ ivi_shell_set_layer_visible(layer, visible);
+
+ uifw_trace("uifw_set_layer_visible: Leave");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief win_mgr_surface_change_mgr: surface chagen from manager(HomeScreen)
+ *
+ * @param[in] surface Weston surface
+ * @param[in] x X coordinate on screen
+ * @param[in] y Y coordinate on screen
+ * @param[in] width surface width
+ * @param[in] height surface height
+ * @return number of managers
+ * @retval > 0 number of managers
+ * @retval 0 manager not exist
+ */
+/*--------------------------------------------------------------------------*/
+static int
+win_mgr_surface_change_mgr(struct weston_surface *surface,
+ const int x, const int y, const int width, const int height)
+{
+ int num_mgr;
+ struct uifw_win_surface *usurf;
+
+ uifw_trace("win_mgr_surface_change_mgr: Enter(%08x,x/y=%d/%d,w/h=%d/%d)",
+ (int)surface, x, y, width, height);
+
+ usurf = find_uifw_win_surface_by_ws(surface);
+ if (! usurf) {
+ uifw_trace("win_mgr_surface_change_mgr: Leave(Not Exist)");
+ return 0;
+ }
+
+ num_mgr = ico_win_mgr_send_to_mgr(ICO_WINDOW_MGR_WINDOW_CONFIGURE,
+ usurf->id, usurf->uclient->appid, usurf->layer,
+ x, y, width, height, 1);
+
+ uifw_trace("win_mgr_surface_change_mgr: Leave(%d)", num_mgr);
+ return num_mgr;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief win_mgr_surface_change: surface change
+ *
+ * @param[in] surface Weston surface
+ * @param[in] to destination(0=Client&Manager,1=Client,-1=Manager)
+ * @param[in] manager request from manager(0=Client,1=Manager)
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+win_mgr_surface_change(struct weston_surface *surface, const int to, const int manager)
+{
+ struct uifw_win_surface *usurf;
+
+ uifw_trace("win_mgr_surface_change: Enter(%08x,%d,%d)", (int)surface, to, manager);
+
+ /* Find surface */
+ usurf = find_uifw_win_surface_by_ws(surface);
+ if (! usurf) {
+ uifw_trace("win_mgr_surface_change: Leave(Not Exist)");
+ return;
+ }
+
+ /* send wayland event to client */
+ if ((to >= 0) && (usurf->shsurf != NULL) && (manager !=0)) {
+ uifw_trace("win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(%08x,w/h=%d/%d)",
+ usurf->id, usurf->width, usurf->height);
+ ivi_shell_send_configure(usurf->shsurf, usurf->id,
+ (WL_SHELL_SURFACE_RESIZE_RIGHT |
+ WL_SHELL_SURFACE_RESIZE_BOTTOM),
+ usurf->width, usurf->height);
+ }
+
+ /* send manager event to HomeScreen */
+ if (to <= 0) {
+ ico_win_mgr_send_to_mgr(ICO_WINDOW_MGR_WINDOW_CONFIGURE,
+ usurf->id, usurf->uclient->appid, usurf->layer,
+ usurf->x, usurf->y, usurf->width, usurf->height,
+ (manager != 0) ? 0 : 1);
+ }
+ uifw_trace("win_mgr_surface_change: Leave(OK)");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief win_mgr_surface_select: select surface by Bottun/Touch
+ *
+ * @param[in] surface Weston surface
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+win_mgr_surface_select(struct weston_surface *surface)
+{
+ struct uifw_win_surface *usurf;
+
+ uifw_trace("win_mgr_surface_select: Enter(%08x)", (int)surface);
+
+ /* find surface */
+ usurf = find_uifw_win_surface_by_ws(surface);
+ if (! usurf) {
+ uifw_trace("win_mgr_surface_select: Leave(Not Exist)");
+ return;
+ }
+
+ /* send active event to manager */
+ ico_win_mgr_send_to_mgr(ICO_WINDOW_MGR_WINDOW_ACTIVE,
+ usurf->id, NULL, ICO_WINDOW_MGR_ACTIVE_SELECT, 0,0,0,0,0);
+
+ uifw_trace("win_mgr_surface_select: Leave(OK)");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief win_mgr_surface_destroy: surface destroy
+ *
+ * @param[in] surface Weston surface
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+win_mgr_surface_destroy(struct weston_surface *surface)
+{
+ struct uifw_win_surface *usurf;
+ struct uifw_win_surface *phash;
+ struct uifw_win_surface *bhash;
+ uint32_t hash;
+
+ uifw_trace("win_mgr_surface_destroy: Enter(%08x)", (int)surface);
+
+ usurf = find_uifw_win_surface_by_ws(surface);
+ if (! usurf) {
+ uifw_trace("win_mgr_surface_destroy: Leave(Not Exist)");
+ return;
+ }
+
+ hash = MAKE_IDHASH(usurf->id);
+ phash = _ico_win_mgr->idhash[hash];
+ bhash = NULL;
+ while ((phash) && (phash != usurf)) {
+ bhash = phash;
+ phash = phash->next_idhash;
+ }
+ if (bhash) {
+ bhash->next_idhash = usurf->next_idhash;
+ }
+ else {
+ _ico_win_mgr->idhash[hash] = usurf->next_idhash;
+ }
+
+ hash = MAKE_WSHASH(usurf->surface);
+ phash = _ico_win_mgr->wshash[hash];
+ bhash = NULL;
+ while ((phash) && (phash != usurf)) {
+ bhash = phash;
+ phash = phash->next_wshash;
+ }
+ if (bhash) {
+ bhash->next_wshash = usurf->next_wshash;
+ }
+ else {
+ _ico_win_mgr->wshash[hash] = usurf->next_wshash;
+ }
+
+ wl_list_remove(&usurf->link);
+ wl_list_init(&usurf->link);
+
+ ico_win_mgr_send_to_mgr(ICO_WINDOW_MGR_WINDOW_DESTROYED,
+ usurf->id, NULL, 0,0,0,0,0,0);
+
+ hash = usurf->id & SURCAFE_ID_MASK;
+ _ico_win_mgr->surfaceid_map[(hash - 1)/16] &= ~(1 << ((hash - 1) % 16));
+
+ free(usurf);
+
+ if (win_mgr_hook_destroy) {
+ (void) (*win_mgr_hook_destroy) (surface);
+ }
+ uifw_trace("win_mgr_surface_destroy: Leave(OK)");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief bind_ico_win_mgr: bind Multi Window Manager from client
+ *
+ * @param[in] client client
+ * @param[in] data user data(unused)
+ * @param[in] version protocol version(unused)
+ * @param[in] id client object id
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+bind_ico_win_mgr(struct wl_client *client,
+ void *data, uint32_t version, uint32_t id)
+{
+ struct wl_resource *add_resource;
+ struct uifw_manager *nm;
+
+ uifw_trace("bind_ico_win_mgr: Enter(client=%08x, id=%x)", (int)client, (int)id);
+
+ add_resource = wl_client_add_object(client, &ico_window_mgr_interface,
+ &ico_window_mgr_implementation, id, _ico_win_mgr);
+ add_resource->destroy = unbind_ico_win_mgr;
+
+ /* Manager */
+ nm = (struct uifw_manager *)malloc(sizeof(struct uifw_manager));
+ memset(nm, 0, sizeof(struct uifw_manager));
+ nm->resource = add_resource;
+ wl_list_insert(&_ico_win_mgr->manager_list, &nm->link);
+
+ uifw_trace("bind_ico_win_mgr: Leave");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief unbind_ico_win_mgr: unbind Multi Window Manager from client
+ *
+ * @param[in] resource client resource
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+static void
+unbind_ico_win_mgr(struct wl_resource *resource)
+{
+ struct uifw_manager *mgr, *itmp;
+
+ uifw_trace("unbind_ico_win_mgr: Enter");
+
+ /* Remove manager from manager list */
+ _ico_win_mgr->num_manager = 0;
+ wl_list_for_each_safe (mgr, itmp, &_ico_win_mgr->manager_list, link) {
+ if (mgr->resource == resource) {
+ wl_list_remove(&mgr->link);
+ free(mgr);
+ }
+ else {
+ if (mgr->eventcb) {
+ _ico_win_mgr->num_manager++;
+ }
+ }
+ }
+
+ free(resource);
+ uifw_trace("unbind_ico_win_mgr: Leave");
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_winmgr_usurf_2_node: get surface nodeId
+ *
+ * @param[in] surfaceid UIFW surface id
+ * @return node id
+ * @retval >= 0 success(surface node id)
+ * @retval < 0 error(surface id dose not exist)
+ */
+/*--------------------------------------------------------------------------*/
+static int
+ico_winmgr_usurf_2_node(const int surfaceid)
+{
+ /* currently support single ECU system */
+ return(ICO_IVI_SURFACEID_2_NODEID(surfaceid));
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_win_mgr_send_to_mgr: send event to manager(HomeScreen)
+ *
+ * @param[in] event event code(if -1, not send event)
+ * @param[in] surfaceid UIFW surface id
+ * @param[in] appid applicationId
+ * @param[in] param1 parameter 1
+ * @param[in] : :
+ * @param[in] param6 parameter 6
+ * @return number of managers
+ * @retval > 0 number of managers
+ * @retval 0 manager not exist
+ */
+/*--------------------------------------------------------------------------*/
+static int
+ico_win_mgr_send_to_mgr(const int event, const int surfaceid, const char *appid,
+ const int param1, const int param2, const int param3,
+ const int param4, const int param5, const int param6)
+{
+ int num_mgr = 0;
+ struct uifw_manager* mgr;
+
+ wl_list_for_each (mgr, &_ico_win_mgr->manager_list, link) {
+ if (mgr->eventcb) {
+ num_mgr ++;
+ switch(event) {
+ case ICO_WINDOW_MGR_WINDOW_CREATED:
+ uifw_trace("ico_win_mgr_send_to_mgr: Send Manager(%08x) WINDOW_CREATED"
+ "(surf=%08x,pid=%d,appid=%s)",
+ (int)mgr->resource, surfaceid, param1, appid);
+ ico_window_mgr_send_window_created(mgr->resource, surfaceid, param1, appid);
+ break;
+
+ case ICO_WINDOW_MGR_WINDOW_VISIBLE:
+ uifw_trace("ico_win_mgr_send_to_mgr: Send Manager(%08x) VISIBLE"
+ "(surf=%08x,vis=%d,raise=%d,hint=%d)",
+ (int)mgr->resource, surfaceid, param1, param2, param3);
+ ico_window_mgr_send_window_visible(mgr->resource,
+ surfaceid, param1, param2, param3);
+ break;
+
+ case ICO_WINDOW_MGR_WINDOW_CONFIGURE:
+ uifw_trace("ico_win_mgr_send_to_mgr: Send Manager(%08x) CONFIGURE"
+ "(surf=%08x,app=%s,layer=%d,x/y=%d/%d,w/h=%d/%d,hint=%d)",
+ (int)mgr->resource, surfaceid, appid,
+ param1, param2, param3, param4, param5, param6);
+ ico_window_mgr_send_window_configure(mgr->resource, surfaceid, appid,
+ param1, param2, param3, param4,
+ param5, param6);
+ break;
+
+ case ICO_WINDOW_MGR_WINDOW_DESTROYED:
+ uifw_trace("ico_win_mgr_send_to_mgr: Send Manager(%08x) DESTROYED "
+ "surf=%08x", (int)mgr->resource, surfaceid);
+ ico_window_mgr_send_window_destroyed(mgr->resource, surfaceid);
+ break;
+
+ case ICO_WINDOW_MGR_WINDOW_ACTIVE:
+ uifw_trace("ico_win_mgr_send_to_mgr: Send Manager(%08x) ACTIVE surf=%08x "
+ "active=%d", (int)mgr->resource, surfaceid, param1);
+ ico_window_mgr_send_window_active(mgr->resource, surfaceid,
+ (uint32_t)param1);
+ break;
+
+ default:
+ break;
+ }
+ }
+ }
+ return num_mgr;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_win_mgr_hook_set_user: set hook function for set user
+ *
+ * @param[in] hook_set_user hook function
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT void
+ico_win_mgr_hook_set_user(void (*hook_set_user)(struct wl_client *client,
+ const char *appid))
+{
+ uifw_trace("ico_win_mgr_hook_set_user: Hook %08x", (int)hook_set_user);
+ win_mgr_hook_set_user = hook_set_user;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_win_mgr_hook_create: set hook function for create surface
+ *
+ * @param[in] hook_create hook function
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT void
+ico_win_mgr_hook_create(void (*hook_create)(struct wl_client *client,
+ struct weston_surface *surface,
+ int surfaceId, const char *appid))
+{
+ uifw_trace("ico_win_mgr_hook_create: Hook %08x", (int)hook_create);
+ win_mgr_hook_create = hook_create;
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief ico_win_mgr_hook_destroy: set hook function for destroy surface
+ *
+ * @param[in] hook_destroy hook function
+ * @return none
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT void
+ico_win_mgr_hook_destroy(void (*hook_destroy)(struct weston_surface *surface))
+{
+ uifw_trace("ico_win_mgr_hook_destroy: Hook %08x", (int)hook_destroy);
+ win_mgr_hook_destroy = hook_destroy;
+}
+
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief module_init: initialize ico_window_mgr
+ * this function called from ico_pluign_loader
+ *
+ * @param[in] es weston compositor
+ * @return result
+ * @retval 0 sccess
+ * @retval -1 error
+ */
+/*--------------------------------------------------------------------------*/
+WL_EXPORT int
+module_init(struct weston_compositor *ec)
+{
+ int nodeId;
+
+ uifw_info("ico_window_mgr: Enter(module_init)");
+
+ _ico_win_mgr = (struct ico_win_mgr *)malloc(sizeof(struct ico_win_mgr));
+ if (_ico_win_mgr == NULL) {
+ uifw_error("ico_window_mgr: malloc failed");
+ return -1;
+ }
+
+ memset(_ico_win_mgr, 0, sizeof(struct ico_win_mgr));
+ _ico_win_mgr->surfaceid_map = (uint16_t *) malloc(INIT_SURFACE_IDS/8);
+ if (! _ico_win_mgr->surfaceid_map) {
+ uifw_error("ico_window_mgr: malloc failed");
+ return -1;
+ }
+ uifw_trace("ico_window_mgr: sh=%08x", (int)_ico_win_mgr);
+ memset(_ico_win_mgr->surfaceid_map, 0, INIT_SURFACE_IDS/8);
+
+ _ico_win_mgr->compositor = ec;
+
+ _ico_win_mgr->surfaceid_max = INIT_SURFACE_IDS;
+ _ico_win_mgr->surfaceid_count = INIT_SURFACE_IDS;
+
+ uifw_trace("ico_window_mgr: wl_display_add_global(bind_ico_win_mgr)");
+ if (wl_display_add_global(ec->wl_display, &ico_window_mgr_interface,
+ _ico_win_mgr, bind_ico_win_mgr) == NULL) {
+ uifw_error("ico_window_mgr: Error(wl_display_add_global)");
+ return -1;
+ }
+
+ wl_list_init(&_ico_win_mgr->surface_list);
+ wl_list_init(&_ico_win_mgr->client_list);
+ wl_list_init(&_ico_win_mgr->manager_list);
+
+ nodeId = ico_ivi_get_mynode();
+ _ico_win_mgr->surface_head = ICO_IVI_SURFACEID_BASE(nodeId);
+ uifw_trace("ico_window_mgr: NoedId=%08x SurfaceIdBase=%08x",
+ nodeId, _ico_win_mgr->surface_head);
+
+ /* Regist usurf_2_node to ivi_common plugin */
+ ico_ivi_set_usurf_2_node(ico_winmgr_usurf_2_node);
+
+ /* Regist send_to_mgr to ivi_common plugin */
+ ico_ivi_set_send_to_mgr(ico_win_mgr_send_to_mgr);
+ ico_ivi_set_send_surface_change(win_mgr_surface_change_mgr);
+
+ /* Hook to IVI-Shell */
+ ivi_shell_hook_bind(bind_shell_client);
+ ivi_shell_hook_unbind(unbind_shell_client);
+ ivi_shell_hook_create(client_register_surface);
+ ivi_shell_hook_destroy(win_mgr_surface_destroy);
+ ivi_shell_hook_map(win_mgr_map_surface);
+ ivi_shell_hook_change(win_mgr_surface_change);
+ ivi_shell_hook_select(win_mgr_surface_select);
+
+ uifw_info("ico_window_mgr: Leave(module_init)");
+
+ return 0;
+}
+
diff --git a/src/ico_window_mgr.h b/src/ico_window_mgr.h
new file mode 100644
index 0000000..d195219
--- /dev/null
+++ b/src/ico_window_mgr.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright © 2010-2011 Intel Corporation
+ * Copyright © 2008-2011 Kristian Høgsberg
+ * Copyright © 2013 TOYOTA MOTOR CORPORATION.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of the copyright holders not be used in
+ * advertising or publicity pertaining to distribution of the software
+ * without specific, written prior permission. The copyright holders make
+ * no representations about the suitability of this software for any
+ * purpose. It is provided "as is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+/**
+ * @brief Public functions in ico_window_mgr Weston plugin
+ *
+ * @date Feb-08-2013
+ */
+
+#ifndef _ICO_WINDOW_MGR_H_
+#define _ICO_WINDOW_MGR_H_
+
+struct shell_surface;
+
+/* Prototype for function */
+char *ico_window_mgr_appid(struct wl_client* client);
+
+#endif /*_ICO_WINDOW_MGR_H_*/
diff --git a/src/matrix.h b/src/matrix.h
new file mode 100644
index 0000000..45d346f
--- /dev/null
+++ b/src/matrix.h
@@ -0,0 +1,64 @@
+/*
+ * Copyright © 2008-2011 Kristian Høgsberg
+ * Copyright © 2012 Collabora, Ltd.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of the copyright holders not be used in
+ * advertising or publicity pertaining to distribution of the software
+ * without specific, written prior permission. The copyright holders make
+ * no representations about the suitability of this software for any
+ * purpose. It is provided "as is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef WESTON_MATRIX_H
+#define WESTON_MATRIX_H
+
+struct weston_matrix {
+ float d[16];
+};
+
+struct weston_vector {
+ float f[4];
+};
+
+void
+weston_matrix_init(struct weston_matrix *matrix);
+void
+weston_matrix_multiply(struct weston_matrix *m, const struct weston_matrix *n);
+void
+weston_matrix_scale(struct weston_matrix *matrix, float x, float y, float z);
+void
+weston_matrix_translate(struct weston_matrix *matrix,
+ float x, float y, float z);
+void
+weston_matrix_transform(struct weston_matrix *matrix, struct weston_vector *v);
+
+int
+weston_matrix_invert(struct weston_matrix *inverse,
+ const struct weston_matrix *matrix);
+
+#ifdef UNIT_TEST
+# define MATRIX_TEST_EXPORT WL_EXPORT
+
+int
+matrix_invert(double *A, unsigned *p, const struct weston_matrix *matrix);
+
+void
+inverse_transform(const double *LU, const unsigned *p, float *v);
+
+#else
+# define MATRIX_TEST_EXPORT static
+#endif
+
+#endif /* WESTON_MATRIX_H */
diff --git a/tests/Makefile.am b/tests/Makefile.am
new file mode 100644
index 0000000..5b664ea
--- /dev/null
+++ b/tests/Makefile.am
@@ -0,0 +1,38 @@
+TESTS_ENVIRONMENT = $(SHELL) $(top_srcdir)/tests/weston-plugin-test
+
+export abs_builddir
+
+EFL_INCLUDE = `pkg-config --cflags ecore-evas ecore evas ecore-wayland elementary`
+AM_CFLAGS = $(GCC_CFLAGS) $(EFL_INCLUDE)
+AM_CPPFLAGS = -I$(top_srcdir)/src -DUNIT_TEST $(COMPOSITOR_CFLAGS)
+
+noinst_PROGRAMS = \
+ test-send_event \
+ test-homescreen \
+ test-client \
+ test-eflapp
+
+check_LTLIBRARIES = $(TESTS)
+check_PROGRAMS = test-homescreen test-client test-eflapp test-send_event
+
+AM_LDFLAGS = -module -avoid-version -rpath $(libdir) -lwayland-egl -lEGL -lGLESv2
+
+test_common_src = test-common.c test-common.h
+test_protocol_lib = ../src/.libs/libico-uxf-weston-plugin.so
+test_efl_libs = -lecore_evas -lecore -levas -lecore_wayland -lelementary
+test_wayland_client = -lwayland-client
+
+test_send_event_SOURCES = test-send_event.c $(test_common_src)
+test_send_event_LDADD = $(SIMPLE_CLIENT_LIBS) $(test_wayland_client)
+
+test_homescreen_SOURCES = test-homescreen.c $(test_common_src)
+test_homescreen_LDADD = $(SIMPLE_CLIENT_LIBS) $(test_protocol_lib) $(test_wayland_client)
+
+test_client_SOURCES = test-client.c $(test_common_src)
+test_client_LDADD = $(SIMPLE_CLIENT_LIBS) $(test_protocol_lib) $(test_wayland_client)
+
+test_eflapp_SOURCES = test-eflapp.c
+test_eflapp_LDADD = $(SIMPLE_CLIENT_LIBS) $(test_efl_libs)
+
+EXTRA_DIST = weston-plugin-test
+
diff --git a/tests/test-client.c b/tests/test-client.c
new file mode 100644
index 0000000..28fd1a2
--- /dev/null
+++ b/tests/test-client.c
@@ -0,0 +1,641 @@
+/*
+ * Copyright © 2012 Intel Corporation
+ * Copyright © 2013 TOYOTA MOTOR CORPORATION
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting documentation, and
+ * that the name of the copyright holders not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. The copyright holders make no representations
+ * about the suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ * OF THIS SOFTWARE.
+ */
+/**
+ * @brief Wayland Application for uint test of Weston(Wayland) IVI plugins
+ *
+ * @date Feb-08-2013
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <assert.h>
+#include <poll.h>
+#include <wayland-client.h>
+#include <linux/input.h>
+#include "ico_ivi_shell-client-protocol.h"
+#include "ico_window_mgr-client-protocol.h"
+#include "ico_input_mgr-client-protocol.h"
+#include "test-common.h"
+
+#define MAX_CON_NAME 127
+
+struct display {
+ struct wl_display *display;
+ struct wl_registry *registry;
+ struct wl_compositor *compositor;
+ struct wl_shell *shell;
+ struct ico_ivi_shell *ico_ivi_shell;
+ struct ico_window_mgr *ico_window_mgr;
+ struct ico_exinput *ico_exinput;
+ struct input *input;
+ struct output *output;
+ struct surface *surface;
+ int init_color;
+ int init_width;
+ int init_height;
+ int prompt;
+ char connect[MAX_CON_NAME+1];
+};
+
+struct input {
+ struct display *display;
+ struct wl_seat *seat;
+ struct wl_pointer *pointer;
+ struct wl_keyboard *keyboard;
+ float x, y;
+ uint32_t button_mask;
+ struct surface *pointer_focus;
+ struct surface *keyboard_focus;
+ uint32_t last_key, last_key_state;
+};
+
+struct output {
+ struct display *display;
+ struct wl_output *output;
+ int x, y;
+ int width, height;
+};
+
+struct surface {
+ struct display *display;
+ struct wl_surface *surface;
+ struct wl_shell_surface *shell_surface;
+ struct output *output;
+ EGLDisplay dpy;
+ EGLConfig conf;
+ EGLContext ctx;
+ EGLSurface egl_surface;
+};
+
+static void clear_surface(struct display *display);
+
+static void
+pointer_handle_enter(void *data, struct wl_pointer *pointer,
+ uint32_t serial, struct wl_surface *surface,
+ wl_fixed_t x, wl_fixed_t y)
+{
+ struct input *input = data;
+
+ input->pointer_focus = wl_surface_get_user_data(surface);
+ input->x = wl_fixed_to_double(x);
+ input->y = wl_fixed_to_double(y);
+ print_log("CLIENT: got pointer enter (%d,%d), surface %p",
+ (int)input->x, (int)input->y, surface);
+}
+
+static void
+pointer_handle_leave(void *data, struct wl_pointer *pointer,
+ uint32_t serial, struct wl_surface *surface)
+{
+ struct input *input = data;
+
+ input->pointer_focus = NULL;
+
+ print_log("CLIENT: got pointer leave, surface %p", surface);
+}
+
+static void
+pointer_handle_motion(void *data, struct wl_pointer *pointer,
+ uint32_t time, wl_fixed_t x, wl_fixed_t y)
+{
+ struct input *input = data;
+
+ input->x = wl_fixed_to_double(x);
+ input->y = wl_fixed_to_double(y);
+
+ print_log("CLIENT: got pointer motion (%d,%d)", (int)input->x, (int)input->y);
+}
+
+static void
+pointer_handle_button(void *data, struct wl_pointer *pointer,
+ uint32_t serial, uint32_t time, uint32_t button, uint32_t state_w)
+{
+ struct input *input = data;
+ uint32_t bit;
+ enum wl_pointer_button_state state = state_w;
+
+ bit = 1 << (button - BTN_LEFT);
+ if (state == WL_POINTER_BUTTON_STATE_PRESSED)
+ input->button_mask |= bit;
+ else
+ input->button_mask &= ~bit;
+ print_log("CLIENT: got pointer button %u %u", button, state_w);
+}
+
+static void
+pointer_handle_axis(void *data, struct wl_pointer *pointer,
+ uint32_t time, uint32_t axis, wl_fixed_t value)
+{
+ fprintf(stderr, "CLIENT: got pointer axis %u %d\n", axis, value);
+}
+
+static void
+keyboard_handle_keymap(void *data, struct wl_keyboard *keyboard,
+ uint32_t format, int fd, uint32_t size)
+{
+ close(fd);
+ print_log("CLIENT: got keyboard keymap");
+}
+
+static void
+keyboard_handle_enter(void *data, struct wl_keyboard *keyboard,
+ uint32_t serial, struct wl_surface *surface, struct wl_array *keys)
+{
+ struct input *input = data;
+
+ input->keyboard_focus = wl_surface_get_user_data(surface);
+ print_log("CLIENT: got keyboard enter, surface %p", surface);
+}
+
+static void
+keyboard_handle_leave(void *data, struct wl_keyboard *keyboard,
+ uint32_t serial, struct wl_surface *surface)
+{
+ struct input *input = data;
+
+ input->keyboard_focus = NULL;
+ print_log("CLIENT: got keyboard leave, surface %p", surface);
+}
+
+static void
+keyboard_handle_key(void *data, struct wl_keyboard *keyboard,
+ uint32_t serial, uint32_t time, uint32_t key, uint32_t state)
+{
+ struct input *input = data;
+
+ input->last_key = key;
+ input->last_key_state = state;
+
+ print_log("CLIENT: got keyboard key %u %u", key, state);
+}
+
+static void
+keyboard_handle_modifiers(void *data, struct wl_keyboard *keyboard,
+ uint32_t serial, uint32_t mods_depressed,
+ uint32_t mods_latched, uint32_t mods_locked, uint32_t group)
+{
+ print_log("CLIENT: got keyboard modifier");
+}
+
+static const struct wl_pointer_listener pointer_listener = {
+ pointer_handle_enter,
+ pointer_handle_leave,
+ pointer_handle_motion,
+ pointer_handle_button,
+ pointer_handle_axis,
+};
+
+static const struct wl_keyboard_listener keyboard_listener = {
+ keyboard_handle_keymap,
+ keyboard_handle_enter,
+ keyboard_handle_leave,
+ keyboard_handle_key,
+ keyboard_handle_modifiers,
+};
+
+static void
+seat_handle_capabilities(void *data, struct wl_seat *seat,
+ enum wl_seat_capability caps)
+{
+ struct input *input = data;
+
+ if ((caps & WL_SEAT_CAPABILITY_POINTER) && !input->pointer) {
+ input->pointer = wl_seat_get_pointer(seat);
+ wl_pointer_set_user_data(input->pointer, input);
+ wl_pointer_add_listener(input->pointer, &pointer_listener, input);
+ }
+ else if (!(caps & WL_SEAT_CAPABILITY_POINTER) && input->pointer) {
+ wl_pointer_destroy(input->pointer);
+ input->pointer = NULL;
+ }
+
+ if ((caps & WL_SEAT_CAPABILITY_KEYBOARD) && !input->keyboard) {
+ input->keyboard = wl_seat_get_keyboard(seat);
+ wl_keyboard_set_user_data(input->keyboard, input);
+ wl_keyboard_add_listener(input->keyboard, &keyboard_listener, input);
+ }
+ else if (!(caps & WL_SEAT_CAPABILITY_KEYBOARD) && input->keyboard) {
+ wl_keyboard_destroy(input->keyboard);
+ input->keyboard = NULL;
+ }
+}
+
+static const struct wl_seat_listener seat_listener = {
+ seat_handle_capabilities,
+};
+
+static void
+output_handle_geometry(void *data, struct wl_output *wl_output, int x, int y,
+ int physical_width, int physical_height, int subpixel,
+ const char *make, const char *model, int32_t transform)
+{
+ struct output *output = data;
+
+ print_log("CLIENT: Event[handle_geometry] x/y=%d/%d p.w/h=%d/%d trans=%d",
+ x, y, physical_width, physical_height, transform);
+
+ output->x = x;
+ output->y = y;
+}
+
+static void
+output_handle_mode(void *data, struct wl_output *wl_output, uint32_t flags,
+ int width, int height, int refresh)
+{
+ struct output *output = data;
+
+ print_log("CLIENT: Event[handle_mode] x/y=%d/%d flags=%08x refresh=%d",
+ width, height, flags, refresh);
+
+ if (flags & WL_OUTPUT_MODE_CURRENT) {
+ output->width = width;
+ output->height = height;
+ }
+}
+
+static const struct wl_output_listener output_listener = {
+ output_handle_geometry,
+ output_handle_mode
+};
+
+static void
+cb_input_capabilities(void *data, struct ico_exinput *ico_exinput,
+ const char *device, int32_t type, const char *swname, int32_t input,
+ const char *codename, int32_t code)
+{
+ print_log("CLIENT: Event[input_capabilities] device=%s type=%d sw=%s input=%d "
+ "code=%s[%d]", device, type, swname, input, codename, code);
+}
+
+static void
+cb_input_code(void *data, struct ico_exinput *ico_exinput,
+ const char *device, int32_t input, const char *codename, int32_t code)
+{
+ print_log("CLIENT: Event[input_code] device=%s input=%d code=%s[%d]",
+ device, input, codename, code);
+}
+
+static void
+cb_input_input(void *data, struct ico_exinput *ico_exinput, uint32_t time,
+ const char *device, int32_t input, int32_t code, int32_t state)
+{
+ print_log("CLIENT: Event[input_input] device=%s input=%d code=%d state=%d",
+ device, input, code, state);
+}
+
+static const struct ico_exinput_listener exinput_listener = {
+ cb_input_capabilities,
+ cb_input_code,
+ cb_input_input
+};
+
+static void
+shell_surface_ping(void *data, struct wl_shell_surface *wl_shell_surface, uint32_t serial)
+{
+ print_log("CLIENT: shell_surface_ping: surface=%08x serial=%d",
+ (int)wl_shell_surface, serial);
+}
+
+static void
+shell_surface_configure(void *data, struct wl_shell_surface *wl_shell_surface,
+ uint32_t edges, int32_t width, int32_t height)
+{
+ print_log("CLIENT: shell_surface_configure: surface=%08x edg=%x, width=%d height=%d",
+ (int)wl_shell_surface, edges, width, height);
+}
+
+static void
+shell_surface_popup_done(void *data, struct wl_shell_surface *wl_shell_surface)
+{
+ print_log("CLIENT: shell_surface_popup_done: surface=%08x", (int)wl_shell_surface);
+}
+
+static const struct wl_shell_surface_listener shell_surface_listener = {
+ shell_surface_ping,
+ shell_surface_configure,
+ shell_surface_popup_done
+};
+
+static void
+handle_global(void *data, struct wl_registry *registry, uint32_t id,
+ const char *interface, uint32_t version)
+{
+ struct display *display = data;
+ struct input *input;
+ struct output *output;
+
+ print_log("CLIENT: handle_global: interface=<%s> id=%d", interface, (int)id);
+
+ if (strcmp(interface, "wl_compositor") == 0) {
+ display->compositor = wl_registry_bind(display->registry, id,
+ &wl_compositor_interface, 1);
+ }
+ else if (strcmp(interface, "wl_seat") == 0) {
+ input = calloc(1, sizeof *input);
+ input->display = display;
+ input->seat = wl_registry_bind(display->registry, id, &wl_seat_interface, 1);
+ input->pointer_focus = NULL;
+ input->keyboard_focus = NULL;
+
+ wl_seat_add_listener(input->seat, &seat_listener, input);
+ display->input = input;
+ }
+ else if (strcmp(interface, "wl_output") == 0) {
+ output = malloc(sizeof *output);
+ output->display = display;
+ output->output = wl_registry_bind(display->registry, id, &wl_output_interface, 1);
+ wl_output_add_listener(output->output,
+ &output_listener, output);
+ display->output = output;
+
+ print_log("CLIENT: created output global %p", display->output);
+ }
+ else if (strcmp(interface, "wl_shell") == 0) {
+ display->shell = wl_registry_bind(display->registry, id, &wl_shell_interface, 1);
+ }
+ else if (strcmp(interface, "ico_ivi_shell") == 0) {
+ display->ico_ivi_shell =
+ wl_registry_bind(display->registry, id, &ico_ivi_shell_interface, 1);
+ }
+ else if (strcmp(interface, "ico_window_mgr") == 0) {
+ display->ico_window_mgr = wl_registry_bind(display->registry, id,
+ &ico_window_mgr_interface, 1);
+ print_log("CLIENT: created window_mgr global %p", display->ico_window_mgr);
+ }
+ else if (strcmp(interface, "ico_exinput") == 0) {
+ display->ico_exinput = wl_registry_bind(display->registry, id,
+ &ico_exinput_interface, 1);
+ ico_exinput_add_listener(display->ico_exinput, &exinput_listener, display);
+ print_log("CLIENT: created exinput global %p", display->ico_exinput);
+ }
+}
+
+static const struct wl_registry_listener registry_listener = {
+ handle_global
+};
+
+static void
+surface_enter(void *data, struct wl_surface *wl_surface, struct wl_output *output)
+{
+ struct surface *surface = data;
+
+ surface->output = wl_output_get_user_data(output);
+
+ print_log("CLIENT: got surface enter, output %p", surface->output);
+}
+
+static void
+surface_leave(void *data, struct wl_surface *wl_surface, struct wl_output *output)
+{
+ struct surface *surface = data;
+
+ surface->output = NULL;
+
+ print_log("CLIENT: got surface leave, output %p", wl_output_get_user_data(output));
+}
+
+static const struct wl_surface_listener surface_listener = {
+ surface_enter,
+ surface_leave
+};
+
+static void
+send_keyboard_state(struct display *display)
+{
+ int focus = display->input->keyboard_focus != NULL;
+
+ if (focus) {
+ assert(display->input->keyboard_focus == display->surface);
+ }
+
+ wl_display_flush(display->display);
+
+ print_log("CLIENT: keyboard_state %u %u %d",
+ display->input->last_key, display->input->last_key_state, focus);
+
+ wl_display_roundtrip(display->display);
+}
+
+static void
+send_button_state(struct display *display)
+{
+ wl_display_roundtrip(display->display);
+
+ print_log("CLIENT: button_state %u", display->input->button_mask);
+
+ wl_display_roundtrip(display->display);
+}
+
+static void
+send_state(struct display* display)
+{
+ int visible = display->surface->output != NULL;
+ wl_fixed_t x = wl_fixed_from_int(-1);
+ wl_fixed_t y = wl_fixed_from_int(-1);
+
+ if (display->input->pointer_focus != NULL) {
+ assert(display->input->pointer_focus == display->surface);
+ x = wl_fixed_from_double(display->input->x);
+ y = wl_fixed_from_double(display->input->y);
+ }
+
+ if (visible) {
+ /* FIXME: this fails on multi-display setup */
+ /* assert(display->surface->output == display->output); */
+ }
+
+ wl_display_flush(display->display);
+
+ print_log("CLIENT: state %d %d %d", x, y, visible);
+
+ wl_display_roundtrip(display->display);
+}
+
+static void
+create_surface(struct display *display)
+{
+ struct surface *surface;
+
+ surface = malloc(sizeof *surface);
+ assert(surface);
+ surface->display = display;
+ display->surface = surface;
+ surface->surface = wl_compositor_create_surface(display->compositor);
+ wl_surface_add_listener(surface->surface, &surface_listener, surface);
+
+ if (display->shell) {
+ surface->shell_surface =
+ wl_shell_get_shell_surface(display->shell, surface->surface);
+ if (surface->shell_surface) {
+ wl_shell_surface_add_listener(surface->shell_surface,
+ &shell_surface_listener, display);
+ wl_shell_surface_set_toplevel(surface->shell_surface);
+ }
+ }
+ wl_display_flush(display->display);
+
+ print_log("CLIENT: create surface %d shell=%08x",
+ wl_proxy_get_id((struct wl_proxy *) surface->surface),
+ (int)surface->shell_surface);
+
+ poll(NULL, 0, 100); /* Wait for next frame where we'll get events. */
+
+ wl_display_roundtrip(display->display);
+
+ surface->dpy = opengl_init(display->display, &surface->conf, &surface->ctx);
+ if (surface->dpy) {
+ surface->egl_surface = opengl_create_window(display->display, surface->surface,
+ surface->dpy, surface->conf,
+ surface->ctx, display->init_width,
+ display->init_height,
+ display->init_color);
+ clear_surface(display);
+ print_log("CLIENT: created egl_surface %08x", (int)surface->egl_surface);
+ }
+}
+
+static void
+clear_surface(struct display *display)
+{
+ if (! display->surface) {
+ create_surface(display);
+ }
+ else {
+ opengl_clear_window(display->init_color);
+ opengl_swap_buffer(display->display,
+ display->surface->dpy, display->surface->egl_surface);
+ }
+}
+
+int main(int argc, char *argv[])
+{
+ struct display *display;
+ char buf[256];
+ int ret, fd;
+ int msec;
+ int postsec = 0;
+
+ display = malloc(sizeof *display);
+ assert(display);
+ memset((char *)display, 0, sizeof *display);
+
+ display->init_width = 640;
+ display->init_height = 480;
+ display->init_color = 0xA0A08020;
+ for (fd = 1; fd < argc; fd++ ) {
+ if (argv[fd][0] == '-') {
+ if (strncasecmp(argv[fd], "-color=", 7) == 0) {
+ display->init_color = strtoul(&argv[fd][7], (char **)0, 0);
+ }
+ else if (strncasecmp(argv[fd], "-width=", 7) == 0) {
+ display->init_width = strtol(&argv[fd][7], (char **)0, 0);
+ }
+ else if (strncasecmp(argv[fd], "-height=", 8) == 0) {
+ display->init_height = strtol(&argv[fd][8], (char **)0, 0);
+ }
+ else if (strncasecmp(argv[fd], "-display=", 9) == 0) {
+ strncpy(display->connect, &argv[fd][9], MAX_CON_NAME);
+ }
+ else if (strncasecmp(argv[fd], "-postsleep=", 11) == 0) {
+ postsec = sec_str_2_value(&argv[fd][11]);
+ }
+ else if (strncasecmp(argv[fd], "-prompt=", 8) == 0) {
+ if (argv[fd][8] == 0) {
+ display->prompt = argv[fd][8] & 1;
+ }
+ else {
+ display->prompt = 1;
+ }
+ }
+ }
+ }
+
+ if (display->connect[0]) {
+ display->display = wl_display_connect(display->connect);
+ }
+ else {
+ display->display = wl_display_connect(NULL);
+ }
+ assert(display->display);
+
+ display->registry = wl_display_get_registry(display->display);
+ wl_registry_add_listener(display->registry,
+ &registry_listener, display);
+ wl_display_dispatch(display->display);
+
+ fd = 0;
+
+ while (1) {
+ sleep_with_wayland(display->display, 20);
+ if (display->prompt) {
+ printf("CLIENT: "); fflush(stdout);
+ }
+ ret = getdata(display->ico_window_mgr, "CLIENT: ", fd, buf, sizeof(buf));
+ if (ret < 0) {
+ fprintf(stderr, "CLIENT: read error: fd %d, %m\n",
+ fd);
+ break;
+ }
+ if (ret == 0) continue;
+ wl_display_flush(display->display);
+
+ if ((strncasecmp(buf, "bye", 3) == 0) ||
+ (strncasecmp(buf, "quit", 4) == 0) ||
+ (strncasecmp(buf, "end", 3) == 0)) {
+ /* Exit, end of test */
+ break;
+ }
+ else if (strncasecmp(buf, "create-surface", ret) == 0) {
+ create_surface(display);
+ }
+ else if (strncasecmp(buf, "clear-surface", 13) == 0) {
+ display->init_color = strtoul(&buf[14], (char **)0, 0);
+ clear_surface(display);
+ }
+ else if (strncasecmp(buf, "send-state", ret) == 0) {
+ send_state(display);
+ }
+ else if (strncasecmp(buf, "send-button-state", ret) == 0) {
+ send_button_state(display);
+ }
+ else if (strncasecmp(buf, "send-keyboard-state", ret) == 0) {
+ send_keyboard_state(display);
+ }
+ else if (strncasecmp(buf, "sleep", 5) == 0) {
+ msec = sec_str_2_value(&buf[6]);
+ sleep_with_wayland(display->display, msec);
+ }
+ else {
+ print_log("CLIENT: unknown command[%s]", buf);
+ return(-1);
+ }
+ }
+ if (postsec > 0) {
+ sleep_with_wayland(display->display, postsec);
+ }
+
+ exit(0);
+}
+
diff --git a/tests/test-common.c b/tests/test-common.c
new file mode 100644
index 0000000..b1a18b7
--- /dev/null
+++ b/tests/test-common.c
@@ -0,0 +1,423 @@
+/*
+ * Copyright © 2013 TOYOTA MOTOR CORPORATION
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting documentation, and
+ * that the name of the copyright holders not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. The copyright holders make no representations
+ * about the suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ * OF THIS SOFTWARE.
+ */
+/**
+ * @brief Uint test common routines
+ *
+ * @date Feb-08-2013
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/ioctl.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <time.h>
+#include <errno.h>
+#include <wayland-client.h>
+#include "ico_window_mgr-client-protocol.h"
+#include "test-common.h"
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief getdata: Input data string
+ *
+ * @param[in] window_mgr ico_window_mgr, if Null, output to stderr
+ * @param[in] prompt Echoback printout header
+ * @param[in] fd Input file discriptor
+ * @param[in] buf Input buffer
+ * @param[in] size Buffer size
+ * @return Number of input characters
+ * @retval >= 0 Number of input characters
+ * @retval < 0 Input error
+ */
+/*--------------------------------------------------------------------------*/
+int
+getdata(void *window_mgr, const char *prompt, int fd, char *buf, const int size)
+{
+ int ret;
+ int i, j;
+
+ j = -1;
+ for (i = 0; i < (size-1); i++) {
+ ret = read(fd, &buf[i], 1);
+
+ if (ret < 0) {
+ return(ret);
+ }
+
+ if ((buf[i] == '\n') || (buf[i] == '\r')) break;
+ if (buf[i] == '\t') {
+ buf[i] = ' ';
+ }
+ if ((buf[i] == '#') && (j < 0)) {
+ j = i;
+ }
+ }
+ buf[i] = 0;
+ print_log("%s%s", prompt, buf);
+
+ /* Delete trailing spaces */
+ if (j >= 0) {
+ for (; j > 0; j--) {
+ if (buf[j-1] != ' ') break;
+ }
+ buf[j] = 0;
+ i = j;
+ }
+
+ /* Delete header spaces */
+ for (j = 0; buf[j]; j++) {
+ if (buf[j] != ' ') break;
+ }
+ if (j > 0) {
+ strcpy( buf, &buf[j] );
+ i -= j;
+ }
+ return(i);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief print_log: Weston log output
+ *
+ * @param[in] fmt printf format
+ * @param[in] ... printf arguments
+ * @return None
+ */
+/*--------------------------------------------------------------------------*/
+void
+print_log(const char *fmt, ...)
+{
+ va_list ap;
+ char log[128];
+ struct timeval NowTime;
+ extern long timezone;
+ static int sTimeZone = (99*60*60);
+
+ va_start(ap, fmt);
+ vsnprintf(log, sizeof(log)-2, fmt, ap);
+ va_end(ap);
+
+ gettimeofday( &NowTime, (struct timezone *)0 );
+ if( sTimeZone > (24*60*60) ) {
+ tzset();
+ sTimeZone = timezone;
+ }
+ NowTime.tv_sec -= sTimeZone;
+ fprintf(stderr, "[%02d:%02d:%02d.%03d@%d] %s\n", (int)((NowTime.tv_sec/3600) % 24),
+ (int)((NowTime.tv_sec/60) % 60), (int)(NowTime.tv_sec % 60),
+ (int)NowTime.tv_usec/1000, getpid(), log);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief wayland_dispatch_nonblock: Read from wayland if receive data exist
+ *
+ * @param[in] display Wayland connection
+ * @return None
+ */
+/*--------------------------------------------------------------------------*/
+void
+wayland_dispatch_nonblock(struct wl_display *display)
+{
+ int nread;
+
+ /* Check wayland input */
+ do {
+ /* Flush send data */
+ wl_display_flush(display);
+
+ nread = 0;
+ if (ioctl(wl_display_get_fd(display), FIONREAD, &nread) < 0) {
+ nread = 0;
+ }
+ if (nread >= 8) {
+ /* Read event from wayland */
+ wl_display_dispatch(display);
+ }
+ } while (nread > 0);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief sleep_with_wayland: Sleep and receive wayland event
+ *
+ * @param[in] display Wayland connection
+ * @param[in] msec Sleep time (miri-sec)
+ * @return None
+ */
+/*--------------------------------------------------------------------------*/
+void
+sleep_with_wayland(struct wl_display *display, int msec)
+{
+ int nread;
+ int fd;
+
+
+ fd = wl_display_get_fd(display);
+
+ do {
+ /* Flush send data */
+ wl_display_flush(display);
+
+ /* Check wayland input */
+ nread = 0;
+ if (ioctl(fd, FIONREAD, &nread) < 0) {
+ nread = 0;
+ }
+ if (nread >= 8) {
+ /* Read event from wayland */
+ wl_display_dispatch(display);
+ }
+ msec -= 20;
+ if (msec >= 0) usleep(20*1000);
+ } while (msec > 0);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief wait_with_wayland: Wait for end and receive wayland event
+ *
+ * @param[in] display Wayland connection
+ * @param[in] msec Maximum wait time (miri-sec)
+ * @param[in] endflag End flag address
+ * @return None
+ */
+/*--------------------------------------------------------------------------*/
+void
+wait_with_wayland(struct wl_display *display, int msec, int *endflag)
+{
+ int nread;
+ int fd;
+
+ fd = wl_display_get_fd(display);
+
+ do {
+ /* Flush send data */
+ wl_display_flush(display);
+
+ /* Check wayland input */
+ nread = 0;
+ if (ioctl(fd, FIONREAD, &nread) < 0) {
+ nread = 0;
+ }
+ if (nread >= 8) {
+ /* Read event from wayland */
+ wl_display_dispatch(display);
+ }
+ msec -= 20;
+ if (msec >= 0) usleep(20*1000);
+ } while ((*endflag == 0) && (msec > 0));
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief sec_str_2_value: Convert seconds string to value
+ *
+ * @param[in] ssec Time ("sec.msec")
+ * @return miri-second
+ */
+/*--------------------------------------------------------------------------*/
+int
+sec_str_2_value(const char *ssec)
+{
+ int sec;
+ int msec;
+ int n;
+ char *errp = NULL;
+
+ sec = strtol(ssec, &errp, 0) * 1000;
+ if ((errp != NULL) && (*errp == '.')) {
+ msec = 0;
+ n = 0;
+ for (errp++; *errp; errp++) {
+ if ((*errp < '0') || (*errp > '9')) break;
+ msec = msec * 10 + *errp - '0';
+ n++;
+ if (n >= 3) break;
+ }
+ if (n == 1) msec *= 100;
+ if (n == 2) msec *= 10;
+ sec += msec;
+ }
+ return(sec);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief opengl_init: Initialize OpenGL ESv2/EGL
+ *
+ * @param[in] display Wayland connection
+ * @param[out] rconf EGL configuration
+ * @param[out] rctx EGL context
+ * @return EGL display
+ * @retval != NULL EGL display
+ * @retval == NULL OpenGL/EGL initialize error
+ */
+/*--------------------------------------------------------------------------*/
+EGLDisplay
+opengl_init(struct wl_display *display, EGLConfig *rconf, EGLContext *rctx)
+{
+ EGLDisplay dpy; /* EGL dsplay id */
+ EGLint major, minor;
+ EGLint num_configs;
+ EGLConfig conf = 0;
+ EGLContext ctx;
+
+ static const EGLint config_attribs[] = {
+ EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
+ EGL_RED_SIZE, 1,
+ EGL_GREEN_SIZE, 1,
+ EGL_BLUE_SIZE, 1,
+ EGL_ALPHA_SIZE, 1,
+ EGL_DEPTH_SIZE, 1,
+ EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
+ EGL_NONE
+ };
+ static const EGLint context_attribs[] = {
+ EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE
+ };
+
+ dpy = eglGetDisplay((EGLNativeDisplayType)display);
+ if (! dpy) {
+ fprintf(stderr, "eglGetDisplay Error\n");
+ return NULL;
+ }
+
+ if (eglInitialize(dpy, &major, &minor) == EGL_FALSE) {
+ fprintf(stderr, "eglInitialize Error\n");
+ return NULL;
+ }
+
+ if (eglBindAPI(EGL_OPENGL_ES_API) == EGL_FALSE) {
+ fprintf(stderr, "eglBindAPI Error\n");
+ return NULL;
+ }
+
+ if (eglChooseConfig(dpy, config_attribs, &conf, 1, &num_configs) == EGL_FALSE) {
+ fprintf(stderr, "eglChooseConfig Error\n");
+ return NULL;
+ }
+
+ ctx = eglCreateContext(dpy, conf, EGL_NO_CONTEXT, context_attribs);
+ if (! ctx) {
+ fprintf(stderr, "eglCreateContext Error\n");
+ return NULL;
+ }
+ *rconf = conf;
+ *rctx = ctx;
+
+ wayland_dispatch_nonblock(display);
+
+ return(dpy);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief opengl_create_window: Create OpenGL/EGL window
+ *
+ * @param[in] display Wayland connection
+ * @param[in] surface Wayland surface
+ * @param[in] dpy EGL display
+ * @param[in] conf EGL configuration
+ * @param[in] ctx EGL context
+ * @param[in] width Widown width
+ * @param[in] height Window height
+ * @param[in] color Initiale color(A<<24|R<<16|G<<8|B)
+ * @return EGL surface
+ * @retval != NULL EGL surface
+ * @retval == NULL Create window error
+ */
+/*--------------------------------------------------------------------------*/
+EGLSurface
+opengl_create_window(struct wl_display *display, struct wl_surface *surface,
+ EGLDisplay dpy, EGLConfig conf, EGLContext ctx,
+ const int width, const int height, const int color)
+{
+ struct wl_egl_window *egl_window;
+ EGLSurface egl_surface;
+
+ static const EGLint surface_attribs[] = {
+ EGL_ALPHA_FORMAT, EGL_ALPHA_FORMAT_PRE, EGL_NONE
+ };
+
+ egl_window = wl_egl_window_create(surface, width, height);
+ egl_surface = eglCreateWindowSurface(dpy, conf, (EGLNativeWindowType)egl_window,
+ surface_attribs);
+ eglMakeCurrent(dpy, egl_surface, egl_surface, ctx);
+ glViewport(0, 0, width, height);
+
+ wayland_dispatch_nonblock(display);
+
+ opengl_clear_window(color);
+
+ opengl_swap_buffer(display, dpy, egl_surface);
+
+ return(egl_surface);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief opengl_clear_window: OpenGL window clear
+ *
+ * @param[in] color Initiale color(A<<24|R<<16|G<<8|B)
+ * @return None
+ */
+/*--------------------------------------------------------------------------*/
+void
+opengl_clear_window(const unsigned int color)
+{
+ double r, g, b, a;
+
+ r = (double)((color>>16) & 0x0ff);
+ r = r / 256.0;
+ g = (double)((color>>8) & 0x0ff);
+ g = g / 256.0;
+ b = (double)(color & 0x0ff);
+ b = b / 256.0;
+ a = (double)((color>>24) & 0x0ff);
+ a = (a + 1.0) / 256.0;
+
+ glClearColor(r, g, b, a);
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT| GL_STENCIL_BUFFER_BIT);
+}
+
+/*--------------------------------------------------------------------------*/
+/**
+ * @brief opengl_create_window: Create OpenGL/EGL window
+ *
+ * @param[in] display Wayland connection
+ * @param[in] dpy EGL display
+ * @param[in] egl_surface EGL surface
+ * @return None
+ */
+/*--------------------------------------------------------------------------*/
+void
+opengl_swap_buffer(struct wl_display *display, EGLDisplay dpy, EGLSurface egl_surface)
+{
+ eglSwapBuffers(dpy, egl_surface);
+
+ wayland_dispatch_nonblock(display);
+}
+
diff --git a/tests/test-common.h b/tests/test-common.h
new file mode 100644
index 0000000..549b8f8
--- /dev/null
+++ b/tests/test-common.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright © 2013 TOYOTA MOTOR CORPORATION
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting documentation, and
+ * that the name of the copyright holders not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. The copyright holders make no representations
+ * about the suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ * OF THIS SOFTWARE.
+ */
+/**
+ * @brief Header file for uint test common routines
+ *
+ * @date Feb-08-2013
+ */
+
+#ifndef _TEST_COMMON_H_
+#define _TEST_COMMON_H_
+
+#include <GLES2/gl2.h> /* OpenGL ES 2.x */
+#include <EGL/egl.h> /* EGL */
+#include <wayland-client.h> /* Wayland client library */
+#include <wayland-egl.h> /* Wayland EGL library */
+#include <wayland-util.h> /* Wayland Misc library */
+
+/* Function prototype */
+int getdata(void *window_mgr, const char *prompt, int fd, char *buf, const int size);
+void print_log(const char *fmt, ...);
+void wayland_dispatch_nonblock(struct wl_display *display);
+void sleep_with_wayland(struct wl_display *display, int msec);
+void wait_with_wayland(struct wl_display *display, int msec, int *endflag);
+int sec_str_2_value(const char *ssec);
+EGLDisplay opengl_init(struct wl_display *display, EGLConfig *rconf, EGLContext *rctx);
+EGLSurface opengl_create_window(struct wl_display *display, struct wl_surface *surface,
+ EGLDisplay dpy, EGLConfig conf, EGLContext ctx,
+ const int width, const int height, const int color);
+void opengl_clear_window(const unsigned int color);
+void opengl_swap_buffer(struct wl_display *display, EGLDisplay dpy, EGLSurface egl_surface);
+
+#endif /*_TEST_COMMON_H_*/
+
diff --git a/tests/test-eflapp.c b/tests/test-eflapp.c
new file mode 100644
index 0000000..8bb6d7a
--- /dev/null
+++ b/tests/test-eflapp.c
@@ -0,0 +1,166 @@
+#ifdef HAVE_CONFIG_H
+#undef HAVE_CONFIG_H
+#endif
+
+#ifdef HAVE_CONFIG_H
+
+#include "config.h"
+#else
+#define __UNUSED__
+#define PACKAGE_EXAMPLES_DIR "."
+#endif
+
+#include <Ecore.h>
+#include <Ecore_Evas.h>
+#include <stdio.h>
+
+#define WIDTH (520)
+#define HEIGHT (380)
+
+static Ecore_Evas *ee;
+static const char *border_img_path = PACKAGE_EXAMPLES_DIR "/red.png";
+
+static Evas_Object *bg, *r1, *r2, *r3; /* "sub" canvas objects */
+static Evas_Object *border, *img; /* canvas objects */
+
+static void
+_on_destroy(Ecore_Evas *ee __UNUSED__)
+{
+ ecore_main_loop_quit();
+}
+
+static void
+_resize_cb(Ecore_Evas *ee)
+{
+ int x, y, w, h, ow, oh;
+ int rw, rh;
+
+ evas_object_geometry_get(img, &x, &y, &ow, &oh);
+ ecore_evas_geometry_get(ee, &x, &y, &w, &h);
+ ecore_evas_request_geometry_get(ee, NULL, NULL, &rw, &rh);
+ fprintf(stderr, "EFL-App resize x/y=%d/%d req=%d/%d w/h=%d/%d obj=%d/%d\n", x, y, rw, rh, w, h, ow, oh); fflush(stderr);
+}
+
+int
+main(int argc, char *argv[])
+{
+ Evas *canvas, *sub_canvas;
+ Ecore_Evas *sub_ee;
+ int i;
+ int width;
+ int height;
+ unsigned int color;
+ int r, g, b, a;
+ int appno = 1;
+ char sTitle[64];
+
+ width = WIDTH;
+ height = HEIGHT;
+ color = 0xc0c0c0c0;
+ for (i = 1; i < argc; i++) {
+ if (argv[i][0] == '@') {
+ appno = strtol(&argv[i][1], (char **)0, 0);
+ }
+ if (argv[i][0] != '-') continue;
+ if (strncasecmp(argv[i], "-width=", 7) == 0) {
+ width = strtol(&argv[i][7], (char **)0, 0);
+ }
+ else if (strncasecmp(argv[i], "-height=", 8) == 0) {
+ height = strtol(&argv[i][8], (char **)0, 0);
+ }
+ else if (strncasecmp(argv[i], "-color=", 7) == 0) {
+ color = strtoul(&argv[i][7], (char **)0, 0);
+ }
+ }
+
+ ecore_evas_init();
+
+ /* this will give you a window with an Evas canvas under the first
+ * engine available */
+ ee = ecore_evas_new(NULL, 0, 0, width, height, "frame=0");
+ if (!ee) goto error;
+
+ ecore_evas_size_min_set(ee, width/4, height/4);
+ ecore_evas_size_max_set(ee, width*4, height*4);
+
+ ecore_evas_callback_resize_set(ee, _resize_cb);
+
+ ecore_evas_callback_delete_request_set(ee, _on_destroy);
+ sprintf(sTitle, "EFL Native Application %d", appno);
+ ecore_evas_title_set(ee, sTitle);
+ ecore_evas_show(ee);
+
+ canvas = ecore_evas_get(ee);
+
+ bg = evas_object_rectangle_add(canvas);
+ r = (color>>16)&0x0ff;
+ g = (color>>8)&0x0ff;
+ b = color&0x0ff;
+ a = (color>>24)&0x0ff;
+ if (a != 255) {
+ r = (r * a) / 255;
+ g = (g * a) / 255;
+ b = (b * a) / 255;
+ }
+ evas_object_color_set(bg, r, g, b, a); /* bg color */
+ evas_object_move(bg, 0, 0); /* at origin */
+ evas_object_resize(bg, width, height); /* covers full canvas */
+ evas_object_show(bg);
+
+ /* this is a border around the image containing a scene of another
+ * canvas */
+ border = evas_object_image_filled_add(canvas);
+ evas_object_image_file_set(border, border_img_path, NULL);
+ evas_object_image_border_set(border, 3, 3, 3, 3);
+ evas_object_image_border_center_fill_set(border, EVAS_BORDER_FILL_NONE);
+
+ evas_object_move(border, width / 6, height / 6);
+ evas_object_resize(border, (2 * width) / 3, (2 * height) / 3);
+ evas_object_show(border);
+
+ img = ecore_evas_object_image_new(ee);
+ evas_object_image_filled_set(img, EINA_TRUE);
+ evas_object_image_size_set(
+ img, ((2 * width) / 3) - 6, ((2 * height) / 3) - 6);
+ sub_ee = ecore_evas_object_ecore_evas_get(img);
+ sub_canvas = ecore_evas_object_evas_get(img);
+
+ evas_object_move(img, (width / 6) + 3, (height / 6) + 3);
+
+ /* apply the same size on both! */
+ evas_object_resize(img, ((2 * width) / 3) - 6, ((2 * height) / 3) - 6);
+ ecore_evas_resize(sub_ee, ((2 * width) / 3) - 6, ((2 * height) / 3) - 6);
+
+ r1 = evas_object_rectangle_add(sub_canvas);
+ evas_object_color_set(r1, g, b, r, 255);
+ evas_object_move(r1, 10, 10);
+ evas_object_resize(r1, 100, 100);
+ evas_object_show(r1);
+
+ r2 = evas_object_rectangle_add(sub_canvas);
+ evas_object_color_set(r2, b/2, g/2, r/2, 128);
+ evas_object_move(r2, 10, 10);
+ evas_object_resize(r2, 50, 50);
+ evas_object_show(r2);
+
+ r3 = evas_object_rectangle_add(sub_canvas);
+ evas_object_color_set(r3, b, r, g, 255);
+ evas_object_move(r3, 60, 60);
+ evas_object_resize(r3, 50, 50);
+ evas_object_show(r3);
+
+ evas_object_show(img);
+ ecore_main_loop_begin();
+
+ ecore_evas_free(ee);
+ ecore_evas_shutdown();
+
+ return 0;
+
+error:
+ fprintf(stderr, "You got to have at least one Evas engine built"
+ " and linked up to ecore-evas for this example to run properly.\n");
+ ecore_evas_shutdown();
+ return -1;
+}
+
diff --git a/tests/test-homescreen.c b/tests/test-homescreen.c
new file mode 100644
index 0000000..1c984a9
--- /dev/null
+++ b/tests/test-homescreen.c
@@ -0,0 +1,1468 @@
+/*
+ * Copyright © 2012 Intel Corporation
+ * Copyright © 2013 TOYOTA MOTOR CORPORATION
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting documentation, and
+ * that the name of the copyright holders not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. The copyright holders make no representations
+ * about the suitability of this software for any purpose. It is provided "as
+ * is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ * OF THIS SOFTWARE.
+ */
+/**
+ * @brief HomeScreen for uint test of Weston(Wayland) IVI plugins
+ *
+ * @date Feb-08-2013
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <assert.h>
+#include <poll.h>
+#include <errno.h>
+#include <sys/ioctl.h>
+#include <sys/ipc.h>
+#include <sys/msg.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <signal.h>
+#include <linux/input.h>
+#include <wayland-client.h>
+#include "ico_ivi_shell-client-protocol.h"
+#include "ico_window_mgr-client-protocol.h"
+#include "ico_input_mgr-client-protocol.h"
+#include "test-common.h"
+
+#define MAX_APPID 128
+#define ICO_IVI_MAX_COORDINATE 16383
+
+struct surface_name {
+ struct surface_name *next;
+ int surfaceid;
+ int pid;
+ char appid[MAX_APPID];
+ int x;
+ int y;
+ int width;
+ int height;
+ int visible;
+};
+
+#define MAX_CON_NAME 127
+
+struct display {
+ struct wl_display *display;
+ struct wl_registry *registry;
+ struct wl_compositor *compositor;
+ struct wl_shell *shell;
+ struct ico_ivi_shell *ico_ivi_shell;
+ struct ico_window_mgr *ico_window_mgr;
+ struct ico_input_mgr_control *ico_input_mgr;
+ struct ico_input_mgr_device *ico_input_device;
+ struct ico_exinput *ico_exinput;
+ struct input *input;
+ struct output *output;
+ struct surface *surface;
+ struct surface_name *surface_name;
+ struct surface_name *bgsurface_name;
+ int bg_created;
+ int init_color;
+ int init_width;
+ int init_height;
+ int surface_created;
+ int surface_destroyed;
+ int prompt;
+ int visible_on_create;
+ char connect[MAX_CON_NAME+1];
+};
+
+struct input {
+ struct display *display;
+ struct wl_seat *seat;
+ struct wl_pointer *pointer;
+ struct wl_keyboard *keyboard;
+ float x, y;
+ uint32_t button_mask;
+ struct surface *pointer_focus;
+ struct surface *keyboard_focus;
+ uint32_t last_key, last_key_state;
+};
+
+struct output {
+ struct display *display;
+ struct wl_output *output;
+ int x, y;
+ int width, height;
+};
+
+struct surface {
+ struct display *display;
+ struct wl_surface *surface;
+ struct wl_shell_surface *shell_surface;
+ struct output *output;
+ EGLDisplay dpy;
+ EGLConfig conf;
+ EGLContext ctx;
+ EGLSurface egl_surface;
+};
+
+static void clear_surface(struct display *display);
+
+static void
+pointer_handle_enter(void *data, struct wl_pointer *pointer,
+ uint32_t serial, struct wl_surface *surface,
+ wl_fixed_t x, wl_fixed_t y)
+{
+ struct input *input = data;
+
+ input->pointer_focus = wl_surface_get_user_data(surface);
+ input->x = wl_fixed_to_double(x);
+ input->y = wl_fixed_to_double(y);
+ print_log("HOMESCREEN: got pointer enter (%d,%d), surface %p",
+ (int)input->x, (int)input->y, surface);
+}
+
+static void
+pointer_handle_leave(void *data, struct wl_pointer *pointer,
+ uint32_t serial, struct wl_surface *surface)
+{
+ struct input *input = data;
+
+ input->pointer_focus = NULL;
+
+ print_log("HOMESCREEN: got pointer leave, surface %p", surface);
+}
+
+static void
+pointer_handle_motion(void *data, struct wl_pointer *pointer,
+ uint32_t time, wl_fixed_t x, wl_fixed_t y)
+{
+ struct input *input = data;
+
+ input->x = wl_fixed_to_double(x);
+ input->y = wl_fixed_to_double(y);
+
+ print_log("HOMESCREEN: got pointer motion (%d,%d)", (int)input->x, (int)input->y);
+}
+
+static void
+pointer_handle_button(void *data, struct wl_pointer *pointer,
+ uint32_t serial, uint32_t time, uint32_t button, uint32_t state_w)
+{
+ struct input *input = data;
+ uint32_t bit;
+ enum wl_pointer_button_state state = state_w;
+
+ bit = 1 << (button - BTN_LEFT);
+ if (state == WL_POINTER_BUTTON_STATE_PRESSED)
+ input->button_mask |= bit;
+ else
+ input->button_mask &= ~bit;
+ print_log("HOMESCREEN: got pointer button %u %u", button, state_w);
+}
+
+static void
+pointer_handle_axis(void *data, struct wl_pointer *pointer,
+ uint32_t time, uint32_t axis, wl_fixed_t value)
+{
+ print_log("HOMESCREEN: got pointer axis %u %d", axis, value);
+}
+
+static void
+keyboard_handle_keymap(void *data, struct wl_keyboard *keyboard,
+ uint32_t format, int fd, uint32_t size)
+{
+ close(fd);
+ print_log("HOMESCREEN: got keyboard keymap");
+}
+
+static void
+keyboard_handle_enter(void *data, struct wl_keyboard *keyboard,
+ uint32_t serial, struct wl_surface *surface, struct wl_array *keys)
+{
+ struct input *input = data;
+
+ input->keyboard_focus = wl_surface_get_user_data(surface);
+ print_log("HOMESCREEN: got keyboard enter, surface %p", surface);
+}
+
+static void
+keyboard_handle_leave(void *data, struct wl_keyboard *keyboard,
+ uint32_t serial, struct wl_surface *surface)
+{
+ struct input *input = data;
+
+ input->keyboard_focus = NULL;
+ print_log("HOMESCREEN: got keyboard leave, surface %p", surface);
+}
+
+static void
+keyboard_handle_key(void *data, struct wl_keyboard *keyboard,
+ uint32_t serial, uint32_t time, uint32_t key, uint32_t state)
+{
+ struct input *input = data;
+
+ input->last_key = key;
+ input->last_key_state = state;
+
+ print_log("HOMESCREEN: got keyboard key %u %u", key, state);
+}
+
+static void
+keyboard_handle_modifiers(void *data, struct wl_keyboard *keyboard,
+ uint32_t serial, uint32_t mods_depressed,
+ uint32_t mods_latched, uint32_t mods_locked, uint32_t group)
+{
+ print_log("HOMESCREEN: got keyboard modifier");
+}
+
+static const struct wl_pointer_listener pointer_listener = {
+ pointer_handle_enter,
+ pointer_handle_leave,
+ pointer_handle_motion,
+ pointer_handle_button,
+ pointer_handle_axis,
+};
+
+static const struct wl_keyboard_listener keyboard_listener = {
+ keyboard_handle_keymap,
+ keyboard_handle_enter,
+ keyboard_handle_leave,
+ keyboard_handle_key,
+ keyboard_handle_modifiers,
+};
+
+static void
+seat_handle_capabilities(void *data, struct wl_seat *seat,
+ enum wl_seat_capability caps)
+{
+ struct input *input = data;
+
+ if ((caps & WL_SEAT_CAPABILITY_POINTER) && !input->pointer) {
+ input->pointer = wl_seat_get_pointer(seat);
+ wl_pointer_set_user_data(input->pointer, input);
+ wl_pointer_add_listener(input->pointer, &pointer_listener, input);
+ }
+ else if (!(caps & WL_SEAT_CAPABILITY_POINTER) && input->pointer) {
+ wl_pointer_destroy(input->pointer);
+ input->pointer = NULL;
+ }
+
+ if ((caps & WL_SEAT_CAPABILITY_KEYBOARD) && !input->keyboard) {
+ input->keyboard = wl_seat_get_keyboard(seat);
+ wl_keyboard_set_user_data(input->keyboard, input);
+ wl_keyboard_add_listener(input->keyboard, &keyboard_listener, input);
+ }
+ else if (!(caps & WL_SEAT_CAPABILITY_KEYBOARD) && input->keyboard) {
+ wl_keyboard_destroy(input->keyboard);
+ input->keyboard = NULL;
+ }
+}
+
+static const struct wl_seat_listener seat_listener = {
+ seat_handle_capabilities,
+};
+
+static void
+surface_enter(void *data, struct wl_surface *wl_surface, struct wl_output *output)
+{
+ struct surface *surface = data;
+
+ surface->output = wl_output_get_user_data(output);
+
+ print_log("HOMESCREEN: got surface enter, output %p", surface->output);
+}
+
+static void
+surface_leave(void *data, struct wl_surface *wl_surface, struct wl_output *output)
+{
+ struct surface *surface = data;
+
+ surface->output = NULL;
+
+ print_log("HOMESCREEN: got surface leave, output %p",
+ wl_output_get_user_data(output));
+}
+
+static const struct wl_surface_listener surface_listener = {
+ surface_enter,
+ surface_leave
+};
+
+static void
+create_surface(struct display *display)
+{
+ struct surface *surface;
+ int id;
+
+ surface = malloc(sizeof *surface);
+ assert(surface);
+ surface->display = display;
+ display->surface = surface;
+ surface->surface = wl_compositor_create_surface(display->compositor);
+ wl_surface_add_listener(surface->surface, &surface_listener, surface);
+
+ if (display->shell) {
+ surface->shell_surface =
+ wl_shell_get_shell_surface(display->shell, surface->surface);
+ if (surface->shell_surface) {
+ wl_shell_surface_set_toplevel(surface->shell_surface);
+ }
+ }
+ wl_display_flush(display->display);
+
+ id = wl_proxy_get_id((struct wl_proxy *) surface->surface);
+ print_log("HOMESCREEN: create surface = %d", id);
+
+ poll(NULL, 0, 100); /* Wait for next frame where we'll get events. */
+
+ wl_display_roundtrip(display->display);
+
+ surface->dpy = opengl_init(display->display, &surface->conf, &surface->ctx);
+ if (surface->dpy) {
+ surface->egl_surface = opengl_create_window(display->display, surface->surface,
+ surface->dpy, surface->conf,
+ surface->ctx, display->init_width,
+ display->init_height,
+ display->init_color);
+ clear_surface(display);
+ print_log("HOMESCREEN: created egl_surface %08x", (int)surface->egl_surface);
+ }
+}
+
+static void
+clear_surface(struct display *display)
+{
+ if (! display->surface) {
+ create_surface(display);
+ }
+ else {
+ opengl_clear_window(display->init_color);
+ opengl_swap_buffer(display->display,
+ display->surface->dpy, display->surface->egl_surface);
+ }
+}
+
+static void
+output_handle_geometry(void *data, struct wl_output *wl_output, int x, int y,
+ int physical_width, int physical_height, int subpixel,
+ const char *make, const char *model, int32_t transform)
+{
+ struct output *output = data;
+
+ print_log("HOMESCREEN: Event[handle_geometry] x/y=%d/%d p.w/h=%d/%d trans=%d",
+ x, y, physical_width, physical_height, transform);
+
+ output->x = x;
+ output->y = y;
+}
+
+static void
+output_handle_mode(void *data, struct wl_output *wl_output, uint32_t flags,
+ int width, int height, int refresh)
+{
+ struct output *output = data;
+
+ print_log("HOMESCREEN: Event[handle_mode] x/y=%d/%d flags=%08x refresh=%d",
+ width, height, flags, refresh);
+
+ if (flags & WL_OUTPUT_MODE_CURRENT) {
+ struct display *display = output->display;
+
+ output->width = width;
+ output->height = height;
+
+ display->init_width = width;
+ display->init_height = height;
+
+ if (display->bgsurface_name) {
+ ico_window_mgr_set_positionsize(display->ico_window_mgr,
+ display->bgsurface_name->surfaceid,
+ 0, 0, width, height);
+ }
+ else if (display->bg_created == 0) {
+ display->bg_created = 9;
+ create_surface(output->display);
+ }
+ }
+}
+
+static const struct wl_output_listener output_listener = {
+ output_handle_geometry,
+ output_handle_mode
+};
+
+static int
+search_surface(struct display *display, const char *surfname)
+{
+ struct surface_name *p;
+
+ p = display->surface_name;
+ while (p) {
+ if (strcmp(p->appid, surfname) == 0) break;
+ p = p->next;
+ }
+
+ if (p) {
+ return(p->surfaceid);
+ }
+ else {
+ return(-1);
+ }
+}
+
+static struct surface_name *
+search_surfacename(struct display *display, const char *surfname)
+{
+ struct surface_name *p;
+
+ p = display->surface_name;
+ while (p) {
+ if (strcmp(p->appid, surfname) == 0) break;
+ p = p->next;
+ }
+ return(p);
+}
+
+static struct surface_name *
+search_surfaceid(struct display *display, const int surfaceid)
+{
+ struct surface_name *p;
+
+ p = display->surface_name;
+ while (p) {
+ if (p->surfaceid == surfaceid) {
+ return(p);
+ }
+ p = p->next;
+ }
+ return(NULL);
+}
+
+static void
+window_created(void *data, struct ico_window_mgr *ico_window_mgr,
+ uint32_t surfaceid, int32_t pid, const char *appid)
+{
+ struct display *display = data;
+ struct surface_name *p;
+ struct surface_name *fp;
+
+ display->surface_created = 1;
+ p = display->surface_name;
+ fp = NULL;
+ while (p) {
+ if (p->surfaceid == (int)surfaceid) break;
+ fp = p;
+ p = p->next;
+ }
+ if (p) {
+ print_log("HOMESCREEN: Event[window_created] surface=%08x(app=%s) exist",
+ (int)surfaceid, appid);
+ }
+ else {
+ print_log("HOMESCREEN: Event[window_created] new surface=%08x(app=%s)",
+ (int)surfaceid, appid);
+ p = malloc(sizeof(struct surface_name));
+ if (! p) {
+ return;
+ }
+ memset(p, 0, sizeof(struct surface_name));
+ if (fp) {
+ fp->next = p;
+ }
+ else {
+ display->surface_name = p;
+ }
+ }
+ p->surfaceid = surfaceid;
+ p->pid = pid;
+ strncpy(p->appid, appid, MAX_APPID-1);
+
+ /* Set default size and show */
+ if (p->width > 0) {
+ ico_window_mgr_set_positionsize(display->ico_window_mgr, surfaceid,
+ p->x, p->y, p->width, p->height);
+ }
+
+ print_log("HOMESCREEN: Created window[%08x] (app=%s)", (int)surfaceid, appid);
+
+ if (strncasecmp(appid, "test-homescreen", 15) == 0) {
+ display->bgsurface_name = p;
+ if (display->bg_created == 1) {
+ display->bg_created = 9;
+ ico_window_mgr_set_positionsize(display->ico_window_mgr, surfaceid,
+ 0, 0, display->init_width, display->init_height);
+ }
+ ico_window_mgr_set_visible(display->ico_window_mgr, surfaceid, 1, 0);
+ print_log("HOMESCREEN: Created window[%08x] (app=%s) Visible",
+ (int)surfaceid, appid);
+ p->visible = 1;
+ }
+}
+
+static void
+window_destroyed(void *data, struct ico_window_mgr *ico_window_mgr, uint32_t surfaceid)
+{
+ struct display *display = data;
+ struct surface_name *p;
+ struct surface_name *fp;
+
+ display->surface_destroyed = 1;
+ p = search_surfaceid(display, (int)surfaceid);
+ if (! p) {
+ print_log("HOMESCREEN: Event[window_destroyed] surface=%08x dose not exist",
+ (int)surfaceid);
+ }
+ else {
+ print_log("HOMESCREEN: Event[window_destroyed] surface=%08x", (int)surfaceid);
+ if (p == display->surface_name) {
+ display->surface_name = p->next;
+ }
+ else {
+ fp = display->surface_name;
+ while (fp) {
+ if (fp->next == p) {
+ fp->next = p->next;
+ break;
+ }
+ fp = fp->next;
+ }
+ }
+ free(p);
+ }
+}
+
+static void
+window_visible(void *data, struct ico_window_mgr *ico_window_mgr,
+ uint32_t surfaceid, int32_t visible, int32_t raise, int32_t hint)
+{
+ struct display *display = data;
+ struct surface_name *p;
+
+ p = search_surfaceid(display, (int)surfaceid);
+ if (! p) {
+ print_log("HOMESCREEN: Event[window_visible] surface=%08x dose not exist",
+ (int)surfaceid);
+ }
+ else {
+ print_log("HOMESCREEN: Event[window_visible] surface=%08x "
+ "visible=%d raise=%d hint=%d", (int)surfaceid, visible, raise, hint);
+ p->visible = visible;
+ if (hint == 0) {
+ ico_window_mgr_set_visible(display->ico_window_mgr, surfaceid, visible, 9);
+ }
+ }
+}
+
+static void
+window_configure(void *data, struct ico_window_mgr *ico_window_mgr,
+ uint32_t surfaceid, const char *appid, int32_t layer,
+ int32_t x, int32_t y, int32_t width, int32_t height, int32_t hint)
+{
+ struct display *display = data;
+ struct surface_name *p;
+
+ print_log("HOMESCREEN: Event[window_configure] surface=%08x "
+ "app=%s x/y=%d/%d w/h=%d/%d hint=%d",
+ (int)surfaceid, appid, x, y, width, height, hint);
+
+ p = search_surfaceid(display, (int)surfaceid);
+ if (! p) {
+ print_log("HOMESCREEN: Event[window_configure] surface=%08x(app=%s) new create",
+ (int)surfaceid, appid);
+ window_created(data, ico_window_mgr, surfaceid, 0, appid);
+ p = search_surfaceid(display, (int)surfaceid);
+ if (! p) {
+ print_log("HOMESCREEN: Event[window_configure] can not make table");
+ return;
+ }
+ }
+}
+
+static void
+window_active(void *data, struct ico_window_mgr *ico_window_mgr,
+ uint32_t surfaceid, const uint32_t active)
+{
+ print_log("HOMESCREEN: Event[window_active] surface=%08x acive=%d",
+ (int)surfaceid, (int)active);
+}
+
+static const struct ico_window_mgr_listener window_mgr_listener = {
+ window_created,
+ window_destroyed,
+ window_visible,
+ window_configure,
+ window_active
+};
+
+static void
+cb_input_capabilities(void *data, struct ico_exinput *ico_exinput,
+ const char *device, int32_t type, const char *swname, int32_t input,
+ const char *codename, int32_t code)
+{
+ print_log("HOMESCREEN: Event[input_capabilities] device=%s type=%d sw=%s input=%d "
+ "code=%s[%d]", device, type, swname, input, codename, code);
+}
+
+static void
+cb_input_code(void *data, struct ico_exinput *ico_exinput,
+ const char *device, int32_t input, const char *codename, int32_t code)
+{
+ print_log("HOMESCREEN: Event[input_code] device=%s input=%d code=%s[%d]",
+ device, input, codename, code);
+}
+
+static void
+cb_input_input(void *data, struct ico_exinput *ico_exinput, uint32_t time,
+ const char *device, int32_t input, int32_t code, int32_t state)
+{
+ print_log("HOMESCREEN: Event[input_input] device=%s input=%d code=%d state=%d",
+ device, input, code, state);
+}
+
+static const struct ico_exinput_listener exinput_listener = {
+ cb_input_capabilities,
+ cb_input_code,
+ cb_input_input
+};
+
+static void
+handle_global(void *data, struct wl_registry *registry, uint32_t id,
+ const char *interface, uint32_t version)
+{
+ struct display *display = data;
+ struct input *input;
+ struct output *output;
+
+ print_log("HOMESCREEN: handle_global: interface=<%s> id=%d", interface, (int)id);
+
+ if (strcmp(interface, "wl_compositor") == 0) {
+ display->compositor =
+ wl_registry_bind(display->registry, id, &wl_compositor_interface, 1);
+ }
+ else if (strcmp(interface, "wl_seat") == 0) {
+ input = calloc(1, sizeof *input);
+ input->display = display;
+ input->seat = wl_registry_bind(display->registry, id, &wl_seat_interface, 1);
+ input->pointer_focus = NULL;
+ input->keyboard_focus = NULL;
+
+ wl_seat_add_listener(input->seat, &seat_listener, input);
+ display->input = input;
+ }
+ else if (strcmp(interface, "wl_output") == 0) {
+ output = malloc(sizeof *output);
+ output->display = display;
+ output->output = wl_registry_bind(display->registry, id, &wl_output_interface, 1);
+ wl_output_add_listener(output->output, &output_listener, output);
+ display->output = output;
+
+ print_log("HOMESCREEN: created output global %p", display->output);
+ }
+ else if (strcmp(interface, "wl_shell") == 0) {
+ display->shell =
+ wl_registry_bind(display->registry, id, &wl_shell_interface, 1);
+ }
+ else if (strcmp(interface, "ico_ivi_shell") == 0) {
+ display->ico_ivi_shell =
+ wl_registry_bind(display->registry, id, &ico_ivi_shell_interface, 1);
+ }
+ else if (strcmp(interface, "ico_window_mgr") == 0) {
+ display->ico_window_mgr =
+ wl_registry_bind(display->registry, id, &ico_window_mgr_interface, 1);
+ ico_window_mgr_add_listener(display->ico_window_mgr, &window_mgr_listener, display);
+ print_log("HOMESCREEN: created window_mgr global %p", display->ico_window_mgr);
+
+ ico_window_mgr_set_eventcb(display->ico_window_mgr, 1);
+ }
+ else if (strcmp(interface, "ico_input_mgr_control") == 0) {
+ display->ico_input_mgr = wl_registry_bind(display->registry, id,
+ &ico_input_mgr_control_interface, 1);
+ print_log("HOMESCREEN: created input_mgr global %p", display->ico_input_mgr);
+ }
+ else if (strcmp(interface, "ico_input_mgr_device") == 0) {
+ display->ico_input_device = wl_registry_bind(display->registry, id,
+ &ico_input_mgr_device_interface, 1);
+ print_log("HOMESCREEN: created input_device global %p", display->ico_input_device);
+ }
+ else if (strcmp(interface, "ico_exinput") == 0) {
+ display->ico_exinput =
+ wl_registry_bind(display->registry, id, &ico_exinput_interface, 1);
+ ico_exinput_add_listener(display->ico_exinput, &exinput_listener, display);
+ print_log("HOMESCREEN: created exinput global %p", display->ico_exinput);
+
+ ico_window_mgr_set_eventcb(display->ico_window_mgr, 1);
+
+ display->bg_created = 1;
+ create_surface(display);
+ }
+}
+
+static const struct wl_registry_listener registry_listener = {
+ handle_global
+};
+
+static char *
+skip_spaces(char *buf)
+{
+ while ((*buf == ' ') || (*buf == '\t')) {
+ buf++;
+ }
+ return(buf);
+}
+
+static int
+pars_command(char *buf, char *pt[], const int len)
+{
+ char *p;
+ int narg;
+
+ memset(pt, 0, sizeof(int *)*10);
+ p = buf;
+ for (narg = 0; narg < len; narg++) {
+ p = skip_spaces(p);
+ if (*p == 0) break;
+ pt[narg] = p;
+ for (; *p; p++) {
+ if ((*p == ' ') || (*p == '\t') ||
+ (*p == '=') || (*p == ',')) break;
+ }
+ if (*p == 0) {
+ narg++;
+ break;
+ }
+ *p = 0;
+ p++;
+ }
+ return (narg);
+}
+
+static void
+launch_app(struct display *display, char *buf)
+{
+ char sbuf[256];
+
+ display->surface_created = 0;
+ display->surface_destroyed = 0;
+ snprintf(sbuf, sizeof(sbuf)-1, "%s &", skip_spaces(buf));
+ if (system(sbuf) < 0) {
+ print_log("HOMESCREEN: Can not launch application[%s]", sbuf);
+ }
+ else {
+ sleep_with_wayland(display->display, 500);
+ }
+}
+
+static void
+kill_app(struct display *display, char *buf)
+{
+ char *args[10];
+ int narg;
+ struct surface_name *p;
+ struct surface_name *fp;
+
+ narg = pars_command(buf, args, 10);
+ if (narg >= 1) {
+ p = search_surfacename(display, args[0]);
+ if (kill(p->pid, SIGINT) < 0) {
+ print_log("HOMESCREEN: kill[%s.%d] Application dose not exist",
+ p->appid, p->pid);
+ }
+ else {
+ sleep_with_wayland(display->display, 300);
+ p = search_surfacename(display, args[0]);
+ if ((p != NULL) && (kill(p->pid, SIGTERM) >= 0)) {
+ sleep_with_wayland(display->display, 200);
+ p = search_surfacename(display, args[0]);
+ if (p) {
+ kill(p->pid, SIGKILL);
+ sleep_with_wayland(display->display, 200);
+ }
+ }
+ }
+ p = search_surfacename(display, args[0]);
+ if (p) {
+ if (p == display->surface_name) {
+ display->surface_name = p->next;
+ }
+ else {
+ fp = display->surface_name;
+ while (fp) {
+ if (fp->next == p) {
+ fp->next = p->next;
+ break;
+ }
+ }
+ }
+ free(p);
+ }
+ }
+ else {
+ print_log("HOMESCREEN: kill command[kill appid] has no argument");
+ }
+}
+
+static void
+layer_surface(struct display *display, char *buf)
+{
+ char *args[10];
+ int narg;
+ int surfaceid;
+ int layerid;
+
+ narg = pars_command(buf, args, 10);
+ if (narg >= 2) {
+ surfaceid = search_surface(display, args[0]);
+ layerid = strtol(args[1], (char **)0, 0);
+ if ((surfaceid >= 0) && (layerid >= 0)) {
+ print_log("HOMESCREEN: set_window_layer(%s,%08x)",
+ args[0], surfaceid, layerid);
+ ico_window_mgr_set_window_layer(display->ico_window_mgr, surfaceid, layerid);
+ }
+ else {
+ print_log("HOMESCREEN: Unknown surface(%s) at layer command", args[0]);
+ }
+ }
+ else {
+ print_log("HOMESCREEN: layer command[layer appid layerid] has no argument");
+ }
+}
+
+static void
+positionsize_surface(struct display *display, char *buf)
+{
+ char *args[10];
+ int narg;
+ int surfaceid;
+ int x, y, width, height;
+
+ narg = pars_command(buf, args, 10);
+ if (narg >= 5) {
+ surfaceid = search_surface(display, args[0]);
+ x = strtol(args[1], (char **)0, 0);
+ y = strtol(args[2], (char **)0, 0);
+ width = strtol(args[3], (char **)0, 0);
+ height = strtol(args[4], (char **)0, 0);
+ if ((surfaceid >= 0) && (x >= 0) && (y >=0) && (width >= 0) && (height >=0)) {
+ print_log("HOMESCREEN: set_positionsize(%s,%08x,%d,%d,%d,%d)",
+ args[0], surfaceid, x, y, width, height);
+ ico_window_mgr_set_positionsize(display->ico_window_mgr, surfaceid,
+ x, y, width, height);
+ }
+ else {
+ print_log("HOMESCREEN: Unknown surface(%s) at positionsize command", args[0]);
+ }
+ }
+ else {
+ print_log("HOMESCREEN: positionsize command"
+ "[positionsize appid x y width heigh] has no argument");
+ }
+}
+
+static void
+move_surface(struct display *display, char *buf)
+{
+ char *args[10];
+ int narg;
+ int surfaceid;
+ int x, y;
+
+ narg = pars_command(buf, args, 10);
+ if (narg >= 3) {
+ surfaceid = search_surface(display, args[0]);
+ x = strtol(args[1], (char **)0, 0);
+ y = strtol(args[2], (char **)0, 0);
+ if ((surfaceid >= 0) && (x >= 0) && (y >=0)) {
+ print_log("HOMESCREEN: move(%s,%08x,%d,%d)", args[0], surfaceid, x, y);
+ ico_window_mgr_set_positionsize(display->ico_window_mgr, surfaceid,
+ x, y,
+ ICO_IVI_MAX_COORDINATE+1,
+ ICO_IVI_MAX_COORDINATE+1);
+ }
+ else {
+ print_log("HOMESCREEN: Unknown surface(%s) at move command", args[0]);
+ }
+ }
+ else {
+ print_log("HOMESCREEN: move command[positionsize appid x y] has no argument");
+ }
+}
+
+static void
+resize_surface(struct display *display, char *buf)
+{
+ char *args[10];
+ int narg;
+ int surfaceid;
+ int width, height;
+
+ narg = pars_command(buf, args, 10);
+ if (narg >= 3) {
+ surfaceid = search_surface(display, args[0]);
+ width = strtol(args[1], (char **)0, 0);
+ height = strtol(args[2], (char **)0, 0);
+ if ((surfaceid >= 0) && (width >= 0) && (height >=0)) {
+ print_log("HOMESCREEN: resize(%s,%08x,%d,%d)",
+ args[0], surfaceid, width, height);
+ ico_window_mgr_set_positionsize(display->ico_window_mgr, surfaceid,
+ ICO_IVI_MAX_COORDINATE+1,
+ ICO_IVI_MAX_COORDINATE+1, width, height);
+ }
+ else {
+ print_log("HOMESCREEN: Unknown surface(%s) at resize command", args[0]);
+ }
+ }
+ else {
+ print_log("HOMESCREEN: positionsize command"
+ "[resize appid width heigh] has no argument");
+ }
+}
+
+static void
+visible_surface(struct display *display, char *buf)
+{
+ char *args[10];
+ int narg;
+ int surfaceid;
+ int visible;
+ int raise;
+
+ narg = pars_command(buf, args, 10);
+ if (narg >= 3) {
+ surfaceid = search_surface(display, args[0]);
+ visible = strtol(args[1], (char **)0, 0);
+ raise = strtol(args[2], (char **)0, 0);
+ if ((surfaceid >= 0) && (visible >= 0) && (raise >=0)) {
+ print_log("HOMESCREEN: visible(%s,%08x,%d,%d)",
+ args[0], surfaceid, visible, raise);
+ ico_window_mgr_set_visible(display->ico_window_mgr, surfaceid, visible, raise);
+ }
+ else {
+ print_log("HOMESCREEN: Unknown surface(%s) at visible command", args[0]);
+ }
+ }
+ else {
+ print_log("HOMESCREEN: visible command[visible appid visible raise] "
+ "has no argument");
+ }
+}
+
+static void
+show_surface(struct display *display, char *buf, const int show)
+{
+ char *args[10];
+ int narg;
+ int surfaceid;
+
+ narg = pars_command(buf, args, 10);
+ if (narg >= 1) {
+ surfaceid = search_surface(display, args[0]);
+ if (surfaceid >= 0) {
+ if (show) {
+ print_log("HOMESCREEN: show(%s,%08x)", args[0], surfaceid);
+ ico_window_mgr_set_visible(display->ico_window_mgr, surfaceid, 1, 9);
+ }
+ else {
+ print_log("HOMESCREEN: hide(%s,%08x)", args[0], surfaceid);
+ ico_window_mgr_set_visible(display->ico_window_mgr, surfaceid, 0, 9);
+ }
+ }
+ else {
+ print_log("HOMESCREEN: Unknown surface(%s) at show/hide command", args[0]);
+ }
+ }
+ else {
+ print_log("HOMESCREEN: show command[show/hide appid] has no argument");
+ }
+}
+
+static void
+raise_surface(struct display *display, char *buf, const int raise)
+{
+ char *args[10];
+ int narg;
+ int surfaceid;
+
+ narg = pars_command(buf, args, 10);
+ if (narg >= 1) {
+ surfaceid = search_surface(display, args[0]);
+ if (surfaceid >= 0) {
+ if (raise) {
+ print_log("HOMESCREEN: raise(%s,%08x)", args[0], surfaceid);
+ ico_window_mgr_set_visible(display->ico_window_mgr, surfaceid, 9, 1);
+ }
+ else {
+ print_log("HOMESCREEN: lower(%s,%08x)", args[0], surfaceid);
+ ico_window_mgr_set_visible(display->ico_window_mgr, surfaceid, 9, 0);
+ }
+ }
+ else {
+ print_log("HOMESCREEN: Unknown surface(%s) at raise/lower command", args[0]);
+ }
+ }
+ else {
+ print_log("HOMESCREEN: show command[raise/lower appid] has no argument");
+ }
+}
+
+static void
+transition_surface(struct display *display, char *buf)
+{
+ char *args[10];
+ int narg;
+ int surfaceid;
+ int transition;
+
+ narg = pars_command(buf, args, 10);
+ if (narg >= 2) {
+ surfaceid = search_surface(display, args[0]);
+ transition = strtol(args[1], (char **)0, 0);
+ if ((surfaceid >= 0) && (transition >=0)) {
+ print_log("HOMESCREEN: transition(%s,%08x,%d)", args[0], surfaceid, transition);
+ ico_window_mgr_set_transition(display->ico_window_mgr, surfaceid, transition);
+ }
+ else {
+ print_log("HOMESCREEN: Unknown surface(%s) at transition command", args[0]);
+ }
+ }
+ else {
+ print_log("HOMESCREEN: transition command"
+ "[transition appid transition] has no argument");
+ }
+}
+
+static void
+visible_layer(struct display *display, char *buf)
+{
+ char *args[10];
+ int narg;
+ int layer;
+ int visible;
+
+ narg = pars_command(buf, args, 10);
+ if (narg >= 2) {
+ layer = strtol(args[0], (char **)0, 0);
+ visible = strtol(args[1], (char **)0, 0);
+ ico_window_mgr_set_layer_visible(display->ico_window_mgr, layer, visible);
+ }
+ else {
+ print_log("HOMESCREEN: layer_visible command"
+ "[layer_visible layer visible] has no argument");
+ }
+}
+
+static void
+input_add(struct display *display, char *buf)
+{
+ char *args[10];
+ int narg;
+ int input;
+ int fix;
+
+ narg = pars_command(buf, args, 10);
+ if (narg >= 3) {
+ input = strtol(args[1], (char **)0, 0);
+ if (narg >= 4) {
+ fix = strtol(args[3], (char **)0, 0);
+ }
+ else {
+ fix = 0;
+ }
+ if ((input >= 0) && (fix >=0)) {
+ print_log("HOMESCREEN: input_add(%s.%d to %s[%d])",
+ args[0], input, args[2], fix);
+ ico_input_mgr_control_add_input_app(display->ico_input_mgr,
+ args[2], args[0], input, fix);
+ }
+ else {
+ print_log("HOMESCREEN: Unknown input(%s) at input_add command", args[1]);
+ }
+ }
+ else {
+ print_log("HOMESCREEN: input_add command[input_add device inputId appid fix] "
+ "has no argument");
+ }
+}
+
+static void
+input_del(struct display *display, char *buf)
+{
+ char *args[10];
+ int narg;
+ int input;
+ char wk1[32], wk2[32];
+
+ narg = pars_command(buf, args, 10);
+ if (narg >= 3) {
+ input = strtol(args[1], (char **)0, 0);
+ if (args[0][0] == '@') {
+ wk1[0] = 0;
+ args[0] = wk1;
+ }
+ if (args[2][0] == '@') {
+ wk2[0] = 0;
+ args[2] = wk2;
+ }
+ print_log("HOMESCREEN: input_del(%s.%d to %s)", args[0], input, args[2]);
+ ico_input_mgr_control_del_input_app(display->ico_input_mgr,
+ args[2], args[0], input);
+ }
+ else {
+ print_log("HOMESCREEN: input_del command[input_del device inputId appid] "
+ "has no argument");
+ }
+}
+
+static void
+input_conf(struct display *display, char *buf)
+{
+ char *args[10];
+ int narg;
+ int type;
+ int input;
+ int code;
+ char wk1[32], wk2[32];
+
+ narg = pars_command(buf, args, 10);
+ if (narg >= 4) {
+ type = strtol(args[1], (char **)0, 0);
+ input = strtol(args[3], (char **)0, 0);
+ if (narg >= 6) {
+ code = strtol(args[5], (char **)0, 0);
+ }
+ else {
+ code = 0;
+ args[4] = wk1;
+ strcpy(wk1, args[2]);
+ args[5] = wk2;
+ strcpy(wk2, "0");
+ }
+ if ((type >= 0) && (input >= 0) && (code >=0)) {
+ ico_input_mgr_device_configure_input(display->ico_input_device, args[0], type,
+ args[2], input, args[4], code);
+ }
+ else {
+ print_log("HOMESCREEN: Unknown type(%s),input(%s) or code(%s) "
+ "at input_conf command", args[1], args[3], args[5]);
+ }
+ }
+ else {
+ print_log("HOMESCREEN: input_conf command[input_conf device type swname input "
+ "codename code] has no argument");
+ }
+}
+
+static void
+input_code(struct display *display, char *buf)
+{
+ char *args[10];
+ int narg;
+ int input;
+ int code;
+
+ narg = pars_command(buf, args, 10);
+ if (narg >= 4) {
+ input = strtol(args[1], (char **)0, 0);
+ code = strtol(args[3], (char **)0, 0);
+ if ((input >= 0) && (code >= 0)) {
+ ico_input_mgr_device_configure_code(display->ico_input_device, args[0], input,
+ args[2], code);
+ }
+ else {
+ print_log("HOMESCREEN: Unknown input(%s) or code(%s) "
+ "at input_code command", args[1], args[3]);
+ }
+ }
+ else {
+ print_log("HOMESCREEN: input_conf command[input_code device input codename code] "
+ "has no argument");
+ }
+}
+
+static void
+input_sw(struct display *display, char *buf)
+{
+ char *args[10];
+ int narg;
+ int timems;
+ int input;
+ int code;
+ int state;
+ struct timeval stv;
+
+ narg = pars_command(buf, args, 10);
+ if (narg >= 4) {
+ input = strtol(args[1], (char **)0, 0);
+ code = strtol(args[2], (char **)0, 0);
+ state = strtol(args[3], (char **)0, 0);
+ if ((input >= 0) && (state >= 0)) {
+ gettimeofday(&stv, (struct timezone *)NULL);
+ timems = (stv.tv_sec % 1000) * 1000 + (stv.tv_usec / 1000);
+ ico_input_mgr_device_input_event(display->ico_input_device,
+ timems, args[0], input, code, state);
+ }
+ else {
+ print_log("HOMESCREEN: Unknown input(%s),code(%s) or state(%s) "
+ "at input_sw command", args[1], args[2], args[3]);
+ }
+ }
+ else {
+ print_log("HOMESCREEN: input_sw command[input_sw device input code, state] "
+ "has no argument");
+ }
+}
+
+static void
+send_event(const char *cmd)
+{
+ static int nmqinfo = 0;
+ static struct {
+ int mqkey;
+ int mqid;
+ } mqinfo[10];
+ int mqkey;
+ int mqid;
+ struct {
+ long mtype;
+ char buf[240];
+ } mqbuf;
+ int pt, i;
+
+ if (cmd == NULL) {
+ return;
+ }
+ mqkey = 0;
+ for (pt = 0; cmd[pt]; pt++) {
+ if ((cmd[pt] >= '0') && (cmd[pt] <= '9')) {
+ mqkey = mqkey * 10 + cmd[pt] - '0';
+ }
+ else {
+ break;
+ }
+ }
+ for (; cmd[pt] == ' '; pt++) ;
+
+ if (mqkey <= 0) {
+ mqkey = 5551;
+ pt = 0;
+ }
+ for (i = 0; i < nmqinfo; i++) {
+ if (mqinfo[i].mqkey == mqkey) {
+ mqid = mqinfo[i].mqid;
+ break;
+ }
+ }
+ if (i >= nmqinfo) {
+ if (nmqinfo >= 10) {
+ fprintf(stderr, "HOMESCREEN: message queue(%d) overflow\n", mqkey);
+ return;
+ }
+ mqid = msgget(mqkey, 0);
+ if (mqid < 0) {
+ fprintf(stderr, "HOMESCREEN: message queue(%d(0x%x)) get error[%d]\n",
+ mqkey, mqkey, errno);
+ return;
+ }
+ mqinfo[nmqinfo].mqkey = mqkey;
+ mqinfo[nmqinfo].mqid = mqid;
+ nmqinfo ++;
+ }
+
+ memset(&mqbuf, 0, sizeof(mqbuf));
+ mqbuf.mtype = 1;
+ strncpy(mqbuf.buf, &cmd[pt], sizeof(mqbuf)-sizeof(long));
+
+ if (msgsnd(mqid, &mqbuf, sizeof(mqbuf)-sizeof(long), 0) < 0) {
+ fprintf(stderr, "HOMESCREEN: message queue(%d(0x%x)) send error[%d]\n",
+ mqkey, mqkey, errno);
+ return;
+ }
+}
+
+/*
+ * Main Program
+ *
+ * usage:
+ * test-homescreen < test-case-data-file > test-result-output
+ */
+int main(int argc, char *argv[])
+{
+ struct display *display;
+ char buf[256];
+ int ret, fd;
+ int msec;
+
+ display = malloc(sizeof *display);
+ assert(display);
+ memset((char *)display, 0, sizeof *display);
+
+ display->init_width = 640;
+ display->init_height = 480;
+ display->init_color = 0xFF304010;
+
+ for (fd = 1; fd < argc; fd++) {
+ if (argv[fd][0] == '-') {
+ if (strncasecmp(argv[fd], "-visible=", 9) == 0) {
+ display->visible_on_create = argv[fd][9] & 1;
+ }
+ else if (strncasecmp(argv[fd], "-display=", 9) == 0) {
+ strncpy(display->connect, &argv[fd][9], MAX_CON_NAME);
+ }
+ else if (strncasecmp(argv[fd], "-prompt=", 8) == 0) {
+ display->prompt = argv[fd][8] & 1;
+ }
+ }
+ }
+
+ if (display->connect[0]) {
+ display->display = wl_display_connect(display->connect);
+ }
+ else {
+ display->display = wl_display_connect(NULL);
+ }
+ assert(display->display);
+
+ display->registry = wl_display_get_registry(display->display);
+ wl_registry_add_listener(display->registry,
+ &registry_listener, display);
+ wl_display_dispatch(display->display);
+
+ fd = 0;
+
+ while (1) {
+ sleep_with_wayland(display->display, 20);
+ if (display->prompt) {
+ printf("HOMESCREEN: "); fflush(stdout);
+ }
+ ret = getdata(display->ico_window_mgr, "HOMESCREEN: ", fd, buf, sizeof(buf));
+ if (ret < 0) {
+ fprintf(stderr, "HOMESCREEN: read error: fd %d, %m\n", fd);
+ return -1;
+ }
+ if (ret == 0) continue;
+ wl_display_flush(display->display);
+
+ if ((strncasecmp(buf, "bye", 3) == 0) ||
+ (strncasecmp(buf, "quit", 4) == 0) ||
+ (strncasecmp(buf, "end", 3) == 0)) {
+ /* Exit, end of test */
+ return 0;
+ }
+ else if (strncasecmp(buf, "launch", 6) == 0) {
+ /* Launch test application */
+ launch_app(display, &buf[6]);
+ }
+ else if (strncasecmp(buf, "kill", 4) == 0) {
+ /* Launch test application */
+ kill_app(display, &buf[4]);
+ }
+ else if (strncasecmp(buf, "layer_visible", 13) == 0) {
+ /* Change layer visiblety */
+ visible_layer(display, &buf[13]);
+ }
+ else if (strncasecmp(buf, "layer", 5) == 0) {
+ /* layer change surface window */
+ layer_surface(display, &buf[5]);
+ }
+ else if (strncasecmp(buf, "positionsize", 12) == 0) {
+ /* Move and Ressize surface window*/
+ positionsize_surface(display, &buf[12]);
+ }
+ else if (strncasecmp(buf, "move", 4) == 0) {
+ /* Move surface window */
+ move_surface(display, &buf[4]);
+ }
+ else if (strncasecmp(buf, "resize", 6) == 0) {
+ /* Resize surface window */
+ resize_surface(display, &buf[6]);
+ }
+ else if (strncasecmp(buf, "visible", 7) == 0) {
+ /* Visible and Raise surface window*/
+ visible_surface(display, &buf[7]);
+ }
+ else if (strncasecmp(buf, "show", 4) == 0) {
+ /* Show/Hide surface window */
+ show_surface(display, &buf[4], 1);
+ }
+ else if (strncasecmp(buf, "hide", 4) == 0) {
+ /* Show/Hide surface window */
+ show_surface(display, &buf[4], 0);
+ }
+ else if (strncasecmp(buf, "raise", 5) == 0) {
+ /* Raise/Lower surface window */
+ raise_surface(display, &buf[5], 1);
+ }
+ else if (strncasecmp(buf, "lower", 5) == 0) {
+ /* Raise/Lower surface window */
+ raise_surface(display, &buf[5], 0);
+ }
+ else if (strncasecmp(buf, "transition", 10) == 0) {
+ /* Set transition surface window*/
+ transition_surface(display, &buf[10]);
+ }
+ else if (strncasecmp(buf, "input_add", 9) == 0) {
+ /* Set input switch to application */
+ input_add(display, &buf[9]);
+ }
+ else if (strncasecmp(buf, "input_del", 9) == 0) {
+ /* Reset input switch to application*/
+ input_del(display, &buf[9]);
+ }
+ else if (strncasecmp(buf, "input_conf", 10) == 0) {
+ /* input switch configuration */
+ input_conf(display, &buf[10]);
+ }
+ else if (strncasecmp(buf, "input_code", 10) == 0) {
+ /* input code configuration */
+ input_code(display, &buf[10]);
+ }
+ else if (strncasecmp(buf, "input_sw", 8) == 0) {
+ /* input switch event */
+ input_sw(display, &buf[8]);
+ }
+ else if (strncasecmp(buf, "sleep", 5) == 0) {
+ /* Sleep */
+ msec = sec_str_2_value(&buf[6]);
+ sleep_with_wayland(display->display, msec);
+ }
+ else if (strncasecmp(buf, "waitcreate", 10) == 0) {
+ /* Wait surface create */
+ msec = sec_str_2_value(&buf[11]);
+ wait_with_wayland(display->display, msec, &display->surface_created);
+ }
+ else if (strncasecmp(buf, "waitdestroy", 11) == 0) {
+ /* Wait surface destrpy */
+ msec = sec_str_2_value(&buf[12]);
+ wait_with_wayland(display->display, msec, &display->surface_destroyed);
+ }
+ else if (strncasecmp(buf, "event", 5) == 0) {
+ /* Send touch panel event to Weston */
+ send_event(&buf[6]);
+ }
+ else {
+ print_log("HOMESCREEN: unknown command[%s]", buf);
+ return -1;
+ }
+ }
+
+ print_log("HOMESCREEN: end");
+
+ send_event(NULL);
+
+ return(0);
+}
+
diff --git a/tests/test-send_event.c b/tests/test-send_event.c
new file mode 100644
index 0000000..6aa0b7b
--- /dev/null
+++ b/tests/test-send_event.c
@@ -0,0 +1,530 @@
+/*
+ * Copyright © 2013 TOYOTA MOTOR CORPORATION.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of the copyright holders not be used in
+ * advertising or publicity pertaining to distribution of the software
+ * without specific, written prior permission. The copyright holders make
+ * no representations about the suitability of this software for any
+ * purpose. It is provided "as is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+/**
+ * @brief System Test Tool for send device input event
+ *
+ * @date Feb-20-2013
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <errno.h>
+#include <pthread.h>
+#include <sys/ioctl.h>
+#include <sys/ipc.h>
+#include <sys/msg.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <signal.h>
+#include <fcntl.h>
+#include <linux/input.h>
+#include <linux/uinput.h>
+#include <linux/joystick.h>
+#include "test-common.h"
+
+#define DEV_TOUCH 0
+#define DEV_JS 1
+#define SPECIALTYPE_XY 9991
+
+static const struct {
+ char *prop;
+ short devtype;
+ short type;
+ short code;
+ short value;
+} event_key[] = {
+ { "X", DEV_TOUCH, EV_ABS, ABS_X, -1 },
+ { "Y", DEV_TOUCH, EV_ABS, ABS_Y, -1 },
+ { "Down", DEV_TOUCH, EV_KEY, BTN_TOUCH, 1 },
+ { "Up", DEV_TOUCH, EV_KEY, BTN_TOUCH, 0 },
+ { "Touch", DEV_TOUCH, EV_KEY, BTN_TOUCH, -1 },
+ { "XY", DEV_TOUCH, SPECIALTYPE_XY, 0, -1 },
+ { "SYN", DEV_TOUCH, 0, 0, 0 },
+ { "Button", DEV_TOUCH, EV_KEY, BTN_LEFT, -1 },
+ { "ButtonOn", DEV_TOUCH, EV_KEY, BTN_LEFT, 1 },
+ { "ButtonOff", DEV_TOUCH, EV_KEY, BTN_LEFT, 0 },
+
+ { "UpDown", DEV_JS, 2, 3, 1 },
+ { "UD", DEV_JS, 2, 3, 1 },
+ { "LeftRight", DEV_JS, 2, 2, 2 },
+ { "LR", DEV_JS, 2, 2, 2 },
+ { "Cross", DEV_JS, 1, 0, 3 },
+ { "Squere", DEV_JS, 1, 1, 4 },
+ { "Circle", DEV_JS, 1, 2, 5 },
+ { "Triangle", DEV_JS, 1, 3, 6 },
+ { "\0", 0, 0, 0, 0 } };
+
+static int uifd = -1;
+static int mqid = -1;
+static int mDebug = 0;
+static int mRun = 1;
+static int mTouch = 1;
+
+static void
+term_signal(const int signo)
+{
+ mRun = 0;
+}
+
+static void
+init_mq(const int mqkey)
+{
+ char dummy[256];
+
+ if (mqkey == 0) {
+ mqid = -1;
+ }
+ else {
+ mqid = msgget(mqkey, 0);
+ if (mqid < 0) {
+ mqid = msgget(mqkey, IPC_CREAT);
+ }
+ if (mqid < 0) {
+ print_log("Can not create message queue(%d(0x%x))[%d]",
+ mqkey, mqkey, errno);
+ fflush(stderr);
+ return;
+ }
+ while (msgrcv(mqid, dummy, sizeof(dummy)-sizeof(long), 0, IPC_NOWAIT) > 0) ;
+ }
+}
+
+static void
+init_device(const char *device)
+{
+ int fd;
+ int ii;
+ char devFile[64];
+ char devName[64];
+ struct uinput_user_dev uinputDevice;
+ uifd = open("/dev/uinput", O_RDWR);
+
+ if (uifd < 0) {
+ print_log("/dev/uinput open error[%d]", errno);
+ fflush(stderr);
+ exit(1);
+ }
+
+ memset(&uinputDevice, 0, sizeof(uinputDevice));
+ strcpy(uinputDevice.name, device);
+ uinputDevice.absmax[ABS_X] = 1920;
+ uinputDevice.absmax[ABS_Y] = 1080;
+
+ /* uinput device configuration */
+ if (write(uifd, &uinputDevice, sizeof(uinputDevice)) < (int)sizeof(uinputDevice)) {
+ print_log("/dev/uinput regist error[%d]", errno);
+ fflush(stderr);
+ close(uifd);
+ exit(1);
+ }
+
+ /* uinput set event bits */
+ ioctl(uifd, UI_SET_EVBIT, EV_SYN);
+
+ if ((mTouch != 0) && (mTouch != 3)) {
+ ioctl(uifd, UI_SET_EVBIT, EV_ABS);
+ ioctl(uifd, UI_SET_ABSBIT, ABS_X);
+ ioctl(uifd, UI_SET_ABSBIT, ABS_Y);
+ ioctl(uifd, UI_SET_EVBIT, EV_KEY);
+ if (mTouch == 1) {
+ ioctl(uifd, UI_SET_KEYBIT, BTN_LEFT);
+ }
+ else {
+ ioctl(uifd, UI_SET_KEYBIT, BTN_TOUCH);
+ ioctl(uifd, UI_SET_KEYBIT, BTN_TOOL_PEN);
+ }
+ }
+ else {
+ ioctl(uifd, UI_SET_EVBIT, EV_REL);
+ ioctl(uifd, UI_SET_RELBIT, REL_X);
+ ioctl(uifd, UI_SET_RELBIT, REL_Y);
+ ioctl(uifd, UI_SET_RELBIT, REL_Z);
+ ioctl(uifd, UI_SET_RELBIT, REL_RX);
+ ioctl(uifd, UI_SET_RELBIT, REL_RY);
+ ioctl(uifd, UI_SET_RELBIT, REL_RZ);
+ ioctl(uifd, UI_SET_EVBIT, EV_KEY);
+ ioctl(uifd, UI_SET_KEYBIT, KEY_RESERVED);
+ ioctl(uifd, UI_SET_KEYBIT, KEY_ESC);
+ ioctl(uifd, UI_SET_KEYBIT, KEY_1);
+ ioctl(uifd, UI_SET_KEYBIT, KEY_2);
+ ioctl(uifd, UI_SET_KEYBIT, KEY_3);
+ ioctl(uifd, UI_SET_KEYBIT, KEY_4);
+ ioctl(uifd, UI_SET_KEYBIT, KEY_5);
+ ioctl(uifd, UI_SET_KEYBIT, KEY_6);
+ ioctl(uifd, UI_SET_KEYBIT, KEY_7);
+ ioctl(uifd, UI_SET_KEYBIT, KEY_8);
+ ioctl(uifd, UI_SET_KEYBIT, KEY_9);
+ ioctl(uifd, UI_SET_KEYBIT, KEY_0);
+ }
+
+ ioctl(uifd, UI_SET_EVBIT, EV_MSC);
+ ioctl(uifd, UI_SET_MSCBIT, MSC_SCAN);
+
+ /* create event device */
+ if (ioctl(uifd, UI_DEV_CREATE, NULL) < 0) {
+ print_log("/dev/uinput create error[%d]", errno);
+ fflush(stderr);
+ close(uifd);
+ exit(1);
+ }
+ print_log("## created event device %s", device);
+
+ for (ii = 0; ii < 16; ii++) {
+ snprintf(devFile, 64, "/dev/input/event%d", ii);
+ fd = open(devFile, O_RDONLY);
+ if (fd < 0) continue;
+
+ memset(devName, 0, sizeof(devName));
+ ioctl(fd, EVIOCGNAME(sizeof(devName)), devName);
+ close(fd);
+ print_log("%d.event device(%s) is %s", ii+1, devFile, devName);
+ }
+}
+
+static int
+convert_value(const char *value, char **errp, int base)
+{
+ int i;
+
+ for (i = 0; value[i]; i++) {
+ if ((value[i] == ',') || (value[i] == ';') ||
+ (value[i] == ';') || (value[i] == ' ')) {
+ break;
+ }
+ }
+ if (errp) {
+ *errp = (char *)&value[i];
+ }
+
+ if ((strncasecmp(value, "on", i) == 0) ||
+ (strncasecmp(value, "true", i) == 0) ||
+ (strncasecmp(value, "push", i) == 0) ||
+ (strncasecmp(value, "down", i) == 0) ||
+ (strncasecmp(value, "right", i) == 0)) {
+ return 1;
+ }
+ else if ((strncasecmp(value, "off", i) == 0) ||
+ (strncasecmp(value, "false", i) == 0) ||
+ (strncasecmp(value, "pop", i) == 0) ||
+ (strncasecmp(value, "up", i) == 0) ||
+ (strncasecmp(value, "left", i) == 0)) {
+ return 0;
+ }
+ return strtol(value, (char **)0, 0);
+}
+
+static void
+send_event(const char *cmd)
+{
+ int i, j;
+ int key;
+ char prop[64];
+ char value[128];
+ int sec, msec;
+ char *errp;
+ struct input_event event;
+ struct js_event js;
+
+ j = 0;
+ for (i = 0; cmd[i]; i++) {
+ if ((cmd[i] == '=') || (cmd[i] == ' ')) break;
+ if (j < (int)(sizeof(prop)-1)) {
+ prop[j++] = cmd[i];
+ }
+ }
+
+ prop[j] = 0;
+ j = 0;
+ if (cmd[i] != 0) {
+ for (i++; cmd[i]; i++) {
+ if (cmd[i] == ' ') continue;
+ if (j < (int)(sizeof(value)-1)) {
+ value[j++] = cmd[i];
+ }
+ }
+ }
+ value[j] = 0;
+
+ if (strcasecmp(prop, "sleep") == 0) {
+ sec = 0;
+ msec = 0;
+ for (i = 0; value[i]; i++) {
+ if (value[i] == '.') break;
+ sec = sec * 10 + (value[i] & 0x0f);
+ }
+ if (value[i] == '.') {
+ i++;
+ if (value[i] != 0) {
+ msec = (value[i] & 0x0f) * 100;
+ i++;
+ }
+ if (value[i] != 0) {
+ msec = msec + (value[i] & 0x0f) * 10;
+ i++;
+ }
+ if (value[i] != 0) {
+ msec = msec + (value[i] & 0x0f);
+ }
+ }
+ if (sec > 0) sleep(sec);
+ if (msec > 0) usleep(msec * 1000);
+
+ return;
+ }
+
+ for (key = 0; event_key[key].prop[0]; key++) {
+ if (strcasecmp(prop, event_key[key].prop) == 0) break;
+ }
+ if (! event_key[key].prop[0]) {
+ print_log("UnKnown Event name[%s]", prop);
+ return;
+ }
+
+ if (mTouch != 0) {
+ memset(&event, 0, sizeof(event));
+ gettimeofday(&event.time, NULL);
+ if (event_key[key].type == SPECIALTYPE_XY) {
+ event.type = EV_ABS;
+ event.code = ABS_X;
+ event.value = convert_value(value, &errp, 0);
+ if (mDebug) {
+ print_log("Send Event ABS_X=%d\t# %d.%03d", event.value,
+ (int)event.time.tv_sec, (int)(event.time.tv_usec/1000));
+ fflush(stderr);
+ }
+ if (write(uifd, &event, sizeof(struct input_event)) < 0) {
+ print_log("event write error 1[%d]", errno);
+ fflush(stderr);
+ return;
+ }
+ event.code = ABS_Y;
+ if (*errp == ',') {
+ event.value = convert_value(errp + 1, (char **)0, 0);
+ }
+ else {
+ event.value = 0;
+ }
+ event.time.tv_usec += 200;
+ if (event.time.tv_usec >= 1000000) {
+ event.time.tv_sec ++;
+ event.time.tv_usec -= 1000000;
+ }
+ if (mDebug) {
+ print_log("Send Event ABS_Y=%d\t# %d.%03d", event.value,
+ (int)event.time.tv_sec, (int)(event.time.tv_usec/1000));
+ fflush(stderr);
+ }
+ }
+ else {
+ event.type = event_key[key].type;
+
+ if (event_key[key].code == -1) {
+ event.code = convert_value(value, (char **)0, 0);
+ }
+ else {
+ event.code = event_key[key].code;
+ event.value = convert_value(value, (char **)0, 0);
+ }
+ if (mDebug) {
+ if ((event.type == EV_ABS) && (event.code == ABS_X)) {
+ print_log("Send Event X=%d\t# %d.%03d", event.value,
+ (int)event.time.tv_sec, (int)(event.time.tv_usec/1000));
+ }
+ else if ((event.type == EV_ABS) && (event.code == ABS_Y)) {
+ print_log("Send Event Y=%d\t %d.%03d", event.value,
+ (int)event.time.tv_sec, (int)(event.time.tv_usec/1000));
+ }
+ else if ((event.type == EV_KEY) &&
+ (event.code == BTN_LEFT) && (event.value == 1)) {
+ print_log("Send Event BTN_LEFT=Down\t# %d.%03d",
+ (int)event.time.tv_sec, (int)(event.time.tv_usec/1000));
+ }
+ else if ((event.type == EV_KEY) &&
+ (event.code == BTN_LEFT) && (event.value == 0)) {
+ print_log("Send Event BTN_LEFT=Up\t# %d.%03d",
+ (int)event.time.tv_sec, (int)(event.time.tv_usec/1000));
+ }
+ else {
+ if ((event.type == EV_REL) && (event.value == 0)) {
+ event.value = 9;
+ }
+ else if ((event.type == EV_KEY) && (event.code == 0)) {
+ event.code = 9;
+ }
+ print_log("Send Event type=%d code=%d value=%d\t# %d.%03d",
+ event.type, event.code, event.value,
+ (int)event.time.tv_sec, (int)(event.time.tv_usec/1000));
+ }
+ fflush(stderr);
+ }
+ }
+ if (write(uifd, &event, sizeof(struct input_event)) < 0) {
+ print_log("event write error 2[%d]", errno);
+ fflush(stderr);
+ }
+ else {
+ /* send EV_SYN */
+ memset(&event, 0, sizeof(event));
+ gettimeofday(&event.time, NULL);
+ event.type = EV_SYN;
+ event.code = SYN_REPORT;
+ if (write(uifd, &event, sizeof(struct input_event)) < 0) {
+ print_log("syn event write error 3[%d]", errno);
+ }
+ }
+ }
+ else {
+ memset(&js, 0, sizeof(js));
+ gettimeofday(&event.time, NULL);
+ js.time = (event.time.tv_sec * 1000) + (event.time.tv_usec / 1000);
+ js.type = event_key[key].type;
+ js.number = event_key[key].code;
+ js.value = convert_value(value, (char **)0, 0);
+ if (mDebug) {
+ print_log("Send Event JS=%d,%d,%d\t# %d",
+ (int)js.type, (int)js.number, (int)js.value, (int)js.time);
+ }
+ if (write(uifd, &js, sizeof(struct js_event)) < 0) {
+ print_log("event write error 4[%d]", errno);
+ fflush(stderr);
+ }
+ }
+}
+
+static void
+usage(const char *prog)
+{
+ fprintf(stderr, "Usage: %s [-device=device] [{-m/-t/-j}] [-mq[=key]] "
+ "[-d] [event=value] [event=value] ...\n", prog);
+ exit(0);
+}
+
+int
+main(int argc, char *argv[])
+{
+ int i, j, k;
+ int mqkey = 0;
+ struct {
+ long mtype;
+ char buf[240];
+ } mqbuf;
+ char buf[240];
+
+ j = 0;
+ strcpy(buf, "ico_test_device");
+ for (i = 1; i < argc; i++) {
+ if (argv[i][0] == '-') {
+ if (strncasecmp(argv[i], "-device=", 8) == 0) {
+ strcpy(buf, &argv[i][8]);
+ }
+ else if (strcasecmp(argv[i], "-m") == 0) {
+ mTouch = 1; /* Simulate mouse */
+ }
+ else if (strcasecmp(argv[i], "-t") == 0) {
+ mTouch = 2; /* Simulate touch-panel */
+ }
+ else if (strcmp(argv[i], "-j") == 0) {
+ mTouch = 0; /* Simulate joystick */
+ }
+ else if (strcmp(argv[i], "-J") == 0) {
+ mTouch = 3; /* Simulate joystick, but event is mouse */
+ }
+ else if (strncasecmp(argv[i], "-mq", 3) == 0) {
+ if (argv[i][3] == '=') {
+ mqkey = strtol(&argv[i][4], (char **)0, 0);
+ }
+ else {
+ mqkey = 55551; /* default message queue key */
+ }
+ }
+ else if (strcasecmp(argv[i], "-d") == 0) {
+ mDebug = 1;
+ }
+ else {
+ usage(argv[0]);
+ }
+ }
+ else {
+ j++;
+ }
+ }
+
+ init_mq(mqkey);
+
+ init_device(buf);
+
+ mRun = 1;
+
+ signal(SIGTERM, term_signal);
+ signal(SIGINT, term_signal);
+
+ if (mqid >= 0) {
+ while (mRun) {
+ memset(&mqbuf, 0, sizeof(mqbuf));
+ if (msgrcv(mqid, &mqbuf, sizeof(mqbuf)-sizeof(long), 0, 0) < 0) {
+ if (errno == EINTR) continue;
+ print_log("test-send_event: mq(%d) receive error[%d]",
+ mqkey, errno);
+ fflush(stderr);
+ break;
+ }
+ k = 0;
+ j = -1;
+ for (i = 0; mqbuf.buf[i]; i++) {
+ if ((mqbuf.buf[i] == '#') || (mqbuf.buf[i] == '\n')
+ || (mqbuf.buf[i] == '\r')) break;
+ if (mqbuf.buf[i] == '\t') buf[k++] = ' ';
+ else buf[k++] = mqbuf.buf[i];
+ if ((j < 0) && (mqbuf.buf[i] != ' ')) j = i;
+ }
+ if (j < 0) continue;
+ buf[k] = 0;
+ send_event(&buf[j]);
+ }
+ msgctl(mqid, IPC_RMID, NULL);
+ }
+ else if (j <= 0) {
+ while ((mRun != 0) && (fgets(buf, sizeof(buf), stdin) != NULL)) {
+ j = -1;
+ for (i = 0; buf[i]; i++) {
+ if ((buf[i] == '#') || (buf[i] == '\n') || (buf[i] == '\r')) break;
+ if (buf[i] == '\t') buf[i] = ' ';
+ if ((j < 0) && (buf[i] != ' ')) j = i;
+ }
+ if (j < 0) continue;
+ buf[i] = 0;
+ send_event(&buf[j]);
+ }
+ }
+ else {
+ for (i = 1; i < argc; i++) {
+ if (argv[i][0] == '-') continue;
+ if (mRun == 0) break;
+ send_event(argv[i]);
+ }
+ }
+ exit(0);
+}
+
diff --git a/tests/testdata/cl_surface1.dat b/tests/testdata/cl_surface1.dat
new file mode 100644
index 0000000..3c9e6c7
--- /dev/null
+++ b/tests/testdata/cl_surface1.dat
@@ -0,0 +1,17 @@
+# Test for Weston IVI Plugin for Native Application
+# Surface Create and Exit
+#
+# 1. Create Surface
+create-surface
+# 2. Sleep 2 sec with color change
+sleep 0.4
+clear-surface 0x80ff2020
+sleep 0.6
+clear-surface 0xb020ff20
+sleep 0.6
+clear-surface 0xe02020ff
+sleep 0.6
+clear-surface 0xff808080
+sleep 0.6
+# 3. End of this Application (exit)
+bye
diff --git a/tests/testdata/cl_surface2.dat b/tests/testdata/cl_surface2.dat
new file mode 100644
index 0000000..68b40f8
--- /dev/null
+++ b/tests/testdata/cl_surface2.dat
@@ -0,0 +1,9 @@
+# Test for Weston IVI Plugin for Native Application
+# Surface Create and Exit
+#
+# 1. Create Surface
+create-surface
+# 2. Sleep 10 sec
+sleep 8
+# 3. End of this Application (exit)
+bye
diff --git a/tests/testdata/cl_surface3.dat b/tests/testdata/cl_surface3.dat
new file mode 100644
index 0000000..fcd10cb
--- /dev/null
+++ b/tests/testdata/cl_surface3.dat
@@ -0,0 +1,7 @@
+# Test for Weston IVI Plugin for Native Application
+# Surface Create and Exit
+#
+# 1. Create Surface
+create-surface
+# 2. End of this Application (exit)
+bye
diff --git a/tests/testdata/hs_alltest.dat b/tests/testdata/hs_alltest.dat
new file mode 100644
index 0000000..8971c9b
--- /dev/null
+++ b/tests/testdata/hs_alltest.dat
@@ -0,0 +1,342 @@
+# Test for Weston IVI Plugin for HomeScreen(SystemController)
+# Surface Create and Destory
+#
+# 1. Launch Application (and app create surface)
+launch ../tests/test-client < ../tests/testdata/cl_surface1.dat 2> ../tests/testlog/test-client01.log
+waitcreate 2
+show test-client
+sleep 2
+waitdestroy 60
+sleep 1
+#
+# 2. Launch Application and resize/move/show
+launch ../tests/test-client < ../tests/testdata/cl_surface2.dat 2> ../tests/testlog/test-client02.log
+waitcreate 2
+resize test-client 600 400
+move test-client 300 100
+show test-client
+sleep 1
+move test-client 320 120
+sleep 0.5
+move test-client 340 140
+sleep 0.5
+move test-client 360 160
+sleep 0.5
+move test-client 380 180
+sleep 0.5
+hide test-client
+sleep 1
+move test-client 100 200
+resize test-client 150 100
+show test-client
+sleep 0.6
+resize test-client 300 200
+sleep 0.6
+resize test-client 450 300
+sleep 0.6
+resize test-client 600 400
+sleep 0.6
+resize test-client 400 250
+sleep 0.6
+resize test-client 200 150
+sleep 0.6
+resize test-client 100 50
+sleep 1
+waitdestroy 60
+sleep 1
+#
+# 3. Launch Weston sample client
+launch /usr/bin/wayland-flower 2> ../tests/testlog/wayland-flower.log
+waitcreate 2
+move wayland-flower 200 100
+show wayland-flower
+sleep 1
+resize wayland-flower 500 400
+sleep 2
+kill wayland-flower
+sleep 1
+#
+launch /usr/bin/wayland-smoke 2> ../tests/testlog/wayland-smoke.log
+waitcreate 2
+move wayland-smoke 100 50
+show wayland-smoke
+sleep 0.3
+event XY=168,93
+event Button=Down
+sleep 0.1
+event XY=151,88
+event Button=Up
+sleep 1
+resize wayland-smoke 400 400
+sleep 0.3
+event XY=457,211
+event Button=Down
+sleep 0.1
+event XY=457,209
+event Button=Up
+sleep 1
+resize wayland-smoke 300 600
+sleep 0.4
+event XY=250,495
+event Button=Down
+sleep 0.2
+event XY=246,498
+event Button=Up
+sleep 0.8
+resize wayland-smoke 450 300
+sleep 0.3
+event XY=511,296
+event Button=Down
+sleep 0.1
+event XY=R508,300
+event Button=Up
+sleep 1
+kill wayland-smoke
+sleep 1
+#
+# 4. Set Layer
+launch ../tests/test-eflapp @1 -color=0xe02040ff > ../tests/testlog/test-eflapp1.log
+waitcreate 2
+layer test-eflapp@1 101
+move test-eflapp@1 100 200
+show test-eflapp@1
+sleep 0.5
+
+launch ../tests/test-eflapp @2 -color=0xd020ff40 > ../tests/testlog/test-eflapp2.log
+waitcreate 2
+layer test-eflapp@2 103
+move test-eflapp@2 200 300
+show test-eflapp@2
+sleep 0.5
+
+launch ../tests/test-eflapp @3 -color=0xc0ff2040 > ../tests/testlog/test-eflapp3.log
+waitcreate 2
+layer test-eflapp@3 102
+move test-eflapp@3 300 400
+show test-eflapp@3
+sleep 0.5
+
+launch ../tests/test-eflapp @4 -color=0xb0808080 > ../tests/testlog/test-eflapp4.log
+waitcreate 2
+layer test-eflapp@4 102
+move test-eflapp@4 400 500
+show test-eflapp@4
+sleep 0.5
+
+launch ../tests/test-eflapp @5 -color=0xa040a060 > ../tests/testlog/test-eflapp5.log
+waitcreate 2
+layer test-eflapp@5 102
+move test-eflapp@5 500 600
+show test-eflapp@5
+sleep 1
+hide test-eflapp@2
+sleep 1
+show test-eflapp@2
+sleep 2
+#
+# resize EFL application
+resize test-eflapp@2 200 300
+sleep 1
+resize test-eflapp@3 720 520
+sleep 1
+resize test-eflapp@3 520 380
+sleep 1
+resize test-eflapp@2 520 380
+sleep 1
+#
+# 5. Raise/Lower
+raise test-eflapp@3
+sleep 1
+raise test-eflapp@4
+sleep 1
+raise test-eflapp@5
+sleep 1
+lower test-eflapp@5
+sleep 1
+lower test-eflapp@4
+sleep 1
+lower test-eflapp@3
+sleep 2
+#
+# 6. Layer Change
+layer test-eflapp@1 100
+sleep 1
+layer test-eflapp@2 100
+sleep 2
+#
+# 7. layer visibility control
+layer_visible 102 0
+sleep 1
+layer_visible 102 1
+sleep 1
+# 8. kill eflapp's
+kill test-eflapp@1
+sleep 0.5
+kill test-eflapp@2
+sleep 0.5
+kill test-eflapp@3
+sleep 0.5
+kill test-eflapp@4
+sleep 0.5
+kill test-eflapp@5
+sleep 2
+#
+# 9. Input test
+launch ../tests/test-client @1 -color=0xe0ff2020 -postsleep=60 < ../tests/testdata/cl_surface3.dat 2> ../tests/testlog/test-client11.log
+waitcreate 2
+sleep 0.3
+layer test-client@1 101
+move test-client@1 100 200
+show test-client@1
+sleep 0.5
+event XY=240,303
+event Button=Down
+sleep 0.1
+event XY=233,289
+event Button=Up
+sleep 0.2
+
+launch ../tests/test-client @2 -color=0xc020ff20 -postsleep=60 < ../tests/testdata/cl_surface3.dat 2> ../tests/testlog/test-client12.log
+waitcreate 2
+sleep 0.3
+layer test-client@2 101
+move test-client@2 250 300
+show test-client@2
+sleep 0.5
+event XY=625,555
+event Button=Down
+sleep 0.1
+event XY=623,557
+event Button=Up
+sleep 0.2
+
+launch ../tests/test-client @3 -color=0xa02020ff -postsleep=60 < ../tests/testdata/cl_surface3.dat 2> ../tests/testlog/test-client13.log
+waitcreate 2
+sleep 0.3
+layer test-client@3 101
+move test-client@3 400 400
+show test-client@3
+sleep 0.5
+event XY=848,663
+event Button=Down
+sleep 0.1
+event XY=845,669
+event Button=Up
+sleep 0.2
+
+hide test-client@2
+sleep 0.3
+event XY=719,643
+event Button=Down
+sleep 0.1
+event XY=720,644
+event Button=Up
+sleep 0.5
+
+lower test-client@3
+sleep 0.3
+event XY=858,555
+event Button=Down
+sleep 0.1
+event XY=R858,557
+event Button=Up
+sleep 0.5
+
+show test-client@2
+sleep 0.3
+event XY=765,644
+event Button=Down
+sleep 0.1
+event XY=762,645
+event Button=Up
+sleep 2
+# set input device
+input_conf InDev1 8 Sw1 0
+input_conf InDev1 8 Sw2 1 Up 10
+input_code InDev1 1 Down 11
+input_conf InDev1 8 Sw3 2 Left 20 Right 21
+input_code InDev1 2 Right 21
+input_conf InDev1 8 Sw4 3
+sleep 0.5
+input_conf InDev2 8 Sw0 0
+input_conf InDev2 8 Sw1 1
+sleep 0.5
+# input switch event
+input_sw InDev1 2 20 1
+sleep 0.1
+input_sw InDev1 2 20 0
+sleep 0.5
+input_sw InDev2 0 1 1
+sleep 0.1
+input_sw InDev2 0 1 1
+sleep 0.5
+# assign input sw to application
+input_add InDev1 1 test-client@1
+input_add InDev1 2 test-client@2
+input_add InDev1 3 test-client@3
+input_add InDev2 0 test-client@1 1
+input_add InDev2 1 test-client@1
+sleep 0.5
+# input switch event
+input_sw InDev1 0 1 1
+sleep 0.1
+input_sw InDev1 0 1 0
+sleep 0.5
+input_sw InDev1 1 10 1
+sleep 0.1
+input_sw InDev1 1 10 0
+sleep 0.5
+input_sw InDev1 2 21 1
+sleep 0.1
+input_sw InDev1 2 21 0
+sleep 0.5
+input_sw InDev1 3 1 1
+sleep 0.1
+input_sw InDev1 3 1 0
+sleep 0.5
+input_sw InDev2 0 1 1
+sleep 0.1
+input_sw InDev2 0 1 0
+sleep 0.5
+input_sw InDev2 1 1 1
+sleep 0.1
+input_sw InDev2 1 1 0
+sleep 0.5
+# delete and change assign
+## same assign (NOP, but change to general assign)
+input_add InDev2 0 test-client@1
+## same assign (NOP, but change to fixed assign)
+input_add InDev2 0 test-client@1 1
+## change assign
+input_add InDev2 1 test-client@2
+## delete assign
+input_del InDev1 1 test-client@1
+## delete but not assign
+input_del InDev2 1 test-client@1
+## switch input event
+input_sw InDev2 0 1 1
+sleep 0.1
+input_sw InDev2 0 1 0
+sleep 0.1
+input_sw InDev2 1 1 1
+sleep 0.1
+input_sw InDev2 1 1 0
+sleep 0.1
+input_sw InDev1 3 1 1
+sleep 0.1
+input_sw InDev1 3 1 0
+sleep 1
+# delete all assign without fixed assign(fixed = InDev2.0)
+input_del @ -1 @
+sleep 2
+#
+kill test-client@1
+sleep 0.3
+kill test-client@2
+sleep 0.3
+kill test-client@3
+sleep 0.5
+#
+# 10. End of Test
+bye
+
diff --git a/tests/testdata/hs_inputtest.dat b/tests/testdata/hs_inputtest.dat
new file mode 100644
index 0000000..53e3acb
--- /dev/null
+++ b/tests/testdata/hs_inputtest.dat
@@ -0,0 +1,129 @@
+# Test for Weston IVI Plugin for HomeScreen(SystemController)
+# Input event test
+#
+# 1. Input test (touch each window)
+launch ../tests/test-client @1 -color=0xffff2020 -postsleep=90 < ../tests/testdata/cl_surface3.dat 2> ../tests/testlog/test-client1.log
+sleep 0.5
+layer test-client@1 101
+move test-client@1 100 200
+show test-client@1
+
+launch ../tests/test-client @2 -color=0xff20ff20 -postsleep=90 < ../tests/testdata/cl_surface3.dat 2> ../tests/testlog/test-client2.log
+sleep 0.5
+layer test-client@2 101
+move test-client@2 250 300
+show test-client@2
+
+launch ../tests/test-client @3 -color=0xff2020ff -postsleep=90 < ../tests/testdata/cl_surface3.dat 2> ../tests/testlog/test-client3.log
+sleep 0.5
+layer test-client@3 101
+move test-client@3 400 400
+show test-client@3
+
+# Multi Input Manager test
+
+sleep 2
+# set input device
+input_conf InDev1 8 Sw1 0
+input_conf InDev1 8 Sw2 1 Up 10
+input_code InDev1 1 Down 11
+input_conf InDev1 8 Sw3 2 Left 20 Right 21
+input_code InDev1 2 Right 21
+input_conf InDev1 8 Sw4 3
+sleep 0.5
+input_conf InDev2 8 Sw0 0
+input_conf InDev2 8 Sw1 1
+sleep 0.5
+# input switch event
+input_sw InDev1 2 20 1
+sleep 0.1
+input_sw InDev1 2 20 0
+sleep 0.5
+input_sw InDev2 0 1 1
+sleep 0.1
+input_sw InDev2 0 1 1
+sleep 0.5
+# assign input sw to application
+input_add InDev1 1 test-client@1
+input_add InDev1 2 test-client@2
+input_add InDev1 3 test-client@3
+input_add InDev2 0 test-client@1 1
+input_add InDev2 1 test-client@1
+sleep 0.5
+# input switch event
+input_sw InDev1 0 1 1
+sleep 0.1
+input_sw InDev1 0 1 0
+sleep 0.5
+input_sw InDev1 1 10 1
+sleep 0.1
+input_sw InDev1 1 10 0
+sleep 0.5
+input_sw InDev1 2 21 1
+sleep 0.1
+input_sw InDev1 2 21 0
+sleep 0.5
+input_sw InDev1 3 1 1
+sleep 0.1
+input_sw InDev1 3 1 0
+sleep 0.5
+input_sw InDev2 0 1 1
+sleep 0.1
+input_sw InDev2 0 1 0
+sleep 0.5
+input_sw InDev2 1 1 1
+sleep 0.1
+input_sw InDev2 1 1 0
+sleep 0.5
+# delete and change assign
+## same assign (NOP, but change to general assign)
+input_add InDev2 0 test-client@1
+## same assign (NOP, but change to fixed assign)
+input_add InDev2 0 test-client@1 1
+## change assign
+input_add InDev2 1 test-client@2
+## delete assign
+input_del InDev1 1 test-client@1
+## delete but not assign
+input_del InDev2 1 test-client@1
+## switch input event
+input_sw InDev2 0 1 1
+sleep 0.1
+input_sw InDev2 0 1 0
+sleep 0.1
+input_sw InDev2 1 1 1
+sleep 0.1
+input_sw InDev2 1 1 0
+sleep 0.1
+input_sw InDev1 3 1 1
+sleep 0.1
+input_sw InDev1 3 1 0
+sleep 1
+# delete all assign without fixed assign(fixed = InDev2.0)
+input_del @ -1 @
+sleep 2
+#
+kill test-client@1
+sleep 0.5
+#
+launch ../tests/test-client @1 -color=0xffff2020 -postsleep=90 < ../tests/testdata/cl_surface3.dat 2> ../tests/testlog/test-client4.log
+sleep 0.5
+layer test-client@1 101
+move test-client@1 100 200
+show test-client@1
+#
+input_sw InDev2 0 1 1
+sleep 0.1
+input_sw InDev2 0 1 0
+sleep 2
+#
+kill test-client@1
+sleep 0.5
+kill test-client@2
+sleep 0.5
+kill test-client@3
+sleep 0.5
+#
+# 2. End of Test
+bye
+
diff --git a/tests/testdata/hs_layer.dat b/tests/testdata/hs_layer.dat
new file mode 100644
index 0000000..f2dbbbe
--- /dev/null
+++ b/tests/testdata/hs_layer.dat
@@ -0,0 +1,42 @@
+# Test for Weston IVI Plugin for HomeScreen(SystemController)
+# Surface Layer Change
+#
+# 1. Set Layer
+launch ../tests/test-eflapp @1 -color=0xff2040ff > ../tests/testlog/test-eflapp1.log
+sleep 0.5
+layer test-eflapp@1 101
+move test-eflapp@1 100 200
+show test-eflapp@1
+sleep 0.5
+
+launch ../tests/test-eflapp @2 -color=0xff20ff40 > ../tests/testlog/test-eflapp2.log
+sleep 0.5
+layer test-eflapp@2 103
+move test-eflapp@2 200 300
+show test-eflapp@2
+sleep 0.5
+
+launch ../tests/test-eflapp @3 -color=0xffff2040 > ../tests/testlog/test-eflapp3.log
+sleep 0.5
+layer test-eflapp@3 102
+move test-eflapp@3 300 400
+show test-eflapp@3
+sleep 2
+
+# 2. Layer Change
+layer test-eflapp@1 105
+sleep 2
+layer test-eflapp@2 100
+sleep 2
+#
+# 3. kill eflapp's
+kill test-eflapp@1
+sleep 0.5
+kill test-eflapp@2
+sleep 0.5
+kill test-eflapp@3
+sleep 0.5
+#
+# 4. End of Test
+bye
+
diff --git a/tests/testdata/hs_resize.dat b/tests/testdata/hs_resize.dat
new file mode 100644
index 0000000..5eac79e
--- /dev/null
+++ b/tests/testdata/hs_resize.dat
@@ -0,0 +1,109 @@
+# Test for Weston IVI Plugin for HomeScreen(SystemController)
+# Resize bug test
+#
+# 1. Pure client
+launch ../tests/test-client < ../tests/testdata/cl_surface2.dat 2> ../tests/testlog/test-client2.log
+waitcreate 2
+resize test-client 150 100
+show test-client
+sleep 1
+resize test-client 300 200
+sleep 1
+resize test-client 450 300
+sleep 1
+resize test-client 600 400
+sleep 1
+resize test-client 400 250
+sleep 1
+resize test-client 200 150
+sleep 1
+resize test-client 100 50
+sleep 1
+waitdestroy 60
+sleep 1
+#
+# 2. Weston sample client
+launch /usr/bin/wayland-flower 2> ../tests/testlog/wayland-flower.log
+waitcreate 2
+move wayland-flower 200 100
+show wayland-flower
+sleep 1
+resize wayland-flower 500 400
+sleep 2
+kill wayland-flower
+sleep 1
+#
+launch /usr/bin/wayland-smoke 2> ../tests/testlog/wayland-smoke.log
+waitcreate 2
+move wayland-smoke 100 50
+show wayland-smoke
+sleep 0.3
+event XY=168,93
+event Button=Down
+sleep 0.1
+event XY=151,88
+event Button=Up
+sleep 1
+resize wayland-smoke 400 400
+sleep 0.3
+event XY=457,211
+event Button=Down
+sleep 0.1
+event XY=457,209
+event Button=Up
+sleep 1
+resize wayland-smoke 300 600
+sleep 0.4
+event XY=250,495
+event Button=Down
+sleep 0.2
+event XY=246,498
+event Button=Up
+sleep 0.8
+resize wayland-smoke 450 300
+sleep 0.3
+event XY=511,296
+event Button=Down
+sleep 0.1
+event XY=R508,300
+event Button=Up
+sleep 1
+kill wayland-smoke
+sleep 1
+#
+# 3. EFL client
+launch ../tests/test-eflapp @2 -color=0xc0ff2040 -resize 2> ../tests/testlog/test-eflapp2.log
+waitcreate 2
+layer test-eflapp@2 102
+move test-eflapp@2 20 80
+show test-eflapp@2
+sleep 0.5
+
+launch ../tests/test-eflapp @3 -color=0xb04080c0 -resize 2> ../tests/testlog/test-eflapp3.log
+waitcreate 2
+layer test-eflapp@3 102
+move test-eflapp@3 200 300
+show test-eflapp@3
+sleep 0.5
+resize test-eflapp@2 240 300
+sleep 2
+resize test-eflapp@2 100 100
+sleep 2
+resize test-eflapp@3 640 420
+sleep 2
+resize test-eflapp@3 720 520
+sleep 2
+resize test-eflapp@3 520 380
+sleep 2
+resize test-eflapp@2 520 380
+sleep 2
+#
+# 7. kill eflapp's
+kill test-eflapp@2
+sleep 0.5
+kill test-eflapp@3
+sleep 0.5
+#
+# 9. End of Test
+bye
+
diff --git a/tests/testdata/hs_resize_flower.dat b/tests/testdata/hs_resize_flower.dat
new file mode 100644
index 0000000..7c461ae
--- /dev/null
+++ b/tests/testdata/hs_resize_flower.dat
@@ -0,0 +1,25 @@
+# Test for Weston IVI Plugin for HomeScreen(SystemController)
+# Resize bug test (only weston sample client 'flower')
+#
+sleep 1
+#
+# 1. Weston sample client
+launch /usr/bin/wayland-flower 2> ../tests/testlog/wayland-flower.log
+waitcreate 2
+move wayland-flower 50 100
+show wayland-flower
+sleep 2
+resize wayland-flower 400 400
+sleep 2
+resize wayland-flower 200 400
+sleep 2
+resize wayland-flower 400 200
+sleep 2
+resize wayland-flower 500 300
+sleep 2
+kill wayland-flower
+sleep 1
+#
+# 2. End of Test
+bye
+
diff --git a/tests/testdata/hs_resize_native.dat b/tests/testdata/hs_resize_native.dat
new file mode 100644
index 0000000..9aab11c
--- /dev/null
+++ b/tests/testdata/hs_resize_native.dat
@@ -0,0 +1,16 @@
+# Test for Weston IVI Plugin for HomeScreen(SystemController)
+# Resize bug test
+#
+# 1. Pure client
+launch ../tests/test-client < ../tests/testdata/cl_surface2.dat 2> ../tests/testlog/test-client2.log
+waitcreate 2
+show test-client
+sleep 2
+resize test-client 300 200
+sleep 2
+waitdestroy 60
+sleep 1
+#
+# 9. End of Test
+bye
+
diff --git a/tests/testdata/hs_resize_smoke.dat b/tests/testdata/hs_resize_smoke.dat
new file mode 100644
index 0000000..b128f31
--- /dev/null
+++ b/tests/testdata/hs_resize_smoke.dat
@@ -0,0 +1,23 @@
+# Test for Weston IVI Plugin for HomeScreen(SystemController)
+# Resize bug test(smoke)
+#
+launch /usr/bin/wayland-smoke 2> ../tests/testlog/wayland-smoke.log
+waitcreate 2
+move wayland-smoke 100 50
+show wayland-smoke
+sleep 1
+resize wayland-smoke 400 400
+sleep 2
+resize wayland-smoke 600 300
+sleep 2
+resize wayland-smoke 300 600
+sleep 2
+resize wayland-smoke 100 300
+sleep 2
+resize wayland-smoke 300 100
+sleep 2
+kill wayland-smoke
+sleep 1
+#
+bye
+
diff --git a/tests/testdata/hs_resize_smoke2.dat b/tests/testdata/hs_resize_smoke2.dat
new file mode 100644
index 0000000..1309f67
--- /dev/null
+++ b/tests/testdata/hs_resize_smoke2.dat
@@ -0,0 +1,23 @@
+# Test for Weston IVI Plugin for HomeScreen(SystemController)
+# Resize bug test(smoke)
+#
+launch /usr/bin/wayland-smoke 2> ../tests/testlog/wayland-smoke.log
+waitcreate 2
+move wayland-smoke 100 50
+show wayland-smoke
+sleep 2
+resize wayland-smoke 100 100
+sleep 2
+resize wayland-smoke 100 50
+sleep 2
+resize wayland-smoke 50 100
+sleep 2
+resize wayland-smoke 100 300
+sleep 2
+resize wayland-smoke 300 100
+sleep 1
+kill wayland-smoke
+sleep 1
+#
+bye
+
diff --git a/tests/testdata/hs_resize_smoke_xm.dat b/tests/testdata/hs_resize_smoke_xm.dat
new file mode 100644
index 0000000..98c8b3a
--- /dev/null
+++ b/tests/testdata/hs_resize_smoke_xm.dat
@@ -0,0 +1,21 @@
+# Test for Weston IVI Plugin for HomeScreen(SystemController)
+# Resize bug test(smoke)
+#
+launch /usr/bin/wayland-smoke 2> ../tests/testlog/wayland-smoke.log
+waitcreate 2
+move wayland-smoke 100 50
+show wayland-smoke
+sleep 2
+resize wayland-smoke 50 400
+sleep 2
+resize wayland-smoke 100 300
+sleep 2
+resize wayland-smoke 25 500
+sleep 2
+resize wayland-smoke 150 200
+sleep 2
+kill wayland-smoke
+sleep 1
+#
+bye
+
diff --git a/tests/testdata/hs_resize_smoke_xym.dat b/tests/testdata/hs_resize_smoke_xym.dat
new file mode 100644
index 0000000..83c531e
--- /dev/null
+++ b/tests/testdata/hs_resize_smoke_xym.dat
@@ -0,0 +1,25 @@
+# Test for Weston IVI Plugin for HomeScreen(SystemController)
+# Resize bug test(smoke)
+#
+launch /usr/bin/wayland-smoke 2> ../tests/testlog/wayland-smoke.log
+waitcreate 2
+move wayland-smoke 100 50
+show wayland-smoke
+sleep 2
+resize wayland-smoke 150 150
+sleep 2
+resize wayland-smoke 100 100
+sleep 2
+resize wayland-smoke 50 100
+sleep 2
+resize wayland-smoke 100 50
+sleep 2
+resize wayland-smoke 100 150
+sleep 2
+resize wayland-smoke 150 100
+sleep 2
+kill wayland-smoke
+sleep 1
+#
+bye
+
diff --git a/tests/testdata/hs_resize_smoke_ym.dat b/tests/testdata/hs_resize_smoke_ym.dat
new file mode 100644
index 0000000..5a2cc69
--- /dev/null
+++ b/tests/testdata/hs_resize_smoke_ym.dat
@@ -0,0 +1,19 @@
+# Test for Weston IVI Plugin for HomeScreen(SystemController)
+# Resize bug test(smoke)
+#
+launch /usr/bin/wayland-smoke 2> ../tests/testlog/wayland-smoke.log
+waitcreate 2
+move wayland-smoke 100 50
+show wayland-smoke
+sleep 2
+resize wayland-smoke 300 100
+sleep 2
+resize wayland-smoke 400 50
+sleep 2
+resize wayland-smoke 200 150
+sleep 2
+kill wayland-smoke
+sleep 1
+#
+bye
+
diff --git a/tests/testdata/hs_sleep.dat b/tests/testdata/hs_sleep.dat
new file mode 100644
index 0000000..97048c7
--- /dev/null
+++ b/tests/testdata/hs_sleep.dat
@@ -0,0 +1,8 @@
+# Test for Weston IVI Plugin for HomeScreen(SystemController)
+# Examination to operate only the program of the home screen.
+#
+# 1. Sleep 3600 sec
+sleep 3600
+# 2. End of Test
+bye
+
diff --git a/tests/testlog/event_log.log b/tests/testlog/event_log.log
new file mode 100644
index 0000000..021b5c9
--- /dev/null
+++ b/tests/testlog/event_log.log
@@ -0,0 +1,72 @@
+[16:40:46.552@28884] ## created event device ico_test_device
+[16:40:46.561@28884] 1.event device(/dev/input/event0) is Power Button
+[16:40:46.567@28884] 2.event device(/dev/input/event1) is Power Button
+[16:40:46.571@28884] 3.event device(/dev/input/event2) is Video Bus
+[16:40:46.577@28884] 4.event device(/dev/input/event3) is CHICONY USB Keyboard
+[16:40:46.582@28884] 5.event device(/dev/input/event4) is CHICONY USB Keyboard
+[16:40:46.592@28884] 6.event device(/dev/input/event5) is HDA Intel PCH Line
+[16:40:46.602@28884] 7.event device(/dev/input/event6) is HDA Intel PCH Line Out
+[16:40:46.607@28884] 8.event device(/dev/input/event7) is Logitech Logitech USB Optical Mouse
+[16:40:46.612@28884] 9.event device(/dev/input/event8) is C-Media Electronics Inc. USB Audio Device
+[16:40:46.622@28884] 10.event device(/dev/input/event9) is UVC Camera (046d:0825)
+[16:40:46.632@28884] 11.event device(/dev/input/event10) is ico_test_device
+[16:41:10.316@28884] Send Event ABS_X=168 # 1366875670.316
+[16:41:10.316@28884] Send Event ABS_Y=93 # 1366875670.317
+[16:41:10.337@28884] Send Event BTN_LEFT=Down # 1366875670.337
+[16:41:10.477@28884] Send Event ABS_X=151 # 1366875670.477
+[16:41:10.477@28884] Send Event ABS_Y=88 # 1366875670.477
+[16:41:10.497@28884] Send Event BTN_LEFT=Up # 1366875670.497
+[16:41:11.883@28884] Send Event ABS_X=457 # 1366875671.883
+[16:41:11.883@28884] Send Event ABS_Y=211 # 1366875671.883
+[16:41:11.903@28884] Send Event BTN_LEFT=Down # 1366875671.903
+[16:41:12.044@28884] Send Event ABS_X=457 # 1366875672.044
+[16:41:12.044@28884] Send Event ABS_Y=209 # 1366875672.044
+[16:41:12.064@28884] Send Event BTN_LEFT=Up # 1366875672.064
+[16:41:13.551@28884] Send Event ABS_X=250 # 1366875673.551
+[16:41:13.551@28884] Send Event ABS_Y=495 # 1366875673.551
+[16:41:13.571@28884] Send Event BTN_LEFT=Down # 1366875673.571
+[16:41:13.813@28884] Send Event ABS_X=246 # 1366875673.813
+[16:41:13.813@28884] Send Event ABS_Y=498 # 1366875673.813
+[16:41:13.833@28884] Send Event BTN_LEFT=Up # 1366875673.833
+[16:41:15.019@28884] Send Event ABS_X=511 # 1366875675.019
+[16:41:15.019@28884] Send Event ABS_Y=296 # 1366875675.019
+[16:41:15.039@28884] Send Event BTN_LEFT=Down # 1366875675.039
+[16:41:15.180@28884] Send Event ABS_X=0 # 1366875675.180
+[16:41:15.180@28884] Send Event ABS_Y=300 # 1366875675.180
+[16:41:15.200@28884] Send Event BTN_LEFT=Up # 1366875675.200
+[16:41:51.295@28884] Send Event ABS_X=240 # 1366875711.295
+[16:41:51.295@28884] Send Event ABS_Y=303 # 1366875711.295
+[16:41:51.315@28884] Send Event BTN_LEFT=Down # 1366875711.315
+[16:41:51.456@28884] Send Event ABS_X=233 # 1366875711.456
+[16:41:51.456@28884] Send Event ABS_Y=289 # 1366875711.456
+[16:41:51.476@28884] Send Event BTN_LEFT=Up # 1366875711.476
+[16:41:53.209@28884] Send Event ABS_X=625 # 1366875713.209
+[16:41:53.209@28884] Send Event ABS_Y=555 # 1366875713.209
+[16:41:53.229@28884] Send Event BTN_LEFT=Down # 1366875713.229
+[16:41:53.370@28884] Send Event ABS_X=623 # 1366875713.370
+[16:41:53.370@28884] Send Event ABS_Y=557 # 1366875713.370
+[16:41:53.390@28884] Send Event BTN_LEFT=Up # 1366875713.390
+[16:41:55.123@28884] Send Event ABS_X=848 # 1366875715.123
+[16:41:55.123@28884] Send Event ABS_Y=663 # 1366875715.123
+[16:41:55.143@28884] Send Event BTN_LEFT=Down # 1366875715.143
+[16:41:55.284@28884] Send Event ABS_X=845 # 1366875715.284
+[16:41:55.284@28884] Send Event ABS_Y=669 # 1366875715.284
+[16:41:55.304@28884] Send Event BTN_LEFT=Up # 1366875715.304
+[16:41:55.907@28884] Send Event ABS_X=719 # 1366875715.907
+[16:41:55.907@28884] Send Event ABS_Y=643 # 1366875715.907
+[16:41:55.927@28884] Send Event BTN_LEFT=Down # 1366875715.927
+[16:41:56.068@28884] Send Event ABS_X=720 # 1366875716.068
+[16:41:56.068@28884] Send Event ABS_Y=644 # 1366875716.068
+[16:41:56.088@28884] Send Event BTN_LEFT=Up # 1366875716.088
+[16:41:56.992@28884] Send Event ABS_X=858 # 1366875716.992
+[16:41:56.992@28884] Send Event ABS_Y=555 # 1366875716.992
+[16:41:57.012@28884] Send Event BTN_LEFT=Down # 1366875717.012
+[16:41:57.153@28884] Send Event ABS_X=0 # 1366875717.153
+[16:41:57.153@28884] Send Event ABS_Y=557 # 1366875717.153
+[16:41:57.173@28884] Send Event BTN_LEFT=Up # 1366875717.173
+[16:41:58.077@28884] Send Event ABS_X=765 # 1366875718.077
+[16:41:58.077@28884] Send Event ABS_Y=644 # 1366875718.077
+[16:41:58.097@28884] Send Event BTN_LEFT=Down # 1366875718.097
+[16:41:58.237@28884] Send Event ABS_X=762 # 1366875718.237
+[16:41:58.237@28884] Send Event ABS_Y=645 # 1366875718.238
+[16:41:58.258@28884] Send Event BTN_LEFT=Up # 1366875718.258
diff --git a/tests/testlog/test-client01.log b/tests/testlog/test-client01.log
new file mode 100644
index 0000000..712082a
--- /dev/null
+++ b/tests/testlog/test-client01.log
@@ -0,0 +1,65 @@
+[16:40:48.819@28893] CLIENT: handle_global: interface=<wl_display> id=1
+[16:40:48.820@28893] CLIENT: handle_global: interface=<wl_compositor> id=2
+[16:40:48.820@28893] CLIENT: handle_global: interface=<screenshooter> id=3
+[16:40:48.820@28893] CLIENT: handle_global: interface=<text_cursor_position> id=4
+[16:40:48.820@28893] CLIENT: handle_global: interface=<text_model_factory> id=5
+[16:40:48.820@28893] CLIENT: handle_global: interface=<wl_data_device_manager> id=6
+[16:40:48.820@28893] CLIENT: handle_global: interface=<wl_shm> id=7
+[16:40:48.820@28893] CLIENT: handle_global: interface=<wl_output> id=8
+[16:40:48.820@28893] CLIENT: created output global 0x8960c28
+[16:40:48.820@28893] CLIENT: handle_global: interface=<wl_drm> id=9
+[16:40:48.820@28893] CLIENT: handle_global: interface=<wl_seat> id=10
+[16:40:48.820@28893] CLIENT: handle_global: interface=<input_method> id=11
+[16:40:48.820@28893] CLIENT: handle_global: interface=<wl_shell> id=12
+[16:40:48.820@28893] CLIENT: handle_global: interface=<ico_ivi_shell> id=13
+[16:40:48.820@28893] CLIENT: handle_global: interface=<ico_window_mgr> id=14
+[16:40:48.820@28893] CLIENT: created window_mgr global 0x8960d40
+[16:40:48.820@28893] CLIENT: handle_global: interface=<ico_input_mgr_control> id=15
+[16:40:48.820@28893] CLIENT: handle_global: interface=<ico_input_mgr_device> id=16
+[16:40:48.820@28893] CLIENT: handle_global: interface=<ico_exinput> id=17
+[16:40:48.820@28893] CLIENT: created exinput global 0x8960c70
+[16:40:48.840@28893] CLIENT: # Test for Weston IVI Plugin for Native Application
+[16:40:48.840@28893] CLIENT: Event[handle_geometry] x/y=0/0 p.w/h=340/270 trans=0
+[16:40:48.840@28893] CLIENT: Event[handle_mode] x/y=1280/1024 flags=00000003 refresh=60020
+[16:40:48.840@28893] CLIENT: Event[handle_mode] x/y=1280/1024 flags=00000000 refresh=75025
+[16:40:48.840@28893] CLIENT: Event[handle_mode] x/y=1280/960 flags=00000000 refresh=75044
+[16:40:48.840@28893] CLIENT: Event[handle_mode] x/y=1280/960 flags=00000000 refresh=60000
+[16:40:48.840@28893] CLIENT: Event[handle_mode] x/y=1152/864 flags=00000000 refresh=75000
+[16:40:48.840@28893] CLIENT: Event[handle_mode] x/y=1024/768 flags=00000000 refresh=75076
+[16:40:48.840@28893] CLIENT: Event[handle_mode] x/y=1024/768 flags=00000000 refresh=70069
+[16:40:48.840@28893] CLIENT: Event[handle_mode] x/y=1024/768 flags=00000000 refresh=60004
+[16:40:48.840@28893] CLIENT: Event[handle_mode] x/y=832/624 flags=00000000 refresh=74551
+[16:40:48.840@28893] CLIENT: Event[handle_mode] x/y=800/600 flags=00000000 refresh=72188
+[16:40:48.840@28893] CLIENT: Event[handle_mode] x/y=800/600 flags=00000000 refresh=75000
+[16:40:48.840@28893] CLIENT: Event[handle_mode] x/y=800/600 flags=00000000 refresh=60317
+[16:40:48.840@28893] CLIENT: Event[handle_mode] x/y=800/600 flags=00000000 refresh=56250
+[16:40:48.840@28893] CLIENT: Event[handle_mode] x/y=640/480 flags=00000000 refresh=72809
+[16:40:48.840@28893] CLIENT: Event[handle_mode] x/y=640/480 flags=00000000 refresh=75000
+[16:40:48.840@28893] CLIENT: Event[handle_mode] x/y=640/480 flags=00000000 refresh=66667
+[16:40:48.840@28893] CLIENT: Event[handle_mode] x/y=640/480 flags=00000000 refresh=60000
+[16:40:48.840@28893] CLIENT: Event[handle_mode] x/y=720/400 flags=00000000 refresh=70082
+[16:40:48.860@28893] CLIENT: # Surface Create and Exit
+[16:40:48.881@28893] CLIENT: #
+[16:40:48.881@28893] CLIENT: got keyboard keymap
+[16:40:48.901@28893] CLIENT: # 1. Create Surface
+[16:40:48.921@28893] CLIENT: create-surface
+[16:40:48.921@28893] CLIENT: create surface 12 shell=089602b0
+[16:40:49.021@28893] CLIENT: got keyboard modifier
+[16:40:49.021@28893] CLIENT: got pointer enter (-16284,-16284), surface 0x8960288
+[16:40:49.054@28893] CLIENT: created egl_surface 08a088a0
+[16:40:49.074@28893] CLIENT: # 2. Sleep 2 sec with color change
+[16:40:49.074@28893] CLIENT: got pointer leave, surface 0x8960288
+[16:40:49.094@28893] CLIENT: sleep 0.4
+[16:40:49.395@28893] CLIENT: got surface enter, output 0x8960c28
+[16:40:49.395@28893] CLIENT: got keyboard modifier
+[16:40:49.395@28893] CLIENT: got pointer enter (100,100), surface 0x8960288
+[16:40:49.516@28893] CLIENT: clear-surface 0x80ff2020
+[16:40:49.536@28893] CLIENT: sleep 0.6
+[16:40:50.159@28893] CLIENT: clear-surface 0xb020ff20
+[16:40:50.180@28893] CLIENT: sleep 0.6
+[16:40:50.802@28893] CLIENT: clear-surface 0xe02020ff
+[16:40:50.823@28893] CLIENT: sleep 0.6
+[16:40:51.445@28893] CLIENT: clear-surface 0xff808080
+[16:40:51.466@28893] CLIENT: sleep 0.6
+[16:40:52.088@28893] CLIENT: # 3. End of this Application (exit)
+[16:40:52.108@28893] CLIENT: bye
diff --git a/tests/testlog/test-client02.log b/tests/testlog/test-client02.log
new file mode 100644
index 0000000..a75ac55
--- /dev/null
+++ b/tests/testlog/test-client02.log
@@ -0,0 +1,70 @@
+[16:40:53.243@28908] CLIENT: handle_global: interface=<wl_display> id=1
+[16:40:53.243@28908] CLIENT: handle_global: interface=<wl_compositor> id=2
+[16:40:53.243@28908] CLIENT: handle_global: interface=<screenshooter> id=3
+[16:40:53.243@28908] CLIENT: handle_global: interface=<text_cursor_position> id=4
+[16:40:53.243@28908] CLIENT: handle_global: interface=<text_model_factory> id=5
+[16:40:53.243@28908] CLIENT: handle_global: interface=<wl_data_device_manager> id=6
+[16:40:53.243@28908] CLIENT: handle_global: interface=<wl_shm> id=7
+[16:40:53.243@28908] CLIENT: handle_global: interface=<wl_output> id=8
+[16:40:53.243@28908] CLIENT: created output global 0x9835c28
+[16:40:53.243@28908] CLIENT: handle_global: interface=<wl_drm> id=9
+[16:40:53.243@28908] CLIENT: handle_global: interface=<wl_seat> id=10
+[16:40:53.243@28908] CLIENT: handle_global: interface=<input_method> id=11
+[16:40:53.243@28908] CLIENT: handle_global: interface=<wl_shell> id=12
+[16:40:53.243@28908] CLIENT: handle_global: interface=<ico_ivi_shell> id=13
+[16:40:53.243@28908] CLIENT: handle_global: interface=<ico_window_mgr> id=14
+[16:40:53.244@28908] CLIENT: created window_mgr global 0x9835d40
+[16:40:53.244@28908] CLIENT: handle_global: interface=<ico_input_mgr_control> id=15
+[16:40:53.244@28908] CLIENT: handle_global: interface=<ico_input_mgr_device> id=16
+[16:40:53.244@28908] CLIENT: handle_global: interface=<ico_exinput> id=17
+[16:40:53.244@28908] CLIENT: created exinput global 0x9835c70
+[16:40:53.264@28908] CLIENT: # Test for Weston IVI Plugin for Native Application
+[16:40:53.264@28908] CLIENT: Event[handle_geometry] x/y=0/0 p.w/h=340/270 trans=0
+[16:40:53.264@28908] CLIENT: Event[handle_mode] x/y=1280/1024 flags=00000003 refresh=60020
+[16:40:53.264@28908] CLIENT: Event[handle_mode] x/y=1280/1024 flags=00000000 refresh=75025
+[16:40:53.264@28908] CLIENT: Event[handle_mode] x/y=1280/960 flags=00000000 refresh=75044
+[16:40:53.264@28908] CLIENT: Event[handle_mode] x/y=1280/960 flags=00000000 refresh=60000
+[16:40:53.264@28908] CLIENT: Event[handle_mode] x/y=1152/864 flags=00000000 refresh=75000
+[16:40:53.264@28908] CLIENT: Event[handle_mode] x/y=1024/768 flags=00000000 refresh=75076
+[16:40:53.264@28908] CLIENT: Event[handle_mode] x/y=1024/768 flags=00000000 refresh=70069
+[16:40:53.264@28908] CLIENT: Event[handle_mode] x/y=1024/768 flags=00000000 refresh=60004
+[16:40:53.264@28908] CLIENT: Event[handle_mode] x/y=832/624 flags=00000000 refresh=74551
+[16:40:53.264@28908] CLIENT: Event[handle_mode] x/y=800/600 flags=00000000 refresh=72188
+[16:40:53.264@28908] CLIENT: Event[handle_mode] x/y=800/600 flags=00000000 refresh=75000
+[16:40:53.264@28908] CLIENT: Event[handle_mode] x/y=800/600 flags=00000000 refresh=60317
+[16:40:53.264@28908] CLIENT: Event[handle_mode] x/y=800/600 flags=00000000 refresh=56250
+[16:40:53.264@28908] CLIENT: Event[handle_mode] x/y=640/480 flags=00000000 refresh=72809
+[16:40:53.264@28908] CLIENT: Event[handle_mode] x/y=640/480 flags=00000000 refresh=75000
+[16:40:53.264@28908] CLIENT: Event[handle_mode] x/y=640/480 flags=00000000 refresh=66667
+[16:40:53.264@28908] CLIENT: Event[handle_mode] x/y=640/480 flags=00000000 refresh=60000
+[16:40:53.264@28908] CLIENT: Event[handle_mode] x/y=720/400 flags=00000000 refresh=70082
+[16:40:53.284@28908] CLIENT: # Surface Create and Exit
+[16:40:53.304@28908] CLIENT: #
+[16:40:53.304@28908] CLIENT: got keyboard keymap
+[16:40:53.325@28908] CLIENT: # 1. Create Surface
+[16:40:53.345@28908] CLIENT: create-surface
+[16:40:53.345@28908] CLIENT: create surface 12 shell=098352b0
+[16:40:53.445@28908] CLIENT: got keyboard modifier
+[16:40:53.445@28908] CLIENT: got pointer enter (-16284,-16284), surface 0x9835288
+[16:40:53.818@28908] CLIENT: created egl_surface 098dd8a0
+[16:40:53.838@28908] CLIENT: # 2. Sleep 10 sec
+[16:40:53.838@28908] CLIENT: shell_surface_configure: surface=098352b0 edg=a, width=600 height=400
+[16:40:53.839@28908] CLIENT: got pointer leave, surface 0x9835288
+[16:40:53.859@28908] CLIENT: sleep 8
+[16:40:53.859@28908] CLIENT: shell_surface_configure: surface=098352b0 edg=a, width=600 height=400
+[16:40:53.859@28908] CLIENT: got surface enter, output 0x9835c28
+[16:40:54.903@28908] CLIENT: shell_surface_configure: surface=098352b0 edg=a, width=600 height=400
+[16:40:55.445@28908] CLIENT: shell_surface_configure: surface=098352b0 edg=a, width=600 height=400
+[16:40:55.987@28908] CLIENT: shell_surface_configure: surface=098352b0 edg=a, width=600 height=400
+[16:40:56.529@28908] CLIENT: shell_surface_configure: surface=098352b0 edg=a, width=600 height=400
+[16:40:57.071@28908] CLIENT: got surface leave, output 0x9835c28
+[16:40:58.115@28908] CLIENT: shell_surface_configure: surface=098352b0 edg=a, width=600 height=400
+[16:40:58.136@28908] CLIENT: shell_surface_configure: surface=098352b0 edg=a, width=150 height=100
+[16:40:58.156@28908] CLIENT: got surface enter, output 0x9835c28
+[16:40:58.798@28908] CLIENT: shell_surface_configure: surface=098352b0 edg=a, width=300 height=200
+[16:40:59.441@28908] CLIENT: shell_surface_configure: surface=098352b0 edg=a, width=450 height=300
+[16:41:00.083@28908] CLIENT: shell_surface_configure: surface=098352b0 edg=a, width=600 height=400
+[16:41:00.726@28908] CLIENT: shell_surface_configure: surface=098352b0 edg=a, width=400 height=250
+[16:41:01.368@28908] CLIENT: shell_surface_configure: surface=098352b0 edg=a, width=200 height=150
+[16:41:01.911@28908] CLIENT: # 3. End of this Application (exit)
+[16:41:01.931@28908] CLIENT: bye
diff --git a/tests/testlog/test-client11.log b/tests/testlog/test-client11.log
new file mode 100644
index 0000000..a4fc7bb
--- /dev/null
+++ b/tests/testlog/test-client11.log
@@ -0,0 +1,70 @@
+[16:41:49.834@31986] CLIENT: handle_global: interface=<wl_display> id=1
+[16:41:49.834@31986] CLIENT: handle_global: interface=<wl_compositor> id=2
+[16:41:49.835@31986] CLIENT: handle_global: interface=<screenshooter> id=3
+[16:41:49.835@31986] CLIENT: handle_global: interface=<text_cursor_position> id=4
+[16:41:49.835@31986] CLIENT: handle_global: interface=<text_model_factory> id=5
+[16:41:49.835@31986] CLIENT: handle_global: interface=<wl_data_device_manager> id=6
+[16:41:49.835@31986] CLIENT: handle_global: interface=<wl_shm> id=7
+[16:41:49.835@31986] CLIENT: handle_global: interface=<wl_output> id=8
+[16:41:49.835@31986] CLIENT: created output global 0x845fc28
+[16:41:49.835@31986] CLIENT: handle_global: interface=<wl_drm> id=9
+[16:41:49.835@31986] CLIENT: handle_global: interface=<wl_seat> id=10
+[16:41:49.835@31986] CLIENT: handle_global: interface=<input_method> id=11
+[16:41:49.835@31986] CLIENT: handle_global: interface=<wl_shell> id=12
+[16:41:49.835@31986] CLIENT: handle_global: interface=<ico_ivi_shell> id=13
+[16:41:49.835@31986] CLIENT: handle_global: interface=<ico_window_mgr> id=14
+[16:41:49.835@31986] CLIENT: created window_mgr global 0x845fd40
+[16:41:49.835@31986] CLIENT: handle_global: interface=<ico_input_mgr_control> id=15
+[16:41:49.835@31986] CLIENT: handle_global: interface=<ico_input_mgr_device> id=16
+[16:41:49.835@31986] CLIENT: handle_global: interface=<ico_exinput> id=17
+[16:41:49.835@31986] CLIENT: created exinput global 0x845fc70
+[16:41:49.855@31986] CLIENT: # Test for Weston IVI Plugin for Native Application
+[16:41:49.855@31986] CLIENT: Event[handle_geometry] x/y=0/0 p.w/h=340/270 trans=0
+[16:41:49.855@31986] CLIENT: Event[handle_mode] x/y=1280/1024 flags=00000003 refresh=60020
+[16:41:49.855@31986] CLIENT: Event[handle_mode] x/y=1280/1024 flags=00000000 refresh=75025
+[16:41:49.855@31986] CLIENT: Event[handle_mode] x/y=1280/960 flags=00000000 refresh=75044
+[16:41:49.855@31986] CLIENT: Event[handle_mode] x/y=1280/960 flags=00000000 refresh=60000
+[16:41:49.855@31986] CLIENT: Event[handle_mode] x/y=1152/864 flags=00000000 refresh=75000
+[16:41:49.855@31986] CLIENT: Event[handle_mode] x/y=1024/768 flags=00000000 refresh=75076
+[16:41:49.855@31986] CLIENT: Event[handle_mode] x/y=1024/768 flags=00000000 refresh=70069
+[16:41:49.855@31986] CLIENT: Event[handle_mode] x/y=1024/768 flags=00000000 refresh=60004
+[16:41:49.855@31986] CLIENT: Event[handle_mode] x/y=832/624 flags=00000000 refresh=74551
+[16:41:49.855@31986] CLIENT: Event[handle_mode] x/y=800/600 flags=00000000 refresh=72188
+[16:41:49.855@31986] CLIENT: Event[handle_mode] x/y=800/600 flags=00000000 refresh=75000
+[16:41:49.855@31986] CLIENT: Event[handle_mode] x/y=800/600 flags=00000000 refresh=60317
+[16:41:49.855@31986] CLIENT: Event[handle_mode] x/y=800/600 flags=00000000 refresh=56250
+[16:41:49.855@31986] CLIENT: Event[handle_mode] x/y=640/480 flags=00000000 refresh=72809
+[16:41:49.855@31986] CLIENT: Event[handle_mode] x/y=640/480 flags=00000000 refresh=75000
+[16:41:49.855@31986] CLIENT: Event[handle_mode] x/y=640/480 flags=00000000 refresh=66667
+[16:41:49.855@31986] CLIENT: Event[handle_mode] x/y=640/480 flags=00000000 refresh=60000
+[16:41:49.855@31986] CLIENT: Event[handle_mode] x/y=720/400 flags=00000000 refresh=70082
+[16:41:49.875@31986] CLIENT: # Surface Create and Exit
+[16:41:49.896@31986] CLIENT: #
+[16:41:49.896@31986] CLIENT: got keyboard keymap
+[16:41:49.916@31986] CLIENT: # 1. Create Surface
+[16:41:49.936@31986] CLIENT: create-surface
+[16:41:49.936@31986] CLIENT: create surface 12 shell=0845f2b0
+[16:41:50.036@31986] CLIENT: got keyboard modifier
+[16:41:50.036@31986] CLIENT: got pointer enter (-16384,-16100), surface 0x845f288
+[16:41:50.716@31986] CLIENT: created egl_surface 085078a0
+[16:41:50.736@31986] CLIENT: # 2. End of this Application (exit)
+[16:41:50.736@31986] CLIENT: shell_surface_configure: surface=0845f2b0 edg=a, width=0 height=0
+[16:41:50.736@31986] CLIENT: got pointer leave, surface 0x845f288
+[16:41:50.756@31986] CLIENT: bye
+[16:41:50.756@31986] CLIENT: shell_surface_configure: surface=0845f2b0 edg=a, width=0 height=0
+[16:42:00.333@31986] CLIENT: Event[input_capabilities] device=InDev1 type=8 sw=Sw1 input=0 code=Sw1[0]
+[16:42:00.353@31986] CLIENT: Event[input_capabilities] device=InDev1 type=8 sw=Sw2 input=1 code=Up[10]
+[16:42:00.373@31986] CLIENT: Event[input_code] device=InDev1 input=1 code=Down[11]
+[16:42:00.393@31986] CLIENT: Event[input_capabilities] device=InDev1 type=8 sw=Sw3 input=2 code=Left[20]
+[16:42:00.413@31986] CLIENT: Event[input_code] device=InDev1 input=2 code=Right[21]
+[16:42:00.433@31986] CLIENT: Event[input_capabilities] device=InDev1 type=8 sw=Sw4 input=3 code=Sw4[0]
+[16:42:00.975@31986] CLIENT: Event[input_capabilities] device=InDev2 type=8 sw=Sw0 input=0 code=Sw0[0]
+[16:42:00.996@31986] CLIENT: Event[input_capabilities] device=InDev2 type=8 sw=Sw1 input=1 code=Sw1[0]
+[16:42:04.268@31986] CLIENT: Event[input_input] device=InDev1 input=1 code=10 state=1
+[16:42:04.409@31986] CLIENT: Event[input_input] device=InDev1 input=1 code=10 state=0
+[16:42:06.316@31986] CLIENT: Event[input_input] device=InDev2 input=0 code=1 state=1
+[16:42:06.456@31986] CLIENT: Event[input_input] device=InDev2 input=0 code=1 state=0
+[16:42:06.998@31986] CLIENT: Event[input_input] device=InDev2 input=1 code=1 state=1
+[16:42:07.139@31986] CLIENT: Event[input_input] device=InDev2 input=1 code=1 state=0
+[16:42:07.922@31986] CLIENT: Event[input_input] device=InDev2 input=0 code=1 state=1
+[16:42:08.062@31986] CLIENT: Event[input_input] device=InDev2 input=0 code=1 state=0
diff --git a/tests/testlog/test-client12.log b/tests/testlog/test-client12.log
new file mode 100644
index 0000000..b3ec707
--- /dev/null
+++ b/tests/testlog/test-client12.log
@@ -0,0 +1,66 @@
+[16:41:51.749@31989] CLIENT: handle_global: interface=<wl_display> id=1
+[16:41:51.749@31989] CLIENT: handle_global: interface=<wl_compositor> id=2
+[16:41:51.749@31989] CLIENT: handle_global: interface=<screenshooter> id=3
+[16:41:51.749@31989] CLIENT: handle_global: interface=<text_cursor_position> id=4
+[16:41:51.749@31989] CLIENT: handle_global: interface=<text_model_factory> id=5
+[16:41:51.749@31989] CLIENT: handle_global: interface=<wl_data_device_manager> id=6
+[16:41:51.749@31989] CLIENT: handle_global: interface=<wl_shm> id=7
+[16:41:51.749@31989] CLIENT: handle_global: interface=<wl_output> id=8
+[16:41:51.749@31989] CLIENT: created output global 0x938fc28
+[16:41:51.749@31989] CLIENT: handle_global: interface=<wl_drm> id=9
+[16:41:51.749@31989] CLIENT: handle_global: interface=<wl_seat> id=10
+[16:41:51.749@31989] CLIENT: handle_global: interface=<input_method> id=11
+[16:41:51.749@31989] CLIENT: handle_global: interface=<wl_shell> id=12
+[16:41:51.749@31989] CLIENT: handle_global: interface=<ico_ivi_shell> id=13
+[16:41:51.749@31989] CLIENT: handle_global: interface=<ico_window_mgr> id=14
+[16:41:51.749@31989] CLIENT: created window_mgr global 0x938fd40
+[16:41:51.749@31989] CLIENT: handle_global: interface=<ico_input_mgr_control> id=15
+[16:41:51.749@31989] CLIENT: handle_global: interface=<ico_input_mgr_device> id=16
+[16:41:51.749@31989] CLIENT: handle_global: interface=<ico_exinput> id=17
+[16:41:51.749@31989] CLIENT: created exinput global 0x938fc70
+[16:41:51.769@31989] CLIENT: # Test for Weston IVI Plugin for Native Application
+[16:41:51.769@31989] CLIENT: Event[handle_geometry] x/y=0/0 p.w/h=340/270 trans=0
+[16:41:51.769@31989] CLIENT: Event[handle_mode] x/y=1280/1024 flags=00000003 refresh=60020
+[16:41:51.769@31989] CLIENT: Event[handle_mode] x/y=1280/1024 flags=00000000 refresh=75025
+[16:41:51.769@31989] CLIENT: Event[handle_mode] x/y=1280/960 flags=00000000 refresh=75044
+[16:41:51.769@31989] CLIENT: Event[handle_mode] x/y=1280/960 flags=00000000 refresh=60000
+[16:41:51.769@31989] CLIENT: Event[handle_mode] x/y=1152/864 flags=00000000 refresh=75000
+[16:41:51.769@31989] CLIENT: Event[handle_mode] x/y=1024/768 flags=00000000 refresh=75076
+[16:41:51.769@31989] CLIENT: Event[handle_mode] x/y=1024/768 flags=00000000 refresh=70069
+[16:41:51.769@31989] CLIENT: Event[handle_mode] x/y=1024/768 flags=00000000 refresh=60004
+[16:41:51.769@31989] CLIENT: Event[handle_mode] x/y=832/624 flags=00000000 refresh=74551
+[16:41:51.769@31989] CLIENT: Event[handle_mode] x/y=800/600 flags=00000000 refresh=72188
+[16:41:51.769@31989] CLIENT: Event[handle_mode] x/y=800/600 flags=00000000 refresh=75000
+[16:41:51.769@31989] CLIENT: Event[handle_mode] x/y=800/600 flags=00000000 refresh=60317
+[16:41:51.769@31989] CLIENT: Event[handle_mode] x/y=800/600 flags=00000000 refresh=56250
+[16:41:51.769@31989] CLIENT: Event[handle_mode] x/y=640/480 flags=00000000 refresh=72809
+[16:41:51.769@31989] CLIENT: Event[handle_mode] x/y=640/480 flags=00000000 refresh=75000
+[16:41:51.769@31989] CLIENT: Event[handle_mode] x/y=640/480 flags=00000000 refresh=66667
+[16:41:51.770@31989] CLIENT: Event[handle_mode] x/y=640/480 flags=00000000 refresh=60000
+[16:41:51.770@31989] CLIENT: Event[handle_mode] x/y=720/400 flags=00000000 refresh=70082
+[16:41:51.790@31989] CLIENT: # Surface Create and Exit
+[16:41:51.810@31989] CLIENT: #
+[16:41:51.810@31989] CLIENT: got keyboard keymap
+[16:41:51.830@31989] CLIENT: # 1. Create Surface
+[16:41:51.850@31989] CLIENT: create-surface
+[16:41:51.850@31989] CLIENT: create surface 12 shell=0938f2b0
+[16:41:51.950@31989] CLIENT: got keyboard modifier
+[16:41:51.950@31989] CLIENT: got pointer enter (-16229,-16110), surface 0x938f288
+[16:41:52.632@31989] CLIENT: created egl_surface 094378a0
+[16:41:52.652@31989] CLIENT: # 2. End of this Application (exit)
+[16:41:52.652@31989] CLIENT: shell_surface_configure: surface=0938f2b0 edg=a, width=0 height=0
+[16:41:52.652@31989] CLIENT: got pointer leave, surface 0x938f288
+[16:41:52.672@31989] CLIENT: bye
+[16:41:52.672@31989] CLIENT: shell_surface_configure: surface=0938f2b0 edg=a, width=0 height=0
+[16:42:00.342@31989] CLIENT: Event[input_capabilities] device=InDev1 type=8 sw=Sw1 input=0 code=Sw1[0]
+[16:42:00.362@31989] CLIENT: Event[input_capabilities] device=InDev1 type=8 sw=Sw2 input=1 code=Up[10]
+[16:42:00.382@31989] CLIENT: Event[input_code] device=InDev1 input=1 code=Down[11]
+[16:42:00.402@31989] CLIENT: Event[input_capabilities] device=InDev1 type=8 sw=Sw3 input=2 code=Left[20]
+[16:42:00.422@31989] CLIENT: Event[input_code] device=InDev1 input=2 code=Right[21]
+[16:42:00.442@31989] CLIENT: Event[input_capabilities] device=InDev1 type=8 sw=Sw4 input=3 code=Sw4[0]
+[16:42:00.984@31989] CLIENT: Event[input_capabilities] device=InDev2 type=8 sw=Sw0 input=0 code=Sw0[0]
+[16:42:01.005@31989] CLIENT: Event[input_capabilities] device=InDev2 type=8 sw=Sw1 input=1 code=Sw1[0]
+[16:42:04.960@31989] CLIENT: Event[input_input] device=InDev1 input=2 code=21 state=1
+[16:42:05.100@31989] CLIENT: Event[input_input] device=InDev1 input=2 code=21 state=0
+[16:42:08.212@31989] CLIENT: Event[input_input] device=InDev2 input=1 code=1 state=1
+[16:42:08.353@31989] CLIENT: Event[input_input] device=InDev2 input=1 code=1 state=0
diff --git a/tests/testlog/test-client13.log b/tests/testlog/test-client13.log
new file mode 100644
index 0000000..a48539f
--- /dev/null
+++ b/tests/testlog/test-client13.log
@@ -0,0 +1,66 @@
+[16:41:53.663@31991] CLIENT: handle_global: interface=<wl_display> id=1
+[16:41:53.663@31991] CLIENT: handle_global: interface=<wl_compositor> id=2
+[16:41:53.663@31991] CLIENT: handle_global: interface=<screenshooter> id=3
+[16:41:53.663@31991] CLIENT: handle_global: interface=<text_cursor_position> id=4
+[16:41:53.663@31991] CLIENT: handle_global: interface=<text_model_factory> id=5
+[16:41:53.663@31991] CLIENT: handle_global: interface=<wl_data_device_manager> id=6
+[16:41:53.663@31991] CLIENT: handle_global: interface=<wl_shm> id=7
+[16:41:53.663@31991] CLIENT: handle_global: interface=<wl_output> id=8
+[16:41:53.663@31991] CLIENT: created output global 0x8f21c28
+[16:41:53.663@31991] CLIENT: handle_global: interface=<wl_drm> id=9
+[16:41:53.663@31991] CLIENT: handle_global: interface=<wl_seat> id=10
+[16:41:53.663@31991] CLIENT: handle_global: interface=<input_method> id=11
+[16:41:53.663@31991] CLIENT: handle_global: interface=<wl_shell> id=12
+[16:41:53.663@31991] CLIENT: handle_global: interface=<ico_ivi_shell> id=13
+[16:41:53.663@31991] CLIENT: handle_global: interface=<ico_window_mgr> id=14
+[16:41:53.663@31991] CLIENT: created window_mgr global 0x8f21d40
+[16:41:53.663@31991] CLIENT: handle_global: interface=<ico_input_mgr_control> id=15
+[16:41:53.663@31991] CLIENT: handle_global: interface=<ico_input_mgr_device> id=16
+[16:41:53.663@31991] CLIENT: handle_global: interface=<ico_exinput> id=17
+[16:41:53.663@31991] CLIENT: created exinput global 0x8f21c70
+[16:41:53.683@31991] CLIENT: # Test for Weston IVI Plugin for Native Application
+[16:41:53.683@31991] CLIENT: Event[handle_geometry] x/y=0/0 p.w/h=340/270 trans=0
+[16:41:53.683@31991] CLIENT: Event[handle_mode] x/y=1280/1024 flags=00000003 refresh=60020
+[16:41:53.683@31991] CLIENT: Event[handle_mode] x/y=1280/1024 flags=00000000 refresh=75025
+[16:41:53.683@31991] CLIENT: Event[handle_mode] x/y=1280/960 flags=00000000 refresh=75044
+[16:41:53.683@31991] CLIENT: Event[handle_mode] x/y=1280/960 flags=00000000 refresh=60000
+[16:41:53.683@31991] CLIENT: Event[handle_mode] x/y=1152/864 flags=00000000 refresh=75000
+[16:41:53.683@31991] CLIENT: Event[handle_mode] x/y=1024/768 flags=00000000 refresh=75076
+[16:41:53.683@31991] CLIENT: Event[handle_mode] x/y=1024/768 flags=00000000 refresh=70069
+[16:41:53.683@31991] CLIENT: Event[handle_mode] x/y=1024/768 flags=00000000 refresh=60004
+[16:41:53.683@31991] CLIENT: Event[handle_mode] x/y=832/624 flags=00000000 refresh=74551
+[16:41:53.683@31991] CLIENT: Event[handle_mode] x/y=800/600 flags=00000000 refresh=72188
+[16:41:53.683@31991] CLIENT: Event[handle_mode] x/y=800/600 flags=00000000 refresh=75000
+[16:41:53.683@31991] CLIENT: Event[handle_mode] x/y=800/600 flags=00000000 refresh=60317
+[16:41:53.683@31991] CLIENT: Event[handle_mode] x/y=800/600 flags=00000000 refresh=56250
+[16:41:53.683@31991] CLIENT: Event[handle_mode] x/y=640/480 flags=00000000 refresh=72809
+[16:41:53.684@31991] CLIENT: Event[handle_mode] x/y=640/480 flags=00000000 refresh=75000
+[16:41:53.684@31991] CLIENT: Event[handle_mode] x/y=640/480 flags=00000000 refresh=66667
+[16:41:53.684@31991] CLIENT: Event[handle_mode] x/y=640/480 flags=00000000 refresh=60000
+[16:41:53.684@31991] CLIENT: Event[handle_mode] x/y=720/400 flags=00000000 refresh=70082
+[16:41:53.704@31991] CLIENT: # Surface Create and Exit
+[16:41:53.724@31991] CLIENT: #
+[16:41:53.724@31991] CLIENT: got keyboard keymap
+[16:41:53.744@31991] CLIENT: # 1. Create Surface
+[16:41:53.764@31991] CLIENT: create-surface
+[16:41:53.764@31991] CLIENT: create surface 12 shell=08f212b0
+[16:41:53.864@31991] CLIENT: got keyboard modifier
+[16:41:53.864@31991] CLIENT: got pointer enter (-15969,-15856), surface 0x8f21288
+[16:41:54.548@31991] CLIENT: created egl_surface 08fc98a0
+[16:41:54.568@31991] CLIENT: # 2. End of this Application (exit)
+[16:41:54.568@31991] CLIENT: shell_surface_configure: surface=08f212b0 edg=a, width=0 height=0
+[16:41:54.568@31991] CLIENT: got pointer leave, surface 0x8f21288
+[16:41:54.588@31991] CLIENT: bye
+[16:41:54.588@31991] CLIENT: shell_surface_configure: surface=08f212b0 edg=a, width=0 height=0
+[16:42:00.330@31991] CLIENT: Event[input_capabilities] device=InDev1 type=8 sw=Sw1 input=0 code=Sw1[0]
+[16:42:00.350@31991] CLIENT: Event[input_capabilities] device=InDev1 type=8 sw=Sw2 input=1 code=Up[10]
+[16:42:00.370@31991] CLIENT: Event[input_code] device=InDev1 input=1 code=Down[11]
+[16:42:00.390@31991] CLIENT: Event[input_capabilities] device=InDev1 type=8 sw=Sw3 input=2 code=Left[20]
+[16:42:00.410@31991] CLIENT: Event[input_code] device=InDev1 input=2 code=Right[21]
+[16:42:00.431@31991] CLIENT: Event[input_capabilities] device=InDev1 type=8 sw=Sw4 input=3 code=Sw4[0]
+[16:42:00.973@31991] CLIENT: Event[input_capabilities] device=InDev2 type=8 sw=Sw0 input=0 code=Sw0[0]
+[16:42:00.993@31991] CLIENT: Event[input_capabilities] device=InDev2 type=8 sw=Sw1 input=1 code=Sw1[0]
+[16:42:05.630@31991] CLIENT: Event[input_input] device=InDev1 input=3 code=1 state=1
+[16:42:05.771@31991] CLIENT: Event[input_input] device=InDev1 input=3 code=1 state=0
+[16:42:08.501@31991] CLIENT: Event[input_input] device=InDev1 input=3 code=1 state=1
+[16:42:08.641@31991] CLIENT: Event[input_input] device=InDev1 input=3 code=1 state=0
diff --git a/tests/testlog/test-eflapp1.log b/tests/testlog/test-eflapp1.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/testlog/test-eflapp1.log
diff --git a/tests/testlog/test-eflapp2.log b/tests/testlog/test-eflapp2.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/testlog/test-eflapp2.log
diff --git a/tests/testlog/test-eflapp3.log b/tests/testlog/test-eflapp3.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/testlog/test-eflapp3.log
diff --git a/tests/testlog/test-eflapp4.log b/tests/testlog/test-eflapp4.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/testlog/test-eflapp4.log
diff --git a/tests/testlog/test-eflapp5.log b/tests/testlog/test-eflapp5.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/testlog/test-eflapp5.log
diff --git a/tests/testlog/test-homescreen.log b/tests/testlog/test-homescreen.log
new file mode 100644
index 0000000..6f3febf
--- /dev/null
+++ b/tests/testlog/test-homescreen.log
@@ -0,0 +1,848 @@
+[16:40:48.559@28891] HOMESCREEN: handle_global: interface=<wl_display> id=1
+[16:40:48.559@28891] HOMESCREEN: handle_global: interface=<wl_compositor> id=2
+[16:40:48.559@28891] HOMESCREEN: handle_global: interface=<screenshooter> id=3
+[16:40:48.559@28891] HOMESCREEN: handle_global: interface=<text_cursor_position> id=4
+[16:40:48.559@28891] HOMESCREEN: handle_global: interface=<text_model_factory> id=5
+[16:40:48.559@28891] HOMESCREEN: handle_global: interface=<wl_data_device_manager> id=6
+[16:40:48.559@28891] HOMESCREEN: handle_global: interface=<wl_shm> id=7
+[16:40:48.559@28891] HOMESCREEN: handle_global: interface=<wl_output> id=8
+[16:40:48.559@28891] HOMESCREEN: created output global 0x9ff8c48
+[16:40:48.559@28891] HOMESCREEN: handle_global: interface=<wl_drm> id=9
+[16:40:48.560@28891] HOMESCREEN: handle_global: interface=<wl_seat> id=10
+[16:40:48.560@28891] HOMESCREEN: handle_global: interface=<input_method> id=11
+[16:40:48.560@28891] HOMESCREEN: handle_global: interface=<wl_shell> id=12
+[16:40:48.560@28891] HOMESCREEN: handle_global: interface=<ico_ivi_shell> id=13
+[16:40:48.560@28891] HOMESCREEN: handle_global: interface=<ico_window_mgr> id=14
+[16:40:48.560@28891] HOMESCREEN: created window_mgr global 0x9ff8d60
+[16:40:48.560@28891] HOMESCREEN: handle_global: interface=<ico_input_mgr_control> id=15
+[16:40:48.560@28891] HOMESCREEN: created input_mgr global 0x9ff8c90
+[16:40:48.560@28891] HOMESCREEN: handle_global: interface=<ico_input_mgr_device> id=16
+[16:40:48.560@28891] HOMESCREEN: created input_device global 0x9ff8280
+[16:40:48.560@28891] HOMESCREEN: handle_global: interface=<ico_exinput> id=17
+[16:40:48.560@28891] HOMESCREEN: created exinput global 0x9ff82a8
+[16:40:48.560@28891] HOMESCREEN: create surface = 12
+[16:40:48.660@28891] HOMESCREEN: Event[handle_geometry] x/y=0/0 p.w/h=340/270 trans=0
+[16:40:48.660@28891] HOMESCREEN: Event[handle_mode] x/y=1280/1024 flags=00000003 refresh=60020
+[16:40:48.660@28891] HOMESCREEN: Event[handle_mode] x/y=1280/1024 flags=00000000 refresh=75025
+[16:40:48.660@28891] HOMESCREEN: Event[handle_mode] x/y=1280/960 flags=00000000 refresh=75044
+[16:40:48.660@28891] HOMESCREEN: Event[handle_mode] x/y=1280/960 flags=00000000 refresh=60000
+[16:40:48.660@28891] HOMESCREEN: Event[handle_mode] x/y=1152/864 flags=00000000 refresh=75000
+[16:40:48.660@28891] HOMESCREEN: Event[handle_mode] x/y=1024/768 flags=00000000 refresh=75076
+[16:40:48.660@28891] HOMESCREEN: Event[handle_mode] x/y=1024/768 flags=00000000 refresh=70069
+[16:40:48.660@28891] HOMESCREEN: Event[handle_mode] x/y=1024/768 flags=00000000 refresh=60004
+[16:40:48.660@28891] HOMESCREEN: Event[handle_mode] x/y=832/624 flags=00000000 refresh=74551
+[16:40:48.660@28891] HOMESCREEN: Event[handle_mode] x/y=800/600 flags=00000000 refresh=72188
+[16:40:48.660@28891] HOMESCREEN: Event[handle_mode] x/y=800/600 flags=00000000 refresh=75000
+[16:40:48.660@28891] HOMESCREEN: Event[handle_mode] x/y=800/600 flags=00000000 refresh=60317
+[16:40:48.660@28891] HOMESCREEN: Event[handle_mode] x/y=800/600 flags=00000000 refresh=56250
+[16:40:48.660@28891] HOMESCREEN: Event[handle_mode] x/y=640/480 flags=00000000 refresh=72809
+[16:40:48.660@28891] HOMESCREEN: Event[handle_mode] x/y=640/480 flags=00000000 refresh=75000
+[16:40:48.660@28891] HOMESCREEN: Event[handle_mode] x/y=640/480 flags=00000000 refresh=66667
+[16:40:48.660@28891] HOMESCREEN: Event[handle_mode] x/y=640/480 flags=00000000 refresh=60000
+[16:40:48.660@28891] HOMESCREEN: Event[handle_mode] x/y=720/400 flags=00000000 refresh=70082
+[16:40:48.660@28891] HOMESCREEN: Event[window_created] new surface=00000001(app=test-homescreen)
+[16:40:48.660@28891] HOMESCREEN: Created window[00000001] (app=test-homescreen)
+[16:40:48.660@28891] HOMESCREEN: Created window[00000001] (app=test-homescreen) Visible
+[16:40:48.707@28891] HOMESCREEN: created egl_surface 0a0a0ce0
+[16:40:48.707@28891] HOMESCREEN: got pointer enter (-16284,-16284), surface 0x9ff82f8
+[16:40:48.707@28891] HOMESCREEN: got keyboard keymap
+[16:40:48.707@28891] HOMESCREEN: Event[window_configure] surface=00000001 app=test-homescreen x/y=0/0 w/h=1280/1024 hint=0
+[16:40:48.707@28891] HOMESCREEN: Event[window_visible] surface=00000001 visible=1 raise=0 hint=0
+[16:40:48.707@28891] HOMESCREEN: Event[window_configure] surface=00000001 app=test-homescreen x/y=0/0 w/h=1280/1024 hint=1
+[16:40:48.707@28891] HOMESCREEN: got surface enter, output 0x9ff8c48
+[16:40:48.727@28891] HOMESCREEN: # Test for Weston IVI Plugin for HomeScreen(SystemController)
+[16:40:48.727@28891] HOMESCREEN: Event[window_configure] surface=00000001 app=test-homescreen x/y=0/0 w/h=1280/1024 hint=1
+[16:40:48.747@28891] HOMESCREEN: # Surface Create and Destory
+[16:40:48.768@28891] HOMESCREEN: #
+[16:40:48.788@28891] HOMESCREEN: # 1. Launch Application (and app create surface)
+[16:40:48.808@28891] HOMESCREEN: launch ../tests/test-client < ../tests/testdata/cl_surface1.dat 2> ../tests/testlog/test-client01.log
+[16:40:48.934@28891] HOMESCREEN: Event[window_created] new surface=00000002(app=test-client)
+[16:40:48.934@28891] HOMESCREEN: Created window[00000002] (app=test-client)
+[16:40:48.954@28891] HOMESCREEN: got pointer leave, surface 0x9ff82f8
+[16:40:49.054@28891] HOMESCREEN: got keyboard modifier
+[16:40:49.054@28891] HOMESCREEN: got pointer enter (100,100), surface 0x9ff82f8
+[16:40:49.054@28891] HOMESCREEN: Event[window_configure] surface=00000002 app=test-client x/y=16384/16384 w/h=640/480 hint=1
+[16:40:49.336@28891] HOMESCREEN: waitcreate 2
+[16:40:49.376@28891] HOMESCREEN: show test-client
+[16:40:49.376@28891] HOMESCREEN: show(test-client,00000002)
+[16:40:49.396@28891] HOMESCREEN: sleep 2
+[16:40:49.396@28891] HOMESCREEN: Event[window_visible] surface=00000002 visible=1 raise=9 hint=0
+[16:40:49.396@28891] HOMESCREEN: got pointer leave, surface 0x9ff82f8
+[16:40:49.537@28891] HOMESCREEN: Event[window_configure] surface=00000002 app=test-client x/y=0/0 w/h=640/480 hint=1
+[16:40:50.179@28891] HOMESCREEN: Event[window_configure] surface=00000002 app=test-client x/y=0/0 w/h=640/480 hint=1
+[16:40:50.822@28891] HOMESCREEN: Event[window_configure] surface=00000002 app=test-client x/y=0/0 w/h=640/480 hint=1
+[16:40:51.425@28891] HOMESCREEN: waitdestroy 60
+[16:40:51.465@28891] HOMESCREEN: Event[window_configure] surface=00000002 app=test-client x/y=0/0 w/h=640/480 hint=1
+[16:40:52.127@28891] HOMESCREEN: Event[window_destroyed] surface=00000002
+[16:40:52.127@28891] HOMESCREEN: got keyboard modifier
+[16:40:52.127@28891] HOMESCREEN: got pointer enter (100,100), surface 0x9ff82f8
+[16:40:52.168@28891] HOMESCREEN: sleep 1
+[16:40:53.192@28891] HOMESCREEN: #
+[16:40:53.212@28891] HOMESCREEN: # 2. Launch Application and resize/move/show
+[16:40:53.232@28891] HOMESCREEN: launch ../tests/test-client < ../tests/testdata/cl_surface2.dat 2> ../tests/testlog/test-client02.log
+[16:40:53.358@28891] HOMESCREEN: Event[window_created] new surface=00000003(app=test-client)
+[16:40:53.358@28891] HOMESCREEN: Created window[00000003] (app=test-client)
+[16:40:53.358@28891] HOMESCREEN: got pointer leave, surface 0x9ff82f8
+[16:40:53.759@28891] HOMESCREEN: waitcreate 2
+[16:40:53.800@28891] HOMESCREEN: resize test-client 600 400
+[16:40:53.800@28891] HOMESCREEN: resize(test-client,00000003,600,400)
+[16:40:53.820@28891] HOMESCREEN: move test-client 300 100
+[16:40:53.820@28891] HOMESCREEN: move(test-client,00000003,300,100)
+[16:40:53.820@28891] HOMESCREEN: Event[window_configure] surface=00000003 app=test-client x/y=0/0 w/h=600/400 hint=0
+[16:40:53.820@28891] HOMESCREEN: got keyboard modifier
+[16:40:53.820@28891] HOMESCREEN: got pointer enter (100,100), surface 0x9ff82f8
+[16:40:53.820@28891] HOMESCREEN: Event[window_configure] surface=00000003 app=test-client x/y=0/0 w/h=640/480 hint=1
+[16:40:53.840@28891] HOMESCREEN: show test-client
+[16:40:53.840@28891] HOMESCREEN: show(test-client,00000003)
+[16:40:53.840@28891] HOMESCREEN: Event[window_configure] surface=00000003 app=test-client x/y=300/100 w/h=600/400 hint=0
+[16:40:53.860@28891] HOMESCREEN: sleep 1
+[16:40:53.860@28891] HOMESCREEN: Event[window_visible] surface=00000003 visible=1 raise=9 hint=0
+[16:40:54.884@28891] HOMESCREEN: move test-client 320 120
+[16:40:54.884@28891] HOMESCREEN: move(test-client,00000003,320,120)
+[16:40:54.904@28891] HOMESCREEN: sleep 0.5
+[16:40:54.905@28891] HOMESCREEN: Event[window_configure] surface=00000003 app=test-client x/y=320/120 w/h=600/400 hint=0
+[16:40:55.427@28891] HOMESCREEN: move test-client 340 140
+[16:40:55.427@28891] HOMESCREEN: move(test-client,00000003,340,140)
+[16:40:55.447@28891] HOMESCREEN: sleep 0.5
+[16:40:55.447@28891] HOMESCREEN: Event[window_configure] surface=00000003 app=test-client x/y=340/140 w/h=600/400 hint=0
+[16:40:55.969@28891] HOMESCREEN: move test-client 360 160
+[16:40:55.969@28891] HOMESCREEN: move(test-client,00000003,360,160)
+[16:40:55.989@28891] HOMESCREEN: sleep 0.5
+[16:40:55.989@28891] HOMESCREEN: Event[window_configure] surface=00000003 app=test-client x/y=360/160 w/h=600/400 hint=0
+[16:40:56.511@28891] HOMESCREEN: move test-client 380 180
+[16:40:56.511@28891] HOMESCREEN: move(test-client,00000003,380,180)
+[16:40:56.531@28891] HOMESCREEN: sleep 0.5
+[16:40:56.531@28891] HOMESCREEN: Event[window_configure] surface=00000003 app=test-client x/y=380/180 w/h=600/400 hint=0
+[16:40:57.054@28891] HOMESCREEN: hide test-client
+[16:40:57.054@28891] HOMESCREEN: hide(test-client,00000003)
+[16:40:57.074@28891] HOMESCREEN: sleep 1
+[16:40:57.074@28891] HOMESCREEN: Event[window_visible] surface=00000003 visible=0 raise=9 hint=0
+[16:40:58.098@28891] HOMESCREEN: move test-client 100 200
+[16:40:58.098@28891] HOMESCREEN: move(test-client,00000003,100,200)
+[16:40:58.118@28891] HOMESCREEN: resize test-client 150 100
+[16:40:58.118@28891] HOMESCREEN: resize(test-client,00000003,150,100)
+[16:40:58.118@28891] HOMESCREEN: Event[window_configure] surface=00000003 app=test-client x/y=100/200 w/h=600/400 hint=0
+[16:40:58.138@28891] HOMESCREEN: show test-client
+[16:40:58.138@28891] HOMESCREEN: show(test-client,00000003)
+[16:40:58.138@28891] HOMESCREEN: Event[window_configure] surface=00000003 app=test-client x/y=100/200 w/h=150/100 hint=0
+[16:40:58.158@28891] HOMESCREEN: sleep 0.6
+[16:40:58.158@28891] HOMESCREEN: Event[window_visible] surface=00000003 visible=1 raise=9 hint=0
+[16:40:58.781@28891] HOMESCREEN: resize test-client 300 200
+[16:40:58.781@28891] HOMESCREEN: resize(test-client,00000003,300,200)
+[16:40:58.801@28891] HOMESCREEN: sleep 0.6
+[16:40:58.801@28891] HOMESCREEN: Event[window_configure] surface=00000003 app=test-client x/y=100/200 w/h=300/200 hint=0
+[16:40:59.423@28891] HOMESCREEN: resize test-client 450 300
+[16:40:59.423@28891] HOMESCREEN: resize(test-client,00000003,450,300)
+[16:40:59.443@28891] HOMESCREEN: sleep 0.6
+[16:40:59.443@28891] HOMESCREEN: Event[window_configure] surface=00000003 app=test-client x/y=100/200 w/h=450/300 hint=0
+[16:41:00.066@28891] HOMESCREEN: resize test-client 600 400
+[16:41:00.066@28891] HOMESCREEN: resize(test-client,00000003,600,400)
+[16:41:00.086@28891] HOMESCREEN: sleep 0.6
+[16:41:00.086@28891] HOMESCREEN: Event[window_configure] surface=00000003 app=test-client x/y=100/200 w/h=600/400 hint=0
+[16:41:00.709@28891] HOMESCREEN: resize test-client 400 250
+[16:41:00.709@28891] HOMESCREEN: resize(test-client,00000003,400,250)
+[16:41:00.729@28891] HOMESCREEN: sleep 0.6
+[16:41:00.729@28891] HOMESCREEN: Event[window_configure] surface=00000003 app=test-client x/y=100/200 w/h=400/250 hint=0
+[16:41:01.351@28891] HOMESCREEN: resize test-client 200 150
+[16:41:01.351@28891] HOMESCREEN: resize(test-client,00000003,200,150)
+[16:41:01.371@28891] HOMESCREEN: sleep 0.6
+[16:41:01.372@28891] HOMESCREEN: Event[window_configure] surface=00000003 app=test-client x/y=100/200 w/h=200/150 hint=0
+[16:41:01.934@28891] HOMESCREEN: Event[window_destroyed] surface=00000003
+[16:41:01.994@28891] HOMESCREEN: resize test-client 100 50
+[16:41:01.994@28891] HOMESCREEN: Unknown surface(test-client) at resize command
+[16:41:02.014@28891] HOMESCREEN: sleep 1
+[16:41:03.038@28891] HOMESCREEN: waitdestroy 60
+[16:41:03.078@28891] HOMESCREEN: sleep 1
+[16:41:04.102@28891] HOMESCREEN: #
+[16:41:04.122@28891] HOMESCREEN: # 3. Launch Weston sample client
+[16:41:04.142@28891] HOMESCREEN: launch /usr/bin/wayland-flower 2> ../tests/testlog/wayland-flower.log
+[16:41:04.251@28891] HOMESCREEN: Event[window_created] new surface=00000004(app=wayland-flower)
+[16:41:04.251@28891] HOMESCREEN: Created window[00000004] (app=wayland-flower)
+[16:41:04.251@28891] HOMESCREEN: Event[window_configure] surface=00000004 app=wayland-flower x/y=0/0 w/h=200/200 hint=0
+[16:41:04.251@28891] HOMESCREEN: got pointer leave, surface 0x9ff82f8
+[16:41:04.672@28891] HOMESCREEN: waitcreate 2
+[16:41:04.712@28891] HOMESCREEN: move wayland-flower 200 100
+[16:41:04.712@28891] HOMESCREEN: move(wayland-flower,00000004,200,100)
+[16:41:04.733@28891] HOMESCREEN: show wayland-flower
+[16:41:04.733@28891] HOMESCREEN: show(wayland-flower,00000004)
+[16:41:04.733@28891] HOMESCREEN: Event[window_configure] surface=00000004 app=wayland-flower x/y=200/100 w/h=200/200 hint=0
+[16:41:04.733@28891] HOMESCREEN: got keyboard modifier
+[16:41:04.733@28891] HOMESCREEN: got pointer enter (100,100), surface 0x9ff82f8
+[16:41:04.733@28891] HOMESCREEN: Event[window_configure] surface=00000004 app=wayland-flower x/y=200/100 w/h=200/200 hint=1
+[16:41:04.753@28891] HOMESCREEN: sleep 1
+[16:41:04.753@28891] HOMESCREEN: Event[window_visible] surface=00000004 visible=1 raise=9 hint=0
+[16:41:05.776@28891] HOMESCREEN: resize wayland-flower 500 400
+[16:41:05.777@28891] HOMESCREEN: resize(wayland-flower,00000004,500,400)
+[16:41:05.797@28891] HOMESCREEN: sleep 2
+[16:41:05.797@28891] HOMESCREEN: Event[window_configure] surface=00000004 app=wayland-flower x/y=200/100 w/h=500/400 hint=0
+[16:41:05.797@28891] HOMESCREEN: Event[window_configure] surface=00000004 app=wayland-flower x/y=200/100 w/h=200/200 hint=1
+[16:41:07.824@28891] HOMESCREEN: kill wayland-flower
+[16:41:08.145@28891] HOMESCREEN: Event[window_destroyed] surface=00000004
+[16:41:08.346@28891] HOMESCREEN: sleep 1
+[16:41:09.369@28891] HOMESCREEN: #
+[16:41:09.389@28891] HOMESCREEN: launch /usr/bin/wayland-smoke 2> ../tests/testlog/wayland-smoke.log
+[16:41:09.472@28891] HOMESCREEN: Event[window_created] new surface=00000005(app=wayland-smoke)
+[16:41:09.472@28891] HOMESCREEN: Created window[00000005] (app=wayland-smoke)
+[16:41:09.472@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=0/0 w/h=200/200 hint=0
+[16:41:09.472@28891] HOMESCREEN: got pointer leave, surface 0x9ff82f8
+[16:41:09.513@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=0/0 w/h=200/200 hint=1
+[16:41:09.513@28891] HOMESCREEN: got keyboard modifier
+[16:41:09.513@28891] HOMESCREEN: got pointer enter (100,100), surface 0x9ff82f8
+[16:41:09.553@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=0/0 w/h=200/200 hint=1
+[16:41:09.914@28891] HOMESCREEN: waitcreate 2
+[16:41:09.954@28891] HOMESCREEN: move wayland-smoke 100 50
+[16:41:09.954@28891] HOMESCREEN: move(wayland-smoke,00000005,100,50)
+[16:41:09.974@28891] HOMESCREEN: show wayland-smoke
+[16:41:09.974@28891] HOMESCREEN: show(wayland-smoke,00000005)
+[16:41:09.974@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=0
+[16:41:09.994@28891] HOMESCREEN: sleep 0.3
+[16:41:09.994@28891] HOMESCREEN: Event[window_visible] surface=00000005 visible=1 raise=9 hint=0
+[16:41:09.994@28891] HOMESCREEN: got pointer leave, surface 0x9ff82f8
+[16:41:09.995@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:10.035@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:10.075@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:10.095@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:10.135@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:10.156@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:10.196@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:10.236@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:10.276@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:10.296@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:10.316@28891] HOMESCREEN: event XY=168,93
+[16:41:10.336@28891] HOMESCREEN: event Button=Down
+[16:41:10.337@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:10.357@28891] HOMESCREEN: sleep 0.1
+[16:41:10.357@28891] HOMESCREEN: Event[window_active] surface=00000005 acive=2
+[16:41:10.377@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:10.437@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:10.477@28891] HOMESCREEN: event XY=151,88
+[16:41:10.497@28891] HOMESCREEN: event Button=Up
+[16:41:10.497@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:10.517@28891] HOMESCREEN: sleep 1
+[16:41:10.538@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:10.618@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:10.678@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:10.738@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:10.799@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:10.879@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:10.919@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:10.959@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.019@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.060@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.100@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.160@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.180@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.220@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.260@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.280@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.321@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.361@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.381@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.421@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.441@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.481@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.521@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.542@28891] HOMESCREEN: resize wayland-smoke 400 400
+[16:41:11.542@28891] HOMESCREEN: resize(wayland-smoke,00000005,400,400)
+[16:41:11.542@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.562@28891] HOMESCREEN: sleep 0.3
+[16:41:11.562@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=400/400 hint=0
+[16:41:11.562@28891] HOMESCREEN: got keyboard modifier
+[16:41:11.562@28891] HOMESCREEN: got pointer enter (100,83), surface 0x9ff82f8
+[16:41:11.582@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.622@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.642@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.682@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.722@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.743@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.783@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.823@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.843@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.883@28891] HOMESCREEN: event XY=457,211
+[16:41:11.883@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.903@28891] HOMESCREEN: event Button=Down
+[16:41:11.903@28891] HOMESCREEN: got pointer leave, surface 0x9ff82f8
+[16:41:11.923@28891] HOMESCREEN: sleep 0.1
+[16:41:11.923@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.944@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:11.984@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.024@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.044@28891] HOMESCREEN: event XY=457,209
+[16:41:12.044@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.064@28891] HOMESCREEN: event Button=Up
+[16:41:12.084@28891] HOMESCREEN: sleep 1
+[16:41:12.084@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.124@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.145@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.185@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.225@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.245@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.285@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.325@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.345@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.386@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.426@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.446@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.486@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.526@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.546@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.586@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.627@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.647@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.687@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.727@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.747@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.787@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.828@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.848@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.888@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.928@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.948@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:12.988@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.029@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.049@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.089@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.109@28891] HOMESCREEN: resize wayland-smoke 300 600
+[16:41:13.109@28891] HOMESCREEN: resize(wayland-smoke,00000005,300,600)
+[16:41:13.109@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.129@28891] HOMESCREEN: sleep 0.4
+[16:41:13.129@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=300/600 hint=0
+[16:41:13.129@28891] HOMESCREEN: got keyboard modifier
+[16:41:13.129@28891] HOMESCREEN: got pointer enter (304,198), surface 0x9ff82f8
+[16:41:13.149@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.190@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.210@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.250@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.290@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.310@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.350@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.390@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.411@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.451@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.491@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.511@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.551@28891] HOMESCREEN: event XY=250,495
+[16:41:13.551@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.571@28891] HOMESCREEN: event Button=Down
+[16:41:13.571@28891] HOMESCREEN: got pointer motion (166,469)
+[16:41:13.591@28891] HOMESCREEN: sleep 0.2
+[16:41:13.591@28891] HOMESCREEN: Event[window_active] surface=00000001 acive=2
+[16:41:13.591@28891] HOMESCREEN: got pointer button 272 1
+[16:41:13.592@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.612@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.652@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.692@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.712@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.752@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.792@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.813@28891] HOMESCREEN: event XY=246,498
+[16:41:13.813@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.833@28891] HOMESCREEN: event Button=Up
+[16:41:13.833@28891] HOMESCREEN: got pointer motion (164,472)
+[16:41:13.853@28891] HOMESCREEN: sleep 0.8
+[16:41:13.853@28891] HOMESCREEN: got pointer button 272 0
+[16:41:13.853@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.913@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:13.953@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:14.014@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:14.054@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:14.114@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:14.154@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:14.215@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:14.255@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:14.315@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:14.355@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:14.416@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:14.456@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:14.516@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:14.556@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:14.596@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:14.657@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:14.677@28891] HOMESCREEN: resize wayland-smoke 450 300
+[16:41:14.677@28891] HOMESCREEN: resize(wayland-smoke,00000005,450,300)
+[16:41:14.697@28891] HOMESCREEN: sleep 0.3
+[16:41:14.697@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=450/300 hint=0
+[16:41:14.697@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:14.757@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:14.798@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:14.858@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:14.898@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:14.958@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:14.999@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:15.019@28891] HOMESCREEN: event XY=511,296
+[16:41:15.039@28891] HOMESCREEN: event Button=Down
+[16:41:15.039@28891] HOMESCREEN: got pointer leave, surface 0x9ff82f8
+[16:41:15.059@28891] HOMESCREEN: sleep 0.1
+[16:41:15.059@28891] HOMESCREEN: Event[window_active] surface=00000005 acive=2
+[16:41:15.059@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:15.079@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:15.119@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:15.160@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:15.180@28891] HOMESCREEN: event XY=R508,300
+[16:41:15.180@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:15.200@28891] HOMESCREEN: event Button=Up
+[16:41:15.220@28891] HOMESCREEN: sleep 1
+[16:41:15.220@28891] HOMESCREEN: got keyboard modifier
+[16:41:15.220@28891] HOMESCREEN: got pointer enter (0,284), surface 0x9ff82f8
+[16:41:15.240@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:15.280@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:15.320@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:15.361@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:15.381@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:15.421@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:15.461@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:15.481@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:15.521@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:15.562@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:15.582@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:15.622@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:15.682@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:15.722@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:15.762@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:15.823@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:15.863@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:15.923@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:15.964@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:16.024@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:16.064@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:16.104@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:16.144@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:16.164@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:16.205@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:16.245@28891] HOMESCREEN: kill wayland-smoke
+[16:41:16.245@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:16.265@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:16.305@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:16.326@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:16.366@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:16.426@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:16.466@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:16.507@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:16.527@28891] HOMESCREEN: Event[window_configure] surface=00000005 app=wayland-smoke x/y=100/50 w/h=200/200 hint=1
+[16:41:16.567@28891] HOMESCREEN: Event[window_destroyed] surface=00000005
+[16:41:16.768@28891] HOMESCREEN: sleep 1
+[16:41:17.792@28891] HOMESCREEN: #
+[16:41:17.812@28891] HOMESCREEN: # 4. Set Layer
+[16:41:17.832@28891] HOMESCREEN: launch ../tests/test-eflapp @1 -color=0xe02040ff > ../tests/testlog/test-eflapp1.log
+[16:41:18.018@28891] HOMESCREEN: Event[window_created] new surface=00000006(app=test-eflapp@1)
+[16:41:18.018@28891] HOMESCREEN: Created window[00000006] (app=test-eflapp@1)
+[16:41:18.038@28891] HOMESCREEN: got pointer leave, surface 0x9ff82f8
+[16:41:18.038@28891] HOMESCREEN: Event[window_configure] surface=00000006 app=test-eflapp@1 x/y=16384/16384 w/h=520/380 hint=1
+[16:41:18.360@28891] HOMESCREEN: waitcreate 2
+[16:41:18.400@28891] HOMESCREEN: layer test-eflapp@1 101
+[16:41:18.400@28891] HOMESCREEN: set_window_layer(test-eflapp@1,00000006)
+[16:41:18.420@28891] HOMESCREEN: move test-eflapp@1 100 200
+[16:41:18.420@28891] HOMESCREEN: move(test-eflapp@1,00000006,100,200)
+[16:41:18.420@28891] HOMESCREEN: got keyboard modifier
+[16:41:18.420@28891] HOMESCREEN: got pointer enter (0,284), surface 0x9ff82f8
+[16:41:18.420@28891] HOMESCREEN: Event[window_configure] surface=00000006 app=test-eflapp@1 x/y=16384/16384 w/h=520/380 hint=1
+[16:41:18.440@28891] HOMESCREEN: show test-eflapp@1
+[16:41:18.440@28891] HOMESCREEN: show(test-eflapp@1,00000006)
+[16:41:18.440@28891] HOMESCREEN: Event[window_configure] surface=00000006 app=test-eflapp@1 x/y=100/200 w/h=0/0 hint=0
+[16:41:18.461@28891] HOMESCREEN: sleep 0.5
+[16:41:18.461@28891] HOMESCREEN: Event[window_visible] surface=00000006 visible=1 raise=9 hint=0
+[16:41:18.983@28891] HOMESCREEN:
+[16:41:19.003@28891] HOMESCREEN: launch ../tests/test-eflapp @2 -color=0xd020ff40 > ../tests/testlog/test-eflapp2.log
+[16:41:19.189@28891] HOMESCREEN: Event[window_created] new surface=00000007(app=test-eflapp@2)
+[16:41:19.190@28891] HOMESCREEN: Created window[00000007] (app=test-eflapp@2)
+[16:41:19.210@28891] HOMESCREEN: got pointer leave, surface 0x9ff82f8
+[16:41:19.210@28891] HOMESCREEN: Event[window_configure] surface=00000007 app=test-eflapp@2 x/y=16384/16384 w/h=520/380 hint=1
+[16:41:19.531@28891] HOMESCREEN: waitcreate 2
+[16:41:19.571@28891] HOMESCREEN: layer test-eflapp@2 103
+[16:41:19.571@28891] HOMESCREEN: set_window_layer(test-eflapp@2,00000007)
+[16:41:19.592@28891] HOMESCREEN: move test-eflapp@2 200 300
+[16:41:19.592@28891] HOMESCREEN: move(test-eflapp@2,00000007,200,300)
+[16:41:19.592@28891] HOMESCREEN: got keyboard modifier
+[16:41:19.592@28891] HOMESCREEN: got pointer enter (0,284), surface 0x9ff82f8
+[16:41:19.592@28891] HOMESCREEN: Event[window_configure] surface=00000007 app=test-eflapp@2 x/y=16384/16384 w/h=520/380 hint=1
+[16:41:19.612@28891] HOMESCREEN: show test-eflapp@2
+[16:41:19.612@28891] HOMESCREEN: show(test-eflapp@2,00000007)
+[16:41:19.612@28891] HOMESCREEN: Event[window_configure] surface=00000007 app=test-eflapp@2 x/y=200/300 w/h=0/0 hint=0
+[16:41:19.632@28891] HOMESCREEN: sleep 0.5
+[16:41:19.632@28891] HOMESCREEN: Event[window_visible] surface=00000007 visible=1 raise=9 hint=0
+[16:41:20.154@28891] HOMESCREEN:
+[16:41:20.174@28891] HOMESCREEN: launch ../tests/test-eflapp @3 -color=0xc0ff2040 > ../tests/testlog/test-eflapp3.log
+[16:41:20.358@28891] HOMESCREEN: Event[window_created] new surface=00000008(app=test-eflapp@3)
+[16:41:20.358@28891] HOMESCREEN: Created window[00000008] (app=test-eflapp@3)
+[16:41:20.358@28891] HOMESCREEN: got pointer leave, surface 0x9ff82f8
+[16:41:20.358@28891] HOMESCREEN: Event[window_configure] surface=00000008 app=test-eflapp@3 x/y=16384/16384 w/h=520/380 hint=1
+[16:41:20.699@28891] HOMESCREEN: waitcreate 2
+[16:41:20.739@28891] HOMESCREEN: layer test-eflapp@3 102
+[16:41:20.739@28891] HOMESCREEN: set_window_layer(test-eflapp@3,00000008)
+[16:41:20.759@28891] HOMESCREEN: move test-eflapp@3 300 400
+[16:41:20.759@28891] HOMESCREEN: move(test-eflapp@3,00000008,300,400)
+[16:41:20.759@28891] HOMESCREEN: got keyboard modifier
+[16:41:20.759@28891] HOMESCREEN: got pointer enter (0,284), surface 0x9ff82f8
+[16:41:20.759@28891] HOMESCREEN: Event[window_configure] surface=00000008 app=test-eflapp@3 x/y=16384/16384 w/h=520/380 hint=1
+[16:41:20.779@28891] HOMESCREEN: show test-eflapp@3
+[16:41:20.779@28891] HOMESCREEN: show(test-eflapp@3,00000008)
+[16:41:20.779@28891] HOMESCREEN: Event[window_configure] surface=00000008 app=test-eflapp@3 x/y=300/400 w/h=0/0 hint=0
+[16:41:20.800@28891] HOMESCREEN: sleep 0.5
+[16:41:20.800@28891] HOMESCREEN: Event[window_visible] surface=00000008 visible=1 raise=9 hint=0
+[16:41:21.322@28891] HOMESCREEN:
+[16:41:21.342@28891] HOMESCREEN: launch ../tests/test-eflapp @4 -color=0xb0808080 > ../tests/testlog/test-eflapp4.log
+[16:41:21.526@28891] HOMESCREEN: Event[window_created] new surface=00000009(app=test-eflapp@4)
+[16:41:21.526@28891] HOMESCREEN: Created window[00000009] (app=test-eflapp@4)
+[16:41:21.526@28891] HOMESCREEN: got pointer leave, surface 0x9ff82f8
+[16:41:21.546@28891] HOMESCREEN: Event[window_configure] surface=00000009 app=test-eflapp@4 x/y=16384/16384 w/h=520/380 hint=1
+[16:41:21.867@28891] HOMESCREEN: waitcreate 2
+[16:41:21.907@28891] HOMESCREEN: layer test-eflapp@4 102
+[16:41:21.907@28891] HOMESCREEN: set_window_layer(test-eflapp@4,00000009)
+[16:41:21.927@28891] HOMESCREEN: move test-eflapp@4 400 500
+[16:41:21.927@28891] HOMESCREEN: move(test-eflapp@4,00000009,400,500)
+[16:41:21.927@28891] HOMESCREEN: got keyboard modifier
+[16:41:21.927@28891] HOMESCREEN: got pointer enter (0,284), surface 0x9ff82f8
+[16:41:21.927@28891] HOMESCREEN: Event[window_configure] surface=00000009 app=test-eflapp@4 x/y=16384/16384 w/h=520/380 hint=1
+[16:41:21.947@28891] HOMESCREEN: show test-eflapp@4
+[16:41:21.947@28891] HOMESCREEN: show(test-eflapp@4,00000009)
+[16:41:21.947@28891] HOMESCREEN: Event[window_configure] surface=00000009 app=test-eflapp@4 x/y=400/500 w/h=0/0 hint=0
+[16:41:21.968@28891] HOMESCREEN: sleep 0.5
+[16:41:21.968@28891] HOMESCREEN: Event[window_visible] surface=00000009 visible=1 raise=9 hint=0
+[16:41:22.490@28891] HOMESCREEN:
+[16:41:22.510@28891] HOMESCREEN: launch ../tests/test-eflapp @5 -color=0xa040a060 > ../tests/testlog/test-eflapp5.log
+[16:41:22.693@28891] HOMESCREEN: Event[window_created] new surface=0000000a(app=test-eflapp@5)
+[16:41:22.693@28891] HOMESCREEN: Created window[0000000a] (app=test-eflapp@5)
+[16:41:22.693@28891] HOMESCREEN: got pointer leave, surface 0x9ff82f8
+[16:41:22.693@28891] HOMESCREEN: Event[window_configure] surface=0000000a app=test-eflapp@5 x/y=16384/16384 w/h=520/380 hint=1
+[16:41:23.034@28891] HOMESCREEN: waitcreate 2
+[16:41:23.075@28891] HOMESCREEN: layer test-eflapp@5 102
+[16:41:23.075@28891] HOMESCREEN: set_window_layer(test-eflapp@5,0000000a)
+[16:41:23.095@28891] HOMESCREEN: move test-eflapp@5 500 600
+[16:41:23.095@28891] HOMESCREEN: move(test-eflapp@5,0000000a,500,600)
+[16:41:23.095@28891] HOMESCREEN: got keyboard modifier
+[16:41:23.095@28891] HOMESCREEN: got pointer enter (0,284), surface 0x9ff82f8
+[16:41:23.095@28891] HOMESCREEN: Event[window_configure] surface=0000000a app=test-eflapp@5 x/y=16384/16384 w/h=520/380 hint=1
+[16:41:23.115@28891] HOMESCREEN: show test-eflapp@5
+[16:41:23.115@28891] HOMESCREEN: show(test-eflapp@5,0000000a)
+[16:41:23.115@28891] HOMESCREEN: Event[window_configure] surface=0000000a app=test-eflapp@5 x/y=500/600 w/h=0/0 hint=0
+[16:41:23.135@28891] HOMESCREEN: sleep 1
+[16:41:23.135@28891] HOMESCREEN: Event[window_visible] surface=0000000a visible=1 raise=9 hint=0
+[16:41:24.159@28891] HOMESCREEN: hide test-eflapp@2
+[16:41:24.159@28891] HOMESCREEN: hide(test-eflapp@2,00000007)
+[16:41:24.179@28891] HOMESCREEN: sleep 1
+[16:41:24.179@28891] HOMESCREEN: Event[window_visible] surface=00000007 visible=0 raise=9 hint=0
+[16:41:25.203@28891] HOMESCREEN: show test-eflapp@2
+[16:41:25.203@28891] HOMESCREEN: show(test-eflapp@2,00000007)
+[16:41:25.224@28891] HOMESCREEN: sleep 2
+[16:41:25.224@28891] HOMESCREEN: Event[window_visible] surface=00000007 visible=1 raise=9 hint=0
+[16:41:27.251@28891] HOMESCREEN: #
+[16:41:27.272@28891] HOMESCREEN: # resize EFL application
+[16:41:27.292@28891] HOMESCREEN: resize test-eflapp@2 200 300
+[16:41:27.292@28891] HOMESCREEN: resize(test-eflapp@2,00000007,200,300)
+EFL-App resize x/y=0/0 req=200/300 w/h=520/380 obj=340/247
+[16:41:27.312@28891] HOMESCREEN: sleep 1
+[16:41:27.312@28891] HOMESCREEN: Event[window_configure] surface=00000007 app=test-eflapp@2 x/y=200/300 w/h=200/300 hint=0
+[16:41:28.336@28891] HOMESCREEN: resize test-eflapp@3 720 520
+[16:41:28.336@28891] HOMESCREEN: resize(test-eflapp@3,00000008,720,520)
+EFL-App resize x/y=0/0 req=720/520 w/h=520/380 obj=340/247
+[16:41:28.356@28891] HOMESCREEN: sleep 1
+[16:41:28.356@28891] HOMESCREEN: Event[window_configure] surface=00000008 app=test-eflapp@3 x/y=300/400 w/h=720/520 hint=0
+[16:41:29.380@28891] HOMESCREEN: resize test-eflapp@3 520 380
+[16:41:29.380@28891] HOMESCREEN: resize(test-eflapp@3,00000008,520,380)
+[16:41:29.400@28891] HOMESCREEN: sleep 1
+[16:41:29.401@28891] HOMESCREEN: Event[window_configure] surface=00000008 app=test-eflapp@3 x/y=300/400 w/h=520/380 hint=0
+[16:41:30.425@28891] HOMESCREEN: resize test-eflapp@2 520 380
+[16:41:30.425@28891] HOMESCREEN: resize(test-eflapp@2,00000007,520,380)
+[16:41:30.445@28891] HOMESCREEN: sleep 1
+[16:41:30.445@28891] HOMESCREEN: Event[window_configure] surface=00000007 app=test-eflapp@2 x/y=200/300 w/h=520/380 hint=0
+[16:41:31.469@28891] HOMESCREEN: #
+[16:41:31.489@28891] HOMESCREEN: # 5. Raise/Lower
+[16:41:31.509@28891] HOMESCREEN: raise test-eflapp@3
+[16:41:31.509@28891] HOMESCREEN: raise(test-eflapp@3,00000008)
+[16:41:31.529@28891] HOMESCREEN: sleep 1
+[16:41:31.529@28891] HOMESCREEN: Event[window_visible] surface=00000008 visible=9 raise=1 hint=0
+[16:41:32.553@28891] HOMESCREEN: raise test-eflapp@4
+[16:41:32.553@28891] HOMESCREEN: raise(test-eflapp@4,00000009)
+[16:41:32.573@28891] HOMESCREEN: sleep 1
+[16:41:32.573@28891] HOMESCREEN: Event[window_visible] surface=00000009 visible=9 raise=1 hint=0
+[16:41:33.598@28891] HOMESCREEN: raise test-eflapp@5
+[16:41:33.598@28891] HOMESCREEN: raise(test-eflapp@5,0000000a)
+[16:41:33.618@28891] HOMESCREEN: sleep 1
+[16:41:33.618@28891] HOMESCREEN: Event[window_visible] surface=0000000a visible=9 raise=1 hint=0
+[16:41:34.642@28891] HOMESCREEN: lower test-eflapp@5
+[16:41:34.642@28891] HOMESCREEN: lower(test-eflapp@5,0000000a)
+[16:41:34.662@28891] HOMESCREEN: sleep 1
+[16:41:34.662@28891] HOMESCREEN: Event[window_visible] surface=0000000a visible=9 raise=0 hint=0
+[16:41:35.686@28891] HOMESCREEN: lower test-eflapp@4
+[16:41:35.686@28891] HOMESCREEN: lower(test-eflapp@4,00000009)
+[16:41:35.706@28891] HOMESCREEN: sleep 1
+[16:41:35.707@28891] HOMESCREEN: Event[window_visible] surface=00000009 visible=9 raise=0 hint=0
+[16:41:36.731@28891] HOMESCREEN: lower test-eflapp@3
+[16:41:36.731@28891] HOMESCREEN: lower(test-eflapp@3,00000008)
+[16:41:36.751@28891] HOMESCREEN: sleep 2
+[16:41:36.751@28891] HOMESCREEN: Event[window_visible] surface=00000008 visible=9 raise=0 hint=0
+[16:41:38.779@28891] HOMESCREEN: #
+[16:41:38.799@28891] HOMESCREEN: # 6. Layer Change
+[16:41:38.819@28891] HOMESCREEN: layer test-eflapp@1 100
+[16:41:38.819@28891] HOMESCREEN: set_window_layer(test-eflapp@1,00000006)
+[16:41:38.839@28891] HOMESCREEN: sleep 1
+[16:41:39.863@28891] HOMESCREEN: layer test-eflapp@2 100
+[16:41:39.863@28891] HOMESCREEN: set_window_layer(test-eflapp@2,00000007)
+[16:41:39.883@28891] HOMESCREEN: sleep 2
+[16:41:41.911@28891] HOMESCREEN: #
+[16:41:41.931@28891] HOMESCREEN: # 7. layer visibility control
+[16:41:41.951@28891] HOMESCREEN: layer_visible 102 0
+[16:41:41.971@28891] HOMESCREEN: sleep 1
+[16:41:42.995@28891] HOMESCREEN: layer_visible 102 1
+[16:41:43.015@28891] HOMESCREEN: sleep 1
+[16:41:44.039@28891] HOMESCREEN: # 8. kill eflapp's
+[16:41:44.060@28891] HOMESCREEN: kill test-eflapp@1
+[16:41:44.080@28891] HOMESCREEN: Event[window_destroyed] surface=00000006
+[16:41:44.381@28891] HOMESCREEN: sleep 0.5
+[16:41:44.903@28891] HOMESCREEN: kill test-eflapp@2
+[16:41:44.923@28891] HOMESCREEN: Event[window_destroyed] surface=00000007
+[16:41:45.225@28891] HOMESCREEN: sleep 0.5
+[16:41:45.747@28891] HOMESCREEN: kill test-eflapp@3
+[16:41:45.767@28891] HOMESCREEN: Event[window_destroyed] surface=00000008
+[16:41:46.068@28891] HOMESCREEN: sleep 0.5
+[16:41:46.590@28891] HOMESCREEN: kill test-eflapp@4
+[16:41:46.610@28891] HOMESCREEN: Event[window_destroyed] surface=00000009
+[16:41:46.911@28891] HOMESCREEN: sleep 0.5
+[16:41:47.434@28891] HOMESCREEN: kill test-eflapp@5
+[16:41:47.454@28891] HOMESCREEN: Event[window_destroyed] surface=0000000a
+[16:41:47.755@28891] HOMESCREEN: sleep 2
+[16:41:49.783@28891] HOMESCREEN: #
+[16:41:49.803@28891] HOMESCREEN: # 9. Input test
+[16:41:49.823@28891] HOMESCREEN: launch ../tests/test-client @1 -color=0xe0ff2020 -postsleep=60 < ../tests/testdata/cl_surface3.dat 2> ../tests/te
+[16:41:49.949@28891] HOMESCREEN: Event[window_created] new surface=0000000b(app=test-client@1)
+[16:41:49.949@28891] HOMESCREEN: Created window[0000000b] (app=test-client@1)
+[16:41:49.949@28891] HOMESCREEN: got pointer leave, surface 0x9ff82f8
+[16:41:50.351@28891] HOMESCREEN: waitcreate 2
+[16:41:50.391@28891] HOMESCREEN: sleep 0.3
+[16:41:50.712@28891] HOMESCREEN: layer test-client@1 101
+[16:41:50.712@28891] HOMESCREEN: set_window_layer(test-client@1,0000000b)
+[16:41:50.732@28891] HOMESCREEN: move test-client@1 100 200
+[16:41:50.732@28891] HOMESCREEN: move(test-client@1,0000000b,100,200)
+[16:41:50.733@28891] HOMESCREEN: got keyboard modifier
+[16:41:50.733@28891] HOMESCREEN: got pointer enter (0,284), surface 0x9ff82f8
+[16:41:50.733@28891] HOMESCREEN: Event[window_configure] surface=0000000b app=test-client@1 x/y=16384/16384 w/h=640/480 hint=1
+[16:41:50.753@28891] HOMESCREEN: show test-client@1
+[16:41:50.753@28891] HOMESCREEN: show(test-client@1,0000000b)
+[16:41:50.753@28891] HOMESCREEN: Event[window_configure] surface=0000000b app=test-client@1 x/y=100/200 w/h=0/0 hint=0
+[16:41:50.773@28891] HOMESCREEN: sleep 0.5
+[16:41:50.773@28891] HOMESCREEN: Event[window_visible] surface=0000000b visible=1 raise=9 hint=0
+[16:41:51.295@28891] HOMESCREEN: event XY=240,303
+[16:41:51.315@28891] HOMESCREEN: event Button=Down
+[16:41:51.315@28891] HOMESCREEN: got pointer motion (160,287)
+[16:41:51.335@28891] HOMESCREEN: sleep 0.1
+[16:41:51.335@28891] HOMESCREEN: Event[window_active] surface=00000001 acive=2
+[16:41:51.335@28891] HOMESCREEN: got pointer button 272 1
+[16:41:51.456@28891] HOMESCREEN: event XY=233,289
+[16:41:51.476@28891] HOMESCREEN: event Button=Up
+[16:41:51.476@28891] HOMESCREEN: got pointer motion (155,274)
+[16:41:51.496@28891] HOMESCREEN: sleep 0.2
+[16:41:51.496@28891] HOMESCREEN: got pointer button 272 0
+[16:41:51.717@28891] HOMESCREEN:
+[16:41:51.737@28891] HOMESCREEN: launch ../tests/test-client @2 -color=0xc020ff20 -postsleep=60 < ../tests/testdata/cl_surface3.dat 2> ../tests/te
+[16:41:51.863@28891] HOMESCREEN: Event[window_created] new surface=0000000c(app=test-client@2)
+[16:41:51.863@28891] HOMESCREEN: Created window[0000000c] (app=test-client@2)
+[16:41:51.883@28891] HOMESCREEN: got pointer leave, surface 0x9ff82f8
+[16:41:52.265@28891] HOMESCREEN: waitcreate 2
+[16:41:52.305@28891] HOMESCREEN: sleep 0.3
+[16:41:52.626@28891] HOMESCREEN: layer test-client@2 101
+[16:41:52.626@28891] HOMESCREEN: set_window_layer(test-client@2,0000000c)
+[16:41:52.647@28891] HOMESCREEN: move test-client@2 250 300
+[16:41:52.647@28891] HOMESCREEN: move(test-client@2,0000000c,250,300)
+[16:41:52.647@28891] HOMESCREEN: got keyboard modifier
+[16:41:52.647@28891] HOMESCREEN: got pointer enter (155,274), surface 0x9ff82f8
+[16:41:52.647@28891] HOMESCREEN: Event[window_configure] surface=0000000c app=test-client@2 x/y=16384/16384 w/h=640/480 hint=1
+[16:41:52.667@28891] HOMESCREEN: show test-client@2
+[16:41:52.667@28891] HOMESCREEN: show(test-client@2,0000000c)
+[16:41:52.667@28891] HOMESCREEN: Event[window_configure] surface=0000000c app=test-client@2 x/y=250/300 w/h=0/0 hint=0
+[16:41:52.687@28891] HOMESCREEN: sleep 0.5
+[16:41:52.687@28891] HOMESCREEN: Event[window_visible] surface=0000000c visible=1 raise=9 hint=0
+[16:41:53.209@28891] HOMESCREEN: event XY=625,555
+[16:41:53.229@28891] HOMESCREEN: event Button=Down
+[16:41:53.229@28891] HOMESCREEN: got pointer motion (416,526)
+[16:41:53.250@28891] HOMESCREEN: sleep 0.1
+[16:41:53.250@28891] HOMESCREEN: got pointer button 272 1
+[16:41:53.370@28891] HOMESCREEN: event XY=623,557
+[16:41:53.390@28891] HOMESCREEN: event Button=Up
+[16:41:53.390@28891] HOMESCREEN: got pointer motion (415,528)
+[16:41:53.410@28891] HOMESCREEN: sleep 0.2
+[16:41:53.410@28891] HOMESCREEN: got pointer button 272 0
+[16:41:53.631@28891] HOMESCREEN:
+[16:41:53.652@28891] HOMESCREEN: launch ../tests/test-client @3 -color=0xa02020ff -postsleep=60 < ../tests/testdata/cl_surface3.dat 2> ../tests/te
+[16:41:53.777@28891] HOMESCREEN: Event[window_created] new surface=0000000d(app=test-client@3)
+[16:41:53.777@28891] HOMESCREEN: Created window[0000000d] (app=test-client@3)
+[16:41:53.797@28891] HOMESCREEN: got pointer leave, surface 0x9ff82f8
+[16:41:54.179@28891] HOMESCREEN: waitcreate 2
+[16:41:54.219@28891] HOMESCREEN: sleep 0.3
+[16:41:54.540@28891] HOMESCREEN: layer test-client@3 101
+[16:41:54.540@28891] HOMESCREEN: set_window_layer(test-client@3,0000000d)
+[16:41:54.561@28891] HOMESCREEN: move test-client@3 400 400
+[16:41:54.561@28891] HOMESCREEN: move(test-client@3,0000000d,400,400)
+[16:41:54.561@28891] HOMESCREEN: got keyboard modifier
+[16:41:54.561@28891] HOMESCREEN: got pointer enter (415,528), surface 0x9ff82f8
+[16:41:54.561@28891] HOMESCREEN: Event[window_configure] surface=0000000d app=test-client@3 x/y=16384/16384 w/h=640/480 hint=1
+[16:41:54.581@28891] HOMESCREEN: show test-client@3
+[16:41:54.581@28891] HOMESCREEN: show(test-client@3,0000000d)
+[16:41:54.581@28891] HOMESCREEN: Event[window_configure] surface=0000000d app=test-client@3 x/y=400/400 w/h=0/0 hint=0
+[16:41:54.601@28891] HOMESCREEN: sleep 0.5
+[16:41:54.601@28891] HOMESCREEN: Event[window_visible] surface=0000000d visible=1 raise=9 hint=0
+[16:41:55.123@28891] HOMESCREEN: event XY=848,663
+[16:41:55.143@28891] HOMESCREEN: event Button=Down
+[16:41:55.143@28891] HOMESCREEN: got pointer motion (565,628)
+[16:41:55.163@28891] HOMESCREEN: sleep 0.1
+[16:41:55.163@28891] HOMESCREEN: got pointer button 272 1
+[16:41:55.284@28891] HOMESCREEN: event XY=845,669
+[16:41:55.304@28891] HOMESCREEN: event Button=Up
+[16:41:55.304@28891] HOMESCREEN: got pointer motion (563,634)
+[16:41:55.324@28891] HOMESCREEN: sleep 0.2
+[16:41:55.324@28891] HOMESCREEN: got pointer button 272 0
+[16:41:55.545@28891] HOMESCREEN:
+[16:41:55.565@28891] HOMESCREEN: hide test-client@2
+[16:41:55.565@28891] HOMESCREEN: hide(test-client@2,0000000c)
+[16:41:55.585@28891] HOMESCREEN: sleep 0.3
+[16:41:55.585@28891] HOMESCREEN: Event[window_visible] surface=0000000c visible=0 raise=9 hint=0
+[16:41:55.907@28891] HOMESCREEN: event XY=719,643
+[16:41:55.927@28891] HOMESCREEN: event Button=Down
+[16:41:55.927@28891] HOMESCREEN: got pointer motion (479,609)
+[16:41:55.947@28891] HOMESCREEN: sleep 0.1
+[16:41:55.947@28891] HOMESCREEN: got pointer button 272 1
+[16:41:56.068@28891] HOMESCREEN: event XY=720,644
+[16:41:56.088@28891] HOMESCREEN: event Button=Up
+[16:41:56.088@28891] HOMESCREEN: got pointer motion (480,610)
+[16:41:56.108@28891] HOMESCREEN: sleep 0.5
+[16:41:56.108@28891] HOMESCREEN: got pointer button 272 0
+[16:41:56.630@28891] HOMESCREEN:
+[16:41:56.650@28891] HOMESCREEN: lower test-client@3
+[16:41:56.650@28891] HOMESCREEN: lower(test-client@3,0000000d)
+[16:41:56.670@28891] HOMESCREEN: sleep 0.3
+[16:41:56.670@28891] HOMESCREEN: Event[window_visible] surface=0000000d visible=9 raise=0 hint=0
+[16:41:56.992@28891] HOMESCREEN: event XY=858,555
+[16:41:57.012@28891] HOMESCREEN: event Button=Down
+[16:41:57.012@28891] HOMESCREEN: got pointer motion (572,526)
+[16:41:57.032@28891] HOMESCREEN: sleep 0.1
+[16:41:57.032@28891] HOMESCREEN: got pointer button 272 1
+[16:41:57.152@28891] HOMESCREEN: event XY=R858,557
+[16:41:57.173@28891] HOMESCREEN: event Button=Up
+[16:41:57.173@28891] HOMESCREEN: got pointer motion (0,528)
+[16:41:57.193@28891] HOMESCREEN: sleep 0.5
+[16:41:57.193@28891] HOMESCREEN: got pointer button 272 0
+[16:41:57.715@28891] HOMESCREEN:
+[16:41:57.735@28891] HOMESCREEN: show test-client@2
+[16:41:57.735@28891] HOMESCREEN: show(test-client@2,0000000c)
+[16:41:57.755@28891] HOMESCREEN: sleep 0.3
+[16:41:57.755@28891] HOMESCREEN: Event[window_visible] surface=0000000c visible=1 raise=9 hint=0
+[16:41:58.076@28891] HOMESCREEN: event XY=765,644
+[16:41:58.097@28891] HOMESCREEN: event Button=Down
+[16:41:58.097@28891] HOMESCREEN: got pointer motion (510,610)
+[16:41:58.117@28891] HOMESCREEN: sleep 0.1
+[16:41:58.117@28891] HOMESCREEN: got pointer button 272 1
+[16:41:58.237@28891] HOMESCREEN: event XY=762,645
+[16:41:58.258@28891] HOMESCREEN: event Button=Up
+[16:41:58.258@28891] HOMESCREEN: got pointer motion (508,611)
+[16:41:58.278@28891] HOMESCREEN: sleep 2
+[16:41:58.278@28891] HOMESCREEN: got pointer button 272 0
+[16:42:00.305@28891] HOMESCREEN: # set input device
+[16:42:00.326@28891] HOMESCREEN: input_conf InDev1 8 Sw1 0
+[16:42:00.346@28891] HOMESCREEN: input_conf InDev1 8 Sw2 1 Up 10
+[16:42:00.346@28891] HOMESCREEN: Event[input_capabilities] device=InDev1 type=8 sw=Sw1 input=0 code=Sw1[0]
+[16:42:00.366@28891] HOMESCREEN: input_code InDev1 1 Down 11
+[16:42:00.366@28891] HOMESCREEN: Event[input_capabilities] device=InDev1 type=8 sw=Sw2 input=1 code=Up[10]
+[16:42:00.386@28891] HOMESCREEN: input_conf InDev1 8 Sw3 2 Left 20 Right 21
+[16:42:00.386@28891] HOMESCREEN: Event[input_code] device=InDev1 input=1 code=Down[11]
+[16:42:00.406@28891] HOMESCREEN: input_code InDev1 2 Right 21
+[16:42:00.406@28891] HOMESCREEN: Event[input_capabilities] device=InDev1 type=8 sw=Sw3 input=2 code=Left[20]
+[16:42:00.427@28891] HOMESCREEN: input_conf InDev1 8 Sw4 3
+[16:42:00.427@28891] HOMESCREEN: Event[input_code] device=InDev1 input=2 code=Right[21]
+[16:42:00.447@28891] HOMESCREEN: sleep 0.5
+[16:42:00.447@28891] HOMESCREEN: Event[input_capabilities] device=InDev1 type=8 sw=Sw4 input=3 code=Sw4[0]
+[16:42:00.969@28891] HOMESCREEN: input_conf InDev2 8 Sw0 0
+[16:42:00.989@28891] HOMESCREEN: input_conf InDev2 8 Sw1 1
+[16:42:00.989@28891] HOMESCREEN: Event[input_capabilities] device=InDev2 type=8 sw=Sw0 input=0 code=Sw0[0]
+[16:42:01.009@28891] HOMESCREEN: sleep 0.5
+[16:42:01.009@28891] HOMESCREEN: Event[input_capabilities] device=InDev2 type=8 sw=Sw1 input=1 code=Sw1[0]
+[16:42:01.531@28891] HOMESCREEN: # input switch event
+[16:42:01.551@28891] HOMESCREEN: input_sw InDev1 2 20 1
+[16:42:01.572@28891] HOMESCREEN: sleep 0.1
+[16:42:01.692@28891] HOMESCREEN: input_sw InDev1 2 20 0
+[16:42:01.712@28891] HOMESCREEN: sleep 0.5
+[16:42:02.234@28891] HOMESCREEN: input_sw InDev2 0 1 1
+[16:42:02.254@28891] HOMESCREEN: sleep 0.1
+[16:42:02.375@28891] HOMESCREEN: input_sw InDev2 0 1 1
+[16:42:02.395@28891] HOMESCREEN: sleep 0.5
+[16:42:02.917@28891] HOMESCREEN: # assign input sw to application
+[16:42:02.937@28891] HOMESCREEN: input_add InDev1 1 test-client@1
+[16:42:02.937@28891] HOMESCREEN: input_add(InDev1.1 to test-client@1[0])
+[16:42:02.958@28891] HOMESCREEN: input_add InDev1 2 test-client@2
+[16:42:02.958@28891] HOMESCREEN: input_add(InDev1.2 to test-client@2[0])
+[16:42:02.978@28891] HOMESCREEN: input_add InDev1 3 test-client@3
+[16:42:02.978@28891] HOMESCREEN: input_add(InDev1.3 to test-client@3[0])
+[16:42:02.998@28891] HOMESCREEN: input_add InDev2 0 test-client@1 1
+[16:42:02.998@28891] HOMESCREEN: input_add(InDev2.0 to test-client@1[1])
+[16:42:03.018@28891] HOMESCREEN: input_add InDev2 1 test-client@1
+[16:42:03.018@28891] HOMESCREEN: input_add(InDev2.1 to test-client@1[0])
+[16:42:03.038@28891] HOMESCREEN: sleep 0.5
+[16:42:03.560@28891] HOMESCREEN: # input switch event
+[16:42:03.580@28891] HOMESCREEN: input_sw InDev1 0 1 1
+[16:42:03.601@28891] HOMESCREEN: sleep 0.1
+[16:42:03.721@28891] HOMESCREEN: input_sw InDev1 0 1 0
+[16:42:03.741@28891] HOMESCREEN: sleep 0.5
+[16:42:04.263@28891] HOMESCREEN: input_sw InDev1 1 10 1
+[16:42:04.283@28891] HOMESCREEN: sleep 0.1
+[16:42:04.404@28891] HOMESCREEN: input_sw InDev1 1 10 0
+[16:42:04.424@28891] HOMESCREEN: sleep 0.5
+[16:42:04.946@28891] HOMESCREEN: input_sw InDev1 2 21 1
+[16:42:04.966@28891] HOMESCREEN: sleep 0.1
+[16:42:05.087@28891] HOMESCREEN: input_sw InDev1 2 21 0
+[16:42:05.107@28891] HOMESCREEN: sleep 0.5
+[16:42:05.629@28891] HOMESCREEN: input_sw InDev1 3 1 1
+[16:42:05.649@28891] HOMESCREEN: sleep 0.1
+[16:42:05.770@28891] HOMESCREEN: input_sw InDev1 3 1 0
+[16:42:05.790@28891] HOMESCREEN: sleep 0.5
+[16:42:06.312@28891] HOMESCREEN: input_sw InDev2 0 1 1
+[16:42:06.332@28891] HOMESCREEN: sleep 0.1
+[16:42:06.453@28891] HOMESCREEN: input_sw InDev2 0 1 0
+[16:42:06.473@28891] HOMESCREEN: sleep 0.5
+[16:42:06.995@28891] HOMESCREEN: input_sw InDev2 1 1 1
+[16:42:07.015@28891] HOMESCREEN: sleep 0.1
+[16:42:07.136@28891] HOMESCREEN: input_sw InDev2 1 1 0
+[16:42:07.156@28891] HOMESCREEN: sleep 0.5
+[16:42:07.678@28891] HOMESCREEN: # delete and change assign
+[16:42:07.698@28891] HOMESCREEN: ## same assign (NOP, but change to general assign)
+[16:42:07.718@28891] HOMESCREEN: input_add InDev2 0 test-client@1
+[16:42:07.718@28891] HOMESCREEN: input_add(InDev2.0 to test-client@1[0])
+[16:42:07.738@28891] HOMESCREEN: ## same assign (NOP, but change to fixed assign)
+[16:42:07.758@28891] HOMESCREEN: input_add InDev2 0 test-client@1 1
+[16:42:07.758@28891] HOMESCREEN: input_add(InDev2.0 to test-client@1[1])
+[16:42:07.779@28891] HOMESCREEN: ## change assign
+[16:42:07.799@28891] HOMESCREEN: input_add InDev2 1 test-client@2
+[16:42:07.799@28891] HOMESCREEN: input_add(InDev2.1 to test-client@2[0])
+[16:42:07.819@28891] HOMESCREEN: ## delete assign
+[16:42:07.839@28891] HOMESCREEN: input_del InDev1 1 test-client@1
+[16:42:07.839@28891] HOMESCREEN: input_del(InDev1.1 to test-client@1)
+[16:42:07.859@28891] HOMESCREEN: ## delete but not assign
+[16:42:07.879@28891] HOMESCREEN: input_del InDev2 1 test-client@1
+[16:42:07.879@28891] HOMESCREEN: input_del(InDev2.1 to test-client@1)
+[16:42:07.899@28891] HOMESCREEN: ## switch input event
+[16:42:07.920@28891] HOMESCREEN: input_sw InDev2 0 1 1
+[16:42:07.940@28891] HOMESCREEN: sleep 0.1
+[16:42:08.060@28891] HOMESCREEN: input_sw InDev2 0 1 0
+[16:42:08.080@28891] HOMESCREEN: sleep 0.1
+[16:42:08.201@28891] HOMESCREEN: input_sw InDev2 1 1 1
+[16:42:08.221@28891] HOMESCREEN: sleep 0.1
+[16:42:08.342@28891] HOMESCREEN: input_sw InDev2 1 1 0
+[16:42:08.362@28891] HOMESCREEN: sleep 0.1
+[16:42:08.482@28891] HOMESCREEN: input_sw InDev1 3 1 1
+[16:42:08.502@28891] HOMESCREEN: sleep 0.1
+[16:42:08.623@28891] HOMESCREEN: input_sw InDev1 3 1 0
+[16:42:08.643@28891] HOMESCREEN: sleep 1
+[16:42:09.667@28891] HOMESCREEN: # delete all assign without fixed assign(fixed = InDev2.0)
+[16:42:09.687@28891] HOMESCREEN: input_del @ -1 @
+[16:42:09.687@28891] HOMESCREEN: input_del(.-1 to )
+[16:42:09.707@28891] HOMESCREEN: sleep 2
+[16:42:11.735@28891] HOMESCREEN: #
+[16:42:11.755@28891] HOMESCREEN: kill test-client@1
+[16:42:12.076@28891] HOMESCREEN: Event[window_destroyed] surface=0000000b
+[16:42:12.277@28891] HOMESCREEN: sleep 0.3
+[16:42:12.598@28891] HOMESCREEN: kill test-client@2
+[16:42:12.920@28891] HOMESCREEN: Event[window_destroyed] surface=0000000c
+[16:42:13.121@28891] HOMESCREEN: sleep 0.3
+[16:42:13.442@28891] HOMESCREEN: kill test-client@3
+[16:42:13.763@28891] HOMESCREEN: Event[window_destroyed] surface=0000000d
+[16:42:13.964@28891] HOMESCREEN: sleep 0.5
+[16:42:14.486@28891] HOMESCREEN: #
+[16:42:14.506@28891] HOMESCREEN: # 10. End of Test
+[16:42:14.526@28891] HOMESCREEN: bye
diff --git a/tests/testlog/wayland-flower.log b/tests/testlog/wayland-flower.log
new file mode 100644
index 0000000..8a37f03
--- /dev/null
+++ b/tests/testlog/wayland-flower.log
@@ -0,0 +1,4 @@
+could not load cursor 'bottom_left_corner'
+could not load cursor 'bottom_right_corner'
+could not load cursor 'right_side'
+could not load cursor 'top_right_corner'
diff --git a/tests/testlog/wayland-smoke.log b/tests/testlog/wayland-smoke.log
new file mode 100644
index 0000000..8a37f03
--- /dev/null
+++ b/tests/testlog/wayland-smoke.log
@@ -0,0 +1,4 @@
+could not load cursor 'bottom_left_corner'
+could not load cursor 'bottom_right_corner'
+could not load cursor 'right_side'
+could not load cursor 'top_right_corner'
diff --git a/tests/testlog/weston.log b/tests/testlog/weston.log
new file mode 100644
index 0000000..aa3d83a
--- /dev/null
+++ b/tests/testlog/weston.log
@@ -0,0 +1,3403 @@
+Date: 2013-04-25 KST
+[16:40:47.557] weston 1.0.6
+ http://wayland.freedesktop.org/
+ Bug reports to: https://bugs.freedesktop.org/enter_bug.cgi?product=Wayland&component=weston&version=1.0.6
+ Build:
+[16:40:47.557] OS: Linux, 3.8.3-slp.3.1-x86-ivi, #1 SMP PREEMPT Thu Mar 21 18:32:53 UTC 2013, i686
+[16:40:47.557] warning: XDG_RUNTIME_DIR "/tmp/run-root" is not configured
+correctly. Unix access mode must be 0700 but is 755,
+and XDG_RUNTIME_DIR must be owned by the user, but is
+owned by UID 0.
+Refer to your distribution on how to get it, or
+http://www.freedesktop.org/wiki/Specifications/basedir-spec
+on how to implement it.
+[16:40:47.557] Loading module '/usr/lib/weston/drm-backend.so'
+[16:40:47.558] initializing drm backend
+[16:40:47.558] compositor: using new vt /dev/tty2
+[16:40:47.561] using /dev/dri/card0
+[16:40:47.611] Output VGA1, (connector 7, crtc 3)
+ mode 1280x1024@60.0, preferred, current
+ mode 1280x1024@75.0
+ mode 1280x960@75.0
+ mode 1280x960@60.0
+ mode 1152x864@75.0
+ mode 1024x768@75.1
+ mode 1024x768@70.1
+ mode 1024x768@60.0
+ mode 832x624@74.6
+ mode 800x600@72.2
+ mode 800x600@75.0
+ mode 800x600@60.3
+ mode 800x600@56.2
+ mode 640x480@72.8
+ mode 640x480@75.0
+ mode 640x480@66.7
+ mode 640x480@60.0
+ mode 720x400@70.1
+[16:40:47.695] Chosen EGL config details:
+ RGBA bits: 8 8 8 0
+ swap interval range: 0 - 0
+[16:40:47.700] EGL version: 1.4 (DRI2)
+[16:40:47.700] EGL vendor: Mesa Project
+[16:40:47.700] EGL client APIs: OpenGL OpenGL_ES OpenGL_ES2
+[16:40:47.700] EGL extensions: EGL_MESA_drm_image EGL_WL_bind_wayland_display
+ EGL_KHR_image_base EGL_KHR_gl_renderbuffer_image
+ EGL_KHR_surfaceless_context EGL_KHR_create_context
+[16:40:47.700] GL version: OpenGL ES 2.0 Mesa 9.0.3
+[16:40:47.700] GLSL version: OpenGL ES GLSL ES 1.0.16
+[16:40:47.700] GL vendor: Intel Open Source Technology Center
+[16:40:47.700] GL renderer: Mesa DRI Intel(R) Sandybridge Mobile x86/MMX/SSE2
+[16:40:47.700] GL extensions: GL_EXT_blend_minmax GL_EXT_multi_draw_arrays
+ GL_EXT_texture_filter_anisotropic
+ GL_EXT_texture_format_BGRA8888
+ GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24
+ GL_OES_element_index_uint GL_OES_fbo_render_mipmap
+ GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_standard_derivatives
+ GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_npot
+ GL_OES_EGL_image GL_OES_depth_texture
+ GL_OES_packed_depth_stencil GL_EXT_texture_type_2_10_10_10_REV
+ GL_APPLE_texture_max_level GL_EXT_read_format_bgra
+ GL_NV_fbo_color_attachments GL_OES_vertex_array_object
+ GL_EXT_texture_rg GL_EXT_unpack_subimage GL_NV_draw_buffers
+ GL_NV_read_buffer
+[16:40:47.737] GL ES 2 renderer features:
+ read-back format: BGRA
+ wl_shm sub-image to texture: yes
+ EGL Wayland extension: yes
+[16:40:47.759] input device Power Button, /dev/input/event1 is a keyboard
+[16:40:47.759] input device Video Bus, /dev/input/event2 is a keyboard
+[16:40:47.759] input device Power Button, /dev/input/event0 is a keyboard
+[16:40:47.759] input device CHICONY USB Keyboard, /dev/input/event3 is a keyboard
+[16:40:47.759] input device CHICONY USB Keyboard, /dev/input/event4 is a pointer
+[16:40:47.759] input device CHICONY USB Keyboard, /dev/input/event4 is a keyboard
+[16:40:47.759] input device UVC Camera (046d:0825), /dev/input/event9 is a keyboard
+[16:40:47.760] input device Logitech Logitech USB Optical Mouse, /dev/input/event7 is a pointer
+[16:40:47.760] input device C-Media Electronics Inc. USB Audio Device, /dev/input/event8 is a keyboard
+[16:40:47.760] input device ico_test_device, /dev/input/event10 is a pointer
+[16:40:47.760] Loading module '/usr/lib/weston/error_but_no_problem_for_test.so'
+[16:40:47.760] Failed to load module: /usr/lib/weston/error_but_no_problem_for_test.so: cannot open shared object file: No such file or directory
+[16:40:47.760] Loading module '/home/tizen/rpf/src/corepf/ico-uxf-weston-plugin-0.5.0/tests/../src/.libs/ico_plugin_loader.so'
+[16:40:47.760] INF>ico_plugin_loader: Enter(module_init) (ico_plugin_loader.c:169)
+[16:40:47.760] INF>ico_plugin_loader: Load(path=../src/.libs/ico_ivi_common.so entry=module_init) (ico_plugin_loader.c:111)
+[16:40:47.760] DBG>ico_plugin_loader: ../src/.libs/ico_ivi_common.so loading (ico_plugin_loader.c:124)
+[16:40:47.761] DBG>ico_plugin_loader: Call ../src/.libs/ico_ivi_common.so:module_init(b5c0bf90) (ico_plugin_loader.c:143)
+[16:40:47.761] INF>ico_ivi_common: Enter(module_init) (ico_ivi_common.c:312)
+[16:40:47.761] INF>ico_ivi_common: option flag=0x00000001 debug=4 (ico_ivi_common.c:320)
+[16:40:47.761] INF>ico_ivi_common: Leave(module_init) (ico_ivi_common.c:330)
+[16:40:47.761] INF>ico_plugin_loader: ../src/.libs/ico_ivi_common.so Loaded (ico_plugin_loader.c:145)
+[16:40:47.761] INF>ico_plugin_loader: Load(path=../src/.libs/ico_ivi_shell.so entry=module_init) (ico_plugin_loader.c:111)
+[16:40:47.761] DBG>ico_plugin_loader: ../src/.libs/ico_ivi_shell.so loading (ico_plugin_loader.c:124)
+[16:40:47.761] DBG>ico_plugin_loader: Call ../src/.libs/ico_ivi_shell.so:module_init(b5c07660) (ico_plugin_loader.c:143)
+[16:40:47.761] INF>ico_ivi_shell: Enter(module_init) (ico_ivi_shell.c:1854)
+[16:40:47.761] DBG>ico_ivi_shell: shell(08b46310) ivi_layer.link.08b46340=08b46340/08b46340 (ico_ivi_shell.c:1875)
+[16:40:47.761] INF>shell_configuration: Anima=0 Visible=0 Debug=4 (ico_ivi_shell.c:205)
+[16:40:47.761] INF>ico_ivi_shell: Leave(module_init) (ico_ivi_shell.c:1891)
+[16:40:47.761] INF>ico_plugin_loader: ../src/.libs/ico_ivi_shell.so Loaded (ico_plugin_loader.c:145)
+[16:40:47.761] INF>ico_plugin_loader: Load(path=../src/.libs/ico_window_mgr.so entry=module_init) (ico_plugin_loader.c:111)
+[16:40:47.761] DBG>ico_plugin_loader: ../src/.libs/ico_window_mgr.so loading (ico_plugin_loader.c:124)
+[16:40:47.769] DBG>ico_plugin_loader: Call ../src/.libs/ico_window_mgr.so:module_init(b5bff580) (ico_plugin_loader.c:143)
+[16:40:47.769] INF>ico_window_mgr: Enter(module_init) (ico_window_mgr.c:1556)
+[16:40:47.769] DBG>ico_window_mgr: sh=08b145c0 (ico_window_mgr.c:1570)
+[16:40:47.769] DBG>ico_window_mgr: wl_display_add_global(bind_ico_win_mgr) (ico_window_mgr.c:1578)
+[16:40:47.769] DBG>ico_window_mgr: NoedId=00000000 SurfaceIdBase=00000000 (ico_window_mgr.c:1592)
+[16:40:47.769] DBG>ivi_shell_hook_bind: Hook b5bfcd30 (ico_ivi_shell.c:1734)
+[16:40:47.769] DBG>ivi_shell_hook_unbind: Hook b5bfc9b0 (ico_ivi_shell.c:1750)
+[16:40:47.769] DBG>ivi_shell_hook_create: Hook b5bfdee0 (ico_ivi_shell.c:1768)
+[16:40:47.769] DBG>ivi_shell_hook_destroy: Hook b5bfdcd0 (ico_ivi_shell.c:1784)
+[16:40:47.769] DBG>ivi_shell_hook_map: Hook b5bfc5f0 (ico_ivi_shell.c:1801)
+[16:40:47.769] DBG>ivi_shell_hook_change: Hook b5bfd990 (ico_ivi_shell.c:1818)
+[16:40:47.769] DBG>ivi_shell_hook_select: Hook b5bfd880 (ico_ivi_shell.c:1834)
+[16:40:47.769] INF>ico_window_mgr: Leave(module_init) (ico_window_mgr.c:1610)
+[16:40:47.769] INF>ico_plugin_loader: ../src/.libs/ico_window_mgr.so Loaded (ico_plugin_loader.c:145)
+[16:40:47.769] INF>ico_plugin_loader: Load(path=../src/.libs/ico_input_mgr.so entry=module_init) (ico_plugin_loader.c:111)
+[16:40:47.770] DBG>ico_plugin_loader: ../src/.libs/ico_input_mgr.so loading (ico_plugin_loader.c:124)
+[16:40:47.770] DBG>ico_plugin_loader: Call ../src/.libs/ico_input_mgr.so:module_init(b5bf88e0) (ico_plugin_loader.c:143)
+[16:40:47.770] DBG>ico_input_mgr: Enter(module_init) (ico_input_mgr.c:926)
+[16:40:47.770] DBG>ico_input_mgr: Leave(module_init) (ico_input_mgr.c:966)
+[16:40:47.770] INF>ico_plugin_loader: ../src/.libs/ico_input_mgr.so Loaded (ico_plugin_loader.c:145)
+[16:40:47.770] INF>ico_plugin_loader: Leave(module_init) (ico_plugin_loader.c:202)
+[16:40:47.770] libwayland: using socket /tmp/run-root/wayland-0
+[16:40:47.815] unexpectedly large timestamp jump (from 1076047642 to 678803)
+[16:40:48.560] DBG>bind_shell: client=08bc8578 id=6 (ico_ivi_shell.c:1112)
+[16:40:48.560] DBG>bind_shell_client: Enter(client=08bc8578) (ico_window_mgr.c:414)
+[16:40:48.560] DBG>find_client_from_client: NULL (ico_window_mgr.c:293)
+[16:40:48.560] DBG>bind_shell_client: Create Client (ico_window_mgr.c:420)
+[16:40:48.560] DBG>bind_shell_client: client=08bc8578 pid=28891 uid=0 gid=0 (ico_window_mgr.c:432)
+[16:40:48.569] DBG>bind_shell_client: pid=28891 dose not exist in AppCore(AUL) (ico_window_mgr.c:444)
+[16:40:48.569] DBG>bind_shell_client: client=08bc8578 pid=28891 appid=<test-homescreen> from Process table (ico_window_mgr.c:483)
+[16:40:48.569] DBG>bind_shell_client: Leave (ico_window_mgr.c:495)
+[16:40:48.569] DBG>bind_ivi_shell: client=08bc8578 id=7 (ico_ivi_shell.c:1179)
+[16:40:48.569] DBG>bind_ico_win_mgr: Enter(client=08bc8578, id=8) (ico_window_mgr.c:1353)
+[16:40:48.569] DBG>bind_ico_win_mgr: Leave (ico_window_mgr.c:1365)
+[16:40:48.569] DBG>uifw_set_eventcb: Enter client=08bc8578 eventcb=1 (ico_window_mgr.c:772)
+[16:40:48.569] DBG>uifw_set_eventcb: Event Callback 0=>1 (ico_window_mgr.c:785)
+[16:40:48.569] DBG>uifw_set_eventcb: Leave(managers=1) (ico_window_mgr.c:804)
+[16:40:48.569] DBG>ico_control_bind: Enter(client=08bc8578) (ico_input_mgr.c:604)
+[16:40:48.569] DBG>ico_control_bind: Leave (ico_input_mgr.c:634)
+[16:40:48.569] DBG>ico_device_bind: Enter(client=08bc8578) (ico_input_mgr.c:680)
+[16:40:48.569] DBG>ico_device_bind: Leave (ico_input_mgr.c:686)
+[16:40:48.569] DBG>ico_exinput_bind: Enter(client=08bc8578,test-homescreen) (ico_input_mgr.c:727)
+[16:40:48.569] DBG>ico_exinput_bind: Leave (ico_input_mgr.c:785)
+[16:40:48.569] DBG>uifw_set_eventcb: Enter client=08bc8578 eventcb=1 (ico_window_mgr.c:772)
+[16:40:48.569] DBG>uifw_set_eventcb: Leave(managers=1) (ico_window_mgr.c:804)
+[16:40:48.570] DBG>shell_get_shell_surface: Enter (08baa788) client=08bc8578 (ico_ivi_shell.c:761)
+[16:40:48.570] DBG>create_shell_surface: (08baa788) [08b98608] client=b5c0a744 (visible=0) (ico_ivi_shell.c:704)
+[16:40:48.570] DBG>shell_get_shell_surface: Init shsurf(08b98608) weston_surf=08baa788 (ico_ivi_shell.c:782)
+[16:40:48.570] DBG>shell_get_shell_surface: call ivi_shell_hook_create(08bc8578,,08baa788,08b98608) (ico_ivi_shell.c:787)
+[16:40:48.570] DBG>client_register_surface: Enter(surf=08baa788,client=08bc8578,res=08a37be8) (ico_window_mgr.c:543)
+[16:40:48.570] DBG>find_uifw_win_surface_by_ws: NULL (ico_window_mgr.c:269)
+[16:40:48.570] DBG>generate_id: SurfaceId=00000001 (ico_window_mgr.c:357)
+[16:40:48.570] DBG>client_register_surface: Manager exist, Not visible (ico_window_mgr.c:569)
+[16:40:48.570] DBG>ivi_shell_set_visible: [08b98608] visible=-1 (ico_ivi_shell.c:1356)
+[16:40:48.570] DBG>ivi_shell_set_visible: No change (ico_ivi_shell.c:1377)
+[16:40:48.570] DBG>ivi_shell_set_layer: Enter([08b98608],08baa788,0) (ico_ivi_shell.c:1416)
+[16:40:48.570] DBG>ivi_shell_set_layer: New Layer 0 (ico_ivi_shell.c:1434)
+[16:40:48.570] DBG>ivi_shell_restack_ivi_layer: Enter[08b98608] (ico_ivi_shell.c:1220)
+[16:40:48.570] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:40:48.570] DBG>ivi_shell_set_layer: Leave (ico_ivi_shell.c:1471)
+[16:40:48.570] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) WINDOW_CREATED(surf=00000001,pid=28891,appid=test-homescreen) (ico_window_mgr.c:1448)
+[16:40:48.570] DBG>client_register_surface: Leave(surfaceId=00000001) (ico_window_mgr.c:627)
+[16:40:48.570] DBG>shell_get_shell_surface: ret ivi_shell_hook_create (ico_ivi_shell.c:789)
+[16:40:48.570] DBG>shell_get_shell_surface: Leave (ico_ivi_shell.c:791)
+[16:40:48.570] DBG>shell_surface_set_toplevel: Set TopLevel[08b98608] (ico_ivi_shell.c:373)
+[16:40:48.660] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000001 x/y/w/h=0/0/1280/1024 (ico_window_mgr.c:897)
+[16:40:48.661] DBG>uifw_set_positionsize: Old geometry x/y=16384/16384,w/h=0/0 (ico_window_mgr.c:931)
+[16:40:48.661] DBG>win_mgr_surface_change: Enter(08baa788,0,1) (ico_window_mgr.c:1208)
+[16:40:48.661] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000001,w/h=1280/1024) (ico_window_mgr.c:1220)
+[16:40:48.661] DBG>ivi_shell_send_configure: (08baa788) edges=a w/h=1280/1024 (ico_ivi_shell.c:1559)
+[16:40:48.661] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000001,app=test-homescreen,layer=0,x/y=0/0,w/h=1280/1024,hint=0) (ico_window_mgr.c:1464)
+[16:40:48.661] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:40:48.661] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:40:48.661] DBG>uifw_set_visible: Enter(surf=00000001,1,0) (ico_window_mgr.c:980)
+[16:40:48.661] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:40:48.661] DBG>ivi_shell_set_visible: [08b98608] visible=1 (ico_ivi_shell.c:1356)
+[16:40:48.661] DBG>ivi_shell_restack_ivi_layer: Enter[08b98608] (ico_ivi_shell.c:1220)
+[16:40:48.661] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:40:48.661] DBG>uifw_set_visible: Change to Visible (ico_window_mgr.c:1016)
+[16:40:48.661] DBG>ivi_shell_set_toplevel: (08baa788) (ico_ivi_shell.c:1520)
+[16:40:48.661] DBG>uifw_set_visible: Visible to Weston WSurf=08baa788,0/0/1280/1024 (ico_window_mgr.c:1023)
+[16:40:48.661] DBG>uifw_set_weston_surface: w/h=1280/1024->1280/1024 x/y=0/0->0/0 (ico_window_mgr.c:871)
+[16:40:48.661] DBG>ivi_shell_surface_configure: 08b98608 0,0(1280/1024) visible (ico_ivi_shell.c:1717)
+[16:40:48.661] DBG>ivi_shell_set_surfacetype: (08baa788) (ico_ivi_shell.c:1536)
+[16:40:48.661] DBG>set_surface_type: [08b98608] (08baa788) type=1 (ico_ivi_shell.c:265)
+[16:40:48.661] DBG>reset_shell_surface_type: [08b98608] (ico_ivi_shell.c:244)
+[16:40:48.661] DBG>ivi_shell_set_raise: Enter(08baa788,0) layer_list=0894f568 (ico_ivi_shell.c:1488)
+[16:40:48.661] DBG>ivi_shell_set_raise: Lower Link to Bottom (ico_ivi_shell.c:1499)
+[16:40:48.661] DBG>ivi_shell_restack_ivi_layer: Enter[08b98608] (ico_ivi_shell.c:1220)
+[16:40:48.661] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:40:48.661] DBG>ivi_shell_set_raise: Leave (ico_ivi_shell.c:1505)
+[16:40:48.661] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) VISIBLE(surf=00000001,vis=1,raise=0,hint=0) (ico_window_mgr.c:1455)
+[16:40:48.661] DBG>uifw_set_visible: Leave(OK) (ico_window_mgr.c:1065)
+[16:40:48.693] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=1280/1024) (ico_ivi_shell.c:1047)
+[16:40:48.693] DBG>ivi_shell_surface_configure: 08b98608 0,0(1280/1024) visible (ico_ivi_shell.c:1717)
+[16:40:48.693] DBG>shell_surface_configure: w/h=1280/1024->1280/1024 x/y=0/0->0/0 (ico_ivi_shell.c:1068)
+[16:40:48.693] DBG>win_mgr_surface_change_mgr: Enter(08baa788,x/y=0/0,w/h=1280/1024) (ico_window_mgr.c:1177)
+[16:40:48.693] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000001,app=test-homescreen,layer=0,x/y=0/0,w/h=1280/1024,hint=1) (ico_window_mgr.c:1464)
+[16:40:48.693] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:40:48.693] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:40:48.707] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=1280/1024) (ico_ivi_shell.c:1047)
+[16:40:48.707] DBG>ivi_shell_surface_configure: 08b98608 0,0(1280/1024) visible (ico_ivi_shell.c:1717)
+[16:40:48.707] DBG>shell_surface_configure: w/h=1280/1024->1280/1024 x/y=0/0->0/0 (ico_ivi_shell.c:1068)
+[16:40:48.707] DBG>win_mgr_surface_change_mgr: Enter(08baa788,x/y=0/0,w/h=1280/1024) (ico_window_mgr.c:1177)
+[16:40:48.707] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000001,app=test-homescreen,layer=0,x/y=0/0,w/h=1280/1024,hint=1) (ico_window_mgr.c:1464)
+[16:40:48.707] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:40:48.707] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:40:48.707] DBG>uifw_set_visible: Enter(surf=00000001,1,9) (ico_window_mgr.c:980)
+[16:40:48.707] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:40:48.707] DBG>uifw_set_visible: Leave(No Change) (ico_window_mgr.c:1028)
+[16:40:48.820] DBG>bind_shell: client=08b97018 id=6 (ico_ivi_shell.c:1112)
+[16:40:48.820] DBG>bind_shell_client: Enter(client=08b97018) (ico_window_mgr.c:414)
+[16:40:48.820] DBG>find_client_from_client: NULL (ico_window_mgr.c:293)
+[16:40:48.820] DBG>bind_shell_client: Create Client (ico_window_mgr.c:420)
+[16:40:48.820] DBG>bind_shell_client: client=08b97018 pid=28893 uid=0 gid=0 (ico_window_mgr.c:432)
+[16:40:48.823] DBG>bind_shell_client: pid=28893 dose not exist in AppCore(AUL) (ico_window_mgr.c:444)
+[16:40:48.823] DBG>bind_shell_client: client=08b97018 pid=28893 appid=<test-client> from Process table (ico_window_mgr.c:483)
+[16:40:48.823] DBG>bind_shell_client: Leave (ico_window_mgr.c:495)
+[16:40:48.823] DBG>bind_ivi_shell: client=08b97018 id=7 (ico_ivi_shell.c:1179)
+[16:40:48.823] DBG>bind_ico_win_mgr: Enter(client=08b97018, id=8) (ico_window_mgr.c:1353)
+[16:40:48.823] DBG>bind_ico_win_mgr: Leave (ico_window_mgr.c:1365)
+[16:40:48.823] DBG>ico_exinput_bind: Enter(client=08b97018,test-client) (ico_input_mgr.c:727)
+[16:40:48.823] DBG>ico_exinput_bind: Create App.test-client table (ico_input_mgr.c:747)
+[16:40:48.823] DBG>ico_exinput_bind: Leave (ico_input_mgr.c:785)
+[16:40:48.921] DBG>shell_get_shell_surface: Enter (08ba8300) client=08b97018 (ico_ivi_shell.c:761)
+[16:40:48.921] DBG>create_shell_surface: (08ba8300) [08bc4618] client=b5c0a744 (visible=0) (ico_ivi_shell.c:704)
+[16:40:48.921] DBG>shell_get_shell_surface: Init shsurf(08bc4618) weston_surf=08ba8300 (ico_ivi_shell.c:782)
+[16:40:48.921] DBG>shell_get_shell_surface: call ivi_shell_hook_create(08b97018,,08ba8300,08bc4618) (ico_ivi_shell.c:787)
+[16:40:48.921] DBG>client_register_surface: Enter(surf=08ba8300,client=08b97018,res=08ba4b18) (ico_window_mgr.c:543)
+[16:40:48.921] DBG>find_uifw_win_surface_by_ws: NULL (ico_window_mgr.c:269)
+[16:40:48.921] DBG>generate_id: SurfaceId=00000002 (ico_window_mgr.c:357)
+[16:40:48.921] DBG>client_register_surface: Manager exist, Not visible (ico_window_mgr.c:569)
+[16:40:48.921] DBG>ivi_shell_set_visible: [08bc4618] visible=-1 (ico_ivi_shell.c:1356)
+[16:40:48.921] DBG>ivi_shell_set_visible: No change (ico_ivi_shell.c:1377)
+[16:40:48.921] DBG>ivi_shell_set_layer: Enter([08bc4618],08ba8300,0) (ico_ivi_shell.c:1416)
+[16:40:48.921] DBG>ivi_shell_set_layer: el=0894f568(0) (ico_ivi_shell.c:1428)
+[16:40:48.921] DBG>ivi_shell_set_layer: Add surface to Layer 0 (ico_ivi_shell.c:1462)
+[16:40:48.921] DBG>ivi_shell_restack_ivi_layer: Enter[08bc4618] (ico_ivi_shell.c:1220)
+[16:40:48.921] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:40:48.922] DBG>ivi_shell_set_layer: Leave (ico_ivi_shell.c:1471)
+[16:40:48.922] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) WINDOW_CREATED(surf=00000002,pid=28893,appid=test-client) (ico_window_mgr.c:1448)
+[16:40:48.922] DBG>client_register_surface: Leave(surfaceId=00000002) (ico_window_mgr.c:627)
+[16:40:48.922] DBG>shell_get_shell_surface: ret ivi_shell_hook_create (ico_ivi_shell.c:789)
+[16:40:48.922] DBG>shell_get_shell_surface: Leave (ico_ivi_shell.c:791)
+[16:40:48.922] DBG>shell_surface_set_toplevel: Set TopLevel[08bc4618] (ico_ivi_shell.c:373)
+[16:40:49.043] DBG>set_surface_type: [08bc4618] (08ba8300) type=1 (ico_ivi_shell.c:265)
+[16:40:49.043] DBG>reset_shell_surface_type: [08bc4618] (ico_ivi_shell.c:244)
+[16:40:49.043] DBG>shell_surface_configure: configure to Buffer size(no Manager) x=16384+16384-16384 y=16384+16384-16384 (ico_ivi_shell.c:1080)
+[16:40:49.043] DBG>configure: Enter(08ba8300) [08bc4618] x/y=16384/16384, w/h=640/480 (ico_ivi_shell.c:965)
+[16:40:49.043] DBG>ivi_shell_surface_configure: 08bc4618 16384,16384(640/480) unvisible (ico_ivi_shell.c:1710)
+[16:40:49.043] DBG>configure: Leave (ico_ivi_shell.c:987)
+[16:40:49.054] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=640/480) (ico_ivi_shell.c:1047)
+[16:40:49.054] DBG>ivi_shell_surface_configure: 08bc4618 16384,16384(640/480) unvisible (ico_ivi_shell.c:1710)
+[16:40:49.054] DBG>shell_surface_configure: w/h=640/480->640/480 x/y=16384/16384->16384/16384 (ico_ivi_shell.c:1068)
+[16:40:49.054] DBG>win_mgr_surface_change_mgr: Enter(08ba8300,x/y=16384/16384,w/h=640/480) (ico_window_mgr.c:1177)
+[16:40:49.054] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000002,app=test-client,layer=0,x/y=16384/16384,w/h=640/480,hint=1) (ico_window_mgr.c:1464)
+[16:40:49.054] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:40:49.054] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:40:49.376] DBG>uifw_set_visible: Enter(surf=00000002,1,9) (ico_window_mgr.c:980)
+[16:40:49.376] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:40:49.376] DBG>uifw_set_visible: Set w/h=640/480 (ico_window_mgr.c:1009)
+[16:40:49.376] DBG>ivi_shell_set_visible: [08bc4618] visible=1 (ico_ivi_shell.c:1356)
+[16:40:49.376] DBG>ivi_shell_restack_ivi_layer: Enter[08bc4618] (ico_ivi_shell.c:1220)
+[16:40:49.376] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:40:49.376] DBG>uifw_set_visible: Change to Visible (ico_window_mgr.c:1016)
+[16:40:49.376] DBG>ivi_shell_set_toplevel: (08ba8300) (ico_ivi_shell.c:1520)
+[16:40:49.376] DBG>uifw_set_visible: Visible to Weston WSurf=08ba8300,0/0/640/480 (ico_window_mgr.c:1023)
+[16:40:49.376] DBG>uifw_set_weston_surface: w/h=640/480->640/480 x/y=0/0->0/0 (ico_window_mgr.c:871)
+[16:40:49.376] DBG>ivi_shell_surface_configure: 08bc4618 0,0(640/480) visible (ico_ivi_shell.c:1717)
+[16:40:49.376] DBG>ivi_shell_set_surfacetype: (08ba8300) (ico_ivi_shell.c:1536)
+[16:40:49.377] DBG>set_surface_type: [08bc4618] (08ba8300) type=1 (ico_ivi_shell.c:265)
+[16:40:49.377] DBG>reset_shell_surface_type: [08bc4618] (ico_ivi_shell.c:244)
+[16:40:49.377] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) VISIBLE(surf=00000002,vis=1,raise=9,hint=0) (ico_window_mgr.c:1455)
+[16:40:49.377] DBG>uifw_set_visible: Leave(OK) (ico_window_mgr.c:1065)
+[16:40:49.416] DBG>uifw_set_visible: Enter(surf=00000002,1,9) (ico_window_mgr.c:980)
+[16:40:49.416] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:40:49.416] DBG>uifw_set_visible: Leave(No Change) (ico_window_mgr.c:1028)
+[16:40:49.517] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=640/480) (ico_ivi_shell.c:1047)
+[16:40:49.517] DBG>ivi_shell_surface_configure: 08bc4618 0,0(640/480) visible (ico_ivi_shell.c:1717)
+[16:40:49.517] DBG>shell_surface_configure: w/h=640/480->640/480 x/y=0/0->0/0 (ico_ivi_shell.c:1068)
+[16:40:49.517] DBG>win_mgr_surface_change_mgr: Enter(08ba8300,x/y=0/0,w/h=640/480) (ico_window_mgr.c:1177)
+[16:40:49.517] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000002,app=test-client,layer=0,x/y=0/0,w/h=640/480,hint=1) (ico_window_mgr.c:1464)
+[16:40:49.517] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:40:49.517] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:40:50.159] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=640/480) (ico_ivi_shell.c:1047)
+[16:40:50.160] DBG>ivi_shell_surface_configure: 08bc4618 0,0(640/480) visible (ico_ivi_shell.c:1717)
+[16:40:50.160] DBG>shell_surface_configure: w/h=640/480->640/480 x/y=0/0->0/0 (ico_ivi_shell.c:1068)
+[16:40:50.160] DBG>win_mgr_surface_change_mgr: Enter(08ba8300,x/y=0/0,w/h=640/480) (ico_window_mgr.c:1177)
+[16:40:50.160] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000002,app=test-client,layer=0,x/y=0/0,w/h=640/480,hint=1) (ico_window_mgr.c:1464)
+[16:40:50.160] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:40:50.160] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:40:50.803] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=640/480) (ico_ivi_shell.c:1047)
+[16:40:50.803] DBG>ivi_shell_surface_configure: 08bc4618 0,0(640/480) visible (ico_ivi_shell.c:1717)
+[16:40:50.803] DBG>shell_surface_configure: w/h=640/480->640/480 x/y=0/0->0/0 (ico_ivi_shell.c:1068)
+[16:40:50.803] DBG>win_mgr_surface_change_mgr: Enter(08ba8300,x/y=0/0,w/h=640/480) (ico_window_mgr.c:1177)
+[16:40:50.803] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000002,app=test-client,layer=0,x/y=0/0,w/h=640/480,hint=1) (ico_window_mgr.c:1464)
+[16:40:50.803] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:40:50.803] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:40:51.446] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=640/480) (ico_ivi_shell.c:1047)
+[16:40:51.446] DBG>ivi_shell_surface_configure: 08bc4618 0,0(640/480) visible (ico_ivi_shell.c:1717)
+[16:40:51.446] DBG>shell_surface_configure: w/h=640/480->640/480 x/y=0/0->0/0 (ico_ivi_shell.c:1068)
+[16:40:51.446] DBG>win_mgr_surface_change_mgr: Enter(08ba8300,x/y=0/0,w/h=640/480) (ico_window_mgr.c:1177)
+[16:40:51.446] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000002,app=test-client,layer=0,x/y=0/0,w/h=640/480,hint=1) (ico_window_mgr.c:1464)
+[16:40:51.446] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:40:51.446] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:40:52.110] libwayland: disconnect from client 0x8b97018
+[16:40:52.110] DBG>unbind_shell (ico_ivi_shell.c:1135)
+[16:40:52.110] DBG>unbind_shell_client: Enter(client=08b97018) (ico_window_mgr.c:511)
+[16:40:52.110] DBG>unbind_shell_client: Leave (ico_window_mgr.c:519)
+[16:40:52.110] DBG>unbind_ivi_shell (ico_ivi_shell.c:1154)
+[16:40:52.110] DBG>unbind_ico_win_mgr: Enter (ico_window_mgr.c:1381)
+[16:40:52.110] DBG>unbind_ico_win_mgr: Leave (ico_window_mgr.c:1398)
+[16:40:52.110] DBG>ico_exinput_unbind: Enter(resource=08ba8270) (ico_input_mgr.c:805)
+[16:40:52.110] DBG>ico_exinput_unbind: find app.test-client (ico_input_mgr.c:809)
+[16:40:52.110] DBG>ico_exinput_unbind: Leave (ico_input_mgr.c:840)
+[16:40:52.110] DBG>shell_handle_surface_destroy: Enter [08bc4618] data=08ba8300 (ico_ivi_shell.c:645)
+[16:40:52.110] DBG>shell_destroy_shell_surface: Enter [08bc4618] (ico_ivi_shell.c:622)
+[16:40:52.110] DBG>destroy_shell_surface: Enter[08bc4618] (ico_ivi_shell.c:583)
+[16:40:52.110] DBG>ivi_shell_restack_ivi_layer: Enter[08bc4618] (ico_ivi_shell.c:1220)
+[16:40:52.110] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:40:52.110] DBG>destroy_shell_surface: call ivi_shell_hook_destroy(08ba8300) (ico_ivi_shell.c:595)
+[16:40:52.110] DBG>win_mgr_surface_destroy: Enter(08ba8300) (ico_window_mgr.c:1282)
+[16:40:52.110] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) DESTROYED surf=00000002 (ico_window_mgr.c:1472)
+[16:40:52.110] DBG>win_mgr_surface_destroy: Leave(OK) (ico_window_mgr.c:1332)
+[16:40:52.111] DBG>destroy_shell_surface: ret (ico_ivi_shell.c:597)
+[16:40:52.111] DBG>destroy_shell_surface: Leave (ico_ivi_shell.c:606)
+[16:40:52.111] DBG>shell_destroy_shell_surface: Leave (ico_ivi_shell.c:626)
+[16:40:52.111] DBG>shell_handle_surface_destroy: Leave (ico_ivi_shell.c:653)
+[16:40:53.244] DBG>bind_shell: client=089ede80 id=6 (ico_ivi_shell.c:1112)
+[16:40:53.244] DBG>bind_shell_client: Enter(client=089ede80) (ico_window_mgr.c:414)
+[16:40:53.244] DBG>find_client_from_client: NULL (ico_window_mgr.c:293)
+[16:40:53.244] DBG>bind_shell_client: Create Client (ico_window_mgr.c:420)
+[16:40:53.244] DBG>bind_shell_client: client=089ede80 pid=28908 uid=0 gid=0 (ico_window_mgr.c:432)
+[16:40:53.247] DBG>bind_shell_client: pid=28908 dose not exist in AppCore(AUL) (ico_window_mgr.c:444)
+[16:40:53.247] DBG>bind_shell_client: client=089ede80 pid=28908 appid=<test-client> from Process table (ico_window_mgr.c:483)
+[16:40:53.247] DBG>bind_shell_client: Leave (ico_window_mgr.c:495)
+[16:40:53.247] DBG>bind_ivi_shell: client=089ede80 id=7 (ico_ivi_shell.c:1179)
+[16:40:53.247] DBG>bind_ico_win_mgr: Enter(client=089ede80, id=8) (ico_window_mgr.c:1353)
+[16:40:53.247] DBG>bind_ico_win_mgr: Leave (ico_window_mgr.c:1365)
+[16:40:53.247] DBG>ico_exinput_bind: Enter(client=089ede80,test-client) (ico_input_mgr.c:727)
+[16:40:53.247] DBG>ico_exinput_bind: Create App.test-client table (ico_input_mgr.c:747)
+[16:40:53.247] DBG>ico_exinput_bind: Leave (ico_input_mgr.c:785)
+[16:40:53.345] DBG>shell_get_shell_surface: Enter (08b96da8) client=089ede80 (ico_ivi_shell.c:761)
+[16:40:53.345] DBG>create_shell_surface: (08b96da8) [08ba81d8] client=b5c0a744 (visible=0) (ico_ivi_shell.c:704)
+[16:40:53.345] DBG>shell_get_shell_surface: Init shsurf(08ba81d8) weston_surf=08b96da8 (ico_ivi_shell.c:782)
+[16:40:53.345] DBG>shell_get_shell_surface: call ivi_shell_hook_create(089ede80,,08b96da8,08ba81d8) (ico_ivi_shell.c:787)
+[16:40:53.345] DBG>client_register_surface: Enter(surf=08b96da8,client=089ede80,res=08ba47d8) (ico_window_mgr.c:543)
+[16:40:53.345] DBG>find_uifw_win_surface_by_ws: NULL (ico_window_mgr.c:269)
+[16:40:53.345] DBG>generate_id: SurfaceId=00000003 (ico_window_mgr.c:357)
+[16:40:53.345] DBG>client_register_surface: Manager exist, Not visible (ico_window_mgr.c:569)
+[16:40:53.345] DBG>ivi_shell_set_visible: [08ba81d8] visible=-1 (ico_ivi_shell.c:1356)
+[16:40:53.345] DBG>ivi_shell_set_visible: No change (ico_ivi_shell.c:1377)
+[16:40:53.345] DBG>ivi_shell_set_layer: Enter([08ba81d8],08b96da8,0) (ico_ivi_shell.c:1416)
+[16:40:53.345] DBG>ivi_shell_set_layer: el=0894f568(0) (ico_ivi_shell.c:1428)
+[16:40:53.345] DBG>ivi_shell_set_layer: Add surface to Layer 0 (ico_ivi_shell.c:1462)
+[16:40:53.345] DBG>ivi_shell_restack_ivi_layer: Enter[08ba81d8] (ico_ivi_shell.c:1220)
+[16:40:53.345] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:40:53.345] DBG>ivi_shell_set_layer: Leave (ico_ivi_shell.c:1471)
+[16:40:53.345] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) WINDOW_CREATED(surf=00000003,pid=28908,appid=test-client) (ico_window_mgr.c:1448)
+[16:40:53.345] DBG>client_register_surface: Leave(surfaceId=00000003) (ico_window_mgr.c:627)
+[16:40:53.345] DBG>shell_get_shell_surface: ret ivi_shell_hook_create (ico_ivi_shell.c:789)
+[16:40:53.345] DBG>shell_get_shell_surface: Leave (ico_ivi_shell.c:791)
+[16:40:53.345] DBG>shell_surface_set_toplevel: Set TopLevel[08ba81d8] (ico_ivi_shell.c:373)
+[16:40:53.465] DBG>set_surface_type: [08ba81d8] (08b96da8) type=1 (ico_ivi_shell.c:265)
+[16:40:53.465] DBG>reset_shell_surface_type: [08ba81d8] (ico_ivi_shell.c:244)
+[16:40:53.465] DBG>shell_surface_configure: configure to Buffer size(no Manager) x=16384+16384-16384 y=16384+16384-16384 (ico_ivi_shell.c:1080)
+[16:40:53.465] DBG>configure: Enter(08b96da8) [08ba81d8] x/y=16384/16384, w/h=640/480 (ico_ivi_shell.c:965)
+[16:40:53.465] DBG>ivi_shell_surface_configure: 08ba81d8 16384,16384(640/480) unvisible (ico_ivi_shell.c:1710)
+[16:40:53.465] DBG>configure: Leave (ico_ivi_shell.c:987)
+[16:40:53.800] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000003 x/y/w/h=16384/16384/600/400 (ico_window_mgr.c:897)
+[16:40:53.800] DBG>uifw_set_positionsize: Old geometry x/y=16384/16384,w/h=640/480 (ico_window_mgr.c:931)
+[16:40:53.800] DBG>uifw_set_positionsize: Fixed Geometry, Change(Vis=0) (ico_window_mgr.c:946)
+[16:40:53.800] DBG>uifw_set_weston_surface: w/h=600/400->600/400 x/y=0/0->0/0 (ico_window_mgr.c:871)
+[16:40:53.800] DBG>ivi_shell_surface_configure: 08ba81d8 0,0(600/400) unvisible (ico_ivi_shell.c:1710)
+[16:40:53.800] DBG>win_mgr_surface_change: Enter(08b96da8,0,1) (ico_window_mgr.c:1208)
+[16:40:53.800] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000003,w/h=600/400) (ico_window_mgr.c:1220)
+[16:40:53.800] DBG>ivi_shell_send_configure: (08b96da8) edges=a w/h=600/400 (ico_ivi_shell.c:1559)
+[16:40:53.800] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000003,app=test-client,layer=0,x/y=0/0,w/h=600/400,hint=0) (ico_window_mgr.c:1464)
+[16:40:53.800] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:40:53.800] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:40:53.818] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=640/480) (ico_ivi_shell.c:1047)
+[16:40:53.818] DBG>ivi_shell_surface_configure: 08ba81d8 0,0(600/400) unvisible (ico_ivi_shell.c:1710)
+[16:40:53.819] DBG>shell_surface_configure: w/h=600/400->600/400 x/y=0/0->16384/16384 (ico_ivi_shell.c:1068)
+[16:40:53.819] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=0/0,w/h=640/480) (ico_window_mgr.c:1177)
+[16:40:53.819] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000003,app=test-client,layer=0,x/y=0/0,w/h=640/480,hint=1) (ico_window_mgr.c:1464)
+[16:40:53.819] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:40:53.819] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:40:53.820] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000003 x/y/w/h=300/100/16384/16384 (ico_window_mgr.c:897)
+[16:40:53.820] DBG>uifw_set_positionsize: Old geometry x/y=16384/16384,w/h=600/400 (ico_window_mgr.c:931)
+[16:40:53.820] DBG>uifw_set_positionsize: Fixed Geometry, Change(Vis=0) (ico_window_mgr.c:946)
+[16:40:53.820] DBG>uifw_set_weston_surface: w/h=600/400->600/400 x/y=300/100->300/100 (ico_window_mgr.c:871)
+[16:40:53.820] DBG>ivi_shell_surface_configure: 08ba81d8 300,100(600/400) unvisible (ico_ivi_shell.c:1710)
+[16:40:53.820] DBG>win_mgr_surface_change: Enter(08b96da8,0,1) (ico_window_mgr.c:1208)
+[16:40:53.820] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000003,w/h=600/400) (ico_window_mgr.c:1220)
+[16:40:53.820] DBG>ivi_shell_send_configure: (08b96da8) edges=a w/h=600/400 (ico_ivi_shell.c:1559)
+[16:40:53.820] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000003,app=test-client,layer=0,x/y=300/100,w/h=600/400,hint=0) (ico_window_mgr.c:1464)
+[16:40:53.820] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:40:53.820] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:40:53.840] DBG>uifw_set_visible: Enter(surf=00000003,1,9) (ico_window_mgr.c:980)
+[16:40:53.840] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:40:53.840] DBG>ivi_shell_set_visible: [08ba81d8] visible=1 (ico_ivi_shell.c:1356)
+[16:40:53.840] DBG>ivi_shell_restack_ivi_layer: Enter[08ba81d8] (ico_ivi_shell.c:1220)
+[16:40:53.840] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:40:53.840] DBG>uifw_set_visible: Change to Visible (ico_window_mgr.c:1016)
+[16:40:53.841] DBG>ivi_shell_set_toplevel: (08b96da8) (ico_ivi_shell.c:1520)
+[16:40:53.841] DBG>uifw_set_visible: Visible to Weston WSurf=08b96da8,300/100/600/400 (ico_window_mgr.c:1023)
+[16:40:53.841] DBG>uifw_set_weston_surface: w/h=600/400->600/400 x/y=300/100->300/100 (ico_window_mgr.c:871)
+[16:40:53.841] DBG>ivi_shell_surface_configure: 08ba81d8 300,100(600/400) visible (ico_ivi_shell.c:1717)
+[16:40:53.841] DBG>ivi_shell_set_surfacetype: (08b96da8) (ico_ivi_shell.c:1536)
+[16:40:53.841] DBG>set_surface_type: [08ba81d8] (08b96da8) type=1 (ico_ivi_shell.c:265)
+[16:40:53.841] DBG>reset_shell_surface_type: [08ba81d8] (ico_ivi_shell.c:244)
+[16:40:53.841] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) VISIBLE(surf=00000003,vis=1,raise=9,hint=0) (ico_window_mgr.c:1455)
+[16:40:53.841] DBG>uifw_set_visible: Leave(OK) (ico_window_mgr.c:1065)
+[16:40:53.881] DBG>uifw_set_visible: Enter(surf=00000003,1,9) (ico_window_mgr.c:980)
+[16:40:53.881] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:40:53.881] DBG>uifw_set_visible: Leave(No Change) (ico_window_mgr.c:1028)
+[16:40:54.884] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000003 x/y/w/h=320/120/16384/16384 (ico_window_mgr.c:897)
+[16:40:54.885] DBG>uifw_set_positionsize: Old geometry x/y=300/100,w/h=600/400 (ico_window_mgr.c:931)
+[16:40:54.885] DBG>uifw_set_positionsize: Fixed Geometry, Change(Vis=1) (ico_window_mgr.c:946)
+[16:40:54.885] DBG>uifw_set_weston_surface: w/h=600/400->600/400 x/y=320/120->320/120 (ico_window_mgr.c:871)
+[16:40:54.885] DBG>ivi_shell_surface_configure: 08ba81d8 320,120(600/400) visible (ico_ivi_shell.c:1717)
+[16:40:54.885] DBG>win_mgr_surface_change: Enter(08b96da8,0,1) (ico_window_mgr.c:1208)
+[16:40:54.885] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000003,w/h=600/400) (ico_window_mgr.c:1220)
+[16:40:54.885] DBG>ivi_shell_send_configure: (08b96da8) edges=a w/h=600/400 (ico_ivi_shell.c:1559)
+[16:40:54.885] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000003,app=test-client,layer=0,x/y=320/120,w/h=600/400,hint=0) (ico_window_mgr.c:1464)
+[16:40:54.885] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:40:54.885] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:40:55.427] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000003 x/y/w/h=340/140/16384/16384 (ico_window_mgr.c:897)
+[16:40:55.427] DBG>uifw_set_positionsize: Old geometry x/y=320/120,w/h=600/400 (ico_window_mgr.c:931)
+[16:40:55.427] DBG>uifw_set_positionsize: Fixed Geometry, Change(Vis=1) (ico_window_mgr.c:946)
+[16:40:55.427] DBG>uifw_set_weston_surface: w/h=600/400->600/400 x/y=340/140->340/140 (ico_window_mgr.c:871)
+[16:40:55.428] DBG>ivi_shell_surface_configure: 08ba81d8 340,140(600/400) visible (ico_ivi_shell.c:1717)
+[16:40:55.428] DBG>win_mgr_surface_change: Enter(08b96da8,0,1) (ico_window_mgr.c:1208)
+[16:40:55.428] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000003,w/h=600/400) (ico_window_mgr.c:1220)
+[16:40:55.428] DBG>ivi_shell_send_configure: (08b96da8) edges=a w/h=600/400 (ico_ivi_shell.c:1559)
+[16:40:55.428] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000003,app=test-client,layer=0,x/y=340/140,w/h=600/400,hint=0) (ico_window_mgr.c:1464)
+[16:40:55.428] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:40:55.428] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:40:55.969] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000003 x/y/w/h=360/160/16384/16384 (ico_window_mgr.c:897)
+[16:40:55.969] DBG>uifw_set_positionsize: Old geometry x/y=340/140,w/h=600/400 (ico_window_mgr.c:931)
+[16:40:55.969] DBG>uifw_set_positionsize: Fixed Geometry, Change(Vis=1) (ico_window_mgr.c:946)
+[16:40:55.969] DBG>uifw_set_weston_surface: w/h=600/400->600/400 x/y=360/160->360/160 (ico_window_mgr.c:871)
+[16:40:55.969] DBG>ivi_shell_surface_configure: 08ba81d8 360,160(600/400) visible (ico_ivi_shell.c:1717)
+[16:40:55.969] DBG>win_mgr_surface_change: Enter(08b96da8,0,1) (ico_window_mgr.c:1208)
+[16:40:55.969] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000003,w/h=600/400) (ico_window_mgr.c:1220)
+[16:40:55.969] DBG>ivi_shell_send_configure: (08b96da8) edges=a w/h=600/400 (ico_ivi_shell.c:1559)
+[16:40:55.969] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000003,app=test-client,layer=0,x/y=360/160,w/h=600/400,hint=0) (ico_window_mgr.c:1464)
+[16:40:55.969] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:40:55.969] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:40:56.511] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000003 x/y/w/h=380/180/16384/16384 (ico_window_mgr.c:897)
+[16:40:56.511] DBG>uifw_set_positionsize: Old geometry x/y=360/160,w/h=600/400 (ico_window_mgr.c:931)
+[16:40:56.511] DBG>uifw_set_positionsize: Fixed Geometry, Change(Vis=1) (ico_window_mgr.c:946)
+[16:40:56.512] DBG>uifw_set_weston_surface: w/h=600/400->600/400 x/y=380/180->380/180 (ico_window_mgr.c:871)
+[16:40:56.512] DBG>ivi_shell_surface_configure: 08ba81d8 380,180(600/400) visible (ico_ivi_shell.c:1717)
+[16:40:56.512] DBG>win_mgr_surface_change: Enter(08b96da8,0,1) (ico_window_mgr.c:1208)
+[16:40:56.512] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000003,w/h=600/400) (ico_window_mgr.c:1220)
+[16:40:56.512] DBG>ivi_shell_send_configure: (08b96da8) edges=a w/h=600/400 (ico_ivi_shell.c:1559)
+[16:40:56.512] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000003,app=test-client,layer=0,x/y=380/180,w/h=600/400,hint=0) (ico_window_mgr.c:1464)
+[16:40:56.512] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:40:56.512] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:40:57.054] DBG>uifw_set_visible: Enter(surf=00000003,0,9) (ico_window_mgr.c:980)
+[16:40:57.054] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:40:57.054] DBG>ivi_shell_set_visible: [08ba81d8] visible=0 (ico_ivi_shell.c:1356)
+[16:40:57.054] DBG>ivi_shell_restack_ivi_layer: Enter[08ba81d8] (ico_ivi_shell.c:1220)
+[16:40:57.054] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:40:57.054] DBG>uifw_set_visible: Change to UnVisible (ico_window_mgr.c:1036)
+[16:40:57.054] DBG>uifw_set_weston_surface: w/h=600/400->600/400 x/y=380/180->380/180 (ico_window_mgr.c:871)
+[16:40:57.054] DBG>ivi_shell_surface_configure: 08ba81d8 380,180(600/400) unvisible (ico_ivi_shell.c:1710)
+[16:40:57.054] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) VISIBLE(surf=00000003,vis=0,raise=9,hint=0) (ico_window_mgr.c:1455)
+[16:40:57.054] DBG>uifw_set_visible: Leave(OK) (ico_window_mgr.c:1065)
+[16:40:57.094] DBG>uifw_set_visible: Enter(surf=00000003,0,9) (ico_window_mgr.c:980)
+[16:40:57.094] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:40:57.094] DBG>uifw_set_visible: Leave(No Change) (ico_window_mgr.c:1042)
+[16:40:58.098] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000003 x/y/w/h=100/200/16384/16384 (ico_window_mgr.c:897)
+[16:40:58.098] DBG>uifw_set_positionsize: Old geometry x/y=16384/16384,w/h=600/400 (ico_window_mgr.c:931)
+[16:40:58.098] DBG>uifw_set_positionsize: Fixed Geometry, Change(Vis=0) (ico_window_mgr.c:946)
+[16:40:58.098] DBG>uifw_set_weston_surface: w/h=600/400->600/400 x/y=100/200->100/200 (ico_window_mgr.c:871)
+[16:40:58.098] DBG>ivi_shell_surface_configure: 08ba81d8 100,200(600/400) unvisible (ico_ivi_shell.c:1710)
+[16:40:58.098] DBG>win_mgr_surface_change: Enter(08b96da8,0,1) (ico_window_mgr.c:1208)
+[16:40:58.098] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000003,w/h=600/400) (ico_window_mgr.c:1220)
+[16:40:58.098] DBG>ivi_shell_send_configure: (08b96da8) edges=a w/h=600/400 (ico_ivi_shell.c:1559)
+[16:40:58.098] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000003,app=test-client,layer=0,x/y=100/200,w/h=600/400,hint=0) (ico_window_mgr.c:1464)
+[16:40:58.098] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:40:58.098] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:40:58.118] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000003 x/y/w/h=16384/16384/150/100 (ico_window_mgr.c:897)
+[16:40:58.118] DBG>uifw_set_positionsize: Old geometry x/y=16384/16384,w/h=600/400 (ico_window_mgr.c:931)
+[16:40:58.118] DBG>uifw_set_positionsize: Fixed Geometry, Change(Vis=0) (ico_window_mgr.c:946)
+[16:40:58.118] DBG>uifw_set_weston_surface: w/h=150/100->150/100 x/y=100/200->100/200 (ico_window_mgr.c:871)
+[16:40:58.118] DBG>ivi_shell_surface_configure: 08ba81d8 100,200(150/100) unvisible (ico_ivi_shell.c:1710)
+[16:40:58.118] DBG>win_mgr_surface_change: Enter(08b96da8,0,1) (ico_window_mgr.c:1208)
+[16:40:58.118] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000003,w/h=150/100) (ico_window_mgr.c:1220)
+[16:40:58.118] DBG>ivi_shell_send_configure: (08b96da8) edges=a w/h=150/100 (ico_ivi_shell.c:1559)
+[16:40:58.118] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000003,app=test-client,layer=0,x/y=100/200,w/h=150/100,hint=0) (ico_window_mgr.c:1464)
+[16:40:58.118] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:40:58.118] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:40:58.138] DBG>uifw_set_visible: Enter(surf=00000003,1,9) (ico_window_mgr.c:980)
+[16:40:58.138] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:40:58.138] DBG>ivi_shell_set_visible: [08ba81d8] visible=1 (ico_ivi_shell.c:1356)
+[16:40:58.138] DBG>ivi_shell_restack_ivi_layer: Enter[08ba81d8] (ico_ivi_shell.c:1220)
+[16:40:58.138] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:40:58.138] DBG>uifw_set_visible: Change to Visible (ico_window_mgr.c:1016)
+[16:40:58.138] DBG>ivi_shell_set_toplevel: (08b96da8) (ico_ivi_shell.c:1520)
+[16:40:58.138] DBG>uifw_set_visible: Visible to Weston WSurf=08b96da8,100/200/150/100 (ico_window_mgr.c:1023)
+[16:40:58.138] DBG>uifw_set_weston_surface: w/h=150/100->150/100 x/y=100/200->100/200 (ico_window_mgr.c:871)
+[16:40:58.138] DBG>ivi_shell_surface_configure: 08ba81d8 100,200(150/100) visible (ico_ivi_shell.c:1717)
+[16:40:58.138] DBG>ivi_shell_set_surfacetype: (08b96da8) (ico_ivi_shell.c:1536)
+[16:40:58.139] DBG>set_surface_type: [08ba81d8] (08b96da8) type=1 (ico_ivi_shell.c:265)
+[16:40:58.139] DBG>reset_shell_surface_type: [08ba81d8] (ico_ivi_shell.c:244)
+[16:40:58.139] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) VISIBLE(surf=00000003,vis=1,raise=9,hint=0) (ico_window_mgr.c:1455)
+[16:40:58.139] DBG>uifw_set_visible: Leave(OK) (ico_window_mgr.c:1065)
+[16:40:58.178] DBG>uifw_set_visible: Enter(surf=00000003,1,9) (ico_window_mgr.c:980)
+[16:40:58.179] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:40:58.179] DBG>uifw_set_visible: Leave(No Change) (ico_window_mgr.c:1028)
+[16:40:58.781] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000003 x/y/w/h=16384/16384/300/200 (ico_window_mgr.c:897)
+[16:40:58.781] DBG>uifw_set_positionsize: Old geometry x/y=100/200,w/h=150/100 (ico_window_mgr.c:931)
+[16:40:58.781] DBG>uifw_set_positionsize: Fixed Geometry, Change(Vis=1) (ico_window_mgr.c:946)
+[16:40:58.781] DBG>uifw_set_weston_surface: w/h=300/200->300/200 x/y=100/200->100/200 (ico_window_mgr.c:871)
+[16:40:58.781] DBG>ivi_shell_surface_configure: 08ba81d8 100,200(300/200) visible (ico_ivi_shell.c:1717)
+[16:40:58.781] DBG>win_mgr_surface_change: Enter(08b96da8,0,1) (ico_window_mgr.c:1208)
+[16:40:58.781] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000003,w/h=300/200) (ico_window_mgr.c:1220)
+[16:40:58.781] DBG>ivi_shell_send_configure: (08b96da8) edges=a w/h=300/200 (ico_ivi_shell.c:1559)
+[16:40:58.781] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000003,app=test-client,layer=0,x/y=100/200,w/h=300/200,hint=0) (ico_window_mgr.c:1464)
+[16:40:58.781] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:40:58.781] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:40:59.423] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000003 x/y/w/h=16384/16384/450/300 (ico_window_mgr.c:897)
+[16:40:59.423] DBG>uifw_set_positionsize: Old geometry x/y=100/200,w/h=300/200 (ico_window_mgr.c:931)
+[16:40:59.423] DBG>uifw_set_positionsize: Fixed Geometry, Change(Vis=1) (ico_window_mgr.c:946)
+[16:40:59.424] DBG>uifw_set_weston_surface: w/h=450/300->450/300 x/y=100/200->100/200 (ico_window_mgr.c:871)
+[16:40:59.424] DBG>ivi_shell_surface_configure: 08ba81d8 100,200(450/300) visible (ico_ivi_shell.c:1717)
+[16:40:59.424] DBG>win_mgr_surface_change: Enter(08b96da8,0,1) (ico_window_mgr.c:1208)
+[16:40:59.424] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000003,w/h=450/300) (ico_window_mgr.c:1220)
+[16:40:59.424] DBG>ivi_shell_send_configure: (08b96da8) edges=a w/h=450/300 (ico_ivi_shell.c:1559)
+[16:40:59.424] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000003,app=test-client,layer=0,x/y=100/200,w/h=450/300,hint=0) (ico_window_mgr.c:1464)
+[16:40:59.424] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:40:59.424] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:41:00.066] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000003 x/y/w/h=16384/16384/600/400 (ico_window_mgr.c:897)
+[16:41:00.066] DBG>uifw_set_positionsize: Old geometry x/y=100/200,w/h=450/300 (ico_window_mgr.c:931)
+[16:41:00.066] DBG>uifw_set_positionsize: Fixed Geometry, Change(Vis=1) (ico_window_mgr.c:946)
+[16:41:00.066] DBG>uifw_set_weston_surface: w/h=600/400->600/400 x/y=100/200->100/200 (ico_window_mgr.c:871)
+[16:41:00.066] DBG>ivi_shell_surface_configure: 08ba81d8 100,200(600/400) visible (ico_ivi_shell.c:1717)
+[16:41:00.066] DBG>win_mgr_surface_change: Enter(08b96da8,0,1) (ico_window_mgr.c:1208)
+[16:41:00.066] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000003,w/h=600/400) (ico_window_mgr.c:1220)
+[16:41:00.066] DBG>ivi_shell_send_configure: (08b96da8) edges=a w/h=600/400 (ico_ivi_shell.c:1559)
+[16:41:00.066] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000003,app=test-client,layer=0,x/y=100/200,w/h=600/400,hint=0) (ico_window_mgr.c:1464)
+[16:41:00.066] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:00.066] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:41:00.709] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000003 x/y/w/h=16384/16384/400/250 (ico_window_mgr.c:897)
+[16:41:00.709] DBG>uifw_set_positionsize: Old geometry x/y=100/200,w/h=600/400 (ico_window_mgr.c:931)
+[16:41:00.709] DBG>uifw_set_positionsize: Fixed Geometry, Change(Vis=1) (ico_window_mgr.c:946)
+[16:41:00.709] DBG>uifw_set_weston_surface: w/h=400/250->400/250 x/y=100/200->100/200 (ico_window_mgr.c:871)
+[16:41:00.709] DBG>ivi_shell_surface_configure: 08ba81d8 100,200(400/250) visible (ico_ivi_shell.c:1717)
+[16:41:00.709] DBG>win_mgr_surface_change: Enter(08b96da8,0,1) (ico_window_mgr.c:1208)
+[16:41:00.709] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000003,w/h=400/250) (ico_window_mgr.c:1220)
+[16:41:00.709] DBG>ivi_shell_send_configure: (08b96da8) edges=a w/h=400/250 (ico_ivi_shell.c:1559)
+[16:41:00.709] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000003,app=test-client,layer=0,x/y=100/200,w/h=400/250,hint=0) (ico_window_mgr.c:1464)
+[16:41:00.709] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:00.709] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:41:01.351] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000003 x/y/w/h=16384/16384/200/150 (ico_window_mgr.c:897)
+[16:41:01.352] DBG>uifw_set_positionsize: Old geometry x/y=100/200,w/h=400/250 (ico_window_mgr.c:931)
+[16:41:01.352] DBG>uifw_set_positionsize: Fixed Geometry, Change(Vis=1) (ico_window_mgr.c:946)
+[16:41:01.352] DBG>uifw_set_weston_surface: w/h=200/150->200/150 x/y=100/200->100/200 (ico_window_mgr.c:871)
+[16:41:01.352] DBG>ivi_shell_surface_configure: 08ba81d8 100,200(200/150) visible (ico_ivi_shell.c:1717)
+[16:41:01.352] DBG>win_mgr_surface_change: Enter(08b96da8,0,1) (ico_window_mgr.c:1208)
+[16:41:01.352] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000003,w/h=200/150) (ico_window_mgr.c:1220)
+[16:41:01.352] DBG>ivi_shell_send_configure: (08b96da8) edges=a w/h=200/150 (ico_ivi_shell.c:1559)
+[16:41:01.352] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000003,app=test-client,layer=0,x/y=100/200,w/h=200/150,hint=0) (ico_window_mgr.c:1464)
+[16:41:01.352] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:01.352] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:41:01.932] libwayland: disconnect from client 0x89ede80
+[16:41:01.932] DBG>unbind_shell (ico_ivi_shell.c:1135)
+[16:41:01.932] DBG>unbind_shell_client: Enter(client=089ede80) (ico_window_mgr.c:511)
+[16:41:01.932] DBG>unbind_shell_client: Leave (ico_window_mgr.c:519)
+[16:41:01.932] DBG>unbind_ivi_shell (ico_ivi_shell.c:1154)
+[16:41:01.932] DBG>unbind_ico_win_mgr: Enter (ico_window_mgr.c:1381)
+[16:41:01.932] DBG>unbind_ico_win_mgr: Leave (ico_window_mgr.c:1398)
+[16:41:01.932] DBG>ico_exinput_unbind: Enter(resource=089f0188) (ico_input_mgr.c:805)
+[16:41:01.933] DBG>ico_exinput_unbind: find app.test-client (ico_input_mgr.c:809)
+[16:41:01.933] DBG>ico_exinput_unbind: Leave (ico_input_mgr.c:840)
+[16:41:01.933] DBG>shell_handle_surface_destroy: Enter [08ba81d8] data=08b96da8 (ico_ivi_shell.c:645)
+[16:41:01.933] DBG>shell_destroy_shell_surface: Enter [08ba81d8] (ico_ivi_shell.c:622)
+[16:41:01.933] DBG>destroy_shell_surface: Enter[08ba81d8] (ico_ivi_shell.c:583)
+[16:41:01.933] DBG>ivi_shell_restack_ivi_layer: Enter[08ba81d8] (ico_ivi_shell.c:1220)
+[16:41:01.933] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:01.933] DBG>destroy_shell_surface: call ivi_shell_hook_destroy(08b96da8) (ico_ivi_shell.c:595)
+[16:41:01.933] DBG>win_mgr_surface_destroy: Enter(08b96da8) (ico_window_mgr.c:1282)
+[16:41:01.933] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) DESTROYED surf=00000003 (ico_window_mgr.c:1472)
+[16:41:01.933] DBG>win_mgr_surface_destroy: Leave(OK) (ico_window_mgr.c:1332)
+[16:41:01.933] DBG>destroy_shell_surface: ret (ico_ivi_shell.c:597)
+[16:41:01.933] DBG>destroy_shell_surface: Leave (ico_ivi_shell.c:606)
+[16:41:01.933] DBG>shell_destroy_shell_surface: Leave (ico_ivi_shell.c:626)
+[16:41:01.933] DBG>shell_handle_surface_destroy: Leave (ico_ivi_shell.c:653)
+[16:41:04.232] DBG>bind_shell: client=08bc6638 id=11 (ico_ivi_shell.c:1112)
+[16:41:04.232] DBG>bind_shell_client: Enter(client=08bc6638) (ico_window_mgr.c:414)
+[16:41:04.232] DBG>find_client_from_client: NULL (ico_window_mgr.c:293)
+[16:41:04.232] DBG>bind_shell_client: Create Client (ico_window_mgr.c:420)
+[16:41:04.232] DBG>bind_shell_client: client=08bc6638 pid=28923 uid=0 gid=0 (ico_window_mgr.c:432)
+[16:41:04.234] DBG>bind_shell_client: pid=28923 dose not exist in AppCore(AUL) (ico_window_mgr.c:444)
+[16:41:04.234] DBG>bind_shell_client: client=08bc6638 pid=28923 appid=<wayland-flower> from Process table (ico_window_mgr.c:483)
+[16:41:04.234] DBG>bind_shell_client: Leave (ico_window_mgr.c:495)
+[16:41:04.234] DBG>shell_get_shell_surface: Enter (08ba81d8) client=08bc6638 (ico_ivi_shell.c:761)
+[16:41:04.234] DBG>create_shell_surface: (08ba81d8) [08ba8448] client=b5c0a744 (visible=0) (ico_ivi_shell.c:704)
+[16:41:04.234] DBG>shell_get_shell_surface: Init shsurf(08ba8448) weston_surf=08ba81d8 (ico_ivi_shell.c:782)
+[16:41:04.234] DBG>shell_get_shell_surface: call ivi_shell_hook_create(08bc6638,,08ba81d8,08ba8448) (ico_ivi_shell.c:787)
+[16:41:04.234] DBG>client_register_surface: Enter(surf=08ba81d8,client=08bc6638,res=08ba46f8) (ico_window_mgr.c:543)
+[16:41:04.234] DBG>find_uifw_win_surface_by_ws: NULL (ico_window_mgr.c:269)
+[16:41:04.234] DBG>generate_id: SurfaceId=00000004 (ico_window_mgr.c:357)
+[16:41:04.234] DBG>client_register_surface: Manager exist, Not visible (ico_window_mgr.c:569)
+[16:41:04.234] DBG>ivi_shell_set_visible: [08ba8448] visible=-1 (ico_ivi_shell.c:1356)
+[16:41:04.234] DBG>ivi_shell_set_visible: No change (ico_ivi_shell.c:1377)
+[16:41:04.234] DBG>ivi_shell_set_layer: Enter([08ba8448],08ba81d8,0) (ico_ivi_shell.c:1416)
+[16:41:04.234] DBG>ivi_shell_set_layer: el=0894f568(0) (ico_ivi_shell.c:1428)
+[16:41:04.234] DBG>ivi_shell_set_layer: Add surface to Layer 0 (ico_ivi_shell.c:1462)
+[16:41:04.234] DBG>ivi_shell_restack_ivi_layer: Enter[08ba8448] (ico_ivi_shell.c:1220)
+[16:41:04.234] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:04.234] DBG>ivi_shell_set_layer: Leave (ico_ivi_shell.c:1471)
+[16:41:04.234] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) WINDOW_CREATED(surf=00000004,pid=28923,appid=wayland-flower) (ico_window_mgr.c:1448)
+[16:41:04.234] DBG>client_register_surface: Leave(surfaceId=00000004) (ico_window_mgr.c:627)
+[16:41:04.234] DBG>shell_get_shell_surface: ret ivi_shell_hook_create (ico_ivi_shell.c:789)
+[16:41:04.234] DBG>shell_get_shell_surface: Leave (ico_ivi_shell.c:791)
+[16:41:04.234] DBG>shell_surface_set_title: [08ba8448] Flower (ico_ivi_shell.c:510)
+[16:41:04.234] DBG>shell_surface_set_toplevel: Set TopLevel[08ba8448] (ico_ivi_shell.c:373)
+[16:41:04.234] DBG>set_surface_type: [08ba8448] (08ba81d8) type=1 (ico_ivi_shell.c:265)
+[16:41:04.234] DBG>reset_shell_surface_type: [08ba8448] (ico_ivi_shell.c:244)
+[16:41:04.234] DBG>shell_surface_configure: map Buffer size(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1026)
+[16:41:04.234] DBG>map: Enter(08ba81d8) sx/sy=0/0, w/h=200/200 (ico_ivi_shell.c:857)
+[16:41:04.234] DBG>map: TopLevel x/y=0/0 w/h=200/200 (ico_ivi_shell.c:873)
+[16:41:04.234] DBG>ivi_shell_restack_ivi_layer: Enter[08ba8448] (ico_ivi_shell.c:1220)
+[16:41:04.234] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:04.234] DBG>map: call ivi_shell_hook_map(08ba81d8, x/y=0/0, w/h=200/200) (ico_ivi_shell.c:927)
+[16:41:04.234] DBG>win_mgr_map_surface: Enter(08ba81d8, x/y=0/0 w/h=200/200) (ico_window_mgr.c:649)
+[16:41:04.234] DBG>win_mgr_map_surface: surf=00000004 w/h=0/0 vis=0 (ico_window_mgr.c:656)
+[16:41:04.235] DBG>win_mgr_map_surface: HomeScreen not regist Surface, Change PositionSize(surf=00000004 x/y=0/0 w/h=200/200) (ico_window_mgr.c:671)
+[16:41:04.235] DBG>win_mgr_map_surface: Change size and position (ico_window_mgr.c:687)
+[16:41:04.235] DBG>win_mgr_map_surface: Leave (ico_window_mgr.c:696)
+[16:41:04.235] DBG>map: ret ivi_shell_hook_map(08ba81d8, x/y=0/0, w/h=1/1) (ico_ivi_shell.c:930)
+[16:41:04.235] DBG>map: call ivi_shell_hook_change(08ba81d8) (ico_ivi_shell.c:935)
+[16:41:04.235] DBG>win_mgr_surface_change: Enter(08ba81d8,-1,1) (ico_window_mgr.c:1208)
+[16:41:04.235] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000004,app=wayland-flower,layer=0,x/y=0/0,w/h=200/200,hint=0) (ico_window_mgr.c:1464)
+[16:41:04.235] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:04.235] DBG>map: ret ivi_shell_hook_change (ico_ivi_shell.c:937)
+[16:41:04.235] DBG>map: Leave (ico_ivi_shell.c:939)
+[16:41:04.712] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000004 x/y/w/h=200/100/16384/16384 (ico_window_mgr.c:897)
+[16:41:04.713] DBG>uifw_set_positionsize: Old geometry x/y=0/0,w/h=200/200 (ico_window_mgr.c:931)
+[16:41:04.713] DBG>uifw_set_positionsize: Fixed Geometry, Change(Vis=0) (ico_window_mgr.c:946)
+[16:41:04.713] DBG>uifw_set_weston_surface: w/h=200/200->200/200 x/y=200/100->200/100 (ico_window_mgr.c:871)
+[16:41:04.713] DBG>ivi_shell_surface_configure: 08ba8448 200,100(200/200) unvisible (ico_ivi_shell.c:1710)
+[16:41:04.713] DBG>win_mgr_surface_change: Enter(08ba81d8,0,1) (ico_window_mgr.c:1208)
+[16:41:04.713] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000004,w/h=200/200) (ico_window_mgr.c:1220)
+[16:41:04.713] DBG>ivi_shell_send_configure: (08ba81d8) edges=a w/h=200/200 (ico_ivi_shell.c:1559)
+[16:41:04.713] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000004,app=wayland-flower,layer=0,x/y=200/100,w/h=200/200,hint=0) (ico_window_mgr.c:1464)
+[16:41:04.713] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:04.713] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:41:04.715] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:04.715] DBG>ivi_shell_surface_configure: 08ba8448 200,100(200/200) unvisible (ico_ivi_shell.c:1710)
+[16:41:04.715] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=200/100->16384/16384 (ico_ivi_shell.c:1068)
+[16:41:04.715] DBG>win_mgr_surface_change_mgr: Enter(08ba81d8,x/y=200/100,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:04.715] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000004,app=wayland-flower,layer=0,x/y=200/100,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:04.715] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:04.715] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:04.733] DBG>uifw_set_visible: Enter(surf=00000004,1,9) (ico_window_mgr.c:980)
+[16:41:04.733] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:04.733] DBG>ivi_shell_set_visible: [08ba8448] visible=1 (ico_ivi_shell.c:1356)
+[16:41:04.733] DBG>ivi_shell_restack_ivi_layer: Enter[08ba8448] (ico_ivi_shell.c:1220)
+[16:41:04.733] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:04.733] DBG>uifw_set_visible: Change to Visible (ico_window_mgr.c:1016)
+[16:41:04.733] DBG>ivi_shell_set_toplevel: (08ba81d8) (ico_ivi_shell.c:1520)
+[16:41:04.733] DBG>uifw_set_visible: Visible to Weston WSurf=08ba81d8,200/100/200/200 (ico_window_mgr.c:1023)
+[16:41:04.733] DBG>uifw_set_weston_surface: w/h=200/200->200/200 x/y=200/100->200/100 (ico_window_mgr.c:871)
+[16:41:04.733] DBG>ivi_shell_surface_configure: 08ba8448 200,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:04.733] DBG>ivi_shell_set_surfacetype: (08ba81d8) (ico_ivi_shell.c:1536)
+[16:41:04.733] DBG>set_surface_type: [08ba8448] (08ba81d8) type=1 (ico_ivi_shell.c:265)
+[16:41:04.733] DBG>reset_shell_surface_type: [08ba8448] (ico_ivi_shell.c:244)
+[16:41:04.733] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) VISIBLE(surf=00000004,vis=1,raise=9,hint=0) (ico_window_mgr.c:1455)
+[16:41:04.733] DBG>uifw_set_visible: Leave(OK) (ico_window_mgr.c:1065)
+[16:41:04.773] DBG>uifw_set_visible: Enter(surf=00000004,1,9) (ico_window_mgr.c:980)
+[16:41:04.773] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:04.773] DBG>uifw_set_visible: Leave(No Change) (ico_window_mgr.c:1028)
+[16:41:05.777] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000004 x/y/w/h=16384/16384/500/400 (ico_window_mgr.c:897)
+[16:41:05.777] DBG>uifw_set_positionsize: Old geometry x/y=200/100,w/h=200/200 (ico_window_mgr.c:931)
+[16:41:05.777] DBG>uifw_set_positionsize: Fixed Geometry, Change(Vis=1) (ico_window_mgr.c:946)
+[16:41:05.777] DBG>uifw_set_weston_surface: w/h=500/400->200/200 x/y=200/100->350/200 (ico_window_mgr.c:871)
+[16:41:05.777] DBG>ivi_shell_surface_configure: 08ba8448 350,200(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:05.777] DBG>win_mgr_surface_change: Enter(08ba81d8,0,1) (ico_window_mgr.c:1208)
+[16:41:05.777] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000004,w/h=500/400) (ico_window_mgr.c:1220)
+[16:41:05.777] DBG>ivi_shell_send_configure: (08ba81d8) edges=a w/h=500/400 (ico_ivi_shell.c:1559)
+[16:41:05.777] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000004,app=wayland-flower,layer=0,x/y=200/100,w/h=500/400,hint=0) (ico_window_mgr.c:1464)
+[16:41:05.777] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:05.777] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:41:05.779] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:05.779] DBG>ivi_shell_surface_configure: 08ba8448 350,200(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:05.779] DBG>shell_surface_configure: w/h=500/400->200/200 x/y=200/100->350/200 (ico_ivi_shell.c:1068)
+[16:41:05.779] DBG>win_mgr_surface_change_mgr: Enter(08ba81d8,x/y=200/100,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:05.779] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000004,app=wayland-flower,layer=0,x/y=200/100,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:05.779] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:05.779] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:08.126] libwayland: disconnect from client 0x8bc6638
+[16:41:08.126] DBG>unbind_shell (ico_ivi_shell.c:1135)
+[16:41:08.126] DBG>unbind_shell_client: Enter(client=08bc6638) (ico_window_mgr.c:511)
+[16:41:08.126] DBG>unbind_shell_client: Leave (ico_window_mgr.c:519)
+[16:41:08.126] DBG>shell_handle_surface_destroy: Enter [08ba8448] data=08ba81d8 (ico_ivi_shell.c:645)
+[16:41:08.126] DBG>shell_destroy_shell_surface: Enter [08ba8448] (ico_ivi_shell.c:622)
+[16:41:08.126] DBG>destroy_shell_surface: Enter[08ba8448] (ico_ivi_shell.c:583)
+[16:41:08.126] DBG>ivi_shell_restack_ivi_layer: Enter[08ba8448] (ico_ivi_shell.c:1220)
+[16:41:08.126] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:08.126] DBG>destroy_shell_surface: call ivi_shell_hook_destroy(08ba81d8) (ico_ivi_shell.c:595)
+[16:41:08.126] DBG>win_mgr_surface_destroy: Enter(08ba81d8) (ico_window_mgr.c:1282)
+[16:41:08.126] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) DESTROYED surf=00000004 (ico_window_mgr.c:1472)
+[16:41:08.126] DBG>win_mgr_surface_destroy: Leave(OK) (ico_window_mgr.c:1332)
+[16:41:08.126] DBG>destroy_shell_surface: ret (ico_ivi_shell.c:597)
+[16:41:08.126] DBG>destroy_shell_surface: Leave (ico_ivi_shell.c:606)
+[16:41:08.126] DBG>shell_destroy_shell_surface: Leave (ico_ivi_shell.c:626)
+[16:41:08.126] DBG>shell_handle_surface_destroy: Leave (ico_ivi_shell.c:653)
+[16:41:09.463] DBG>bind_shell: client=08a4c8a0 id=11 (ico_ivi_shell.c:1112)
+[16:41:09.463] DBG>bind_shell_client: Enter(client=08a4c8a0) (ico_window_mgr.c:414)
+[16:41:09.463] DBG>find_client_from_client: NULL (ico_window_mgr.c:293)
+[16:41:09.463] DBG>bind_shell_client: Create Client (ico_window_mgr.c:420)
+[16:41:09.463] DBG>bind_shell_client: client=08a4c8a0 pid=29301 uid=0 gid=0 (ico_window_mgr.c:432)
+[16:41:09.464] DBG>bind_shell_client: pid=29301 dose not exist in AppCore(AUL) (ico_window_mgr.c:444)
+[16:41:09.464] DBG>bind_shell_client: client=08a4c8a0 pid=29301 appid=<wayland-smoke> from Process table (ico_window_mgr.c:483)
+[16:41:09.464] DBG>bind_shell_client: Leave (ico_window_mgr.c:495)
+[16:41:09.464] DBG>shell_get_shell_surface: Enter (08b96da8) client=08a4c8a0 (ico_ivi_shell.c:761)
+[16:41:09.464] DBG>create_shell_surface: (08b96da8) [089f0050] client=b5c0a744 (visible=0) (ico_ivi_shell.c:704)
+[16:41:09.464] DBG>shell_get_shell_surface: Init shsurf(089f0050) weston_surf=08b96da8 (ico_ivi_shell.c:782)
+[16:41:09.464] DBG>shell_get_shell_surface: call ivi_shell_hook_create(08a4c8a0,,08b96da8,089f0050) (ico_ivi_shell.c:787)
+[16:41:09.464] DBG>client_register_surface: Enter(surf=08b96da8,client=08a4c8a0,res=08ba4820) (ico_window_mgr.c:543)
+[16:41:09.464] DBG>find_uifw_win_surface_by_ws: NULL (ico_window_mgr.c:269)
+[16:41:09.464] DBG>generate_id: SurfaceId=00000005 (ico_window_mgr.c:357)
+[16:41:09.464] DBG>client_register_surface: Manager exist, Not visible (ico_window_mgr.c:569)
+[16:41:09.464] DBG>ivi_shell_set_visible: [089f0050] visible=-1 (ico_ivi_shell.c:1356)
+[16:41:09.464] DBG>ivi_shell_set_visible: No change (ico_ivi_shell.c:1377)
+[16:41:09.464] DBG>ivi_shell_set_layer: Enter([089f0050],08b96da8,0) (ico_ivi_shell.c:1416)
+[16:41:09.464] DBG>ivi_shell_set_layer: el=0894f568(0) (ico_ivi_shell.c:1428)
+[16:41:09.464] DBG>ivi_shell_set_layer: Add surface to Layer 0 (ico_ivi_shell.c:1462)
+[16:41:09.464] DBG>ivi_shell_restack_ivi_layer: Enter[089f0050] (ico_ivi_shell.c:1220)
+[16:41:09.464] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:09.464] DBG>ivi_shell_set_layer: Leave (ico_ivi_shell.c:1471)
+[16:41:09.464] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) WINDOW_CREATED(surf=00000005,pid=29301,appid=wayland-smoke) (ico_window_mgr.c:1448)
+[16:41:09.464] DBG>client_register_surface: Leave(surfaceId=00000005) (ico_window_mgr.c:627)
+[16:41:09.464] DBG>shell_get_shell_surface: ret ivi_shell_hook_create (ico_ivi_shell.c:789)
+[16:41:09.464] DBG>shell_get_shell_surface: Leave (ico_ivi_shell.c:791)
+[16:41:09.465] DBG>shell_surface_set_title: [089f0050] smoke (ico_ivi_shell.c:510)
+[16:41:09.465] DBG>shell_surface_set_toplevel: Set TopLevel[089f0050] (ico_ivi_shell.c:373)
+[16:41:09.465] DBG>set_surface_type: [089f0050] (08b96da8) type=1 (ico_ivi_shell.c:265)
+[16:41:09.465] DBG>reset_shell_surface_type: [089f0050] (ico_ivi_shell.c:244)
+[16:41:09.465] DBG>shell_surface_configure: map Buffer size(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1026)
+[16:41:09.465] DBG>map: Enter(08b96da8) sx/sy=0/0, w/h=200/200 (ico_ivi_shell.c:857)
+[16:41:09.465] DBG>map: TopLevel x/y=0/0 w/h=200/200 (ico_ivi_shell.c:873)
+[16:41:09.465] DBG>ivi_shell_restack_ivi_layer: Enter[089f0050] (ico_ivi_shell.c:1220)
+[16:41:09.465] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:09.465] DBG>map: call ivi_shell_hook_map(08b96da8, x/y=0/0, w/h=200/200) (ico_ivi_shell.c:927)
+[16:41:09.465] DBG>win_mgr_map_surface: Enter(08b96da8, x/y=0/0 w/h=200/200) (ico_window_mgr.c:649)
+[16:41:09.465] DBG>win_mgr_map_surface: surf=00000005 w/h=0/0 vis=0 (ico_window_mgr.c:656)
+[16:41:09.465] DBG>win_mgr_map_surface: HomeScreen not regist Surface, Change PositionSize(surf=00000005 x/y=0/0 w/h=200/200) (ico_window_mgr.c:671)
+[16:41:09.465] DBG>win_mgr_map_surface: Change size and position (ico_window_mgr.c:687)
+[16:41:09.465] DBG>win_mgr_map_surface: Leave (ico_window_mgr.c:696)
+[16:41:09.465] DBG>map: ret ivi_shell_hook_map(08b96da8, x/y=0/0, w/h=1/1) (ico_ivi_shell.c:930)
+[16:41:09.465] DBG>map: call ivi_shell_hook_change(08b96da8) (ico_ivi_shell.c:935)
+[16:41:09.465] DBG>win_mgr_surface_change: Enter(08b96da8,-1,1) (ico_window_mgr.c:1208)
+[16:41:09.465] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=0/0,w/h=200/200,hint=0) (ico_window_mgr.c:1464)
+[16:41:09.465] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:09.465] DBG>map: ret ivi_shell_hook_change (ico_ivi_shell.c:937)
+[16:41:09.465] DBG>map: Leave (ico_ivi_shell.c:939)
+[16:41:09.499] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:09.499] DBG>ivi_shell_surface_configure: 089f0050 0,0(200/200) unvisible (ico_ivi_shell.c:1710)
+[16:41:09.499] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=0/0->16384/16384 (ico_ivi_shell.c:1068)
+[16:41:09.499] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=0/0,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:09.499] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=0/0,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:09.499] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:09.499] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:09.539] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:09.539] DBG>ivi_shell_surface_configure: 089f0050 0,0(200/200) unvisible (ico_ivi_shell.c:1710)
+[16:41:09.539] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=0/0->16384/16384 (ico_ivi_shell.c:1068)
+[16:41:09.539] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=0/0,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:09.539] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=0/0,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:09.539] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:09.539] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:09.954] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000005 x/y/w/h=100/50/16384/16384 (ico_window_mgr.c:897)
+[16:41:09.954] DBG>uifw_set_positionsize: Old geometry x/y=16384/16384,w/h=200/200 (ico_window_mgr.c:931)
+[16:41:09.954] DBG>uifw_set_positionsize: Fixed Geometry, Change(Vis=0) (ico_window_mgr.c:946)
+[16:41:09.954] DBG>uifw_set_weston_surface: w/h=200/200->200/200 x/y=100/50->100/50 (ico_window_mgr.c:871)
+[16:41:09.954] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) unvisible (ico_ivi_shell.c:1710)
+[16:41:09.954] DBG>win_mgr_surface_change: Enter(08b96da8,0,1) (ico_window_mgr.c:1208)
+[16:41:09.954] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000005,w/h=200/200) (ico_window_mgr.c:1220)
+[16:41:09.954] DBG>ivi_shell_send_configure: (08b96da8) edges=a w/h=200/200 (ico_ivi_shell.c:1559)
+[16:41:09.954] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=0) (ico_window_mgr.c:1464)
+[16:41:09.954] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:09.954] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:41:09.974] DBG>uifw_set_visible: Enter(surf=00000005,1,9) (ico_window_mgr.c:980)
+[16:41:09.974] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:09.974] DBG>ivi_shell_set_visible: [089f0050] visible=1 (ico_ivi_shell.c:1356)
+[16:41:09.974] DBG>ivi_shell_restack_ivi_layer: Enter[089f0050] (ico_ivi_shell.c:1220)
+[16:41:09.974] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:09.974] DBG>uifw_set_visible: Change to Visible (ico_window_mgr.c:1016)
+[16:41:09.975] DBG>ivi_shell_set_toplevel: (08b96da8) (ico_ivi_shell.c:1520)
+[16:41:09.975] DBG>uifw_set_visible: Visible to Weston WSurf=08b96da8,100/50/200/200 (ico_window_mgr.c:1023)
+[16:41:09.975] DBG>uifw_set_weston_surface: w/h=200/200->200/200 x/y=100/50->100/50 (ico_window_mgr.c:871)
+[16:41:09.975] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:09.975] DBG>ivi_shell_set_surfacetype: (08b96da8) (ico_ivi_shell.c:1536)
+[16:41:09.975] DBG>set_surface_type: [089f0050] (08b96da8) type=1 (ico_ivi_shell.c:265)
+[16:41:09.975] DBG>reset_shell_surface_type: [089f0050] (ico_ivi_shell.c:244)
+[16:41:09.975] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) VISIBLE(surf=00000005,vis=1,raise=9,hint=0) (ico_window_mgr.c:1455)
+[16:41:09.975] DBG>uifw_set_visible: Leave(OK) (ico_window_mgr.c:1065)
+[16:41:09.989] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:09.989] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:09.989] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:09.989] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:09.989] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:09.989] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:09.989] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:10.015] DBG>uifw_set_visible: Enter(surf=00000005,1,9) (ico_window_mgr.c:980)
+[16:41:10.015] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:10.015] DBG>uifw_set_visible: Leave(No Change) (ico_window_mgr.c:1028)
+[16:41:10.017] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:10.017] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:10.017] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:10.017] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:10.017] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:10.017] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:10.017] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:10.055] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:10.055] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:10.055] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:10.055] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:10.055] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:10.055] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:10.055] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:10.089] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:10.089] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:10.089] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:10.089] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:10.089] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:10.089] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:10.089] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:10.122] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:10.122] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:10.122] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:10.122] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:10.123] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:10.123] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:10.123] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:10.155] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:10.155] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:10.155] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:10.155] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:10.155] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:10.155] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:10.155] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:10.188] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:10.188] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:10.188] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:10.188] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:10.188] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:10.188] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:10.188] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:10.223] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:10.223] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:10.223] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:10.223] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:10.223] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:10.223] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:10.223] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:10.257] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:10.257] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:10.257] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:10.257] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:10.258] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:10.258] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:10.258] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:10.288] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:10.288] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:10.288] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:10.288] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:10.288] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:10.288] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:10.288] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:10.323] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:10.323] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:10.323] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:10.323] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:10.323] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:10.323] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:10.323] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:10.345] DBG>click_to_activate_binding: call ivi_shell_hook_select[089f0050] (ico_ivi_shell.c:1325)
+[16:41:10.345] DBG>win_mgr_surface_select: Enter(08b96da8) (ico_window_mgr.c:1250)
+[16:41:10.345] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) ACTIVE surf=00000005 active=2 (ico_window_mgr.c:1478)
+[16:41:10.345] DBG>win_mgr_surface_select: Leave(OK) (ico_window_mgr.c:1263)
+[16:41:10.345] DBG>click_to_activate_binding: ret ivi_shell_hook_select (ico_ivi_shell.c:1327)
+[16:41:10.364] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:10.364] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:10.364] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:10.364] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:10.364] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:10.364] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:10.364] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:10.424] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:10.424] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:10.424] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:10.424] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:10.424] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:10.424] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:10.424] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:10.478] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:10.478] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:10.478] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:10.478] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:10.478] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:10.478] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:10.478] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:10.530] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:10.530] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:10.530] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:10.530] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:10.530] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:10.530] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:10.530] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:10.599] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:10.599] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:10.599] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:10.599] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:10.599] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:10.599] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:10.599] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:10.667] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:10.667] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:10.667] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:10.667] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:10.667] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:10.667] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:10.667] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:10.732] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:10.732] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:10.732] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:10.732] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:10.732] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:10.732] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:10.732] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:10.796] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:10.796] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:10.796] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:10.796] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:10.796] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:10.796] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:10.796] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:10.861] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:10.861] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:10.861] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:10.861] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:10.861] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:10.861] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:10.861] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:10.907] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:10.907] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:10.907] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:10.907] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:10.907] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:10.907] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:10.907] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:10.953] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:10.953] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:10.953] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:10.953] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:10.953] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:10.953] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:10.953] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.000] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.000] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.000] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:11.000] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.000] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.000] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.000] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.047] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.047] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.047] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:11.047] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.047] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.047] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.047] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.095] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.095] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.095] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:11.095] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.095] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.095] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.095] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.144] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.144] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.144] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:11.144] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.144] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.144] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.144] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.176] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.176] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.176] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:11.176] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.176] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.176] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.176] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.208] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.208] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.208] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:11.208] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.208] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.208] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.208] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.241] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.241] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.241] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:11.241] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.241] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.241] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.241] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.274] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.274] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.274] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:11.274] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.274] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.274] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.274] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.307] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.307] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.307] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:11.307] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.307] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.307] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.307] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.341] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.341] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.341] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:11.341] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.341] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.341] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.341] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.374] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.374] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.374] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:11.374] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.374] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.374] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.374] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.407] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.407] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.407] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:11.408] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.408] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.408] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.408] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.441] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.441] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.441] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:11.441] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.441] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.441] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.441] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.474] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.474] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.474] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:11.474] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.474] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.474] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.474] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.507] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.507] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.507] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:11.507] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.507] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.507] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.507] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.541] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.541] DBG>ivi_shell_surface_configure: 089f0050 100,50(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.541] DBG>shell_surface_configure: w/h=200/200->200/200 x/y=100/50->100/50 (ico_ivi_shell.c:1068)
+[16:41:11.541] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.541] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.541] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.541] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.542] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000005 x/y/w/h=16384/16384/400/400 (ico_window_mgr.c:897)
+[16:41:11.542] DBG>uifw_set_positionsize: Old geometry x/y=100/50,w/h=200/200 (ico_window_mgr.c:931)
+[16:41:11.542] DBG>uifw_set_positionsize: Fixed Geometry, Change(Vis=1) (ico_window_mgr.c:946)
+[16:41:11.542] DBG>uifw_set_weston_surface: w/h=400/400->200/200 x/y=100/50->200/150 (ico_window_mgr.c:871)
+[16:41:11.542] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.542] DBG>win_mgr_surface_change: Enter(08b96da8,0,1) (ico_window_mgr.c:1208)
+[16:41:11.542] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000005,w/h=400/400) (ico_window_mgr.c:1220)
+[16:41:11.542] DBG>ivi_shell_send_configure: (08b96da8) edges=a w/h=400/400 (ico_ivi_shell.c:1559)
+[16:41:11.542] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=400/400,hint=0) (ico_window_mgr.c:1464)
+[16:41:11.542] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:11.542] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:41:11.572] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.572] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.572] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:11.572] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.572] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.572] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.572] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.607] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.607] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.607] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:11.607] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.607] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.607] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.607] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.641] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.641] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.641] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:11.641] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.641] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.641] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.641] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.674] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.674] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.674] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:11.674] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.674] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.674] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.674] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.708] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.708] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.708] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:11.708] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.708] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.708] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.708] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.741] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.741] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.741] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:11.741] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.741] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.741] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.741] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.774] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.774] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.774] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:11.774] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.774] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.774] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.774] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.808] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.808] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.808] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:11.808] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.808] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.808] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.808] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.841] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.841] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.841] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:11.841] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.841] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.841] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.841] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.874] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.874] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.874] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:11.874] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.874] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.874] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.874] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.903] DBG>click_to_activate_binding: ShellSurface[089f0050] already active (ico_ivi_shell.c:1331)
+[16:41:11.908] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.908] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.908] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:11.908] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.908] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.908] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.908] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.939] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.939] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.939] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:11.939] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.939] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.939] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.939] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:11.975] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:11.975] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:11.975] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:11.975] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:11.975] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:11.975] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:11.975] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.008] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.008] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.008] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.008] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.008] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.008] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.008] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.041] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.041] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.041] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.041] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.041] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.041] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.041] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.075] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.075] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.075] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.075] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.075] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.075] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.075] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.108] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.108] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.108] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.108] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.108] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.108] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.108] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.141] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.141] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.141] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.141] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.142] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.142] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.142] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.175] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.175] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.175] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.175] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.175] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.175] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.175] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.208] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.208] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.208] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.208] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.208] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.208] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.208] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.241] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.241] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.241] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.241] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.241] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.242] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.242] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.275] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.275] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.275] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.275] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.275] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.275] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.275] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.308] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.308] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.308] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.308] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.308] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.308] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.308] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.341] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.341] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.341] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.341] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.341] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.342] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.342] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.375] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.375] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.375] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.375] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.375] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.375] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.375] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.408] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.408] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.408] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.408] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.408] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.408] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.408] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.441] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.441] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.441] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.441] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.441] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.441] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.441] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.475] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.475] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.475] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.475] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.475] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.475] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.475] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.508] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.508] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.508] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.508] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.508] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.508] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.508] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.541] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.541] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.541] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.542] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.542] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.542] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.542] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.575] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.575] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.575] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.575] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.575] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.575] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.575] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.608] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.609] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.609] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.609] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.609] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.609] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.609] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.642] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.642] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.642] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.642] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.642] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.642] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.642] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.675] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.675] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.675] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.675] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.675] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.675] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.675] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.708] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.708] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.708] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.708] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.708] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.708] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.708] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.741] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.742] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.742] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.742] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.742] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.742] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.742] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.775] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.775] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.775] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.775] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.775] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.775] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.775] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.808] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.808] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.808] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.808] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.808] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.808] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.808] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.841] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.841] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.841] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.841] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.841] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.841] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.841] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.875] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.875] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.875] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.875] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.875] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.875] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.875] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.908] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.908] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.908] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.908] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.908] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.908] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.908] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.941] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.941] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.941] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.941] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.941] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.941] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.941] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:12.975] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:12.975] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:12.975] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:12.975] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:12.975] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:12.975] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:12.975] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.009] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.009] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.009] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:13.009] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.009] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.009] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.009] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.041] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.041] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.041] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:13.041] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.041] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.042] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.042] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.075] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.075] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.075] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:13.075] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.075] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.075] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.075] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.108] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.108] DBG>ivi_shell_surface_configure: 089f0050 200,150(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.108] DBG>shell_surface_configure: w/h=400/400->200/200 x/y=100/50->200/150 (ico_ivi_shell.c:1068)
+[16:41:13.108] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.108] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.108] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.108] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.109] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000005 x/y/w/h=16384/16384/300/600 (ico_window_mgr.c:897)
+[16:41:13.109] DBG>uifw_set_positionsize: Old geometry x/y=200/150,w/h=200/200 (ico_window_mgr.c:931)
+[16:41:13.109] DBG>uifw_set_positionsize: Fixed Geometry, Change(Vis=1) (ico_window_mgr.c:946)
+[16:41:13.109] DBG>uifw_set_weston_surface: w/h=300/600->200/200 x/y=100/50->150/250 (ico_window_mgr.c:871)
+[16:41:13.109] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.109] DBG>win_mgr_surface_change: Enter(08b96da8,0,1) (ico_window_mgr.c:1208)
+[16:41:13.109] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000005,w/h=300/600) (ico_window_mgr.c:1220)
+[16:41:13.109] DBG>ivi_shell_send_configure: (08b96da8) edges=a w/h=300/600 (ico_ivi_shell.c:1559)
+[16:41:13.109] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=300/600,hint=0) (ico_window_mgr.c:1464)
+[16:41:13.109] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:13.109] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:41:13.141] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.141] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.141] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:13.141] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.141] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.141] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.141] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.175] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.175] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.175] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:13.175] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.175] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.175] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.175] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.208] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.208] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.208] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:13.208] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.208] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.208] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.208] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.241] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.241] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.241] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:13.241] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.241] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.241] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.241] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.274] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.275] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.275] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:13.275] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.275] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.275] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.275] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.309] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.309] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.309] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:13.309] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.309] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.309] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.309] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.341] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.341] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.341] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:13.341] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.341] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.341] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.341] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.375] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.375] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.375] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:13.375] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.375] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.375] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.375] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.408] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.408] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.408] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:13.408] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.408] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.408] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.408] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.441] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.441] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.441] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:13.441] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.441] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.441] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.441] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.475] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.475] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.475] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:13.475] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.475] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.475] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.475] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.508] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.508] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.508] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:13.508] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.508] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.508] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.508] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.541] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.541] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.541] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:13.541] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.541] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.541] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.541] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.571] DBG>click_to_activate_binding: call ivi_shell_hook_select[08b98608] (ico_ivi_shell.c:1325)
+[16:41:13.571] DBG>win_mgr_surface_select: Enter(08baa788) (ico_window_mgr.c:1250)
+[16:41:13.571] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) ACTIVE surf=00000001 active=2 (ico_window_mgr.c:1478)
+[16:41:13.571] DBG>win_mgr_surface_select: Leave(OK) (ico_window_mgr.c:1263)
+[16:41:13.572] DBG>click_to_activate_binding: ret ivi_shell_hook_select (ico_ivi_shell.c:1327)
+[16:41:13.575] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.575] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.575] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:13.575] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.575] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.575] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.575] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.608] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.608] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.608] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:13.608] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.608] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.608] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.608] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.641] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.641] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.641] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:13.641] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.641] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.641] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.641] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.675] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.675] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.675] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:13.675] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.675] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.675] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.675] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.708] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.708] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.708] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:13.708] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.708] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.708] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.708] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.741] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.741] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.741] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:13.741] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.741] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.741] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.741] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.775] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.775] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.775] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:13.775] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.775] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.775] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.775] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.808] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.808] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.808] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:13.808] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.808] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.808] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.808] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.846] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.846] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.846] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:13.846] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.846] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.846] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.846] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.901] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.901] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.901] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:13.901] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.901] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.901] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.901] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.950] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.950] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.950] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:13.950] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.950] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.950] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.950] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:13.996] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:13.996] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:13.996] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:13.996] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:13.996] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:13.996] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:13.996] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:14.046] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:14.046] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:14.046] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:14.046] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:14.046] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:14.046] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:14.046] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:14.096] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:14.096] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:14.096] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:14.096] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:14.096] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:14.096] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:14.096] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:14.146] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:14.146] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:14.146] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:14.146] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:14.146] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:14.146] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:14.146] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:14.196] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:14.196] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:14.196] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:14.196] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:14.196] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:14.196] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:14.196] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:14.246] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:14.246] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:14.246] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:14.246] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:14.246] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:14.246] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:14.246] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:14.296] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:14.296] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:14.296] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:14.296] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:14.296] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:14.296] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:14.296] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:14.346] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:14.346] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:14.346] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:14.346] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:14.346] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:14.346] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:14.346] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:14.396] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:14.396] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:14.396] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:14.396] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:14.396] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:14.396] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:14.396] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:14.446] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:14.446] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:14.446] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:14.446] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:14.446] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:14.446] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:14.446] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:14.496] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:14.496] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:14.496] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:14.496] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:14.496] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:14.496] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:14.496] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:14.546] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:14.546] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:14.546] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:14.546] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:14.546] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:14.546] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:14.546] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:14.596] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:14.596] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:14.596] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:14.596] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:14.596] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:14.596] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:14.596] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:14.646] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:14.646] DBG>ivi_shell_surface_configure: 089f0050 150,250(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:14.646] DBG>shell_surface_configure: w/h=300/600->200/200 x/y=100/50->150/250 (ico_ivi_shell.c:1068)
+[16:41:14.646] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:14.646] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:14.646] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:14.646] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:14.677] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000005 x/y/w/h=16384/16384/450/300 (ico_window_mgr.c:897)
+[16:41:14.677] DBG>uifw_set_positionsize: Old geometry x/y=150/250,w/h=200/200 (ico_window_mgr.c:931)
+[16:41:14.677] DBG>uifw_set_positionsize: Fixed Geometry, Change(Vis=1) (ico_window_mgr.c:946)
+[16:41:14.677] DBG>uifw_set_weston_surface: w/h=450/300->200/200 x/y=100/50->225/100 (ico_window_mgr.c:871)
+[16:41:14.677] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:14.677] DBG>win_mgr_surface_change: Enter(08b96da8,0,1) (ico_window_mgr.c:1208)
+[16:41:14.677] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000005,w/h=450/300) (ico_window_mgr.c:1220)
+[16:41:14.677] DBG>ivi_shell_send_configure: (08b96da8) edges=a w/h=450/300 (ico_ivi_shell.c:1559)
+[16:41:14.677] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=450/300,hint=0) (ico_window_mgr.c:1464)
+[16:41:14.677] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:14.677] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:41:14.696] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:14.696] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:14.696] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:14.696] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:14.696] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:14.696] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:14.696] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:14.746] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:14.746] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:14.746] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:14.746] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:14.746] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:14.746] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:14.746] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:14.796] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:14.796] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:14.796] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:14.796] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:14.796] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:14.796] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:14.796] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:14.846] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:14.846] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:14.846] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:14.846] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:14.846] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:14.846] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:14.846] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:14.896] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:14.896] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:14.896] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:14.896] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:14.896] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:14.896] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:14.896] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:14.947] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:14.947] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:14.947] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:14.947] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:14.947] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:14.947] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:14.947] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:14.994] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:14.994] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:14.994] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:14.995] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:14.995] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:14.995] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:14.995] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:15.039] DBG>click_to_activate_binding: call ivi_shell_hook_select[089f0050] (ico_ivi_shell.c:1325)
+[16:41:15.039] DBG>win_mgr_surface_select: Enter(08b96da8) (ico_window_mgr.c:1250)
+[16:41:15.039] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) ACTIVE surf=00000005 active=2 (ico_window_mgr.c:1478)
+[16:41:15.039] DBG>win_mgr_surface_select: Leave(OK) (ico_window_mgr.c:1263)
+[16:41:15.039] DBG>click_to_activate_binding: ret ivi_shell_hook_select (ico_ivi_shell.c:1327)
+[16:41:15.042] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:15.042] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:15.042] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:15.042] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:15.042] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:15.042] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:15.042] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:15.074] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:15.074] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:15.074] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:15.074] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:15.074] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:15.074] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:15.074] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:15.109] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:15.109] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:15.109] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:15.109] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:15.109] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:15.109] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:15.109] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:15.142] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:15.142] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:15.142] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:15.142] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:15.142] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:15.142] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:15.142] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:15.179] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:15.179] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:15.179] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:15.179] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:15.179] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:15.179] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:15.179] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:15.230] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:15.230] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:15.230] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:15.230] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:15.230] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:15.230] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:15.231] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:15.275] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:15.275] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:15.275] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:15.275] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:15.275] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:15.275] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:15.275] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:15.308] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:15.308] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:15.308] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:15.308] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:15.308] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:15.308] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:15.308] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:15.342] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:15.342] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:15.342] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:15.342] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:15.342] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:15.342] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:15.342] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:15.375] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:15.375] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:15.375] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:15.375] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:15.375] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:15.375] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:15.375] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:15.408] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:15.408] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:15.409] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:15.409] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:15.409] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:15.409] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:15.409] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:15.442] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:15.442] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:15.442] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:15.442] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:15.442] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:15.442] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:15.442] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:15.475] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:15.475] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:15.475] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:15.475] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:15.475] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:15.475] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:15.475] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:15.509] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:15.509] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:15.509] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:15.509] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:15.509] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:15.509] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:15.509] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:15.542] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:15.542] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:15.542] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:15.542] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:15.542] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:15.542] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:15.542] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:15.575] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:15.575] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:15.575] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:15.575] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:15.575] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:15.575] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:15.575] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:15.609] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:15.609] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:15.609] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:15.609] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:15.609] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:15.610] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:15.610] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:15.664] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:15.664] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:15.664] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:15.664] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:15.664] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:15.664] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:15.664] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:15.714] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:15.714] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:15.714] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:15.714] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:15.714] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:15.714] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:15.714] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:15.761] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:15.762] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:15.762] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:15.762] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:15.762] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:15.762] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:15.762] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:15.813] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:15.813] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:15.813] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:15.813] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:15.813] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:15.813] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:15.813] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:15.861] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:15.861] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:15.861] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:15.861] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:15.861] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:15.861] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:15.861] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:15.914] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:15.914] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:15.914] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:15.914] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:15.914] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:15.914] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:15.914] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:15.959] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:15.959] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:15.959] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:15.959] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:15.959] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:15.959] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:15.959] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:16.010] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:16.010] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:16.010] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:16.010] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:16.010] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:16.010] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:16.010] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:16.059] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:16.059] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:16.059] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:16.059] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:16.059] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:16.059] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:16.059] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:16.092] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:16.092] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:16.092] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:16.092] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:16.092] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:16.092] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:16.092] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:16.125] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:16.125] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:16.125] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:16.125] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:16.125] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:16.125] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:16.125] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:16.159] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:16.159] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:16.159] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:16.159] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:16.159] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:16.159] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:16.159] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:16.192] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:16.192] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:16.192] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:16.192] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:16.192] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:16.192] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:16.192] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:16.225] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:16.225] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:16.225] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:16.225] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:16.225] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:16.225] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:16.225] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:16.258] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:16.258] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:16.258] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:16.259] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:16.259] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:16.259] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:16.259] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:16.292] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:16.292] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:16.292] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:16.292] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:16.292] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:16.292] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:16.292] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:16.325] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:16.325] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:16.325] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:16.325] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:16.325] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:16.325] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:16.325] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:16.359] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:16.359] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:16.359] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:16.359] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:16.359] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:16.359] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:16.359] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:16.413] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:16.413] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:16.413] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:16.413] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:16.413] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:16.414] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:16.414] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:16.458] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:16.459] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:16.459] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:16.459] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:16.459] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:16.459] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:16.459] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:16.492] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:16.492] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:16.492] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:16.492] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:16.492] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:16.492] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:16.492] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:16.525] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=200/200) (ico_ivi_shell.c:1047)
+[16:41:16.525] DBG>ivi_shell_surface_configure: 089f0050 225,100(200/200) visible (ico_ivi_shell.c:1717)
+[16:41:16.525] DBG>shell_surface_configure: w/h=450/300->200/200 x/y=100/50->225/100 (ico_ivi_shell.c:1068)
+[16:41:16.525] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=100/50,w/h=200/200) (ico_window_mgr.c:1177)
+[16:41:16.525] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000005,app=wayland-smoke,layer=0,x/y=100/50,w/h=200/200,hint=1) (ico_window_mgr.c:1464)
+[16:41:16.525] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:16.525] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:16.547] libwayland: disconnect from client 0x8a4c8a0
+[16:41:16.547] DBG>unbind_shell (ico_ivi_shell.c:1135)
+[16:41:16.547] DBG>unbind_shell_client: Enter(client=08a4c8a0) (ico_window_mgr.c:511)
+[16:41:16.547] DBG>unbind_shell_client: Leave (ico_window_mgr.c:519)
+[16:41:16.547] DBG>shell_handle_surface_destroy: Enter [089f0050] data=08b96da8 (ico_ivi_shell.c:645)
+[16:41:16.547] DBG>shell_destroy_shell_surface: Enter [089f0050] (ico_ivi_shell.c:622)
+[16:41:16.547] DBG>destroy_shell_surface: Enter[089f0050] (ico_ivi_shell.c:583)
+[16:41:16.547] DBG>ivi_shell_restack_ivi_layer: Enter[089f0050] (ico_ivi_shell.c:1220)
+[16:41:16.547] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:16.547] DBG>destroy_shell_surface: call ivi_shell_hook_destroy(08b96da8) (ico_ivi_shell.c:595)
+[16:41:16.547] DBG>win_mgr_surface_destroy: Enter(08b96da8) (ico_window_mgr.c:1282)
+[16:41:16.547] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) DESTROYED surf=00000005 (ico_window_mgr.c:1472)
+[16:41:16.547] DBG>win_mgr_surface_destroy: Leave(OK) (ico_window_mgr.c:1332)
+[16:41:16.547] DBG>destroy_shell_surface: ret (ico_ivi_shell.c:597)
+[16:41:16.547] DBG>destroy_shell_surface: Leave (ico_ivi_shell.c:606)
+[16:41:16.547] DBG>shell_destroy_shell_surface: Leave (ico_ivi_shell.c:626)
+[16:41:16.547] DBG>shell_handle_surface_destroy: Leave (ico_ivi_shell.c:653)
+[16:41:17.866] DBG>bind_shell: client=089ede80 id=11 (ico_ivi_shell.c:1112)
+[16:41:17.866] DBG>bind_shell_client: Enter(client=089ede80) (ico_window_mgr.c:414)
+[16:41:17.866] DBG>find_client_from_client: NULL (ico_window_mgr.c:293)
+[16:41:17.866] DBG>bind_shell_client: Create Client (ico_window_mgr.c:420)
+[16:41:17.866] DBG>bind_shell_client: client=089ede80 pid=30509 uid=0 gid=0 (ico_window_mgr.c:432)
+[16:41:17.867] DBG>bind_shell_client: pid=30509 dose not exist in AppCore(AUL) (ico_window_mgr.c:444)
+[16:41:17.867] DBG>bind_shell_client: client=089ede80 pid=30509 appid=<test-eflapp@1> from Process table (ico_window_mgr.c:483)
+[16:41:17.867] DBG>bind_shell_client: Leave (ico_window_mgr.c:495)
+[16:41:18.016] DBG>shell_get_shell_surface: Enter (08b96da8) client=089ede80 (ico_ivi_shell.c:761)
+[16:41:18.016] DBG>create_shell_surface: (08b96da8) [089f00d8] client=b5c0a744 (visible=0) (ico_ivi_shell.c:704)
+[16:41:18.016] DBG>shell_get_shell_surface: Init shsurf(089f00d8) weston_surf=08b96da8 (ico_ivi_shell.c:782)
+[16:41:18.016] DBG>shell_get_shell_surface: call ivi_shell_hook_create(089ede80,,08b96da8,089f00d8) (ico_ivi_shell.c:787)
+[16:41:18.016] DBG>client_register_surface: Enter(surf=08b96da8,client=089ede80,res=08ba4820) (ico_window_mgr.c:543)
+[16:41:18.016] DBG>find_uifw_win_surface_by_ws: NULL (ico_window_mgr.c:269)
+[16:41:18.016] DBG>generate_id: SurfaceId=00000006 (ico_window_mgr.c:357)
+[16:41:18.016] DBG>client_register_surface: Manager exist, Not visible (ico_window_mgr.c:569)
+[16:41:18.016] DBG>ivi_shell_set_visible: [089f00d8] visible=-1 (ico_ivi_shell.c:1356)
+[16:41:18.016] DBG>ivi_shell_set_visible: No change (ico_ivi_shell.c:1377)
+[16:41:18.016] DBG>ivi_shell_set_layer: Enter([089f00d8],08b96da8,0) (ico_ivi_shell.c:1416)
+[16:41:18.016] DBG>ivi_shell_set_layer: el=0894f568(0) (ico_ivi_shell.c:1428)
+[16:41:18.016] DBG>ivi_shell_set_layer: Add surface to Layer 0 (ico_ivi_shell.c:1462)
+[16:41:18.016] DBG>ivi_shell_restack_ivi_layer: Enter[089f00d8] (ico_ivi_shell.c:1220)
+[16:41:18.016] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:18.016] DBG>ivi_shell_set_layer: Leave (ico_ivi_shell.c:1471)
+[16:41:18.016] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) WINDOW_CREATED(surf=00000006,pid=30509,appid=test-eflapp@1) (ico_window_mgr.c:1448)
+[16:41:18.016] DBG>client_register_surface: Leave(surfaceId=00000006) (ico_window_mgr.c:627)
+[16:41:18.016] DBG>shell_get_shell_surface: ret ivi_shell_hook_create (ico_ivi_shell.c:789)
+[16:41:18.016] DBG>shell_get_shell_surface: Leave (ico_ivi_shell.c:791)
+[16:41:18.016] DBG>shell_surface_set_toplevel: Set TopLevel[089f00d8] (ico_ivi_shell.c:373)
+[16:41:18.016] DBG>shell_surface_set_title: [089f00d8] EFL Native Application 1 (ico_ivi_shell.c:510)
+[16:41:18.025] DBG>set_surface_type: [089f00d8] (08b96da8) type=1 (ico_ivi_shell.c:265)
+[16:41:18.025] DBG>reset_shell_surface_type: [089f00d8] (ico_ivi_shell.c:244)
+[16:41:18.025] DBG>shell_surface_configure: configure to Buffer size(no Manager) x=16384+16384-16384 y=16384+16384-16384 (ico_ivi_shell.c:1080)
+[16:41:18.025] DBG>configure: Enter(08b96da8) [089f00d8] x/y=16384/16384, w/h=520/380 (ico_ivi_shell.c:965)
+[16:41:18.025] DBG>ivi_shell_surface_configure: 089f00d8 16384,16384(520/380) unvisible (ico_ivi_shell.c:1710)
+[16:41:18.025] DBG>configure: Leave (ico_ivi_shell.c:987)
+[16:41:18.025] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=520/380) (ico_ivi_shell.c:1047)
+[16:41:18.025] DBG>ivi_shell_surface_configure: 089f00d8 16384,16384(520/380) unvisible (ico_ivi_shell.c:1710)
+[16:41:18.025] DBG>shell_surface_configure: w/h=520/380->520/380 x/y=16384/16384->16384/16384 (ico_ivi_shell.c:1068)
+[16:41:18.025] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=16384/16384,w/h=520/380) (ico_window_mgr.c:1177)
+[16:41:18.025] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000006,app=test-eflapp@1,layer=0,x/y=16384/16384,w/h=520/380,hint=1) (ico_window_mgr.c:1464)
+[16:41:18.025] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:18.025] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:18.400] DBG>uifw_set_window_layer: Enter res=08b425a0 surfaceid=00000006 layer=101 (ico_window_mgr.c:823)
+[16:41:18.400] DBG>uifw_set_window_layer: Set Layer(101) to Shell Surface (ico_window_mgr.c:833)
+[16:41:18.400] DBG>ivi_shell_set_layer: Enter([089f00d8],08b96da8,101) (ico_ivi_shell.c:1416)
+[16:41:18.400] DBG>ivi_shell_set_layer: el=0894f568(0) (ico_ivi_shell.c:1428)
+[16:41:18.400] DBG>ivi_shell_set_layer: New Layer 101 (ico_ivi_shell.c:1434)
+[16:41:18.400] DBG>ivi_shell_restack_ivi_layer: Enter[089f00d8] (ico_ivi_shell.c:1220)
+[16:41:18.400] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:18.400] DBG>ivi_shell_set_layer: Leave (ico_ivi_shell.c:1471)
+[16:41:18.400] DBG>win_mgr_surface_change: Enter(08b96da8,1,1) (ico_window_mgr.c:1208)
+[16:41:18.400] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000006,w/h=0/0) (ico_window_mgr.c:1220)
+[16:41:18.400] DBG>ivi_shell_send_configure: (08b96da8) edges=a w/h=0/0 (ico_ivi_shell.c:1559)
+[16:41:18.400] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:18.400] DBG>uifw_set_window_layer: Leave (ico_window_mgr.c:838)
+[16:41:18.410] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=520/380) (ico_ivi_shell.c:1047)
+[16:41:18.410] DBG>ivi_shell_surface_configure: 089f00d8 16384,16384(0/0) unvisible (ico_ivi_shell.c:1710)
+[16:41:18.410] DBG>shell_surface_configure: w/h=0/0->0/0 x/y=16384/16384->16384/16384 (ico_ivi_shell.c:1068)
+[16:41:18.410] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=16384/16384,w/h=520/380) (ico_window_mgr.c:1177)
+[16:41:18.410] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000006,app=test-eflapp@1,layer=101,x/y=16384/16384,w/h=520/380,hint=1) (ico_window_mgr.c:1464)
+[16:41:18.410] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:18.410] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:18.411] DBG>shell_surface_configure: configure to Buffer size(no Manager) x=16384+16384-16384 y=16384+16384-16384 (ico_ivi_shell.c:1080)
+[16:41:18.411] DBG>configure: Enter(08b96da8) [089f00d8] x/y=16384/16384, w/h=520/380 (ico_ivi_shell.c:965)
+[16:41:18.411] DBG>ivi_shell_surface_configure: 089f00d8 16384,16384(520/380) unvisible (ico_ivi_shell.c:1710)
+[16:41:18.411] DBG>configure: Leave (ico_ivi_shell.c:987)
+[16:41:18.420] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000006 x/y/w/h=100/200/16384/16384 (ico_window_mgr.c:897)
+[16:41:18.420] DBG>uifw_set_positionsize: Old geometry x/y=16384/16384,w/h=520/380 (ico_window_mgr.c:931)
+[16:41:18.420] DBG>uifw_set_positionsize: Fixed Geometry, Change(Vis=0) (ico_window_mgr.c:946)
+[16:41:18.420] DBG>uifw_set_weston_surface: w/h=0/0->0/0 x/y=100/200->100/200 (ico_window_mgr.c:871)
+[16:41:18.420] DBG>ivi_shell_surface_configure: 089f00d8 100,200(0/0) unvisible (ico_ivi_shell.c:1710)
+[16:41:18.420] DBG>win_mgr_surface_change: Enter(08b96da8,0,1) (ico_window_mgr.c:1208)
+[16:41:18.421] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000006,w/h=0/0) (ico_window_mgr.c:1220)
+[16:41:18.421] DBG>ivi_shell_send_configure: (08b96da8) edges=a w/h=0/0 (ico_ivi_shell.c:1559)
+[16:41:18.421] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000006,app=test-eflapp@1,layer=101,x/y=100/200,w/h=0/0,hint=0) (ico_window_mgr.c:1464)
+[16:41:18.421] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:18.421] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:41:18.440] DBG>uifw_set_visible: Enter(surf=00000006,1,9) (ico_window_mgr.c:980)
+[16:41:18.441] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:18.441] DBG>uifw_set_visible: Set w/h=0/0 (ico_window_mgr.c:1009)
+[16:41:18.441] DBG>ivi_shell_set_visible: [089f00d8] visible=1 (ico_ivi_shell.c:1356)
+[16:41:18.441] DBG>ivi_shell_restack_ivi_layer: Enter[089f00d8] (ico_ivi_shell.c:1220)
+[16:41:18.441] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:18.441] DBG>uifw_set_visible: Change to Visible (ico_window_mgr.c:1016)
+[16:41:18.441] DBG>ivi_shell_set_toplevel: (08b96da8) (ico_ivi_shell.c:1520)
+[16:41:18.441] DBG>uifw_set_visible: Visible to Weston WSurf=08b96da8,100/200/0/0 (ico_window_mgr.c:1023)
+[16:41:18.441] DBG>uifw_set_weston_surface: w/h=0/0->0/0 x/y=100/200->100/200 (ico_window_mgr.c:871)
+[16:41:18.441] DBG>ivi_shell_surface_configure: 089f00d8 100,200(0/0) visible (ico_ivi_shell.c:1717)
+[16:41:18.441] DBG>ivi_shell_set_surfacetype: (08b96da8) (ico_ivi_shell.c:1536)
+[16:41:18.441] DBG>set_surface_type: [089f00d8] (08b96da8) type=1 (ico_ivi_shell.c:265)
+[16:41:18.441] DBG>reset_shell_surface_type: [089f00d8] (ico_ivi_shell.c:244)
+[16:41:18.441] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) VISIBLE(surf=00000006,vis=1,raise=9,hint=0) (ico_window_mgr.c:1455)
+[16:41:18.441] DBG>uifw_set_visible: Leave(OK) (ico_window_mgr.c:1065)
+[16:41:18.481] DBG>uifw_set_visible: Enter(surf=00000006,1,9) (ico_window_mgr.c:980)
+[16:41:18.481] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:18.481] DBG>uifw_set_visible: Set w/h=0/0 (ico_window_mgr.c:1009)
+[16:41:18.481] DBG>uifw_set_visible: Leave(No Change) (ico_window_mgr.c:1028)
+[16:41:19.046] DBG>bind_shell: client=08ba8278 id=11 (ico_ivi_shell.c:1112)
+[16:41:19.046] DBG>bind_shell_client: Enter(client=08ba8278) (ico_window_mgr.c:414)
+[16:41:19.046] DBG>find_client_from_client: NULL (ico_window_mgr.c:293)
+[16:41:19.046] DBG>bind_shell_client: Create Client (ico_window_mgr.c:420)
+[16:41:19.046] DBG>bind_shell_client: client=08ba8278 pid=31198 uid=0 gid=0 (ico_window_mgr.c:432)
+[16:41:19.047] DBG>bind_shell_client: pid=31198 dose not exist in AppCore(AUL) (ico_window_mgr.c:444)
+[16:41:19.047] DBG>bind_shell_client: client=08ba8278 pid=31198 appid=<test-eflapp@2> from Process table (ico_window_mgr.c:483)
+[16:41:19.047] DBG>bind_shell_client: Leave (ico_window_mgr.c:495)
+[16:41:19.186] DBG>shell_get_shell_surface: Enter (08b3f490) client=08ba8278 (ico_ivi_shell.c:761)
+[16:41:19.186] DBG>create_shell_surface: (08b3f490) [08bbf088] client=b5c0a744 (visible=0) (ico_ivi_shell.c:704)
+[16:41:19.186] DBG>shell_get_shell_surface: Init shsurf(08bbf088) weston_surf=08b3f490 (ico_ivi_shell.c:782)
+[16:41:19.186] DBG>shell_get_shell_surface: call ivi_shell_hook_create(08ba8278,,08b3f490,08bbf088) (ico_ivi_shell.c:787)
+[16:41:19.186] DBG>client_register_surface: Enter(surf=08b3f490,client=08ba8278,res=08b3efc8) (ico_window_mgr.c:543)
+[16:41:19.186] DBG>find_uifw_win_surface_by_ws: NULL (ico_window_mgr.c:269)
+[16:41:19.186] DBG>generate_id: SurfaceId=00000007 (ico_window_mgr.c:357)
+[16:41:19.186] DBG>client_register_surface: Manager exist, Not visible (ico_window_mgr.c:569)
+[16:41:19.186] DBG>ivi_shell_set_visible: [08bbf088] visible=-1 (ico_ivi_shell.c:1356)
+[16:41:19.186] DBG>ivi_shell_set_visible: No change (ico_ivi_shell.c:1377)
+[16:41:19.186] DBG>ivi_shell_set_layer: Enter([08bbf088],08b3f490,0) (ico_ivi_shell.c:1416)
+[16:41:19.186] DBG>ivi_shell_set_layer: el=08ba5b88(101) (ico_ivi_shell.c:1428)
+[16:41:19.186] DBG>ivi_shell_set_layer: el=0894f568(0) (ico_ivi_shell.c:1428)
+[16:41:19.186] DBG>ivi_shell_set_layer: Add surface to Layer 0 (ico_ivi_shell.c:1462)
+[16:41:19.186] DBG>ivi_shell_restack_ivi_layer: Enter[08bbf088] (ico_ivi_shell.c:1220)
+[16:41:19.186] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:19.186] DBG>ivi_shell_set_layer: Leave (ico_ivi_shell.c:1471)
+[16:41:19.186] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) WINDOW_CREATED(surf=00000007,pid=31198,appid=test-eflapp@2) (ico_window_mgr.c:1448)
+[16:41:19.186] DBG>client_register_surface: Leave(surfaceId=00000007) (ico_window_mgr.c:627)
+[16:41:19.186] DBG>shell_get_shell_surface: ret ivi_shell_hook_create (ico_ivi_shell.c:789)
+[16:41:19.186] DBG>shell_get_shell_surface: Leave (ico_ivi_shell.c:791)
+[16:41:19.186] DBG>shell_surface_set_toplevel: Set TopLevel[08bbf088] (ico_ivi_shell.c:373)
+[16:41:19.186] DBG>shell_surface_set_title: [08bbf088] EFL Native Application 2 (ico_ivi_shell.c:510)
+[16:41:19.193] DBG>set_surface_type: [08bbf088] (08b3f490) type=1 (ico_ivi_shell.c:265)
+[16:41:19.193] DBG>reset_shell_surface_type: [08bbf088] (ico_ivi_shell.c:244)
+[16:41:19.193] DBG>shell_surface_configure: configure to Buffer size(no Manager) x=16384+16384-16384 y=16384+16384-16384 (ico_ivi_shell.c:1080)
+[16:41:19.193] DBG>configure: Enter(08b3f490) [08bbf088] x/y=16384/16384, w/h=520/380 (ico_ivi_shell.c:965)
+[16:41:19.193] DBG>ivi_shell_surface_configure: 08bbf088 16384,16384(520/380) unvisible (ico_ivi_shell.c:1710)
+[16:41:19.193] DBG>configure: Leave (ico_ivi_shell.c:987)
+[16:41:19.193] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=520/380) (ico_ivi_shell.c:1047)
+[16:41:19.193] DBG>ivi_shell_surface_configure: 08bbf088 16384,16384(520/380) unvisible (ico_ivi_shell.c:1710)
+[16:41:19.193] DBG>shell_surface_configure: w/h=520/380->520/380 x/y=16384/16384->16384/16384 (ico_ivi_shell.c:1068)
+[16:41:19.193] DBG>win_mgr_surface_change_mgr: Enter(08b3f490,x/y=16384/16384,w/h=520/380) (ico_window_mgr.c:1177)
+[16:41:19.193] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000007,app=test-eflapp@2,layer=0,x/y=16384/16384,w/h=520/380,hint=1) (ico_window_mgr.c:1464)
+[16:41:19.193] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:19.193] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:19.571] DBG>uifw_set_window_layer: Enter res=08b425a0 surfaceid=00000007 layer=103 (ico_window_mgr.c:823)
+[16:41:19.572] DBG>uifw_set_window_layer: Set Layer(103) to Shell Surface (ico_window_mgr.c:833)
+[16:41:19.572] DBG>ivi_shell_set_layer: Enter([08bbf088],08b3f490,103) (ico_ivi_shell.c:1416)
+[16:41:19.572] DBG>ivi_shell_set_layer: el=08ba5b88(101) (ico_ivi_shell.c:1428)
+[16:41:19.572] DBG>ivi_shell_set_layer: el=0894f568(0) (ico_ivi_shell.c:1428)
+[16:41:19.572] DBG>ivi_shell_set_layer: New Layer 103 (ico_ivi_shell.c:1434)
+[16:41:19.572] DBG>ivi_shell_restack_ivi_layer: Enter[08bbf088] (ico_ivi_shell.c:1220)
+[16:41:19.572] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:19.572] DBG>ivi_shell_set_layer: Leave (ico_ivi_shell.c:1471)
+[16:41:19.572] DBG>win_mgr_surface_change: Enter(08b3f490,1,1) (ico_window_mgr.c:1208)
+[16:41:19.572] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000007,w/h=0/0) (ico_window_mgr.c:1220)
+[16:41:19.572] DBG>ivi_shell_send_configure: (08b3f490) edges=a w/h=0/0 (ico_ivi_shell.c:1559)
+[16:41:19.572] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:19.572] DBG>uifw_set_window_layer: Leave (ico_window_mgr.c:838)
+[16:41:19.576] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=520/380) (ico_ivi_shell.c:1047)
+[16:41:19.576] DBG>ivi_shell_surface_configure: 08bbf088 16384,16384(0/0) unvisible (ico_ivi_shell.c:1710)
+[16:41:19.576] DBG>shell_surface_configure: w/h=0/0->0/0 x/y=16384/16384->16384/16384 (ico_ivi_shell.c:1068)
+[16:41:19.576] DBG>win_mgr_surface_change_mgr: Enter(08b3f490,x/y=16384/16384,w/h=520/380) (ico_window_mgr.c:1177)
+[16:41:19.577] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000007,app=test-eflapp@2,layer=103,x/y=16384/16384,w/h=520/380,hint=1) (ico_window_mgr.c:1464)
+[16:41:19.577] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:19.577] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:19.577] DBG>shell_surface_configure: configure to Buffer size(no Manager) x=16384+16384-16384 y=16384+16384-16384 (ico_ivi_shell.c:1080)
+[16:41:19.577] DBG>configure: Enter(08b3f490) [08bbf088] x/y=16384/16384, w/h=520/380 (ico_ivi_shell.c:965)
+[16:41:19.577] DBG>ivi_shell_surface_configure: 08bbf088 16384,16384(520/380) unvisible (ico_ivi_shell.c:1710)
+[16:41:19.577] DBG>configure: Leave (ico_ivi_shell.c:987)
+[16:41:19.592] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000007 x/y/w/h=200/300/16384/16384 (ico_window_mgr.c:897)
+[16:41:19.592] DBG>uifw_set_positionsize: Old geometry x/y=16384/16384,w/h=520/380 (ico_window_mgr.c:931)
+[16:41:19.592] DBG>uifw_set_positionsize: Fixed Geometry, Change(Vis=0) (ico_window_mgr.c:946)
+[16:41:19.592] DBG>uifw_set_weston_surface: w/h=0/0->0/0 x/y=200/300->200/300 (ico_window_mgr.c:871)
+[16:41:19.592] DBG>ivi_shell_surface_configure: 08bbf088 200,300(0/0) unvisible (ico_ivi_shell.c:1710)
+[16:41:19.592] DBG>win_mgr_surface_change: Enter(08b3f490,0,1) (ico_window_mgr.c:1208)
+[16:41:19.592] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000007,w/h=0/0) (ico_window_mgr.c:1220)
+[16:41:19.592] DBG>ivi_shell_send_configure: (08b3f490) edges=a w/h=0/0 (ico_ivi_shell.c:1559)
+[16:41:19.592] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000007,app=test-eflapp@2,layer=103,x/y=200/300,w/h=0/0,hint=0) (ico_window_mgr.c:1464)
+[16:41:19.592] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:19.592] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:41:19.612] DBG>uifw_set_visible: Enter(surf=00000007,1,9) (ico_window_mgr.c:980)
+[16:41:19.612] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:19.612] DBG>uifw_set_visible: Set w/h=0/0 (ico_window_mgr.c:1009)
+[16:41:19.612] DBG>ivi_shell_set_visible: [08bbf088] visible=1 (ico_ivi_shell.c:1356)
+[16:41:19.612] DBG>ivi_shell_restack_ivi_layer: Enter[08bbf088] (ico_ivi_shell.c:1220)
+[16:41:19.612] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:19.612] DBG>uifw_set_visible: Change to Visible (ico_window_mgr.c:1016)
+[16:41:19.612] DBG>ivi_shell_set_toplevel: (08b3f490) (ico_ivi_shell.c:1520)
+[16:41:19.612] DBG>uifw_set_visible: Visible to Weston WSurf=08b3f490,200/300/0/0 (ico_window_mgr.c:1023)
+[16:41:19.612] DBG>uifw_set_weston_surface: w/h=0/0->0/0 x/y=200/300->200/300 (ico_window_mgr.c:871)
+[16:41:19.612] DBG>ivi_shell_surface_configure: 08bbf088 200,300(0/0) visible (ico_ivi_shell.c:1717)
+[16:41:19.612] DBG>ivi_shell_set_surfacetype: (08b3f490) (ico_ivi_shell.c:1536)
+[16:41:19.612] DBG>set_surface_type: [08bbf088] (08b3f490) type=1 (ico_ivi_shell.c:265)
+[16:41:19.612] DBG>reset_shell_surface_type: [08bbf088] (ico_ivi_shell.c:244)
+[16:41:19.612] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) VISIBLE(surf=00000007,vis=1,raise=9,hint=0) (ico_window_mgr.c:1455)
+[16:41:19.612] DBG>uifw_set_visible: Leave(OK) (ico_window_mgr.c:1065)
+[16:41:19.652] DBG>uifw_set_visible: Enter(surf=00000007,1,9) (ico_window_mgr.c:980)
+[16:41:19.652] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:19.652] DBG>uifw_set_visible: Set w/h=0/0 (ico_window_mgr.c:1009)
+[16:41:19.652] DBG>uifw_set_visible: Leave(No Change) (ico_window_mgr.c:1028)
+[16:41:20.204] DBG>bind_shell: client=08bbfef0 id=11 (ico_ivi_shell.c:1112)
+[16:41:20.204] DBG>bind_shell_client: Enter(client=08bbfef0) (ico_window_mgr.c:414)
+[16:41:20.204] DBG>find_client_from_client: NULL (ico_window_mgr.c:293)
+[16:41:20.205] DBG>bind_shell_client: Create Client (ico_window_mgr.c:420)
+[16:41:20.205] DBG>bind_shell_client: client=08bbfef0 pid=31608 uid=0 gid=0 (ico_window_mgr.c:432)
+[16:41:20.206] DBG>bind_shell_client: pid=31608 dose not exist in AppCore(AUL) (ico_window_mgr.c:444)
+[16:41:20.206] DBG>bind_shell_client: client=08bbfef0 pid=31608 appid=<test-eflapp@3> from Process table (ico_window_mgr.c:483)
+[16:41:20.206] DBG>bind_shell_client: Leave (ico_window_mgr.c:495)
+[16:41:20.343] DBG>shell_get_shell_surface: Enter (08bc0618) client=08bbfef0 (ico_ivi_shell.c:761)
+[16:41:20.343] DBG>create_shell_surface: (08bc0618) [08bc0888] client=b5c0a744 (visible=0) (ico_ivi_shell.c:704)
+[16:41:20.343] DBG>shell_get_shell_surface: Init shsurf(08bc0888) weston_surf=08bc0618 (ico_ivi_shell.c:782)
+[16:41:20.343] DBG>shell_get_shell_surface: call ivi_shell_hook_create(08bbfef0,,08bc0618,08bc0888) (ico_ivi_shell.c:787)
+[16:41:20.343] DBG>client_register_surface: Enter(surf=08bc0618,client=08bbfef0,res=08bc0400) (ico_window_mgr.c:543)
+[16:41:20.343] DBG>find_uifw_win_surface_by_ws: NULL (ico_window_mgr.c:269)
+[16:41:20.343] DBG>generate_id: SurfaceId=00000008 (ico_window_mgr.c:357)
+[16:41:20.343] DBG>client_register_surface: Manager exist, Not visible (ico_window_mgr.c:569)
+[16:41:20.343] DBG>ivi_shell_set_visible: [08bc0888] visible=-1 (ico_ivi_shell.c:1356)
+[16:41:20.343] DBG>ivi_shell_set_visible: No change (ico_ivi_shell.c:1377)
+[16:41:20.343] DBG>ivi_shell_set_layer: Enter([08bc0888],08bc0618,0) (ico_ivi_shell.c:1416)
+[16:41:20.343] DBG>ivi_shell_set_layer: el=08ba5b38(103) (ico_ivi_shell.c:1428)
+[16:41:20.343] DBG>ivi_shell_set_layer: el=08ba5b88(101) (ico_ivi_shell.c:1428)
+[16:41:20.343] DBG>ivi_shell_set_layer: el=0894f568(0) (ico_ivi_shell.c:1428)
+[16:41:20.343] DBG>ivi_shell_set_layer: Add surface to Layer 0 (ico_ivi_shell.c:1462)
+[16:41:20.343] DBG>ivi_shell_restack_ivi_layer: Enter[08bc0888] (ico_ivi_shell.c:1220)
+[16:41:20.343] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:20.343] DBG>ivi_shell_set_layer: Leave (ico_ivi_shell.c:1471)
+[16:41:20.343] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) WINDOW_CREATED(surf=00000008,pid=31608,appid=test-eflapp@3) (ico_window_mgr.c:1448)
+[16:41:20.343] DBG>client_register_surface: Leave(surfaceId=00000008) (ico_window_mgr.c:627)
+[16:41:20.343] DBG>shell_get_shell_surface: ret ivi_shell_hook_create (ico_ivi_shell.c:789)
+[16:41:20.343] DBG>shell_get_shell_surface: Leave (ico_ivi_shell.c:791)
+[16:41:20.343] DBG>shell_surface_set_toplevel: Set TopLevel[08bc0888] (ico_ivi_shell.c:373)
+[16:41:20.343] DBG>shell_surface_set_title: [08bc0888] EFL Native Application 3 (ico_ivi_shell.c:510)
+[16:41:20.350] DBG>set_surface_type: [08bc0888] (08bc0618) type=1 (ico_ivi_shell.c:265)
+[16:41:20.350] DBG>reset_shell_surface_type: [08bc0888] (ico_ivi_shell.c:244)
+[16:41:20.350] DBG>shell_surface_configure: configure to Buffer size(no Manager) x=16384+16384-16384 y=16384+16384-16384 (ico_ivi_shell.c:1080)
+[16:41:20.350] DBG>configure: Enter(08bc0618) [08bc0888] x/y=16384/16384, w/h=520/380 (ico_ivi_shell.c:965)
+[16:41:20.350] DBG>ivi_shell_surface_configure: 08bc0888 16384,16384(520/380) unvisible (ico_ivi_shell.c:1710)
+[16:41:20.350] DBG>configure: Leave (ico_ivi_shell.c:987)
+[16:41:20.350] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=520/380) (ico_ivi_shell.c:1047)
+[16:41:20.350] DBG>ivi_shell_surface_configure: 08bc0888 16384,16384(520/380) unvisible (ico_ivi_shell.c:1710)
+[16:41:20.350] DBG>shell_surface_configure: w/h=520/380->520/380 x/y=16384/16384->16384/16384 (ico_ivi_shell.c:1068)
+[16:41:20.350] DBG>win_mgr_surface_change_mgr: Enter(08bc0618,x/y=16384/16384,w/h=520/380) (ico_window_mgr.c:1177)
+[16:41:20.350] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000008,app=test-eflapp@3,layer=0,x/y=16384/16384,w/h=520/380,hint=1) (ico_window_mgr.c:1464)
+[16:41:20.350] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:20.350] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:20.739] DBG>uifw_set_window_layer: Enter res=08b425a0 surfaceid=00000008 layer=102 (ico_window_mgr.c:823)
+[16:41:20.739] DBG>uifw_set_window_layer: Set Layer(102) to Shell Surface (ico_window_mgr.c:833)
+[16:41:20.739] DBG>ivi_shell_set_layer: Enter([08bc0888],08bc0618,102) (ico_ivi_shell.c:1416)
+[16:41:20.739] DBG>ivi_shell_set_layer: el=08ba5b38(103) (ico_ivi_shell.c:1428)
+[16:41:20.739] DBG>ivi_shell_set_layer: el=08ba5b88(101) (ico_ivi_shell.c:1428)
+[16:41:20.739] DBG>ivi_shell_set_layer: el=0894f568(0) (ico_ivi_shell.c:1428)
+[16:41:20.739] DBG>ivi_shell_set_layer: New Layer 102 (ico_ivi_shell.c:1434)
+[16:41:20.739] DBG>ivi_shell_restack_ivi_layer: Enter[08bc0888] (ico_ivi_shell.c:1220)
+[16:41:20.739] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:20.739] DBG>ivi_shell_set_layer: Leave (ico_ivi_shell.c:1471)
+[16:41:20.739] DBG>win_mgr_surface_change: Enter(08bc0618,1,1) (ico_window_mgr.c:1208)
+[16:41:20.739] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000008,w/h=0/0) (ico_window_mgr.c:1220)
+[16:41:20.739] DBG>ivi_shell_send_configure: (08bc0618) edges=a w/h=0/0 (ico_ivi_shell.c:1559)
+[16:41:20.739] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:20.739] DBG>uifw_set_window_layer: Leave (ico_window_mgr.c:838)
+[16:41:20.742] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=520/380) (ico_ivi_shell.c:1047)
+[16:41:20.742] DBG>ivi_shell_surface_configure: 08bc0888 16384,16384(0/0) unvisible (ico_ivi_shell.c:1710)
+[16:41:20.742] DBG>shell_surface_configure: w/h=0/0->0/0 x/y=16384/16384->16384/16384 (ico_ivi_shell.c:1068)
+[16:41:20.742] DBG>win_mgr_surface_change_mgr: Enter(08bc0618,x/y=16384/16384,w/h=520/380) (ico_window_mgr.c:1177)
+[16:41:20.742] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000008,app=test-eflapp@3,layer=102,x/y=16384/16384,w/h=520/380,hint=1) (ico_window_mgr.c:1464)
+[16:41:20.742] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:20.742] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:20.742] DBG>shell_surface_configure: configure to Buffer size(no Manager) x=16384+16384-16384 y=16384+16384-16384 (ico_ivi_shell.c:1080)
+[16:41:20.742] DBG>configure: Enter(08bc0618) [08bc0888] x/y=16384/16384, w/h=520/380 (ico_ivi_shell.c:965)
+[16:41:20.742] DBG>ivi_shell_surface_configure: 08bc0888 16384,16384(520/380) unvisible (ico_ivi_shell.c:1710)
+[16:41:20.742] DBG>configure: Leave (ico_ivi_shell.c:987)
+[16:41:20.759] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000008 x/y/w/h=300/400/16384/16384 (ico_window_mgr.c:897)
+[16:41:20.759] DBG>uifw_set_positionsize: Old geometry x/y=16384/16384,w/h=520/380 (ico_window_mgr.c:931)
+[16:41:20.759] DBG>uifw_set_positionsize: Fixed Geometry, Change(Vis=0) (ico_window_mgr.c:946)
+[16:41:20.759] DBG>uifw_set_weston_surface: w/h=0/0->0/0 x/y=300/400->300/400 (ico_window_mgr.c:871)
+[16:41:20.759] DBG>ivi_shell_surface_configure: 08bc0888 300,400(0/0) unvisible (ico_ivi_shell.c:1710)
+[16:41:20.759] DBG>win_mgr_surface_change: Enter(08bc0618,0,1) (ico_window_mgr.c:1208)
+[16:41:20.759] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000008,w/h=0/0) (ico_window_mgr.c:1220)
+[16:41:20.759] DBG>ivi_shell_send_configure: (08bc0618) edges=a w/h=0/0 (ico_ivi_shell.c:1559)
+[16:41:20.759] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000008,app=test-eflapp@3,layer=102,x/y=300/400,w/h=0/0,hint=0) (ico_window_mgr.c:1464)
+[16:41:20.760] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:20.760] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:41:20.779] DBG>uifw_set_visible: Enter(surf=00000008,1,9) (ico_window_mgr.c:980)
+[16:41:20.780] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:20.780] DBG>uifw_set_visible: Set w/h=0/0 (ico_window_mgr.c:1009)
+[16:41:20.780] DBG>ivi_shell_set_visible: [08bc0888] visible=1 (ico_ivi_shell.c:1356)
+[16:41:20.780] DBG>ivi_shell_restack_ivi_layer: Enter[08bc0888] (ico_ivi_shell.c:1220)
+[16:41:20.780] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:20.780] DBG>uifw_set_visible: Change to Visible (ico_window_mgr.c:1016)
+[16:41:20.780] DBG>ivi_shell_set_toplevel: (08bc0618) (ico_ivi_shell.c:1520)
+[16:41:20.780] DBG>uifw_set_visible: Visible to Weston WSurf=08bc0618,300/400/0/0 (ico_window_mgr.c:1023)
+[16:41:20.780] DBG>uifw_set_weston_surface: w/h=0/0->0/0 x/y=300/400->300/400 (ico_window_mgr.c:871)
+[16:41:20.780] DBG>ivi_shell_surface_configure: 08bc0888 300,400(0/0) visible (ico_ivi_shell.c:1717)
+[16:41:20.780] DBG>ivi_shell_set_surfacetype: (08bc0618) (ico_ivi_shell.c:1536)
+[16:41:20.780] DBG>set_surface_type: [08bc0888] (08bc0618) type=1 (ico_ivi_shell.c:265)
+[16:41:20.780] DBG>reset_shell_surface_type: [08bc0888] (ico_ivi_shell.c:244)
+[16:41:20.780] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) VISIBLE(surf=00000008,vis=1,raise=9,hint=0) (ico_window_mgr.c:1455)
+[16:41:20.780] DBG>uifw_set_visible: Leave(OK) (ico_window_mgr.c:1065)
+[16:41:20.820] DBG>uifw_set_visible: Enter(surf=00000008,1,9) (ico_window_mgr.c:980)
+[16:41:20.820] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:20.820] DBG>uifw_set_visible: Set w/h=0/0 (ico_window_mgr.c:1009)
+[16:41:20.820] DBG>uifw_set_visible: Leave(No Change) (ico_window_mgr.c:1028)
+[16:41:21.373] DBG>bind_shell: client=08bc0eb0 id=11 (ico_ivi_shell.c:1112)
+[16:41:21.373] DBG>bind_shell_client: Enter(client=08bc0eb0) (ico_window_mgr.c:414)
+[16:41:21.373] DBG>find_client_from_client: NULL (ico_window_mgr.c:293)
+[16:41:21.373] DBG>bind_shell_client: Create Client (ico_window_mgr.c:420)
+[16:41:21.373] DBG>bind_shell_client: client=08bc0eb0 pid=31705 uid=0 gid=0 (ico_window_mgr.c:432)
+[16:41:21.374] DBG>bind_shell_client: pid=31705 dose not exist in AppCore(AUL) (ico_window_mgr.c:444)
+[16:41:21.374] DBG>bind_shell_client: client=08bc0eb0 pid=31705 appid=<test-eflapp@4> from Process table (ico_window_mgr.c:483)
+[16:41:21.374] DBG>bind_shell_client: Leave (ico_window_mgr.c:495)
+[16:41:21.519] DBG>shell_get_shell_surface: Enter (08badc38) client=08bc0eb0 (ico_ivi_shell.c:761)
+[16:41:21.519] DBG>create_shell_surface: (08badc38) [08badea8] client=b5c0a744 (visible=0) (ico_ivi_shell.c:704)
+[16:41:21.519] DBG>shell_get_shell_surface: Init shsurf(08badea8) weston_surf=08badc38 (ico_ivi_shell.c:782)
+[16:41:21.519] DBG>shell_get_shell_surface: call ivi_shell_hook_create(08bc0eb0,,08badc38,08badea8) (ico_ivi_shell.c:787)
+[16:41:21.519] DBG>client_register_surface: Enter(surf=08badc38,client=08bc0eb0,res=08badab0) (ico_window_mgr.c:543)
+[16:41:21.519] DBG>find_uifw_win_surface_by_ws: NULL (ico_window_mgr.c:269)
+[16:41:21.519] DBG>generate_id: SurfaceId=00000009 (ico_window_mgr.c:357)
+[16:41:21.519] DBG>client_register_surface: Manager exist, Not visible (ico_window_mgr.c:569)
+[16:41:21.519] DBG>ivi_shell_set_visible: [08badea8] visible=-1 (ico_ivi_shell.c:1356)
+[16:41:21.519] DBG>ivi_shell_set_visible: No change (ico_ivi_shell.c:1377)
+[16:41:21.519] DBG>ivi_shell_set_layer: Enter([08badea8],08badc38,0) (ico_ivi_shell.c:1416)
+[16:41:21.519] DBG>ivi_shell_set_layer: el=08ba5b38(103) (ico_ivi_shell.c:1428)
+[16:41:21.519] DBG>ivi_shell_set_layer: el=08bbffa8(102) (ico_ivi_shell.c:1428)
+[16:41:21.519] DBG>ivi_shell_set_layer: el=08ba5b88(101) (ico_ivi_shell.c:1428)
+[16:41:21.519] DBG>ivi_shell_set_layer: el=0894f568(0) (ico_ivi_shell.c:1428)
+[16:41:21.519] DBG>ivi_shell_set_layer: Add surface to Layer 0 (ico_ivi_shell.c:1462)
+[16:41:21.519] DBG>ivi_shell_restack_ivi_layer: Enter[08badea8] (ico_ivi_shell.c:1220)
+[16:41:21.519] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:21.519] DBG>ivi_shell_set_layer: Leave (ico_ivi_shell.c:1471)
+[16:41:21.519] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) WINDOW_CREATED(surf=00000009,pid=31705,appid=test-eflapp@4) (ico_window_mgr.c:1448)
+[16:41:21.519] DBG>client_register_surface: Leave(surfaceId=00000009) (ico_window_mgr.c:627)
+[16:41:21.519] DBG>shell_get_shell_surface: ret ivi_shell_hook_create (ico_ivi_shell.c:789)
+[16:41:21.519] DBG>shell_get_shell_surface: Leave (ico_ivi_shell.c:791)
+[16:41:21.519] DBG>shell_surface_set_toplevel: Set TopLevel[08badea8] (ico_ivi_shell.c:373)
+[16:41:21.519] DBG>shell_surface_set_title: [08badea8] EFL Native Application 4 (ico_ivi_shell.c:510)
+[16:41:21.526] DBG>set_surface_type: [08badea8] (08badc38) type=1 (ico_ivi_shell.c:265)
+[16:41:21.526] DBG>reset_shell_surface_type: [08badea8] (ico_ivi_shell.c:244)
+[16:41:21.526] DBG>shell_surface_configure: configure to Buffer size(no Manager) x=16384+16384-16384 y=16384+16384-16384 (ico_ivi_shell.c:1080)
+[16:41:21.526] DBG>configure: Enter(08badc38) [08badea8] x/y=16384/16384, w/h=520/380 (ico_ivi_shell.c:965)
+[16:41:21.526] DBG>ivi_shell_surface_configure: 08badea8 16384,16384(520/380) unvisible (ico_ivi_shell.c:1710)
+[16:41:21.526] DBG>configure: Leave (ico_ivi_shell.c:987)
+[16:41:21.526] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=520/380) (ico_ivi_shell.c:1047)
+[16:41:21.526] DBG>ivi_shell_surface_configure: 08badea8 16384,16384(520/380) unvisible (ico_ivi_shell.c:1710)
+[16:41:21.526] DBG>shell_surface_configure: w/h=520/380->520/380 x/y=16384/16384->16384/16384 (ico_ivi_shell.c:1068)
+[16:41:21.526] DBG>win_mgr_surface_change_mgr: Enter(08badc38,x/y=16384/16384,w/h=520/380) (ico_window_mgr.c:1177)
+[16:41:21.526] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000009,app=test-eflapp@4,layer=0,x/y=16384/16384,w/h=520/380,hint=1) (ico_window_mgr.c:1464)
+[16:41:21.526] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:21.526] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:21.907] DBG>uifw_set_window_layer: Enter res=08b425a0 surfaceid=00000009 layer=102 (ico_window_mgr.c:823)
+[16:41:21.907] DBG>uifw_set_window_layer: Set Layer(102) to Shell Surface (ico_window_mgr.c:833)
+[16:41:21.907] DBG>ivi_shell_set_layer: Enter([08badea8],08badc38,102) (ico_ivi_shell.c:1416)
+[16:41:21.907] DBG>ivi_shell_set_layer: el=08ba5b38(103) (ico_ivi_shell.c:1428)
+[16:41:21.907] DBG>ivi_shell_set_layer: el=08bbffa8(102) (ico_ivi_shell.c:1428)
+[16:41:21.907] DBG>ivi_shell_set_layer: Add surface to Layer 102 (ico_ivi_shell.c:1462)
+[16:41:21.907] DBG>ivi_shell_restack_ivi_layer: Enter[08badea8] (ico_ivi_shell.c:1220)
+[16:41:21.907] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:21.907] DBG>ivi_shell_set_layer: Leave (ico_ivi_shell.c:1471)
+[16:41:21.907] DBG>win_mgr_surface_change: Enter(08badc38,1,1) (ico_window_mgr.c:1208)
+[16:41:21.907] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000009,w/h=0/0) (ico_window_mgr.c:1220)
+[16:41:21.907] DBG>ivi_shell_send_configure: (08badc38) edges=a w/h=0/0 (ico_ivi_shell.c:1559)
+[16:41:21.907] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:21.907] DBG>uifw_set_window_layer: Leave (ico_window_mgr.c:838)
+[16:41:21.908] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=520/380) (ico_ivi_shell.c:1047)
+[16:41:21.908] DBG>ivi_shell_surface_configure: 08badea8 16384,16384(0/0) unvisible (ico_ivi_shell.c:1710)
+[16:41:21.908] DBG>shell_surface_configure: w/h=0/0->0/0 x/y=16384/16384->16384/16384 (ico_ivi_shell.c:1068)
+[16:41:21.908] DBG>win_mgr_surface_change_mgr: Enter(08badc38,x/y=16384/16384,w/h=520/380) (ico_window_mgr.c:1177)
+[16:41:21.908] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000009,app=test-eflapp@4,layer=102,x/y=16384/16384,w/h=520/380,hint=1) (ico_window_mgr.c:1464)
+[16:41:21.908] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:21.908] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:21.908] DBG>shell_surface_configure: configure to Buffer size(no Manager) x=16384+16384-16384 y=16384+16384-16384 (ico_ivi_shell.c:1080)
+[16:41:21.908] DBG>configure: Enter(08badc38) [08badea8] x/y=16384/16384, w/h=520/380 (ico_ivi_shell.c:965)
+[16:41:21.908] DBG>ivi_shell_surface_configure: 08badea8 16384,16384(520/380) unvisible (ico_ivi_shell.c:1710)
+[16:41:21.909] DBG>configure: Leave (ico_ivi_shell.c:987)
+[16:41:21.927] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000009 x/y/w/h=400/500/16384/16384 (ico_window_mgr.c:897)
+[16:41:21.927] DBG>uifw_set_positionsize: Old geometry x/y=16384/16384,w/h=520/380 (ico_window_mgr.c:931)
+[16:41:21.927] DBG>uifw_set_positionsize: Fixed Geometry, Change(Vis=0) (ico_window_mgr.c:946)
+[16:41:21.927] DBG>uifw_set_weston_surface: w/h=0/0->0/0 x/y=400/500->400/500 (ico_window_mgr.c:871)
+[16:41:21.927] DBG>ivi_shell_surface_configure: 08badea8 400,500(0/0) unvisible (ico_ivi_shell.c:1710)
+[16:41:21.927] DBG>win_mgr_surface_change: Enter(08badc38,0,1) (ico_window_mgr.c:1208)
+[16:41:21.927] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000009,w/h=0/0) (ico_window_mgr.c:1220)
+[16:41:21.927] DBG>ivi_shell_send_configure: (08badc38) edges=a w/h=0/0 (ico_ivi_shell.c:1559)
+[16:41:21.928] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000009,app=test-eflapp@4,layer=102,x/y=400/500,w/h=0/0,hint=0) (ico_window_mgr.c:1464)
+[16:41:21.928] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:21.928] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:41:21.948] DBG>uifw_set_visible: Enter(surf=00000009,1,9) (ico_window_mgr.c:980)
+[16:41:21.948] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:21.948] DBG>uifw_set_visible: Set w/h=0/0 (ico_window_mgr.c:1009)
+[16:41:21.948] DBG>ivi_shell_set_visible: [08badea8] visible=1 (ico_ivi_shell.c:1356)
+[16:41:21.948] DBG>ivi_shell_restack_ivi_layer: Enter[08badea8] (ico_ivi_shell.c:1220)
+[16:41:21.948] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:21.948] DBG>uifw_set_visible: Change to Visible (ico_window_mgr.c:1016)
+[16:41:21.948] DBG>ivi_shell_set_toplevel: (08badc38) (ico_ivi_shell.c:1520)
+[16:41:21.948] DBG>uifw_set_visible: Visible to Weston WSurf=08badc38,400/500/0/0 (ico_window_mgr.c:1023)
+[16:41:21.948] DBG>uifw_set_weston_surface: w/h=0/0->0/0 x/y=400/500->400/500 (ico_window_mgr.c:871)
+[16:41:21.948] DBG>ivi_shell_surface_configure: 08badea8 400,500(0/0) visible (ico_ivi_shell.c:1717)
+[16:41:21.948] DBG>ivi_shell_set_surfacetype: (08badc38) (ico_ivi_shell.c:1536)
+[16:41:21.948] DBG>set_surface_type: [08badea8] (08badc38) type=1 (ico_ivi_shell.c:265)
+[16:41:21.948] DBG>reset_shell_surface_type: [08badea8] (ico_ivi_shell.c:244)
+[16:41:21.948] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) VISIBLE(surf=00000009,vis=1,raise=9,hint=0) (ico_window_mgr.c:1455)
+[16:41:21.948] DBG>uifw_set_visible: Leave(OK) (ico_window_mgr.c:1065)
+[16:41:21.988] DBG>uifw_set_visible: Enter(surf=00000009,1,9) (ico_window_mgr.c:980)
+[16:41:21.988] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:21.988] DBG>uifw_set_visible: Set w/h=0/0 (ico_window_mgr.c:1009)
+[16:41:21.988] DBG>uifw_set_visible: Leave(No Change) (ico_window_mgr.c:1028)
+[16:41:22.540] DBG>bind_shell: client=08baede8 id=11 (ico_ivi_shell.c:1112)
+[16:41:22.540] DBG>bind_shell_client: Enter(client=08baede8) (ico_window_mgr.c:414)
+[16:41:22.540] DBG>find_client_from_client: NULL (ico_window_mgr.c:293)
+[16:41:22.540] DBG>bind_shell_client: Create Client (ico_window_mgr.c:420)
+[16:41:22.540] DBG>bind_shell_client: client=08baede8 pid=31774 uid=0 gid=0 (ico_window_mgr.c:432)
+[16:41:22.541] DBG>bind_shell_client: pid=31774 dose not exist in AppCore(AUL) (ico_window_mgr.c:444)
+[16:41:22.542] DBG>bind_shell_client: client=08baede8 pid=31774 appid=<test-eflapp@5> from Process table (ico_window_mgr.c:483)
+[16:41:22.542] DBG>bind_shell_client: Leave (ico_window_mgr.c:495)
+[16:41:22.679] DBG>shell_get_shell_surface: Enter (08baf500) client=08baede8 (ico_ivi_shell.c:761)
+[16:41:22.679] DBG>create_shell_surface: (08baf500) [08baf770] client=b5c0a744 (visible=0) (ico_ivi_shell.c:704)
+[16:41:22.679] DBG>shell_get_shell_surface: Init shsurf(08baf770) weston_surf=08baf500 (ico_ivi_shell.c:782)
+[16:41:22.679] DBG>shell_get_shell_surface: call ivi_shell_hook_create(08baede8,,08baf500,08baf770) (ico_ivi_shell.c:787)
+[16:41:22.680] DBG>client_register_surface: Enter(surf=08baf500,client=08baede8,res=08baf2d8) (ico_window_mgr.c:543)
+[16:41:22.680] DBG>find_uifw_win_surface_by_ws: NULL (ico_window_mgr.c:269)
+[16:41:22.680] DBG>generate_id: SurfaceId=0000000a (ico_window_mgr.c:357)
+[16:41:22.680] DBG>client_register_surface: Manager exist, Not visible (ico_window_mgr.c:569)
+[16:41:22.680] DBG>ivi_shell_set_visible: [08baf770] visible=-1 (ico_ivi_shell.c:1356)
+[16:41:22.680] DBG>ivi_shell_set_visible: No change (ico_ivi_shell.c:1377)
+[16:41:22.680] DBG>ivi_shell_set_layer: Enter([08baf770],08baf500,0) (ico_ivi_shell.c:1416)
+[16:41:22.680] DBG>ivi_shell_set_layer: el=08ba5b38(103) (ico_ivi_shell.c:1428)
+[16:41:22.680] DBG>ivi_shell_set_layer: el=08bbffa8(102) (ico_ivi_shell.c:1428)
+[16:41:22.680] DBG>ivi_shell_set_layer: el=08ba5b88(101) (ico_ivi_shell.c:1428)
+[16:41:22.680] DBG>ivi_shell_set_layer: el=0894f568(0) (ico_ivi_shell.c:1428)
+[16:41:22.680] DBG>ivi_shell_set_layer: Add surface to Layer 0 (ico_ivi_shell.c:1462)
+[16:41:22.680] DBG>ivi_shell_restack_ivi_layer: Enter[08baf770] (ico_ivi_shell.c:1220)
+[16:41:22.680] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:22.680] DBG>ivi_shell_set_layer: Leave (ico_ivi_shell.c:1471)
+[16:41:22.680] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) WINDOW_CREATED(surf=0000000a,pid=31774,appid=test-eflapp@5) (ico_window_mgr.c:1448)
+[16:41:22.680] DBG>client_register_surface: Leave(surfaceId=0000000a) (ico_window_mgr.c:627)
+[16:41:22.680] DBG>shell_get_shell_surface: ret ivi_shell_hook_create (ico_ivi_shell.c:789)
+[16:41:22.680] DBG>shell_get_shell_surface: Leave (ico_ivi_shell.c:791)
+[16:41:22.680] DBG>shell_surface_set_toplevel: Set TopLevel[08baf770] (ico_ivi_shell.c:373)
+[16:41:22.680] DBG>shell_surface_set_title: [08baf770] EFL Native Application 5 (ico_ivi_shell.c:510)
+[16:41:22.686] DBG>set_surface_type: [08baf770] (08baf500) type=1 (ico_ivi_shell.c:265)
+[16:41:22.686] DBG>reset_shell_surface_type: [08baf770] (ico_ivi_shell.c:244)
+[16:41:22.686] DBG>shell_surface_configure: configure to Buffer size(no Manager) x=16384+16384-16384 y=16384+16384-16384 (ico_ivi_shell.c:1080)
+[16:41:22.686] DBG>configure: Enter(08baf500) [08baf770] x/y=16384/16384, w/h=520/380 (ico_ivi_shell.c:965)
+[16:41:22.686] DBG>ivi_shell_surface_configure: 08baf770 16384,16384(520/380) unvisible (ico_ivi_shell.c:1710)
+[16:41:22.686] DBG>configure: Leave (ico_ivi_shell.c:987)
+[16:41:22.686] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=520/380) (ico_ivi_shell.c:1047)
+[16:41:22.686] DBG>ivi_shell_surface_configure: 08baf770 16384,16384(520/380) unvisible (ico_ivi_shell.c:1710)
+[16:41:22.686] DBG>shell_surface_configure: w/h=520/380->520/380 x/y=16384/16384->16384/16384 (ico_ivi_shell.c:1068)
+[16:41:22.686] DBG>win_mgr_surface_change_mgr: Enter(08baf500,x/y=16384/16384,w/h=520/380) (ico_window_mgr.c:1177)
+[16:41:22.686] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=0000000a,app=test-eflapp@5,layer=0,x/y=16384/16384,w/h=520/380,hint=1) (ico_window_mgr.c:1464)
+[16:41:22.686] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:22.686] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:23.075] DBG>uifw_set_window_layer: Enter res=08b425a0 surfaceid=0000000a layer=102 (ico_window_mgr.c:823)
+[16:41:23.075] DBG>uifw_set_window_layer: Set Layer(102) to Shell Surface (ico_window_mgr.c:833)
+[16:41:23.075] DBG>ivi_shell_set_layer: Enter([08baf770],08baf500,102) (ico_ivi_shell.c:1416)
+[16:41:23.075] DBG>ivi_shell_set_layer: el=08ba5b38(103) (ico_ivi_shell.c:1428)
+[16:41:23.075] DBG>ivi_shell_set_layer: el=08bbffa8(102) (ico_ivi_shell.c:1428)
+[16:41:23.075] DBG>ivi_shell_set_layer: Add surface to Layer 102 (ico_ivi_shell.c:1462)
+[16:41:23.075] DBG>ivi_shell_restack_ivi_layer: Enter[08baf770] (ico_ivi_shell.c:1220)
+[16:41:23.075] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:23.075] DBG>ivi_shell_set_layer: Leave (ico_ivi_shell.c:1471)
+[16:41:23.075] DBG>win_mgr_surface_change: Enter(08baf500,1,1) (ico_window_mgr.c:1208)
+[16:41:23.075] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(0000000a,w/h=0/0) (ico_window_mgr.c:1220)
+[16:41:23.075] DBG>ivi_shell_send_configure: (08baf500) edges=a w/h=0/0 (ico_ivi_shell.c:1559)
+[16:41:23.075] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:23.075] DBG>uifw_set_window_layer: Leave (ico_window_mgr.c:838)
+[16:41:23.092] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=520/380) (ico_ivi_shell.c:1047)
+[16:41:23.092] DBG>ivi_shell_surface_configure: 08baf770 16384,16384(0/0) unvisible (ico_ivi_shell.c:1710)
+[16:41:23.092] DBG>shell_surface_configure: w/h=0/0->0/0 x/y=16384/16384->16384/16384 (ico_ivi_shell.c:1068)
+[16:41:23.092] DBG>win_mgr_surface_change_mgr: Enter(08baf500,x/y=16384/16384,w/h=520/380) (ico_window_mgr.c:1177)
+[16:41:23.092] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=0000000a,app=test-eflapp@5,layer=102,x/y=16384/16384,w/h=520/380,hint=1) (ico_window_mgr.c:1464)
+[16:41:23.092] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:23.092] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:23.092] DBG>shell_surface_configure: configure to Buffer size(no Manager) x=16384+16384-16384 y=16384+16384-16384 (ico_ivi_shell.c:1080)
+[16:41:23.092] DBG>configure: Enter(08baf500) [08baf770] x/y=16384/16384, w/h=520/380 (ico_ivi_shell.c:965)
+[16:41:23.092] DBG>ivi_shell_surface_configure: 08baf770 16384,16384(520/380) unvisible (ico_ivi_shell.c:1710)
+[16:41:23.092] DBG>configure: Leave (ico_ivi_shell.c:987)
+[16:41:23.095] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=0000000a x/y/w/h=500/600/16384/16384 (ico_window_mgr.c:897)
+[16:41:23.095] DBG>uifw_set_positionsize: Old geometry x/y=16384/16384,w/h=520/380 (ico_window_mgr.c:931)
+[16:41:23.095] DBG>uifw_set_positionsize: Fixed Geometry, Change(Vis=0) (ico_window_mgr.c:946)
+[16:41:23.095] DBG>uifw_set_weston_surface: w/h=0/0->0/0 x/y=500/600->500/600 (ico_window_mgr.c:871)
+[16:41:23.095] DBG>ivi_shell_surface_configure: 08baf770 500,600(0/0) unvisible (ico_ivi_shell.c:1710)
+[16:41:23.095] DBG>win_mgr_surface_change: Enter(08baf500,0,1) (ico_window_mgr.c:1208)
+[16:41:23.095] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(0000000a,w/h=0/0) (ico_window_mgr.c:1220)
+[16:41:23.095] DBG>ivi_shell_send_configure: (08baf500) edges=a w/h=0/0 (ico_ivi_shell.c:1559)
+[16:41:23.095] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=0000000a,app=test-eflapp@5,layer=102,x/y=500/600,w/h=0/0,hint=0) (ico_window_mgr.c:1464)
+[16:41:23.095] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:23.095] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:41:23.115] DBG>uifw_set_visible: Enter(surf=0000000a,1,9) (ico_window_mgr.c:980)
+[16:41:23.115] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:23.115] DBG>uifw_set_visible: Set w/h=0/0 (ico_window_mgr.c:1009)
+[16:41:23.115] DBG>ivi_shell_set_visible: [08baf770] visible=1 (ico_ivi_shell.c:1356)
+[16:41:23.115] DBG>ivi_shell_restack_ivi_layer: Enter[08baf770] (ico_ivi_shell.c:1220)
+[16:41:23.115] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:23.115] DBG>uifw_set_visible: Change to Visible (ico_window_mgr.c:1016)
+[16:41:23.115] DBG>ivi_shell_set_toplevel: (08baf500) (ico_ivi_shell.c:1520)
+[16:41:23.115] DBG>uifw_set_visible: Visible to Weston WSurf=08baf500,500/600/0/0 (ico_window_mgr.c:1023)
+[16:41:23.115] DBG>uifw_set_weston_surface: w/h=0/0->0/0 x/y=500/600->500/600 (ico_window_mgr.c:871)
+[16:41:23.115] DBG>ivi_shell_surface_configure: 08baf770 500,600(0/0) visible (ico_ivi_shell.c:1717)
+[16:41:23.115] DBG>ivi_shell_set_surfacetype: (08baf500) (ico_ivi_shell.c:1536)
+[16:41:23.115] DBG>set_surface_type: [08baf770] (08baf500) type=1 (ico_ivi_shell.c:265)
+[16:41:23.115] DBG>reset_shell_surface_type: [08baf770] (ico_ivi_shell.c:244)
+[16:41:23.115] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) VISIBLE(surf=0000000a,vis=1,raise=9,hint=0) (ico_window_mgr.c:1455)
+[16:41:23.116] DBG>uifw_set_visible: Leave(OK) (ico_window_mgr.c:1065)
+[16:41:23.155] DBG>uifw_set_visible: Enter(surf=0000000a,1,9) (ico_window_mgr.c:980)
+[16:41:23.156] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:23.156] DBG>uifw_set_visible: Set w/h=0/0 (ico_window_mgr.c:1009)
+[16:41:23.156] DBG>uifw_set_visible: Leave(No Change) (ico_window_mgr.c:1028)
+[16:41:24.159] DBG>uifw_set_visible: Enter(surf=00000007,0,9) (ico_window_mgr.c:980)
+[16:41:24.159] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:24.159] DBG>ivi_shell_set_visible: [08bbf088] visible=0 (ico_ivi_shell.c:1356)
+[16:41:24.159] DBG>ivi_shell_restack_ivi_layer: Enter[08bbf088] (ico_ivi_shell.c:1220)
+[16:41:24.160] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:24.160] DBG>uifw_set_visible: Change to UnVisible (ico_window_mgr.c:1036)
+[16:41:24.160] DBG>uifw_set_weston_surface: w/h=0/0->0/0 x/y=200/300->200/300 (ico_window_mgr.c:871)
+[16:41:24.160] DBG>ivi_shell_surface_configure: 08bbf088 200,300(0/0) unvisible (ico_ivi_shell.c:1710)
+[16:41:24.160] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) VISIBLE(surf=00000007,vis=0,raise=9,hint=0) (ico_window_mgr.c:1455)
+[16:41:24.160] DBG>uifw_set_visible: Leave(OK) (ico_window_mgr.c:1065)
+[16:41:24.200] DBG>uifw_set_visible: Enter(surf=00000007,0,9) (ico_window_mgr.c:980)
+[16:41:24.200] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:24.200] DBG>uifw_set_visible: Leave(No Change) (ico_window_mgr.c:1042)
+[16:41:25.204] DBG>uifw_set_visible: Enter(surf=00000007,1,9) (ico_window_mgr.c:980)
+[16:41:25.204] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:25.204] DBG>uifw_set_visible: Set w/h=0/0 (ico_window_mgr.c:1009)
+[16:41:25.204] DBG>ivi_shell_set_visible: [08bbf088] visible=1 (ico_ivi_shell.c:1356)
+[16:41:25.204] DBG>ivi_shell_restack_ivi_layer: Enter[08bbf088] (ico_ivi_shell.c:1220)
+[16:41:25.204] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:25.204] DBG>uifw_set_visible: Change to Visible (ico_window_mgr.c:1016)
+[16:41:25.204] DBG>ivi_shell_set_toplevel: (08b3f490) (ico_ivi_shell.c:1520)
+[16:41:25.204] DBG>uifw_set_visible: Visible to Weston WSurf=08b3f490,200/300/0/0 (ico_window_mgr.c:1023)
+[16:41:25.204] DBG>uifw_set_weston_surface: w/h=0/0->0/0 x/y=200/300->200/300 (ico_window_mgr.c:871)
+[16:41:25.204] DBG>ivi_shell_surface_configure: 08bbf088 200,300(0/0) visible (ico_ivi_shell.c:1717)
+[16:41:25.204] DBG>ivi_shell_set_surfacetype: (08b3f490) (ico_ivi_shell.c:1536)
+[16:41:25.204] DBG>set_surface_type: [08bbf088] (08b3f490) type=1 (ico_ivi_shell.c:265)
+[16:41:25.204] DBG>reset_shell_surface_type: [08bbf088] (ico_ivi_shell.c:244)
+[16:41:25.204] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) VISIBLE(surf=00000007,vis=1,raise=9,hint=0) (ico_window_mgr.c:1455)
+[16:41:25.204] DBG>uifw_set_visible: Leave(OK) (ico_window_mgr.c:1065)
+[16:41:25.244] DBG>uifw_set_visible: Enter(surf=00000007,1,9) (ico_window_mgr.c:980)
+[16:41:25.244] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:25.244] DBG>uifw_set_visible: Set w/h=0/0 (ico_window_mgr.c:1009)
+[16:41:25.244] DBG>uifw_set_visible: Leave(No Change) (ico_window_mgr.c:1028)
+[16:41:27.292] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000007 x/y/w/h=16384/16384/200/300 (ico_window_mgr.c:897)
+[16:41:27.292] DBG>uifw_set_positionsize: Old geometry x/y=200/300,w/h=0/0 (ico_window_mgr.c:931)
+[16:41:27.292] DBG>win_mgr_surface_change: Enter(08b3f490,0,1) (ico_window_mgr.c:1208)
+[16:41:27.292] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000007,w/h=200/300) (ico_window_mgr.c:1220)
+[16:41:27.292] DBG>ivi_shell_send_configure: (08b3f490) edges=a w/h=200/300 (ico_ivi_shell.c:1559)
+[16:41:27.292] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000007,app=test-eflapp@2,layer=103,x/y=200/300,w/h=200/300,hint=0) (ico_window_mgr.c:1464)
+[16:41:27.292] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:27.292] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:41:28.336] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000008 x/y/w/h=16384/16384/720/520 (ico_window_mgr.c:897)
+[16:41:28.336] DBG>uifw_set_positionsize: Old geometry x/y=300/400,w/h=0/0 (ico_window_mgr.c:931)
+[16:41:28.336] DBG>win_mgr_surface_change: Enter(08bc0618,0,1) (ico_window_mgr.c:1208)
+[16:41:28.336] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000008,w/h=720/520) (ico_window_mgr.c:1220)
+[16:41:28.336] DBG>ivi_shell_send_configure: (08bc0618) edges=a w/h=720/520 (ico_ivi_shell.c:1559)
+[16:41:28.336] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000008,app=test-eflapp@3,layer=102,x/y=300/400,w/h=720/520,hint=0) (ico_window_mgr.c:1464)
+[16:41:28.336] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:28.336] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:41:29.380] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000008 x/y/w/h=16384/16384/520/380 (ico_window_mgr.c:897)
+[16:41:29.381] DBG>uifw_set_positionsize: Old geometry x/y=300/400,w/h=0/0 (ico_window_mgr.c:931)
+[16:41:29.381] DBG>win_mgr_surface_change: Enter(08bc0618,0,1) (ico_window_mgr.c:1208)
+[16:41:29.381] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000008,w/h=520/380) (ico_window_mgr.c:1220)
+[16:41:29.381] DBG>ivi_shell_send_configure: (08bc0618) edges=a w/h=520/380 (ico_ivi_shell.c:1559)
+[16:41:29.381] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000008,app=test-eflapp@3,layer=102,x/y=300/400,w/h=520/380,hint=0) (ico_window_mgr.c:1464)
+[16:41:29.381] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:29.381] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:41:30.425] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=00000007 x/y/w/h=16384/16384/520/380 (ico_window_mgr.c:897)
+[16:41:30.425] DBG>uifw_set_positionsize: Old geometry x/y=200/300,w/h=0/0 (ico_window_mgr.c:931)
+[16:41:30.425] DBG>win_mgr_surface_change: Enter(08b3f490,0,1) (ico_window_mgr.c:1208)
+[16:41:30.425] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000007,w/h=520/380) (ico_window_mgr.c:1220)
+[16:41:30.425] DBG>ivi_shell_send_configure: (08b3f490) edges=a w/h=520/380 (ico_ivi_shell.c:1559)
+[16:41:30.425] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=00000007,app=test-eflapp@2,layer=103,x/y=200/300,w/h=520/380,hint=0) (ico_window_mgr.c:1464)
+[16:41:30.425] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:30.425] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:41:31.509] DBG>uifw_set_visible: Enter(surf=00000008,9,1) (ico_window_mgr.c:980)
+[16:41:31.509] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:31.509] DBG>ivi_shell_set_raise: Enter(08bc0618,1) layer_list=08bbffa8 (ico_ivi_shell.c:1488)
+[16:41:31.509] DBG>ivi_shell_set_raise: Raise Link to Top (ico_ivi_shell.c:1494)
+[16:41:31.509] DBG>ivi_shell_restack_ivi_layer: Enter[08bc0888] (ico_ivi_shell.c:1220)
+[16:41:31.509] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:31.509] DBG>ivi_shell_set_raise: Leave (ico_ivi_shell.c:1505)
+[16:41:31.509] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) VISIBLE(surf=00000008,vis=9,raise=1,hint=0) (ico_window_mgr.c:1455)
+[16:41:31.509] DBG>uifw_set_visible: Leave(OK) (ico_window_mgr.c:1065)
+[16:41:31.549] DBG>uifw_set_visible: Enter(surf=00000008,9,9) (ico_window_mgr.c:980)
+[16:41:31.549] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:31.549] DBG>uifw_set_visible: Leave(No Change) (ico_window_mgr.c:1047)
+[16:41:32.553] DBG>uifw_set_visible: Enter(surf=00000009,9,1) (ico_window_mgr.c:980)
+[16:41:32.554] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:32.554] DBG>ivi_shell_set_raise: Enter(08badc38,1) layer_list=08bbffa8 (ico_ivi_shell.c:1488)
+[16:41:32.554] DBG>ivi_shell_set_raise: Raise Link to Top (ico_ivi_shell.c:1494)
+[16:41:32.554] DBG>ivi_shell_restack_ivi_layer: Enter[08badea8] (ico_ivi_shell.c:1220)
+[16:41:32.554] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:32.554] DBG>ivi_shell_set_raise: Leave (ico_ivi_shell.c:1505)
+[16:41:32.554] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) VISIBLE(surf=00000009,vis=9,raise=1,hint=0) (ico_window_mgr.c:1455)
+[16:41:32.554] DBG>uifw_set_visible: Leave(OK) (ico_window_mgr.c:1065)
+[16:41:32.594] DBG>uifw_set_visible: Enter(surf=00000009,9,9) (ico_window_mgr.c:980)
+[16:41:32.594] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:32.594] DBG>uifw_set_visible: Leave(No Change) (ico_window_mgr.c:1047)
+[16:41:33.598] DBG>uifw_set_visible: Enter(surf=0000000a,9,1) (ico_window_mgr.c:980)
+[16:41:33.598] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:33.598] DBG>ivi_shell_set_raise: Enter(08baf500,1) layer_list=08bbffa8 (ico_ivi_shell.c:1488)
+[16:41:33.598] DBG>ivi_shell_set_raise: Raise Link to Top (ico_ivi_shell.c:1494)
+[16:41:33.598] DBG>ivi_shell_restack_ivi_layer: Enter[08baf770] (ico_ivi_shell.c:1220)
+[16:41:33.598] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:33.598] DBG>ivi_shell_set_raise: Leave (ico_ivi_shell.c:1505)
+[16:41:33.598] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) VISIBLE(surf=0000000a,vis=9,raise=1,hint=0) (ico_window_mgr.c:1455)
+[16:41:33.598] DBG>uifw_set_visible: Leave(OK) (ico_window_mgr.c:1065)
+[16:41:33.638] DBG>uifw_set_visible: Enter(surf=0000000a,9,9) (ico_window_mgr.c:980)
+[16:41:33.638] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:33.638] DBG>uifw_set_visible: Leave(No Change) (ico_window_mgr.c:1047)
+[16:41:34.642] DBG>uifw_set_visible: Enter(surf=0000000a,9,0) (ico_window_mgr.c:980)
+[16:41:34.642] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:34.642] DBG>ivi_shell_set_raise: Enter(08baf500,0) layer_list=08bbffa8 (ico_ivi_shell.c:1488)
+[16:41:34.642] DBG>ivi_shell_set_raise: Lower Link to Bottom (ico_ivi_shell.c:1499)
+[16:41:34.642] DBG>ivi_shell_restack_ivi_layer: Enter[08baf770] (ico_ivi_shell.c:1220)
+[16:41:34.642] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:34.642] DBG>ivi_shell_set_raise: Leave (ico_ivi_shell.c:1505)
+[16:41:34.642] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) VISIBLE(surf=0000000a,vis=9,raise=0,hint=0) (ico_window_mgr.c:1455)
+[16:41:34.643] DBG>uifw_set_visible: Leave(OK) (ico_window_mgr.c:1065)
+[16:41:34.682] DBG>uifw_set_visible: Enter(surf=0000000a,9,9) (ico_window_mgr.c:980)
+[16:41:34.682] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:34.682] DBG>uifw_set_visible: Leave(No Change) (ico_window_mgr.c:1047)
+[16:41:35.686] DBG>uifw_set_visible: Enter(surf=00000009,9,0) (ico_window_mgr.c:980)
+[16:41:35.687] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:35.687] DBG>ivi_shell_set_raise: Enter(08badc38,0) layer_list=08bbffa8 (ico_ivi_shell.c:1488)
+[16:41:35.687] DBG>ivi_shell_set_raise: Lower Link to Bottom (ico_ivi_shell.c:1499)
+[16:41:35.687] DBG>ivi_shell_restack_ivi_layer: Enter[08badea8] (ico_ivi_shell.c:1220)
+[16:41:35.687] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:35.687] DBG>ivi_shell_set_raise: Leave (ico_ivi_shell.c:1505)
+[16:41:35.687] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) VISIBLE(surf=00000009,vis=9,raise=0,hint=0) (ico_window_mgr.c:1455)
+[16:41:35.687] DBG>uifw_set_visible: Leave(OK) (ico_window_mgr.c:1065)
+[16:41:35.727] DBG>uifw_set_visible: Enter(surf=00000009,9,9) (ico_window_mgr.c:980)
+[16:41:35.727] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:35.727] DBG>uifw_set_visible: Leave(No Change) (ico_window_mgr.c:1047)
+[16:41:36.731] DBG>uifw_set_visible: Enter(surf=00000008,9,0) (ico_window_mgr.c:980)
+[16:41:36.731] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:36.731] DBG>ivi_shell_set_raise: Enter(08bc0618,0) layer_list=08bbffa8 (ico_ivi_shell.c:1488)
+[16:41:36.731] DBG>ivi_shell_set_raise: Lower Link to Bottom (ico_ivi_shell.c:1499)
+[16:41:36.731] DBG>ivi_shell_restack_ivi_layer: Enter[08bc0888] (ico_ivi_shell.c:1220)
+[16:41:36.731] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:36.731] DBG>ivi_shell_set_raise: Leave (ico_ivi_shell.c:1505)
+[16:41:36.731] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) VISIBLE(surf=00000008,vis=9,raise=0,hint=0) (ico_window_mgr.c:1455)
+[16:41:36.731] DBG>uifw_set_visible: Leave(OK) (ico_window_mgr.c:1065)
+[16:41:36.771] DBG>uifw_set_visible: Enter(surf=00000008,9,9) (ico_window_mgr.c:980)
+[16:41:36.771] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:36.771] DBG>uifw_set_visible: Leave(No Change) (ico_window_mgr.c:1047)
+[16:41:38.819] DBG>uifw_set_window_layer: Enter res=08b425a0 surfaceid=00000006 layer=100 (ico_window_mgr.c:823)
+[16:41:38.819] DBG>uifw_set_window_layer: Set Layer(100) to Shell Surface (ico_window_mgr.c:833)
+[16:41:38.819] DBG>ivi_shell_set_layer: Enter([089f00d8],08b96da8,100) (ico_ivi_shell.c:1416)
+[16:41:38.819] DBG>ivi_shell_set_layer: el=08ba5b38(103) (ico_ivi_shell.c:1428)
+[16:41:38.819] DBG>ivi_shell_set_layer: el=08bbffa8(102) (ico_ivi_shell.c:1428)
+[16:41:38.819] DBG>ivi_shell_set_layer: el=08ba5b88(101) (ico_ivi_shell.c:1428)
+[16:41:38.819] DBG>ivi_shell_set_layer: el=0894f568(0) (ico_ivi_shell.c:1428)
+[16:41:38.819] DBG>ivi_shell_set_layer: New Layer 100 (ico_ivi_shell.c:1434)
+[16:41:38.819] DBG>ivi_shell_restack_ivi_layer: Enter[089f00d8] (ico_ivi_shell.c:1220)
+[16:41:38.819] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:38.819] DBG>ivi_shell_set_layer: Leave (ico_ivi_shell.c:1471)
+[16:41:38.819] DBG>win_mgr_surface_change: Enter(08b96da8,1,1) (ico_window_mgr.c:1208)
+[16:41:38.819] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000006,w/h=0/0) (ico_window_mgr.c:1220)
+[16:41:38.819] DBG>ivi_shell_send_configure: (08b96da8) edges=a w/h=0/0 (ico_ivi_shell.c:1559)
+[16:41:38.819] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:38.819] DBG>uifw_set_window_layer: Leave (ico_window_mgr.c:838)
+[16:41:39.863] DBG>uifw_set_window_layer: Enter res=08b425a0 surfaceid=00000007 layer=100 (ico_window_mgr.c:823)
+[16:41:39.863] DBG>uifw_set_window_layer: Set Layer(100) to Shell Surface (ico_window_mgr.c:833)
+[16:41:39.863] DBG>ivi_shell_set_layer: Enter([08bbf088],08b3f490,100) (ico_ivi_shell.c:1416)
+[16:41:39.863] DBG>ivi_shell_set_layer: el=08ba5b38(103) (ico_ivi_shell.c:1428)
+[16:41:39.863] DBG>ivi_shell_set_layer: el=08bbffa8(102) (ico_ivi_shell.c:1428)
+[16:41:39.863] DBG>ivi_shell_set_layer: el=08ba5b88(101) (ico_ivi_shell.c:1428)
+[16:41:39.863] DBG>ivi_shell_set_layer: el=08ba83c8(100) (ico_ivi_shell.c:1428)
+[16:41:39.863] DBG>ivi_shell_set_layer: Add surface to Layer 100 (ico_ivi_shell.c:1462)
+[16:41:39.863] DBG>ivi_shell_restack_ivi_layer: Enter[08bbf088] (ico_ivi_shell.c:1220)
+[16:41:39.863] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:39.863] DBG>ivi_shell_set_layer: Leave (ico_ivi_shell.c:1471)
+[16:41:39.864] DBG>win_mgr_surface_change: Enter(08b3f490,1,1) (ico_window_mgr.c:1208)
+[16:41:39.864] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(00000007,w/h=520/380) (ico_window_mgr.c:1220)
+[16:41:39.864] DBG>ivi_shell_send_configure: (08b3f490) edges=a w/h=520/380 (ico_ivi_shell.c:1559)
+[16:41:39.864] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:39.864] DBG>uifw_set_window_layer: Leave (ico_window_mgr.c:838)
+[16:41:41.951] DBG>uifw_set_layer_visible: Enter(layer=102, visilbe=0) (ico_window_mgr.c:1148)
+[16:41:41.951] DBG>ivi_shell_set_layer_visible: Enter(layer=102, visible=0) (ico_ivi_shell.c:1608)
+[16:41:41.951] DBG>ivi_shell_set_layer_visible: change to not visible (ico_ivi_shell.c:1648)
+[16:41:41.951] DBG>ivi_shell_restack_ivi_layer: Enter[00000000] (ico_ivi_shell.c:1220)
+[16:41:41.951] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:41.951] DBG>ivi_shell_set_layer_visible: Leave (ico_ivi_shell.c:1676)
+[16:41:41.952] DBG>uifw_set_layer_visible: Leave (ico_window_mgr.c:1152)
+[16:41:42.995] DBG>uifw_set_layer_visible: Enter(layer=102, visilbe=1) (ico_window_mgr.c:1148)
+[16:41:42.995] DBG>ivi_shell_set_layer_visible: Enter(layer=102, visible=1) (ico_ivi_shell.c:1608)
+[16:41:42.996] DBG>ivi_shell_set_layer_visible: change to visible (ico_ivi_shell.c:1653)
+[16:41:42.996] DBG>ivi_shell_restack_ivi_layer: Enter[00000000] (ico_ivi_shell.c:1220)
+[16:41:42.996] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:42.996] DBG>ivi_shell_set_layer_visible: Leave (ico_ivi_shell.c:1676)
+[16:41:42.996] DBG>uifw_set_layer_visible: Leave (ico_window_mgr.c:1152)
+[16:41:44.067] libwayland: disconnect from client 0x89ede80
+[16:41:44.067] DBG>unbind_shell (ico_ivi_shell.c:1135)
+[16:41:44.067] DBG>unbind_shell_client: Enter(client=089ede80) (ico_window_mgr.c:511)
+[16:41:44.067] DBG>unbind_shell_client: Leave (ico_window_mgr.c:519)
+[16:41:44.067] DBG>shell_handle_surface_destroy: Enter [089f00d8] data=08b96da8 (ico_ivi_shell.c:645)
+[16:41:44.067] DBG>shell_destroy_shell_surface: Enter [089f00d8] (ico_ivi_shell.c:622)
+[16:41:44.067] DBG>destroy_shell_surface: Enter[089f00d8] (ico_ivi_shell.c:583)
+[16:41:44.067] DBG>ivi_shell_restack_ivi_layer: Enter[089f00d8] (ico_ivi_shell.c:1220)
+[16:41:44.067] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:44.067] DBG>destroy_shell_surface: call ivi_shell_hook_destroy(08b96da8) (ico_ivi_shell.c:595)
+[16:41:44.067] DBG>win_mgr_surface_destroy: Enter(08b96da8) (ico_window_mgr.c:1282)
+[16:41:44.067] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) DESTROYED surf=00000006 (ico_window_mgr.c:1472)
+[16:41:44.067] DBG>win_mgr_surface_destroy: Leave(OK) (ico_window_mgr.c:1332)
+[16:41:44.067] DBG>destroy_shell_surface: ret (ico_ivi_shell.c:597)
+[16:41:44.067] DBG>destroy_shell_surface: Leave (ico_ivi_shell.c:606)
+[16:41:44.067] DBG>shell_destroy_shell_surface: Leave (ico_ivi_shell.c:626)
+[16:41:44.067] DBG>shell_handle_surface_destroy: Leave (ico_ivi_shell.c:653)
+[16:41:44.910] libwayland: disconnect from client 0x8ba8278
+[16:41:44.910] DBG>unbind_shell (ico_ivi_shell.c:1135)
+[16:41:44.910] DBG>unbind_shell_client: Enter(client=08ba8278) (ico_window_mgr.c:511)
+[16:41:44.910] DBG>unbind_shell_client: Leave (ico_window_mgr.c:519)
+[16:41:44.910] DBG>shell_handle_surface_destroy: Enter [08bbf088] data=08b3f490 (ico_ivi_shell.c:645)
+[16:41:44.910] DBG>shell_destroy_shell_surface: Enter [08bbf088] (ico_ivi_shell.c:622)
+[16:41:44.910] DBG>destroy_shell_surface: Enter[08bbf088] (ico_ivi_shell.c:583)
+[16:41:44.910] DBG>ivi_shell_restack_ivi_layer: Enter[08bbf088] (ico_ivi_shell.c:1220)
+[16:41:44.910] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:44.910] DBG>destroy_shell_surface: call ivi_shell_hook_destroy(08b3f490) (ico_ivi_shell.c:595)
+[16:41:44.910] DBG>win_mgr_surface_destroy: Enter(08b3f490) (ico_window_mgr.c:1282)
+[16:41:44.910] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) DESTROYED surf=00000007 (ico_window_mgr.c:1472)
+[16:41:44.910] DBG>win_mgr_surface_destroy: Leave(OK) (ico_window_mgr.c:1332)
+[16:41:44.910] DBG>destroy_shell_surface: ret (ico_ivi_shell.c:597)
+[16:41:44.910] DBG>destroy_shell_surface: Leave (ico_ivi_shell.c:606)
+[16:41:44.910] DBG>shell_destroy_shell_surface: Leave (ico_ivi_shell.c:626)
+[16:41:44.910] DBG>shell_handle_surface_destroy: Leave (ico_ivi_shell.c:653)
+[16:41:45.752] libwayland: disconnect from client 0x8bbfef0
+[16:41:45.752] DBG>unbind_shell (ico_ivi_shell.c:1135)
+[16:41:45.752] DBG>unbind_shell_client: Enter(client=08bbfef0) (ico_window_mgr.c:511)
+[16:41:45.752] DBG>unbind_shell_client: Leave (ico_window_mgr.c:519)
+[16:41:45.752] DBG>shell_handle_surface_destroy: Enter [08bc0888] data=08bc0618 (ico_ivi_shell.c:645)
+[16:41:45.752] DBG>shell_destroy_shell_surface: Enter [08bc0888] (ico_ivi_shell.c:622)
+[16:41:45.752] DBG>destroy_shell_surface: Enter[08bc0888] (ico_ivi_shell.c:583)
+[16:41:45.752] DBG>ivi_shell_restack_ivi_layer: Enter[08bc0888] (ico_ivi_shell.c:1220)
+[16:41:45.752] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:45.752] DBG>destroy_shell_surface: call ivi_shell_hook_destroy(08bc0618) (ico_ivi_shell.c:595)
+[16:41:45.752] DBG>win_mgr_surface_destroy: Enter(08bc0618) (ico_window_mgr.c:1282)
+[16:41:45.752] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) DESTROYED surf=00000008 (ico_window_mgr.c:1472)
+[16:41:45.752] DBG>win_mgr_surface_destroy: Leave(OK) (ico_window_mgr.c:1332)
+[16:41:45.752] DBG>destroy_shell_surface: ret (ico_ivi_shell.c:597)
+[16:41:45.752] DBG>destroy_shell_surface: Leave (ico_ivi_shell.c:606)
+[16:41:45.752] DBG>shell_destroy_shell_surface: Leave (ico_ivi_shell.c:626)
+[16:41:45.752] DBG>shell_handle_surface_destroy: Leave (ico_ivi_shell.c:653)
+[16:41:46.597] libwayland: disconnect from client 0x8bc0eb0
+[16:41:46.597] DBG>unbind_shell (ico_ivi_shell.c:1135)
+[16:41:46.597] DBG>unbind_shell_client: Enter(client=08bc0eb0) (ico_window_mgr.c:511)
+[16:41:46.597] DBG>unbind_shell_client: Leave (ico_window_mgr.c:519)
+[16:41:46.597] DBG>shell_handle_surface_destroy: Enter [08badea8] data=08badc38 (ico_ivi_shell.c:645)
+[16:41:46.597] DBG>shell_destroy_shell_surface: Enter [08badea8] (ico_ivi_shell.c:622)
+[16:41:46.597] DBG>destroy_shell_surface: Enter[08badea8] (ico_ivi_shell.c:583)
+[16:41:46.597] DBG>ivi_shell_restack_ivi_layer: Enter[08badea8] (ico_ivi_shell.c:1220)
+[16:41:46.597] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:46.597] DBG>destroy_shell_surface: call ivi_shell_hook_destroy(08badc38) (ico_ivi_shell.c:595)
+[16:41:46.597] DBG>win_mgr_surface_destroy: Enter(08badc38) (ico_window_mgr.c:1282)
+[16:41:46.597] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) DESTROYED surf=00000009 (ico_window_mgr.c:1472)
+[16:41:46.597] DBG>win_mgr_surface_destroy: Leave(OK) (ico_window_mgr.c:1332)
+[16:41:46.597] DBG>destroy_shell_surface: ret (ico_ivi_shell.c:597)
+[16:41:46.597] DBG>destroy_shell_surface: Leave (ico_ivi_shell.c:606)
+[16:41:46.597] DBG>shell_destroy_shell_surface: Leave (ico_ivi_shell.c:626)
+[16:41:46.597] DBG>shell_handle_surface_destroy: Leave (ico_ivi_shell.c:653)
+[16:41:47.440] libwayland: disconnect from client 0x8baede8
+[16:41:47.440] DBG>unbind_shell (ico_ivi_shell.c:1135)
+[16:41:47.440] DBG>unbind_shell_client: Enter(client=08baede8) (ico_window_mgr.c:511)
+[16:41:47.440] DBG>unbind_shell_client: Leave (ico_window_mgr.c:519)
+[16:41:47.440] DBG>shell_handle_surface_destroy: Enter [08baf770] data=08baf500 (ico_ivi_shell.c:645)
+[16:41:47.440] DBG>shell_destroy_shell_surface: Enter [08baf770] (ico_ivi_shell.c:622)
+[16:41:47.440] DBG>destroy_shell_surface: Enter[08baf770] (ico_ivi_shell.c:583)
+[16:41:47.440] DBG>ivi_shell_restack_ivi_layer: Enter[08baf770] (ico_ivi_shell.c:1220)
+[16:41:47.440] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:47.440] DBG>destroy_shell_surface: call ivi_shell_hook_destroy(08baf500) (ico_ivi_shell.c:595)
+[16:41:47.440] DBG>win_mgr_surface_destroy: Enter(08baf500) (ico_window_mgr.c:1282)
+[16:41:47.440] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) DESTROYED surf=0000000a (ico_window_mgr.c:1472)
+[16:41:47.440] DBG>win_mgr_surface_destroy: Leave(OK) (ico_window_mgr.c:1332)
+[16:41:47.441] DBG>destroy_shell_surface: ret (ico_ivi_shell.c:597)
+[16:41:47.441] DBG>destroy_shell_surface: Leave (ico_ivi_shell.c:606)
+[16:41:47.441] DBG>shell_destroy_shell_surface: Leave (ico_ivi_shell.c:626)
+[16:41:47.441] DBG>shell_handle_surface_destroy: Leave (ico_ivi_shell.c:653)
+[16:41:49.835] DBG>bind_shell: client=08a4c8a0 id=6 (ico_ivi_shell.c:1112)
+[16:41:49.835] DBG>bind_shell_client: Enter(client=08a4c8a0) (ico_window_mgr.c:414)
+[16:41:49.835] DBG>find_client_from_client: NULL (ico_window_mgr.c:293)
+[16:41:49.835] DBG>bind_shell_client: Create Client (ico_window_mgr.c:420)
+[16:41:49.835] DBG>bind_shell_client: client=08a4c8a0 pid=31986 uid=0 gid=0 (ico_window_mgr.c:432)
+[16:41:49.838] DBG>bind_shell_client: pid=31986 dose not exist in AppCore(AUL) (ico_window_mgr.c:444)
+[16:41:49.838] DBG>bind_shell_client: client=08a4c8a0 pid=31986 appid=<test-client@1> from Process table (ico_window_mgr.c:483)
+[16:41:49.838] DBG>bind_shell_client: Leave (ico_window_mgr.c:495)
+[16:41:49.838] DBG>bind_ivi_shell: client=08a4c8a0 id=7 (ico_ivi_shell.c:1179)
+[16:41:49.838] DBG>bind_ico_win_mgr: Enter(client=08a4c8a0, id=8) (ico_window_mgr.c:1353)
+[16:41:49.838] DBG>bind_ico_win_mgr: Leave (ico_window_mgr.c:1365)
+[16:41:49.838] DBG>ico_exinput_bind: Enter(client=08a4c8a0,test-client@1) (ico_input_mgr.c:727)
+[16:41:49.838] DBG>ico_exinput_bind: Create App.test-client@1 table (ico_input_mgr.c:747)
+[16:41:49.838] DBG>ico_exinput_bind: Leave (ico_input_mgr.c:785)
+[16:41:49.936] DBG>shell_get_shell_surface: Enter (08b96da8) client=08a4c8a0 (ico_ivi_shell.c:761)
+[16:41:49.936] DBG>create_shell_surface: (08b96da8) [08ba4690] client=b5c0a744 (visible=0) (ico_ivi_shell.c:704)
+[16:41:49.936] DBG>shell_get_shell_surface: Init shsurf(08ba4690) weston_surf=08b96da8 (ico_ivi_shell.c:782)
+[16:41:49.936] DBG>shell_get_shell_surface: call ivi_shell_hook_create(08a4c8a0,,08b96da8,08ba4690) (ico_ivi_shell.c:787)
+[16:41:49.936] DBG>client_register_surface: Enter(surf=08b96da8,client=08a4c8a0,res=08ba58f0) (ico_window_mgr.c:543)
+[16:41:49.936] DBG>find_uifw_win_surface_by_ws: NULL (ico_window_mgr.c:269)
+[16:41:49.936] DBG>generate_id: SurfaceId=0000000b (ico_window_mgr.c:357)
+[16:41:49.936] DBG>client_register_surface: Manager exist, Not visible (ico_window_mgr.c:569)
+[16:41:49.936] DBG>ivi_shell_set_visible: [08ba4690] visible=-1 (ico_ivi_shell.c:1356)
+[16:41:49.936] DBG>ivi_shell_set_visible: No change (ico_ivi_shell.c:1377)
+[16:41:49.936] DBG>ivi_shell_set_layer: Enter([08ba4690],08b96da8,0) (ico_ivi_shell.c:1416)
+[16:41:49.936] DBG>ivi_shell_set_layer: el=08ba5b38(103) (ico_ivi_shell.c:1428)
+[16:41:49.936] DBG>ivi_shell_set_layer: el=08bbffa8(102) (ico_ivi_shell.c:1428)
+[16:41:49.936] DBG>ivi_shell_set_layer: el=08ba5b88(101) (ico_ivi_shell.c:1428)
+[16:41:49.936] DBG>ivi_shell_set_layer: el=08ba83c8(100) (ico_ivi_shell.c:1428)
+[16:41:49.936] DBG>ivi_shell_set_layer: el=0894f568(0) (ico_ivi_shell.c:1428)
+[16:41:49.936] DBG>ivi_shell_set_layer: Add surface to Layer 0 (ico_ivi_shell.c:1462)
+[16:41:49.936] DBG>ivi_shell_restack_ivi_layer: Enter[08ba4690] (ico_ivi_shell.c:1220)
+[16:41:49.936] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:49.936] DBG>ivi_shell_set_layer: Leave (ico_ivi_shell.c:1471)
+[16:41:49.937] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) WINDOW_CREATED(surf=0000000b,pid=31986,appid=test-client@1) (ico_window_mgr.c:1448)
+[16:41:49.937] DBG>client_register_surface: Leave(surfaceId=0000000b) (ico_window_mgr.c:627)
+[16:41:49.937] DBG>shell_get_shell_surface: ret ivi_shell_hook_create (ico_ivi_shell.c:789)
+[16:41:49.937] DBG>shell_get_shell_surface: Leave (ico_ivi_shell.c:791)
+[16:41:49.937] DBG>shell_surface_set_toplevel: Set TopLevel[08ba4690] (ico_ivi_shell.c:373)
+[16:41:50.056] DBG>set_surface_type: [08ba4690] (08b96da8) type=1 (ico_ivi_shell.c:265)
+[16:41:50.056] DBG>reset_shell_surface_type: [08ba4690] (ico_ivi_shell.c:244)
+[16:41:50.056] DBG>shell_surface_configure: configure to Buffer size(no Manager) x=16384+16384-16384 y=16384+16384-16384 (ico_ivi_shell.c:1080)
+[16:41:50.056] DBG>configure: Enter(08b96da8) [08ba4690] x/y=16384/16384, w/h=640/480 (ico_ivi_shell.c:965)
+[16:41:50.056] DBG>ivi_shell_surface_configure: 08ba4690 16384,16384(640/480) unvisible (ico_ivi_shell.c:1710)
+[16:41:50.056] DBG>configure: Leave (ico_ivi_shell.c:987)
+[16:41:50.712] DBG>uifw_set_window_layer: Enter res=08b425a0 surfaceid=0000000b layer=101 (ico_window_mgr.c:823)
+[16:41:50.713] DBG>uifw_set_window_layer: Set Layer(101) to Shell Surface (ico_window_mgr.c:833)
+[16:41:50.713] DBG>ivi_shell_set_layer: Enter([08ba4690],08b96da8,101) (ico_ivi_shell.c:1416)
+[16:41:50.713] DBG>ivi_shell_set_layer: el=08ba5b38(103) (ico_ivi_shell.c:1428)
+[16:41:50.713] DBG>ivi_shell_set_layer: el=08bbffa8(102) (ico_ivi_shell.c:1428)
+[16:41:50.713] DBG>ivi_shell_set_layer: el=08ba5b88(101) (ico_ivi_shell.c:1428)
+[16:41:50.713] DBG>ivi_shell_set_layer: Add surface to Layer 101 (ico_ivi_shell.c:1462)
+[16:41:50.713] DBG>ivi_shell_restack_ivi_layer: Enter[08ba4690] (ico_ivi_shell.c:1220)
+[16:41:50.713] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:50.713] DBG>ivi_shell_set_layer: Leave (ico_ivi_shell.c:1471)
+[16:41:50.713] DBG>win_mgr_surface_change: Enter(08b96da8,1,1) (ico_window_mgr.c:1208)
+[16:41:50.713] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(0000000b,w/h=0/0) (ico_window_mgr.c:1220)
+[16:41:50.713] DBG>ivi_shell_send_configure: (08b96da8) edges=a w/h=0/0 (ico_ivi_shell.c:1559)
+[16:41:50.713] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:50.713] DBG>uifw_set_window_layer: Leave (ico_window_mgr.c:838)
+[16:41:50.716] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=640/480) (ico_ivi_shell.c:1047)
+[16:41:50.716] DBG>ivi_shell_surface_configure: 08ba4690 16384,16384(0/0) unvisible (ico_ivi_shell.c:1710)
+[16:41:50.716] DBG>shell_surface_configure: w/h=0/0->0/0 x/y=16384/16384->16384/16384 (ico_ivi_shell.c:1068)
+[16:41:50.716] DBG>win_mgr_surface_change_mgr: Enter(08b96da8,x/y=16384/16384,w/h=640/480) (ico_window_mgr.c:1177)
+[16:41:50.716] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=0000000b,app=test-client@1,layer=101,x/y=16384/16384,w/h=640/480,hint=1) (ico_window_mgr.c:1464)
+[16:41:50.716] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:50.716] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:50.733] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=0000000b x/y/w/h=100/200/16384/16384 (ico_window_mgr.c:897)
+[16:41:50.733] DBG>uifw_set_positionsize: Old geometry x/y=16384/16384,w/h=0/0 (ico_window_mgr.c:931)
+[16:41:50.733] DBG>win_mgr_surface_change: Enter(08b96da8,0,1) (ico_window_mgr.c:1208)
+[16:41:50.733] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(0000000b,w/h=0/0) (ico_window_mgr.c:1220)
+[16:41:50.733] DBG>ivi_shell_send_configure: (08b96da8) edges=a w/h=0/0 (ico_ivi_shell.c:1559)
+[16:41:50.733] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=0000000b,app=test-client@1,layer=101,x/y=100/200,w/h=0/0,hint=0) (ico_window_mgr.c:1464)
+[16:41:50.733] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:50.733] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:41:50.753] DBG>uifw_set_visible: Enter(surf=0000000b,1,9) (ico_window_mgr.c:980)
+[16:41:50.753] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:50.753] DBG>uifw_set_visible: Set w/h=0/0 (ico_window_mgr.c:1009)
+[16:41:50.753] DBG>ivi_shell_set_visible: [08ba4690] visible=1 (ico_ivi_shell.c:1356)
+[16:41:50.753] DBG>ivi_shell_restack_ivi_layer: Enter[08ba4690] (ico_ivi_shell.c:1220)
+[16:41:50.753] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:50.753] DBG>uifw_set_visible: Change to Visible (ico_window_mgr.c:1016)
+[16:41:50.753] DBG>ivi_shell_set_toplevel: (08b96da8) (ico_ivi_shell.c:1520)
+[16:41:50.753] DBG>uifw_set_visible: Visible to Weston WSurf=08b96da8,100/200/0/0 (ico_window_mgr.c:1023)
+[16:41:50.753] DBG>uifw_set_weston_surface: w/h=0/0->0/0 x/y=100/200->100/200 (ico_window_mgr.c:871)
+[16:41:50.753] DBG>ivi_shell_surface_configure: 08ba4690 100,200(0/0) visible (ico_ivi_shell.c:1717)
+[16:41:50.753] DBG>ivi_shell_set_surfacetype: (08b96da8) (ico_ivi_shell.c:1536)
+[16:41:50.753] DBG>set_surface_type: [08ba4690] (08b96da8) type=1 (ico_ivi_shell.c:265)
+[16:41:50.753] DBG>reset_shell_surface_type: [08ba4690] (ico_ivi_shell.c:244)
+[16:41:50.753] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) VISIBLE(surf=0000000b,vis=1,raise=9,hint=0) (ico_window_mgr.c:1455)
+[16:41:50.753] DBG>uifw_set_visible: Leave(OK) (ico_window_mgr.c:1065)
+[16:41:50.793] DBG>uifw_set_visible: Enter(surf=0000000b,1,9) (ico_window_mgr.c:980)
+[16:41:50.793] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:50.793] DBG>uifw_set_visible: Set w/h=0/0 (ico_window_mgr.c:1009)
+[16:41:50.793] DBG>uifw_set_visible: Leave(No Change) (ico_window_mgr.c:1028)
+[16:41:51.315] DBG>click_to_activate_binding: call ivi_shell_hook_select[08b98608] (ico_ivi_shell.c:1325)
+[16:41:51.315] DBG>win_mgr_surface_select: Enter(08baa788) (ico_window_mgr.c:1250)
+[16:41:51.315] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) ACTIVE surf=00000001 active=2 (ico_window_mgr.c:1478)
+[16:41:51.316] DBG>win_mgr_surface_select: Leave(OK) (ico_window_mgr.c:1263)
+[16:41:51.316] DBG>click_to_activate_binding: ret ivi_shell_hook_select (ico_ivi_shell.c:1327)
+[16:41:51.749] DBG>bind_shell: client=08ba84b8 id=6 (ico_ivi_shell.c:1112)
+[16:41:51.749] DBG>bind_shell_client: Enter(client=08ba84b8) (ico_window_mgr.c:414)
+[16:41:51.749] DBG>find_client_from_client: NULL (ico_window_mgr.c:293)
+[16:41:51.749] DBG>bind_shell_client: Create Client (ico_window_mgr.c:420)
+[16:41:51.749] DBG>bind_shell_client: client=08ba84b8 pid=31989 uid=0 gid=0 (ico_window_mgr.c:432)
+[16:41:51.752] DBG>bind_shell_client: pid=31989 dose not exist in AppCore(AUL) (ico_window_mgr.c:444)
+[16:41:51.752] DBG>bind_shell_client: client=08ba84b8 pid=31989 appid=<test-client@2> from Process table (ico_window_mgr.c:483)
+[16:41:51.752] DBG>bind_shell_client: Leave (ico_window_mgr.c:495)
+[16:41:51.752] DBG>bind_ivi_shell: client=08ba84b8 id=7 (ico_ivi_shell.c:1179)
+[16:41:51.752] DBG>bind_ico_win_mgr: Enter(client=08ba84b8, id=8) (ico_window_mgr.c:1353)
+[16:41:51.752] DBG>bind_ico_win_mgr: Leave (ico_window_mgr.c:1365)
+[16:41:51.752] DBG>ico_exinput_bind: Enter(client=08ba84b8,test-client@2) (ico_input_mgr.c:727)
+[16:41:51.753] DBG>ico_exinput_bind: Create App.test-client@2 table (ico_input_mgr.c:747)
+[16:41:51.753] DBG>ico_exinput_bind: Leave (ico_input_mgr.c:785)
+[16:41:51.850] DBG>shell_get_shell_surface: Enter (08bc4780) client=08ba84b8 (ico_ivi_shell.c:761)
+[16:41:51.850] DBG>create_shell_surface: (08bc4780) [08bc49f0] client=b5c0a744 (visible=0) (ico_ivi_shell.c:704)
+[16:41:51.850] DBG>shell_get_shell_surface: Init shsurf(08bc49f0) weston_surf=08bc4780 (ico_ivi_shell.c:782)
+[16:41:51.850] DBG>shell_get_shell_surface: call ivi_shell_hook_create(08ba84b8,,08bc4780,08bc49f0) (ico_ivi_shell.c:787)
+[16:41:51.850] DBG>client_register_surface: Enter(surf=08bc4780,client=08ba84b8,res=08ba85e0) (ico_window_mgr.c:543)
+[16:41:51.850] DBG>find_uifw_win_surface_by_ws: NULL (ico_window_mgr.c:269)
+[16:41:51.850] DBG>generate_id: SurfaceId=0000000c (ico_window_mgr.c:357)
+[16:41:51.850] DBG>client_register_surface: Manager exist, Not visible (ico_window_mgr.c:569)
+[16:41:51.850] DBG>ivi_shell_set_visible: [08bc49f0] visible=-1 (ico_ivi_shell.c:1356)
+[16:41:51.851] DBG>ivi_shell_set_visible: No change (ico_ivi_shell.c:1377)
+[16:41:51.851] DBG>ivi_shell_set_layer: Enter([08bc49f0],08bc4780,0) (ico_ivi_shell.c:1416)
+[16:41:51.851] DBG>ivi_shell_set_layer: el=08ba5b38(103) (ico_ivi_shell.c:1428)
+[16:41:51.851] DBG>ivi_shell_set_layer: el=08bbffa8(102) (ico_ivi_shell.c:1428)
+[16:41:51.851] DBG>ivi_shell_set_layer: el=08ba5b88(101) (ico_ivi_shell.c:1428)
+[16:41:51.851] DBG>ivi_shell_set_layer: el=08ba83c8(100) (ico_ivi_shell.c:1428)
+[16:41:51.851] DBG>ivi_shell_set_layer: el=0894f568(0) (ico_ivi_shell.c:1428)
+[16:41:51.851] DBG>ivi_shell_set_layer: Add surface to Layer 0 (ico_ivi_shell.c:1462)
+[16:41:51.851] DBG>ivi_shell_restack_ivi_layer: Enter[08bc49f0] (ico_ivi_shell.c:1220)
+[16:41:51.851] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:51.851] DBG>ivi_shell_set_layer: Leave (ico_ivi_shell.c:1471)
+[16:41:51.851] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) WINDOW_CREATED(surf=0000000c,pid=31989,appid=test-client@2) (ico_window_mgr.c:1448)
+[16:41:51.851] DBG>client_register_surface: Leave(surfaceId=0000000c) (ico_window_mgr.c:627)
+[16:41:51.851] DBG>shell_get_shell_surface: ret ivi_shell_hook_create (ico_ivi_shell.c:789)
+[16:41:51.851] DBG>shell_get_shell_surface: Leave (ico_ivi_shell.c:791)
+[16:41:51.851] DBG>shell_surface_set_toplevel: Set TopLevel[08bc49f0] (ico_ivi_shell.c:373)
+[16:41:51.973] DBG>set_surface_type: [08bc49f0] (08bc4780) type=1 (ico_ivi_shell.c:265)
+[16:41:51.973] DBG>reset_shell_surface_type: [08bc49f0] (ico_ivi_shell.c:244)
+[16:41:51.973] DBG>shell_surface_configure: configure to Buffer size(no Manager) x=16384+16384-16384 y=16384+16384-16384 (ico_ivi_shell.c:1080)
+[16:41:51.973] DBG>configure: Enter(08bc4780) [08bc49f0] x/y=16384/16384, w/h=640/480 (ico_ivi_shell.c:965)
+[16:41:51.973] DBG>ivi_shell_surface_configure: 08bc49f0 16384,16384(640/480) unvisible (ico_ivi_shell.c:1710)
+[16:41:51.973] DBG>configure: Leave (ico_ivi_shell.c:987)
+[16:41:52.627] DBG>uifw_set_window_layer: Enter res=08b425a0 surfaceid=0000000c layer=101 (ico_window_mgr.c:823)
+[16:41:52.627] DBG>uifw_set_window_layer: Set Layer(101) to Shell Surface (ico_window_mgr.c:833)
+[16:41:52.627] DBG>ivi_shell_set_layer: Enter([08bc49f0],08bc4780,101) (ico_ivi_shell.c:1416)
+[16:41:52.627] DBG>ivi_shell_set_layer: el=08ba5b38(103) (ico_ivi_shell.c:1428)
+[16:41:52.627] DBG>ivi_shell_set_layer: el=08bbffa8(102) (ico_ivi_shell.c:1428)
+[16:41:52.627] DBG>ivi_shell_set_layer: el=08ba5b88(101) (ico_ivi_shell.c:1428)
+[16:41:52.627] DBG>ivi_shell_set_layer: Add surface to Layer 101 (ico_ivi_shell.c:1462)
+[16:41:52.627] DBG>ivi_shell_restack_ivi_layer: Enter[08bc49f0] (ico_ivi_shell.c:1220)
+[16:41:52.627] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:52.627] DBG>ivi_shell_set_layer: Leave (ico_ivi_shell.c:1471)
+[16:41:52.627] DBG>win_mgr_surface_change: Enter(08bc4780,1,1) (ico_window_mgr.c:1208)
+[16:41:52.627] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(0000000c,w/h=0/0) (ico_window_mgr.c:1220)
+[16:41:52.627] DBG>ivi_shell_send_configure: (08bc4780) edges=a w/h=0/0 (ico_ivi_shell.c:1559)
+[16:41:52.627] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:52.627] DBG>uifw_set_window_layer: Leave (ico_window_mgr.c:838)
+[16:41:52.632] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=640/480) (ico_ivi_shell.c:1047)
+[16:41:52.632] DBG>ivi_shell_surface_configure: 08bc49f0 16384,16384(0/0) unvisible (ico_ivi_shell.c:1710)
+[16:41:52.632] DBG>shell_surface_configure: w/h=0/0->0/0 x/y=16384/16384->16384/16384 (ico_ivi_shell.c:1068)
+[16:41:52.632] DBG>win_mgr_surface_change_mgr: Enter(08bc4780,x/y=16384/16384,w/h=640/480) (ico_window_mgr.c:1177)
+[16:41:52.632] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=0000000c,app=test-client@2,layer=101,x/y=16384/16384,w/h=640/480,hint=1) (ico_window_mgr.c:1464)
+[16:41:52.632] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:52.632] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:52.647] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=0000000c x/y/w/h=250/300/16384/16384 (ico_window_mgr.c:897)
+[16:41:52.647] DBG>uifw_set_positionsize: Old geometry x/y=16384/16384,w/h=0/0 (ico_window_mgr.c:931)
+[16:41:52.647] DBG>win_mgr_surface_change: Enter(08bc4780,0,1) (ico_window_mgr.c:1208)
+[16:41:52.647] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(0000000c,w/h=0/0) (ico_window_mgr.c:1220)
+[16:41:52.647] DBG>ivi_shell_send_configure: (08bc4780) edges=a w/h=0/0 (ico_ivi_shell.c:1559)
+[16:41:52.647] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=0000000c,app=test-client@2,layer=101,x/y=250/300,w/h=0/0,hint=0) (ico_window_mgr.c:1464)
+[16:41:52.647] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:52.647] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:41:52.667] DBG>uifw_set_visible: Enter(surf=0000000c,1,9) (ico_window_mgr.c:980)
+[16:41:52.667] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:52.667] DBG>uifw_set_visible: Set w/h=0/0 (ico_window_mgr.c:1009)
+[16:41:52.667] DBG>ivi_shell_set_visible: [08bc49f0] visible=1 (ico_ivi_shell.c:1356)
+[16:41:52.667] DBG>ivi_shell_restack_ivi_layer: Enter[08bc49f0] (ico_ivi_shell.c:1220)
+[16:41:52.667] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:52.667] DBG>uifw_set_visible: Change to Visible (ico_window_mgr.c:1016)
+[16:41:52.667] DBG>ivi_shell_set_toplevel: (08bc4780) (ico_ivi_shell.c:1520)
+[16:41:52.667] DBG>uifw_set_visible: Visible to Weston WSurf=08bc4780,250/300/0/0 (ico_window_mgr.c:1023)
+[16:41:52.667] DBG>uifw_set_weston_surface: w/h=0/0->0/0 x/y=250/300->250/300 (ico_window_mgr.c:871)
+[16:41:52.667] DBG>ivi_shell_surface_configure: 08bc49f0 250,300(0/0) visible (ico_ivi_shell.c:1717)
+[16:41:52.667] DBG>ivi_shell_set_surfacetype: (08bc4780) (ico_ivi_shell.c:1536)
+[16:41:52.667] DBG>set_surface_type: [08bc49f0] (08bc4780) type=1 (ico_ivi_shell.c:265)
+[16:41:52.667] DBG>reset_shell_surface_type: [08bc49f0] (ico_ivi_shell.c:244)
+[16:41:52.667] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) VISIBLE(surf=0000000c,vis=1,raise=9,hint=0) (ico_window_mgr.c:1455)
+[16:41:52.668] DBG>uifw_set_visible: Leave(OK) (ico_window_mgr.c:1065)
+[16:41:52.707] DBG>uifw_set_visible: Enter(surf=0000000c,1,9) (ico_window_mgr.c:980)
+[16:41:52.707] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:52.707] DBG>uifw_set_visible: Set w/h=0/0 (ico_window_mgr.c:1009)
+[16:41:52.707] DBG>uifw_set_visible: Leave(No Change) (ico_window_mgr.c:1028)
+[16:41:53.230] DBG>click_to_activate_binding: ShellSurface[08b98608] already active (ico_ivi_shell.c:1331)
+[16:41:53.663] DBG>bind_shell: client=08badc00 id=6 (ico_ivi_shell.c:1112)
+[16:41:53.663] DBG>bind_shell_client: Enter(client=08badc00) (ico_window_mgr.c:414)
+[16:41:53.663] DBG>find_client_from_client: NULL (ico_window_mgr.c:293)
+[16:41:53.663] DBG>bind_shell_client: Create Client (ico_window_mgr.c:420)
+[16:41:53.663] DBG>bind_shell_client: client=08badc00 pid=31991 uid=0 gid=0 (ico_window_mgr.c:432)
+[16:41:53.666] DBG>bind_shell_client: pid=31991 dose not exist in AppCore(AUL) (ico_window_mgr.c:444)
+[16:41:53.666] DBG>bind_shell_client: client=08badc00 pid=31991 appid=<test-client@3> from Process table (ico_window_mgr.c:483)
+[16:41:53.666] DBG>bind_shell_client: Leave (ico_window_mgr.c:495)
+[16:41:53.666] DBG>bind_ivi_shell: client=08badc00 id=7 (ico_ivi_shell.c:1179)
+[16:41:53.666] DBG>bind_ico_win_mgr: Enter(client=08badc00, id=8) (ico_window_mgr.c:1353)
+[16:41:53.666] DBG>bind_ico_win_mgr: Leave (ico_window_mgr.c:1365)
+[16:41:53.666] DBG>ico_exinput_bind: Enter(client=08badc00,test-client@3) (ico_input_mgr.c:727)
+[16:41:53.667] DBG>ico_exinput_bind: Create App.test-client@3 table (ico_input_mgr.c:747)
+[16:41:53.667] DBG>ico_exinput_bind: Leave (ico_input_mgr.c:785)
+[16:41:53.764] DBG>shell_get_shell_surface: Enter (08b3f138) client=08badc00 (ico_ivi_shell.c:761)
+[16:41:53.764] DBG>create_shell_surface: (08b3f138) [08b3f3a8] client=b5c0a744 (visible=0) (ico_ivi_shell.c:704)
+[16:41:53.764] DBG>shell_get_shell_surface: Init shsurf(08b3f3a8) weston_surf=08b3f138 (ico_ivi_shell.c:782)
+[16:41:53.764] DBG>shell_get_shell_surface: call ivi_shell_hook_create(08badc00,,08b3f138,08b3f3a8) (ico_ivi_shell.c:787)
+[16:41:53.764] DBG>client_register_surface: Enter(surf=08b3f138,client=08badc00,res=08badc58) (ico_window_mgr.c:543)
+[16:41:53.764] DBG>find_uifw_win_surface_by_ws: NULL (ico_window_mgr.c:269)
+[16:41:53.764] DBG>generate_id: SurfaceId=0000000d (ico_window_mgr.c:357)
+[16:41:53.764] DBG>client_register_surface: Manager exist, Not visible (ico_window_mgr.c:569)
+[16:41:53.764] DBG>ivi_shell_set_visible: [08b3f3a8] visible=-1 (ico_ivi_shell.c:1356)
+[16:41:53.765] DBG>ivi_shell_set_visible: No change (ico_ivi_shell.c:1377)
+[16:41:53.765] DBG>ivi_shell_set_layer: Enter([08b3f3a8],08b3f138,0) (ico_ivi_shell.c:1416)
+[16:41:53.765] DBG>ivi_shell_set_layer: el=08ba5b38(103) (ico_ivi_shell.c:1428)
+[16:41:53.765] DBG>ivi_shell_set_layer: el=08bbffa8(102) (ico_ivi_shell.c:1428)
+[16:41:53.765] DBG>ivi_shell_set_layer: el=08ba5b88(101) (ico_ivi_shell.c:1428)
+[16:41:53.765] DBG>ivi_shell_set_layer: el=08ba83c8(100) (ico_ivi_shell.c:1428)
+[16:41:53.765] DBG>ivi_shell_set_layer: el=0894f568(0) (ico_ivi_shell.c:1428)
+[16:41:53.765] DBG>ivi_shell_set_layer: Add surface to Layer 0 (ico_ivi_shell.c:1462)
+[16:41:53.765] DBG>ivi_shell_restack_ivi_layer: Enter[08b3f3a8] (ico_ivi_shell.c:1220)
+[16:41:53.765] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:53.765] DBG>ivi_shell_set_layer: Leave (ico_ivi_shell.c:1471)
+[16:41:53.765] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) WINDOW_CREATED(surf=0000000d,pid=31991,appid=test-client@3) (ico_window_mgr.c:1448)
+[16:41:53.765] DBG>client_register_surface: Leave(surfaceId=0000000d) (ico_window_mgr.c:627)
+[16:41:53.765] DBG>shell_get_shell_surface: ret ivi_shell_hook_create (ico_ivi_shell.c:789)
+[16:41:53.765] DBG>shell_get_shell_surface: Leave (ico_ivi_shell.c:791)
+[16:41:53.765] DBG>shell_surface_set_toplevel: Set TopLevel[08b3f3a8] (ico_ivi_shell.c:373)
+[16:41:53.884] DBG>set_surface_type: [08b3f3a8] (08b3f138) type=1 (ico_ivi_shell.c:265)
+[16:41:53.884] DBG>reset_shell_surface_type: [08b3f3a8] (ico_ivi_shell.c:244)
+[16:41:53.884] DBG>shell_surface_configure: configure to Buffer size(no Manager) x=16384+16384-16384 y=16384+16384-16384 (ico_ivi_shell.c:1080)
+[16:41:53.884] DBG>configure: Enter(08b3f138) [08b3f3a8] x/y=16384/16384, w/h=640/480 (ico_ivi_shell.c:965)
+[16:41:53.884] DBG>ivi_shell_surface_configure: 08b3f3a8 16384,16384(640/480) unvisible (ico_ivi_shell.c:1710)
+[16:41:53.884] DBG>configure: Leave (ico_ivi_shell.c:987)
+[16:41:54.541] DBG>uifw_set_window_layer: Enter res=08b425a0 surfaceid=0000000d layer=101 (ico_window_mgr.c:823)
+[16:41:54.541] DBG>uifw_set_window_layer: Set Layer(101) to Shell Surface (ico_window_mgr.c:833)
+[16:41:54.541] DBG>ivi_shell_set_layer: Enter([08b3f3a8],08b3f138,101) (ico_ivi_shell.c:1416)
+[16:41:54.541] DBG>ivi_shell_set_layer: el=08ba5b38(103) (ico_ivi_shell.c:1428)
+[16:41:54.541] DBG>ivi_shell_set_layer: el=08bbffa8(102) (ico_ivi_shell.c:1428)
+[16:41:54.541] DBG>ivi_shell_set_layer: el=08ba5b88(101) (ico_ivi_shell.c:1428)
+[16:41:54.541] DBG>ivi_shell_set_layer: Add surface to Layer 101 (ico_ivi_shell.c:1462)
+[16:41:54.541] DBG>ivi_shell_restack_ivi_layer: Enter[08b3f3a8] (ico_ivi_shell.c:1220)
+[16:41:54.541] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:54.541] DBG>ivi_shell_set_layer: Leave (ico_ivi_shell.c:1471)
+[16:41:54.541] DBG>win_mgr_surface_change: Enter(08b3f138,1,1) (ico_window_mgr.c:1208)
+[16:41:54.541] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(0000000d,w/h=0/0) (ico_window_mgr.c:1220)
+[16:41:54.541] DBG>ivi_shell_send_configure: (08b3f138) edges=a w/h=0/0 (ico_ivi_shell.c:1559)
+[16:41:54.541] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:54.541] DBG>uifw_set_window_layer: Leave (ico_window_mgr.c:838)
+[16:41:54.548] DBG>shell_surface_configure: App request change(sx/sy=0/0 w/h=640/480) (ico_ivi_shell.c:1047)
+[16:41:54.548] DBG>ivi_shell_surface_configure: 08b3f3a8 16384,16384(0/0) unvisible (ico_ivi_shell.c:1710)
+[16:41:54.548] DBG>shell_surface_configure: w/h=0/0->0/0 x/y=16384/16384->16384/16384 (ico_ivi_shell.c:1068)
+[16:41:54.548] DBG>win_mgr_surface_change_mgr: Enter(08b3f138,x/y=16384/16384,w/h=640/480) (ico_window_mgr.c:1177)
+[16:41:54.548] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=0000000d,app=test-client@3,layer=101,x/y=16384/16384,w/h=640/480,hint=1) (ico_window_mgr.c:1464)
+[16:41:54.548] DBG>win_mgr_surface_change_mgr: Leave(1) (ico_window_mgr.c:1189)
+[16:41:54.548] DBG>shell_surface_configure: ret ivi_shell_hook_change(1) (ico_ivi_shell.c:1073)
+[16:41:54.561] DBG>uifw_set_positionsize: Enter res=08b425a0 surf=0000000d x/y/w/h=400/400/16384/16384 (ico_window_mgr.c:897)
+[16:41:54.561] DBG>uifw_set_positionsize: Old geometry x/y=16384/16384,w/h=0/0 (ico_window_mgr.c:931)
+[16:41:54.561] DBG>win_mgr_surface_change: Enter(08b3f138,0,1) (ico_window_mgr.c:1208)
+[16:41:54.561] DBG>win_mgr_surface_change: Send SHELL_SURFACE_CONFIGURE(0000000d,w/h=0/0) (ico_window_mgr.c:1220)
+[16:41:54.561] DBG>ivi_shell_send_configure: (08b3f138) edges=a w/h=0/0 (ico_ivi_shell.c:1559)
+[16:41:54.561] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) CONFIGURE(surf=0000000d,app=test-client@3,layer=101,x/y=400/400,w/h=0/0,hint=0) (ico_window_mgr.c:1464)
+[16:41:54.561] DBG>win_mgr_surface_change: Leave(OK) (ico_window_mgr.c:1234)
+[16:41:54.561] DBG>uifw_set_positionsize: Leave(OK,output=894e898) (ico_window_mgr.c:954)
+[16:41:54.581] DBG>uifw_set_visible: Enter(surf=0000000d,1,9) (ico_window_mgr.c:980)
+[16:41:54.581] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:54.581] DBG>uifw_set_visible: Set w/h=0/0 (ico_window_mgr.c:1009)
+[16:41:54.581] DBG>ivi_shell_set_visible: [08b3f3a8] visible=1 (ico_ivi_shell.c:1356)
+[16:41:54.581] DBG>ivi_shell_restack_ivi_layer: Enter[08b3f3a8] (ico_ivi_shell.c:1220)
+[16:41:54.581] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:54.581] DBG>uifw_set_visible: Change to Visible (ico_window_mgr.c:1016)
+[16:41:54.581] DBG>ivi_shell_set_toplevel: (08b3f138) (ico_ivi_shell.c:1520)
+[16:41:54.581] DBG>uifw_set_visible: Visible to Weston WSurf=08b3f138,400/400/0/0 (ico_window_mgr.c:1023)
+[16:41:54.581] DBG>uifw_set_weston_surface: w/h=0/0->0/0 x/y=400/400->400/400 (ico_window_mgr.c:871)
+[16:41:54.581] DBG>ivi_shell_surface_configure: 08b3f3a8 400,400(0/0) visible (ico_ivi_shell.c:1717)
+[16:41:54.581] DBG>ivi_shell_set_surfacetype: (08b3f138) (ico_ivi_shell.c:1536)
+[16:41:54.581] DBG>set_surface_type: [08b3f3a8] (08b3f138) type=1 (ico_ivi_shell.c:265)
+[16:41:54.581] DBG>reset_shell_surface_type: [08b3f3a8] (ico_ivi_shell.c:244)
+[16:41:54.581] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) VISIBLE(surf=0000000d,vis=1,raise=9,hint=0) (ico_window_mgr.c:1455)
+[16:41:54.581] DBG>uifw_set_visible: Leave(OK) (ico_window_mgr.c:1065)
+[16:41:54.621] DBG>uifw_set_visible: Enter(surf=0000000d,1,9) (ico_window_mgr.c:980)
+[16:41:54.621] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:54.621] DBG>uifw_set_visible: Set w/h=0/0 (ico_window_mgr.c:1009)
+[16:41:54.621] DBG>uifw_set_visible: Leave(No Change) (ico_window_mgr.c:1028)
+[16:41:55.143] DBG>click_to_activate_binding: ShellSurface[08b98608] already active (ico_ivi_shell.c:1331)
+[16:41:55.565] DBG>uifw_set_visible: Enter(surf=0000000c,0,9) (ico_window_mgr.c:980)
+[16:41:55.565] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:55.565] DBG>ivi_shell_set_visible: [08bc49f0] visible=0 (ico_ivi_shell.c:1356)
+[16:41:55.566] DBG>ivi_shell_restack_ivi_layer: Enter[08bc49f0] (ico_ivi_shell.c:1220)
+[16:41:55.566] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:55.566] DBG>uifw_set_visible: Change to UnVisible (ico_window_mgr.c:1036)
+[16:41:55.566] DBG>uifw_set_weston_surface: w/h=0/0->0/0 x/y=250/300->250/300 (ico_window_mgr.c:871)
+[16:41:55.566] DBG>ivi_shell_surface_configure: 08bc49f0 250,300(0/0) unvisible (ico_ivi_shell.c:1710)
+[16:41:55.566] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) VISIBLE(surf=0000000c,vis=0,raise=9,hint=0) (ico_window_mgr.c:1455)
+[16:41:55.566] DBG>uifw_set_visible: Leave(OK) (ico_window_mgr.c:1065)
+[16:41:55.606] DBG>uifw_set_visible: Enter(surf=0000000c,0,9) (ico_window_mgr.c:980)
+[16:41:55.606] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:55.606] DBG>uifw_set_visible: Leave(No Change) (ico_window_mgr.c:1042)
+[16:41:55.927] DBG>click_to_activate_binding: ShellSurface[08b98608] already active (ico_ivi_shell.c:1331)
+[16:41:56.650] DBG>uifw_set_visible: Enter(surf=0000000d,9,0) (ico_window_mgr.c:980)
+[16:41:56.650] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:56.650] DBG>ivi_shell_set_raise: Enter(08b3f138,0) layer_list=08ba5b88 (ico_ivi_shell.c:1488)
+[16:41:56.650] DBG>ivi_shell_set_raise: Lower Link to Bottom (ico_ivi_shell.c:1499)
+[16:41:56.650] DBG>ivi_shell_restack_ivi_layer: Enter[08b3f3a8] (ico_ivi_shell.c:1220)
+[16:41:56.650] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:56.650] DBG>ivi_shell_set_raise: Leave (ico_ivi_shell.c:1505)
+[16:41:56.650] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) VISIBLE(surf=0000000d,vis=9,raise=0,hint=0) (ico_window_mgr.c:1455)
+[16:41:56.650] DBG>uifw_set_visible: Leave(OK) (ico_window_mgr.c:1065)
+[16:41:56.691] DBG>uifw_set_visible: Enter(surf=0000000d,9,9) (ico_window_mgr.c:980)
+[16:41:56.691] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:56.691] DBG>uifw_set_visible: Leave(No Change) (ico_window_mgr.c:1047)
+[16:41:57.012] DBG>click_to_activate_binding: ShellSurface[08b98608] already active (ico_ivi_shell.c:1331)
+[16:41:57.735] DBG>uifw_set_visible: Enter(surf=0000000c,1,9) (ico_window_mgr.c:980)
+[16:41:57.735] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:57.735] DBG>uifw_set_visible: Set w/h=0/0 (ico_window_mgr.c:1009)
+[16:41:57.735] DBG>ivi_shell_set_visible: [08bc49f0] visible=1 (ico_ivi_shell.c:1356)
+[16:41:57.735] DBG>ivi_shell_restack_ivi_layer: Enter[08bc49f0] (ico_ivi_shell.c:1220)
+[16:41:57.735] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:41:57.735] DBG>uifw_set_visible: Change to Visible (ico_window_mgr.c:1016)
+[16:41:57.735] DBG>ivi_shell_set_toplevel: (08bc4780) (ico_ivi_shell.c:1520)
+[16:41:57.735] DBG>uifw_set_visible: Visible to Weston WSurf=08bc4780,250/300/0/0 (ico_window_mgr.c:1023)
+[16:41:57.735] DBG>uifw_set_weston_surface: w/h=0/0->0/0 x/y=250/300->250/300 (ico_window_mgr.c:871)
+[16:41:57.735] DBG>ivi_shell_surface_configure: 08bc49f0 250,300(0/0) visible (ico_ivi_shell.c:1717)
+[16:41:57.735] DBG>ivi_shell_set_surfacetype: (08bc4780) (ico_ivi_shell.c:1536)
+[16:41:57.736] DBG>set_surface_type: [08bc49f0] (08bc4780) type=1 (ico_ivi_shell.c:265)
+[16:41:57.736] DBG>reset_shell_surface_type: [08bc49f0] (ico_ivi_shell.c:244)
+[16:41:57.736] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) VISIBLE(surf=0000000c,vis=1,raise=9,hint=0) (ico_window_mgr.c:1455)
+[16:41:57.736] DBG>uifw_set_visible: Leave(OK) (ico_window_mgr.c:1065)
+[16:41:57.775] DBG>uifw_set_visible: Enter(surf=0000000c,1,9) (ico_window_mgr.c:980)
+[16:41:57.775] DBG>uifw_set_visible: Request from Manager(test-homescreen) (ico_window_mgr.c:990)
+[16:41:57.775] DBG>uifw_set_visible: Set w/h=0/0 (ico_window_mgr.c:1009)
+[16:41:57.775] DBG>uifw_set_visible: Leave(No Change) (ico_window_mgr.c:1028)
+[16:41:58.097] DBG>click_to_activate_binding: ShellSurface[08b98608] already active (ico_ivi_shell.c:1331)
+[16:42:00.326] DBG>ico_device_configure_input: Enter(client=08bc8578,dev=InDev1,type=8,swname=Sw1,input=0,code=0[Sw1]) (ico_input_mgr.c:381)
+[16:42:00.326] DBG>ico_device_configure_input: create pIctlMgr(mgr=08bc18d0,input=0) (ico_input_mgr.c:396)
+[16:42:00.326] DBG>ico_device_configure_input: create InDev1.Sw1(0) switch (ico_input_mgr.c:416)
+[16:42:00.326] DBG>ico_device_configure_input: send capabilities to app(test-homescreen) InDev1.Sw1[0] (ico_input_mgr.c:454)
+[16:42:00.326] DBG>ico_device_configure_input: send capabilities to app(test-client@1) InDev1.Sw1[0] (ico_input_mgr.c:454)
+[16:42:00.326] DBG>ico_device_configure_input: send capabilities to app(test-client@2) InDev1.Sw1[0] (ico_input_mgr.c:454)
+[16:42:00.326] DBG>ico_device_configure_input: send capabilities to app(test-client@3) InDev1.Sw1[0] (ico_input_mgr.c:454)
+[16:42:00.326] DBG>ico_device_configure_input: Leave (ico_input_mgr.c:459)
+[16:42:00.346] DBG>ico_device_configure_input: Enter(client=08bc8578,dev=InDev1,type=8,swname=Sw2,input=1,code=10[Up]) (ico_input_mgr.c:381)
+[16:42:00.346] DBG>ico_device_configure_input: create InDev1.Sw2(1) switch (ico_input_mgr.c:416)
+[16:42:00.346] DBG>ico_device_configure_input: send capabilities to app(test-homescreen) InDev1.Sw2[1] (ico_input_mgr.c:454)
+[16:42:00.346] DBG>ico_device_configure_input: send capabilities to app(test-client@1) InDev1.Sw2[1] (ico_input_mgr.c:454)
+[16:42:00.346] DBG>ico_device_configure_input: send capabilities to app(test-client@2) InDev1.Sw2[1] (ico_input_mgr.c:454)
+[16:42:00.346] DBG>ico_device_configure_input: send capabilities to app(test-client@3) InDev1.Sw2[1] (ico_input_mgr.c:454)
+[16:42:00.346] DBG>ico_device_configure_input: Leave (ico_input_mgr.c:459)
+[16:42:00.366] DBG>ico_device_configure_code: Enter(client=08bc8578,dev=InDev1,input=1,code=11[Down]) (ico_input_mgr.c:481)
+[16:42:00.366] DBG>ico_device_configure_input: send code to app(test-homescreen) InDev1.Sw2[1] (ico_input_mgr.c:526)
+[16:42:00.366] DBG>ico_device_configure_input: send code to app(test-client@1) InDev1.Sw2[1] (ico_input_mgr.c:526)
+[16:42:00.366] DBG>ico_device_configure_input: send code to app(test-client@2) InDev1.Sw2[1] (ico_input_mgr.c:526)
+[16:42:00.366] DBG>ico_device_configure_input: send code to app(test-client@3) InDev1.Sw2[1] (ico_input_mgr.c:526)
+[16:42:00.366] DBG>ico_device_configure_code: Leave (ico_input_mgr.c:530)
+[16:42:00.386] DBG>ico_device_configure_input: Enter(client=08bc8578,dev=InDev1,type=8,swname=Sw3,input=2,code=20[Left]) (ico_input_mgr.c:381)
+[16:42:00.386] DBG>ico_device_configure_input: create InDev1.Sw3(2) switch (ico_input_mgr.c:416)
+[16:42:00.386] DBG>ico_device_configure_input: send capabilities to app(test-homescreen) InDev1.Sw3[2] (ico_input_mgr.c:454)
+[16:42:00.386] DBG>ico_device_configure_input: send capabilities to app(test-client@1) InDev1.Sw3[2] (ico_input_mgr.c:454)
+[16:42:00.386] DBG>ico_device_configure_input: send capabilities to app(test-client@2) InDev1.Sw3[2] (ico_input_mgr.c:454)
+[16:42:00.387] DBG>ico_device_configure_input: send capabilities to app(test-client@3) InDev1.Sw3[2] (ico_input_mgr.c:454)
+[16:42:00.387] DBG>ico_device_configure_input: Leave (ico_input_mgr.c:459)
+[16:42:00.407] DBG>ico_device_configure_code: Enter(client=08bc8578,dev=InDev1,input=2,code=21[Right]) (ico_input_mgr.c:481)
+[16:42:00.407] DBG>ico_device_configure_input: send code to app(test-homescreen) InDev1.Sw3[2] (ico_input_mgr.c:526)
+[16:42:00.407] DBG>ico_device_configure_input: send code to app(test-client@1) InDev1.Sw3[2] (ico_input_mgr.c:526)
+[16:42:00.407] DBG>ico_device_configure_input: send code to app(test-client@2) InDev1.Sw3[2] (ico_input_mgr.c:526)
+[16:42:00.407] DBG>ico_device_configure_input: send code to app(test-client@3) InDev1.Sw3[2] (ico_input_mgr.c:526)
+[16:42:00.407] DBG>ico_device_configure_code: Leave (ico_input_mgr.c:530)
+[16:42:00.427] DBG>ico_device_configure_input: Enter(client=08bc8578,dev=InDev1,type=8,swname=Sw4,input=3,code=0[Sw4]) (ico_input_mgr.c:381)
+[16:42:00.427] DBG>ico_device_configure_input: create InDev1.Sw4(3) switch (ico_input_mgr.c:416)
+[16:42:00.427] DBG>ico_device_configure_input: send capabilities to app(test-homescreen) InDev1.Sw4[3] (ico_input_mgr.c:454)
+[16:42:00.427] DBG>ico_device_configure_input: send capabilities to app(test-client@1) InDev1.Sw4[3] (ico_input_mgr.c:454)
+[16:42:00.427] DBG>ico_device_configure_input: send capabilities to app(test-client@2) InDev1.Sw4[3] (ico_input_mgr.c:454)
+[16:42:00.427] DBG>ico_device_configure_input: send capabilities to app(test-client@3) InDev1.Sw4[3] (ico_input_mgr.c:454)
+[16:42:00.427] DBG>ico_device_configure_input: Leave (ico_input_mgr.c:459)
+[16:42:00.969] DBG>ico_device_configure_input: Enter(client=08bc8578,dev=InDev2,type=8,swname=Sw0,input=0,code=0[Sw0]) (ico_input_mgr.c:381)
+[16:42:00.969] DBG>ico_device_configure_input: create pIctlMgr(mgr=08bc1910,input=0) (ico_input_mgr.c:396)
+[16:42:00.969] DBG>ico_device_configure_input: create InDev2.Sw0(0) switch (ico_input_mgr.c:416)
+[16:42:00.969] DBG>ico_device_configure_input: send capabilities to app(test-homescreen) InDev2.Sw0[0] (ico_input_mgr.c:454)
+[16:42:00.969] DBG>ico_device_configure_input: send capabilities to app(test-client@1) InDev2.Sw0[0] (ico_input_mgr.c:454)
+[16:42:00.969] DBG>ico_device_configure_input: send capabilities to app(test-client@2) InDev2.Sw0[0] (ico_input_mgr.c:454)
+[16:42:00.969] DBG>ico_device_configure_input: send capabilities to app(test-client@3) InDev2.Sw0[0] (ico_input_mgr.c:454)
+[16:42:00.969] DBG>ico_device_configure_input: Leave (ico_input_mgr.c:459)
+[16:42:00.989] DBG>ico_device_configure_input: Enter(client=08bc8578,dev=InDev2,type=8,swname=Sw1,input=1,code=0[Sw1]) (ico_input_mgr.c:381)
+[16:42:00.989] DBG>ico_device_configure_input: create InDev2.Sw1(1) switch (ico_input_mgr.c:416)
+[16:42:00.989] DBG>ico_device_configure_input: send capabilities to app(test-homescreen) InDev2.Sw1[1] (ico_input_mgr.c:454)
+[16:42:00.989] DBG>ico_device_configure_input: send capabilities to app(test-client@1) InDev2.Sw1[1] (ico_input_mgr.c:454)
+[16:42:00.989] DBG>ico_device_configure_input: send capabilities to app(test-client@2) InDev2.Sw1[1] (ico_input_mgr.c:454)
+[16:42:00.989] DBG>ico_device_configure_input: send capabilities to app(test-client@3) InDev2.Sw1[1] (ico_input_mgr.c:454)
+[16:42:00.989] DBG>ico_device_configure_input: Leave (ico_input_mgr.c:459)
+[16:42:01.552] DBG>ico_device_input_event: Enter(time=721551,dev=InDev1,input=2,code=20,state=1) (ico_input_mgr.c:553)
+[16:42:01.552] DBG>ico_device_input_event: Leave(InDev1.Sw3 not assign) (ico_input_mgr.c:574)
+[16:42:01.692] DBG>ico_device_input_event: Enter(time=721692,dev=InDev1,input=2,code=20,state=0) (ico_input_mgr.c:553)
+[16:42:01.692] DBG>ico_device_input_event: Leave(InDev1.Sw3 not assign) (ico_input_mgr.c:574)
+[16:42:02.234] DBG>ico_device_input_event: Enter(time=722234,dev=InDev2,input=0,code=1,state=1) (ico_input_mgr.c:553)
+[16:42:02.234] DBG>ico_device_input_event: Leave(InDev2.Sw0 not assign) (ico_input_mgr.c:574)
+[16:42:02.375] DBG>ico_device_input_event: Enter(time=722375,dev=InDev2,input=0,code=1,state=1) (ico_input_mgr.c:553)
+[16:42:02.375] DBG>ico_device_input_event: Leave(InDev2.Sw0 not assign) (ico_input_mgr.c:574)
+[16:42:02.937] DBG>ico_mgr_add_input_app: Enter(appid=test-client@1,dev=InDev1,input=1,fix=0) (ico_input_mgr.c:182)
+[16:42:02.938] DBG>ico_mgr_add_input_app: Leave(InDev1.Sw2[1] assign to test-client@1) (ico_input_mgr.c:227)
+[16:42:02.958] DBG>ico_mgr_add_input_app: Enter(appid=test-client@2,dev=InDev1,input=2,fix=0) (ico_input_mgr.c:182)
+[16:42:02.958] DBG>ico_mgr_add_input_app: Leave(InDev1.Sw3[2] assign to test-client@2) (ico_input_mgr.c:227)
+[16:42:02.978] DBG>ico_mgr_add_input_app: Enter(appid=test-client@3,dev=InDev1,input=3,fix=0) (ico_input_mgr.c:182)
+[16:42:02.978] DBG>ico_mgr_add_input_app: Leave(InDev1.Sw4[3] assign to test-client@3) (ico_input_mgr.c:227)
+[16:42:02.998] DBG>ico_mgr_add_input_app: Enter(appid=test-client@1,dev=InDev2,input=0,fix=1) (ico_input_mgr.c:182)
+[16:42:02.998] DBG>ico_mgr_add_input_app: Leave(InDev2.Sw0[0] assign to test-client@1) (ico_input_mgr.c:227)
+[16:42:03.018] DBG>ico_mgr_add_input_app: Enter(appid=test-client@1,dev=InDev2,input=1,fix=0) (ico_input_mgr.c:182)
+[16:42:03.018] DBG>ico_mgr_add_input_app: Leave(InDev2.Sw1[1] assign to test-client@1) (ico_input_mgr.c:227)
+[16:42:03.581] DBG>ico_device_input_event: Enter(time=723580,dev=InDev1,input=0,code=1,state=1) (ico_input_mgr.c:553)
+[16:42:03.581] DBG>ico_device_input_event: Leave(InDev1.Sw1 not assign) (ico_input_mgr.c:574)
+[16:42:03.721] DBG>ico_device_input_event: Enter(time=723721,dev=InDev1,input=0,code=1,state=0) (ico_input_mgr.c:553)
+[16:42:03.721] DBG>ico_device_input_event: Leave(InDev1.Sw1 not assign) (ico_input_mgr.c:574)
+[16:42:04.263] DBG>ico_device_input_event: Enter(time=724263,dev=InDev1,input=1,code=10,state=1) (ico_input_mgr.c:553)
+[16:42:04.263] DBG>ico_device_input_event: send event=InDev1.Sw2[1],10,1 to App.test-client@1 (ico_input_mgr.c:580)
+[16:42:04.264] DBG>ico_device_input_event: Leave (ico_input_mgr.c:584)
+[16:42:04.404] DBG>ico_device_input_event: Enter(time=724404,dev=InDev1,input=1,code=10,state=0) (ico_input_mgr.c:553)
+[16:42:04.404] DBG>ico_device_input_event: send event=InDev1.Sw2[1],10,0 to App.test-client@1 (ico_input_mgr.c:580)
+[16:42:04.404] DBG>ico_device_input_event: Leave (ico_input_mgr.c:584)
+[16:42:04.946] DBG>ico_device_input_event: Enter(time=724946,dev=InDev1,input=2,code=21,state=1) (ico_input_mgr.c:553)
+[16:42:04.946] DBG>ico_device_input_event: send event=InDev1.Sw3[2],21,1 to App.test-client@2 (ico_input_mgr.c:580)
+[16:42:04.946] DBG>ico_device_input_event: Leave (ico_input_mgr.c:584)
+[16:42:05.087] DBG>ico_device_input_event: Enter(time=725087,dev=InDev1,input=2,code=21,state=0) (ico_input_mgr.c:553)
+[16:42:05.087] DBG>ico_device_input_event: send event=InDev1.Sw3[2],21,0 to App.test-client@2 (ico_input_mgr.c:580)
+[16:42:05.087] DBG>ico_device_input_event: Leave (ico_input_mgr.c:584)
+[16:42:05.629] DBG>ico_device_input_event: Enter(time=725629,dev=InDev1,input=3,code=1,state=1) (ico_input_mgr.c:553)
+[16:42:05.629] DBG>ico_device_input_event: send event=InDev1.Sw4[3],1,1 to App.test-client@3 (ico_input_mgr.c:580)
+[16:42:05.630] DBG>ico_device_input_event: Leave (ico_input_mgr.c:584)
+[16:42:05.770] DBG>ico_device_input_event: Enter(time=725770,dev=InDev1,input=3,code=1,state=0) (ico_input_mgr.c:553)
+[16:42:05.770] DBG>ico_device_input_event: send event=InDev1.Sw4[3],1,0 to App.test-client@3 (ico_input_mgr.c:580)
+[16:42:05.770] DBG>ico_device_input_event: Leave (ico_input_mgr.c:584)
+[16:42:06.312] DBG>ico_device_input_event: Enter(time=726312,dev=InDev2,input=0,code=1,state=1) (ico_input_mgr.c:553)
+[16:42:06.312] DBG>ico_device_input_event: send event=InDev2.Sw0[0],1,1 to App.test-client@1 (ico_input_mgr.c:580)
+[16:42:06.312] DBG>ico_device_input_event: Leave (ico_input_mgr.c:584)
+[16:42:06.453] DBG>ico_device_input_event: Enter(time=726453,dev=InDev2,input=0,code=1,state=0) (ico_input_mgr.c:553)
+[16:42:06.453] DBG>ico_device_input_event: send event=InDev2.Sw0[0],1,0 to App.test-client@1 (ico_input_mgr.c:580)
+[16:42:06.453] DBG>ico_device_input_event: Leave (ico_input_mgr.c:584)
+[16:42:06.995] DBG>ico_device_input_event: Enter(time=726995,dev=InDev2,input=1,code=1,state=1) (ico_input_mgr.c:553)
+[16:42:06.995] DBG>ico_device_input_event: send event=InDev2.Sw1[1],1,1 to App.test-client@1 (ico_input_mgr.c:580)
+[16:42:06.995] DBG>ico_device_input_event: Leave (ico_input_mgr.c:584)
+[16:42:07.136] DBG>ico_device_input_event: Enter(time=727136,dev=InDev2,input=1,code=1,state=0) (ico_input_mgr.c:553)
+[16:42:07.136] DBG>ico_device_input_event: send event=InDev2.Sw1[1],1,0 to App.test-client@1 (ico_input_mgr.c:580)
+[16:42:07.136] DBG>ico_device_input_event: Leave (ico_input_mgr.c:584)
+[16:42:07.718] DBG>ico_mgr_add_input_app: Enter(appid=test-client@1,dev=InDev2,input=0,fix=0) (ico_input_mgr.c:182)
+[16:42:07.718] DBG>ico_mgr_add_input_app: Leave(InDev2.Sw0[0] assign to test-client@1) (ico_input_mgr.c:227)
+[16:42:07.759] DBG>ico_mgr_add_input_app: Enter(appid=test-client@1,dev=InDev2,input=0,fix=1) (ico_input_mgr.c:182)
+[16:42:07.759] DBG>ico_mgr_add_input_app: Leave(InDev2.Sw0[0] assign to test-client@1) (ico_input_mgr.c:227)
+[16:42:07.799] DBG>ico_mgr_add_input_app: Enter(appid=test-client@2,dev=InDev2,input=1,fix=0) (ico_input_mgr.c:182)
+[16:42:07.799] DBG>ico_mgr_add_input_app: Leave(InDev2.Sw1[1] assign to test-client@2) (ico_input_mgr.c:227)
+[16:42:07.839] DBG>ico_mgr_del_input_app: Enter(appid=test-client@1,dev=InDev1,input=1) (ico_input_mgr.c:250)
+[16:42:07.839] DBG>ico_mgr_del_input_app: Leave(InDev1.1 app.test-client@1 deleted) (ico_input_mgr.c:296)
+[16:42:07.879] DBG>ico_mgr_del_input_app: Enter(appid=test-client@1,dev=InDev2,input=1) (ico_input_mgr.c:250)
+[16:42:07.879] DBG>ico_mgr_del_input_app: Leave(InDev2.1 not app.test-client@1, current test-client@2) (ico_input_mgr.c:292)
+[16:42:07.920] DBG>ico_device_input_event: Enter(time=727920,dev=InDev2,input=0,code=1,state=1) (ico_input_mgr.c:553)
+[16:42:07.920] DBG>ico_device_input_event: send event=InDev2.Sw0[0],1,1 to App.test-client@1 (ico_input_mgr.c:580)
+[16:42:07.920] DBG>ico_device_input_event: Leave (ico_input_mgr.c:584)
+[16:42:08.060] DBG>ico_device_input_event: Enter(time=728060,dev=InDev2,input=0,code=1,state=0) (ico_input_mgr.c:553)
+[16:42:08.060] DBG>ico_device_input_event: send event=InDev2.Sw0[0],1,0 to App.test-client@1 (ico_input_mgr.c:580)
+[16:42:08.060] DBG>ico_device_input_event: Leave (ico_input_mgr.c:584)
+[16:42:08.201] DBG>ico_device_input_event: Enter(time=728201,dev=InDev2,input=1,code=1,state=1) (ico_input_mgr.c:553)
+[16:42:08.201] DBG>ico_device_input_event: send event=InDev2.Sw1[1],1,1 to App.test-client@2 (ico_input_mgr.c:580)
+[16:42:08.201] DBG>ico_device_input_event: Leave (ico_input_mgr.c:584)
+[16:42:08.342] DBG>ico_device_input_event: Enter(time=728342,dev=InDev2,input=1,code=1,state=0) (ico_input_mgr.c:553)
+[16:42:08.342] DBG>ico_device_input_event: send event=InDev2.Sw1[1],1,0 to App.test-client@2 (ico_input_mgr.c:580)
+[16:42:08.342] DBG>ico_device_input_event: Leave (ico_input_mgr.c:584)
+[16:42:08.482] DBG>ico_device_input_event: Enter(time=728482,dev=InDev1,input=3,code=1,state=1) (ico_input_mgr.c:553)
+[16:42:08.482] DBG>ico_device_input_event: send event=InDev1.Sw4[3],1,1 to App.test-client@3 (ico_input_mgr.c:580)
+[16:42:08.482] DBG>ico_device_input_event: Leave (ico_input_mgr.c:584)
+[16:42:08.623] DBG>ico_device_input_event: Enter(time=728623,dev=InDev1,input=3,code=1,state=0) (ico_input_mgr.c:553)
+[16:42:08.623] DBG>ico_device_input_event: send event=InDev1.Sw4[3],1,0 to App.test-client@3 (ico_input_mgr.c:580)
+[16:42:08.623] DBG>ico_device_input_event: Leave (ico_input_mgr.c:584)
+[16:42:09.687] DBG>ico_mgr_del_input_app: Enter(appid=,dev=,input=-1) (ico_input_mgr.c:250)
+[16:42:09.687] DBG>ico_mgr_del_input_app: InDev1.2 app.test-client@2 deleted (ico_input_mgr.c:348)
+[16:42:09.687] DBG>ico_mgr_del_input_app: InDev1.3 app.test-client@3 deleted (ico_input_mgr.c:348)
+[16:42:09.687] DBG>ico_mgr_del_input_app: InDev2.1 app.test-client@2 deleted (ico_input_mgr.c:348)
+[16:42:09.687] DBG>ico_mgr_del_input_app: Leave (ico_input_mgr.c:355)
+[16:42:12.057] libwayland: disconnect from client 0x8a4c8a0
+[16:42:12.057] DBG>unbind_shell (ico_ivi_shell.c:1135)
+[16:42:12.057] DBG>unbind_shell_client: Enter(client=08a4c8a0) (ico_window_mgr.c:511)
+[16:42:12.057] DBG>unbind_shell_client: Leave (ico_window_mgr.c:519)
+[16:42:12.057] DBG>unbind_ivi_shell (ico_ivi_shell.c:1154)
+[16:42:12.057] DBG>unbind_ico_win_mgr: Enter (ico_window_mgr.c:1381)
+[16:42:12.057] DBG>unbind_ico_win_mgr: Leave (ico_window_mgr.c:1398)
+[16:42:12.057] DBG>ico_exinput_unbind: Enter(resource=08a37938) (ico_input_mgr.c:805)
+[16:42:12.057] DBG>ico_exinput_unbind: find app.test-client@1 (ico_input_mgr.c:809)
+[16:42:12.058] DBG>ico_exinput_unbind: app.test-client@1 fix assign InDev2.Sw0 (ico_input_mgr.c:822)
+[16:42:12.058] DBG>ico_exinput_unbind: Leave (ico_input_mgr.c:840)
+[16:42:12.058] DBG>shell_handle_surface_destroy: Enter [08ba4690] data=08b96da8 (ico_ivi_shell.c:645)
+[16:42:12.058] DBG>shell_destroy_shell_surface: Enter [08ba4690] (ico_ivi_shell.c:622)
+[16:42:12.058] DBG>destroy_shell_surface: Enter[08ba4690] (ico_ivi_shell.c:583)
+[16:42:12.058] DBG>ivi_shell_restack_ivi_layer: Enter[08ba4690] (ico_ivi_shell.c:1220)
+[16:42:12.058] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:42:12.058] DBG>destroy_shell_surface: call ivi_shell_hook_destroy(08b96da8) (ico_ivi_shell.c:595)
+[16:42:12.058] DBG>win_mgr_surface_destroy: Enter(08b96da8) (ico_window_mgr.c:1282)
+[16:42:12.058] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) DESTROYED surf=0000000b (ico_window_mgr.c:1472)
+[16:42:12.058] DBG>win_mgr_surface_destroy: Leave(OK) (ico_window_mgr.c:1332)
+[16:42:12.058] DBG>destroy_shell_surface: ret (ico_ivi_shell.c:597)
+[16:42:12.058] DBG>destroy_shell_surface: Leave (ico_ivi_shell.c:606)
+[16:42:12.058] DBG>shell_destroy_shell_surface: Leave (ico_ivi_shell.c:626)
+[16:42:12.058] DBG>shell_handle_surface_destroy: Leave (ico_ivi_shell.c:653)
+[16:42:12.901] libwayland: disconnect from client 0x8ba84b8
+[16:42:12.901] DBG>unbind_shell (ico_ivi_shell.c:1135)
+[16:42:12.901] DBG>unbind_shell_client: Enter(client=08ba84b8) (ico_window_mgr.c:511)
+[16:42:12.901] DBG>unbind_shell_client: Leave (ico_window_mgr.c:519)
+[16:42:12.901] DBG>unbind_ivi_shell (ico_ivi_shell.c:1154)
+[16:42:12.901] DBG>unbind_ico_win_mgr: Enter (ico_window_mgr.c:1381)
+[16:42:12.901] DBG>unbind_ico_win_mgr: Leave (ico_window_mgr.c:1398)
+[16:42:12.901] DBG>ico_exinput_unbind: Enter(resource=08bc4750) (ico_input_mgr.c:805)
+[16:42:12.901] DBG>ico_exinput_unbind: find app.test-client@2 (ico_input_mgr.c:809)
+[16:42:12.901] DBG>ico_exinput_unbind: Leave (ico_input_mgr.c:840)
+[16:42:12.901] DBG>shell_handle_surface_destroy: Enter [08bc49f0] data=08bc4780 (ico_ivi_shell.c:645)
+[16:42:12.901] DBG>shell_destroy_shell_surface: Enter [08bc49f0] (ico_ivi_shell.c:622)
+[16:42:12.901] DBG>destroy_shell_surface: Enter[08bc49f0] (ico_ivi_shell.c:583)
+[16:42:12.901] DBG>ivi_shell_restack_ivi_layer: Enter[08bc49f0] (ico_ivi_shell.c:1220)
+[16:42:12.901] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:42:12.901] DBG>destroy_shell_surface: call ivi_shell_hook_destroy(08bc4780) (ico_ivi_shell.c:595)
+[16:42:12.901] DBG>win_mgr_surface_destroy: Enter(08bc4780) (ico_window_mgr.c:1282)
+[16:42:12.901] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) DESTROYED surf=0000000c (ico_window_mgr.c:1472)
+[16:42:12.901] DBG>win_mgr_surface_destroy: Leave(OK) (ico_window_mgr.c:1332)
+[16:42:12.901] DBG>destroy_shell_surface: ret (ico_ivi_shell.c:597)
+[16:42:12.901] DBG>destroy_shell_surface: Leave (ico_ivi_shell.c:606)
+[16:42:12.901] DBG>shell_destroy_shell_surface: Leave (ico_ivi_shell.c:626)
+[16:42:12.901] DBG>shell_handle_surface_destroy: Leave (ico_ivi_shell.c:653)
+[16:42:13.744] libwayland: disconnect from client 0x8badc00
+[16:42:13.744] DBG>unbind_shell (ico_ivi_shell.c:1135)
+[16:42:13.744] DBG>unbind_shell_client: Enter(client=08badc00) (ico_window_mgr.c:511)
+[16:42:13.744] DBG>unbind_shell_client: Leave (ico_window_mgr.c:519)
+[16:42:13.744] DBG>unbind_ivi_shell (ico_ivi_shell.c:1154)
+[16:42:13.744] DBG>unbind_ico_win_mgr: Enter (ico_window_mgr.c:1381)
+[16:42:13.744] DBG>unbind_ico_win_mgr: Leave (ico_window_mgr.c:1398)
+[16:42:13.744] DBG>ico_exinput_unbind: Enter(resource=08b3f0a8) (ico_input_mgr.c:805)
+[16:42:13.744] DBG>ico_exinput_unbind: find app.test-client@3 (ico_input_mgr.c:809)
+[16:42:13.744] DBG>ico_exinput_unbind: Leave (ico_input_mgr.c:840)
+[16:42:13.744] DBG>shell_handle_surface_destroy: Enter [08b3f3a8] data=08b3f138 (ico_ivi_shell.c:645)
+[16:42:13.744] DBG>shell_destroy_shell_surface: Enter [08b3f3a8] (ico_ivi_shell.c:622)
+[16:42:13.744] DBG>destroy_shell_surface: Enter[08b3f3a8] (ico_ivi_shell.c:583)
+[16:42:13.744] DBG>ivi_shell_restack_ivi_layer: Enter[08b3f3a8] (ico_ivi_shell.c:1220)
+[16:42:13.744] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:42:13.744] DBG>destroy_shell_surface: call ivi_shell_hook_destroy(08b3f138) (ico_ivi_shell.c:595)
+[16:42:13.744] DBG>win_mgr_surface_destroy: Enter(08b3f138) (ico_window_mgr.c:1282)
+[16:42:13.744] DBG>ico_win_mgr_send_to_mgr: Send Manager(08b425a0) DESTROYED surf=0000000d (ico_window_mgr.c:1472)
+[16:42:13.745] DBG>win_mgr_surface_destroy: Leave(OK) (ico_window_mgr.c:1332)
+[16:42:13.745] DBG>destroy_shell_surface: ret (ico_ivi_shell.c:597)
+[16:42:13.745] DBG>destroy_shell_surface: Leave (ico_ivi_shell.c:606)
+[16:42:13.745] DBG>shell_destroy_shell_surface: Leave (ico_ivi_shell.c:626)
+[16:42:13.745] DBG>shell_handle_surface_destroy: Leave (ico_ivi_shell.c:653)
+[16:42:14.528] libwayland: disconnect from client 0x8bc8578
+[16:42:14.528] DBG>unbind_shell (ico_ivi_shell.c:1135)
+[16:42:14.528] DBG>unbind_shell_client: Enter(client=08bc8578) (ico_window_mgr.c:511)
+[16:42:14.528] DBG>unbind_shell_client: Leave (ico_window_mgr.c:519)
+[16:42:14.528] DBG>unbind_ivi_shell (ico_ivi_shell.c:1154)
+[16:42:14.528] DBG>unbind_ico_win_mgr: Enter (ico_window_mgr.c:1381)
+[16:42:14.528] DBG>unbind_ico_win_mgr: Leave (ico_window_mgr.c:1398)
+[16:42:14.528] DBG>ico_control_unbind: Enter(resource=08ba5ba8) (ico_input_mgr.c:650)
+[16:42:14.528] DBG>ico_control_unbind: find app.test-homescreen (ico_input_mgr.c:654)
+[16:42:14.528] DBG>ico_control_unbind: Leave (ico_input_mgr.c:661)
+[16:42:14.528] DBG>ico_device_unbind: Enter(resource=08b985a8) (ico_input_mgr.c:700)
+[16:42:14.528] DBG>ico_device_unbind: Leave (ico_input_mgr.c:702)
+[16:42:14.528] DBG>ico_exinput_unbind: Enter(resource=08b985d8) (ico_input_mgr.c:805)
+[16:42:14.528] DBG>ico_exinput_unbind: find app.test-homescreen (ico_input_mgr.c:809)
+[16:42:14.528] DBG>ico_exinput_unbind: Leave (ico_input_mgr.c:840)
+[16:42:14.528] DBG>shell_handle_surface_destroy: Enter [08b98608] data=08baa788 (ico_ivi_shell.c:645)
+[16:42:14.528] DBG>shell_destroy_shell_surface: Enter [08b98608] (ico_ivi_shell.c:622)
+[16:42:14.528] DBG>destroy_shell_surface: Enter[08b98608] (ico_ivi_shell.c:583)
+[16:42:14.528] DBG>ivi_shell_restack_ivi_layer: Enter[08b98608] (ico_ivi_shell.c:1220)
+[16:42:14.528] DBG>ivi_shell_restack_ivi_layer: Leave (ico_ivi_shell.c:1286)
+[16:42:14.528] DBG>destroy_shell_surface: call ivi_shell_hook_destroy(08baa788) (ico_ivi_shell.c:595)
+[16:42:14.529] DBG>win_mgr_surface_destroy: Enter(08baa788) (ico_window_mgr.c:1282)
+[16:42:14.529] DBG>win_mgr_surface_destroy: Leave(OK) (ico_window_mgr.c:1332)
+[16:42:14.529] DBG>destroy_shell_surface: ret (ico_ivi_shell.c:597)
+[16:42:14.529] DBG>destroy_shell_surface: Leave (ico_ivi_shell.c:606)
+[16:42:14.529] DBG>shell_destroy_shell_surface: Leave (ico_ivi_shell.c:626)
+[16:42:14.529] DBG>shell_handle_surface_destroy: Leave (ico_ivi_shell.c:653)
+[16:42:15.540] caught signal 15
+[16:42:15.540] DBG>shell_destroy (ico_ivi_shell.c:1199)
diff --git a/tests/weston-plugin-test b/tests/weston-plugin-test
new file mode 100755
index 0000000..b474bd5
--- /dev/null
+++ b/tests/weston-plugin-test
@@ -0,0 +1,76 @@
+#!/bin/sh
+#
+# Weston IVI Plugin Test
+#
+# Remark: This examination premises that Weston does not run.
+
+# 1 Delete log file
+rm -fr ../tests/testlog/*
+
+# 2 Start Pseudo event device (for Touch Panel)
+../tests/test-send_event -d -mq=5551 2> ../tests/testlog/event_log.log &
+sleep 1
+
+# 3 Weston/Wayland Envionment
+export XDG_RUNTIME_DIR=/tmp/run-root
+export QT_QPA_PLATFORM=wayland
+export ELM_ENGINE=wayland_egl
+export ECORE_EVAS_ENGINE=wayland_egl
+#export ELM_ENGINE=wayland_shm
+#export ECORE_EVAS_ENGINE=wayland_shm
+export EVAS_FONT_DPI=72
+export ECORE_IMF_MODULE=isf
+export ELM_MODULES="ctxpopup_copypasteUI>entry/api:datetime_input_ctxpopup>datetime/api"
+export ELM_SCALE="0.7"
+export ELM_PROFILE=mobile
+
+# 4 Set Environment for Test
+export WESTON_IVI_PLUGIN_DIR="../src/.libs"
+
+# 5 Start Weston
+export XDG_CONFIG_HOME="../tests"
+MOD_DIR="$PWD/../src/.libs"
+/usr/bin/weston --backend=drm-backend.so --modules=$MOD_DIR/ico_plugin_loader.so --idle-time=0 --log=../tests/testlog/weston.log &
+sleep 1
+
+# 6 Set library path
+export LD_LIBRARY_PATH=../src/.libs:$LD_LIBRARY_PATH
+
+# 7 Start test-homescreen
+../tests/test-homescreen < ../tests/testdata/hs_alltest.dat 2> ../tests/testlog/test-homescreen.log
+
+# 8 End of Test
+sleep 1
+/usr/bin/killall weston
+/usr/bin/killall test-send_event
+sleep 1
+
+# 9 Check Error
+FOUND_ERR=0
+/bin/grep "ERR>" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "WRN>" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "Error" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "error" testlog/* | /bin/grep -v "error_but_no_problem_for_test"
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "Fail" testlog/* | /bin/grep -v "error_but_no_problem_for_test"
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+
+if [ $FOUND_ERR = 0 ] ; then
+ echo "Weston IVI Plugin Test: OK"
+else
+ echo "Weston IVI Plugin Test: ERROR"
+fi
+
diff --git a/tests/weston-plugin-test.homescreen b/tests/weston-plugin-test.homescreen
new file mode 100755
index 0000000..d7fc29b
--- /dev/null
+++ b/tests/weston-plugin-test.homescreen
@@ -0,0 +1,42 @@
+#!/bin/sh
+#
+# Weston IVI Plugin Test
+# Examination to operate only the program of the HomeScreen.
+#
+# Remark: This examination premises that Weston does not run.
+
+# 1 Delete log file
+rm -fr ../tests/testlog/*
+
+# 2 Weston/Wayland Envionment
+export XDG_RUNTIME_DIR=/tmp/run-root
+export QT_QPA_PLATFORM=wayland
+export ELM_ENGINE=wayland_egl
+export ECORE_EVAS_ENGINE=wayland_egl
+#export ELM_ENGINE=wayland_shm
+#export ECORE_EVAS_ENGINE=wayland_shm
+export EVAS_FONT_DPI=72
+export ECORE_IMF_MODULE=isf
+export ELM_MODULES="ctxpopup_copypasteUI>entry/api:datetime_input_ctxpopup>datetime/api"
+export ELM_SCALE="0.7"
+export ELM_PROFILE=mobile
+
+# 3 Set Environment for Test
+export WESTON_IVI_PLUGIN_DIR="../src/.libs"
+
+# 4 Start Weston
+export XDG_CONFIG_HOME="../tests"
+MOD_DIR="$PWD/../src/.libs"
+/usr/bin/weston --backend=drm-backend.so --modules=$MOD_DIR/ico_plugin_loader.so --idle-time=0 --log=../tests/testlog/weston.log &
+sleep 2
+
+# 5 Set library path
+export LD_LIBRARY_PATH=../src/.libs:$LD_LIBRARY_PATH
+
+# 6 Start test-homescreen
+../tests/test-homescreen -prompt=1 2> ../tests/testlog/test-homescreen.log
+
+# 7 End of Test
+sleep 2
+/usr/bin/killall weston
+
diff --git a/tests/weston-plugin-test.input b/tests/weston-plugin-test.input
new file mode 100755
index 0000000..0990ea9
--- /dev/null
+++ b/tests/weston-plugin-test.input
@@ -0,0 +1,75 @@
+#!/bin/sh
+#
+# Weston IVI Plugin Test
+#
+# Remark: This examination premises that Weston does not run.
+
+# 1 Delete log file
+rm -fr ../tests/testlog/*
+
+# 2 Start Pseudo event device (for Touch Panel)
+../tests/test-send_event -d -mq=5551 2> ../tests/testlog/event_log.log &
+sleep 1
+
+# 3 Weston/Wayland Envionment
+export XDG_RUNTIME_DIR=/tmp/run-root
+export QT_QPA_PLATFORM=wayland
+export ELM_ENGINE=wayland_egl
+export ECORE_EVAS_ENGINE=wayland_egl
+export EVAS_FONT_DPI=72
+export ECORE_IMF_MODULE=isf
+export ELM_MODULES="ctxpopup_copypasteUI>entry/api:datetime_input_ctxpopup>datetime/api"
+export ELM_SCALE="0.7"
+export ELM_PROFILE=mobile
+#export WAYLAND_DEBUG="1"
+
+# 4 Set Environment for Test
+export WESTON_IVI_PLUGIN_DIR="../src/.libs"
+
+# 5 Start Weston
+export XDG_CONFIG_HOME="../tests"
+MOD_DIR="$PWD/../src/.libs"
+/usr/bin/weston --backend=drm-backend.so --modules=$MOD_DIR/ico_plugin_loader.so --idle-time=0 --log=../tests/testlog/weston.log &
+sleep 1
+
+# 6 Set library path
+export LD_LIBRARY_PATH=../src/.libs:$LD_LIBRARY_PATH
+
+# 7 Start test-homescreen
+../tests/test-homescreen < ../tests/testdata/hs_inputtest.dat 2> ../tests/testlog/test-homescreen.log
+
+# 8 End of Test
+sleep 1
+/usr/bin/killall weston
+/usr/bin/killall test-send_event
+sleep 1
+
+# 9 Check Error
+FOUND_ERR=0
+/bin/grep "ERR>" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "WRN>" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "Error" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "error" testlog/* | /bin/grep -v "error_but_no_problem_for_test"
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "Fail" testlog/* | /bin/grep -v "error_but_no_problem_for_test"
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+
+if [ $FOUND_ERR = 0 ] ; then
+ echo "Weston IVI Plugin Test: OK"
+else
+ echo "Weston IVI Plugin Test: ERROR"
+fi
+
diff --git a/tests/weston-plugin-test.notouch b/tests/weston-plugin-test.notouch
new file mode 100755
index 0000000..b6a6fae
--- /dev/null
+++ b/tests/weston-plugin-test.notouch
@@ -0,0 +1,76 @@
+#!/bin/sh
+#
+# Weston IVI Plugin Test
+#
+# Remark: This examination premises that Weston does not run.
+
+# 1 Delete log file
+rm -fr ../tests/testlog/*
+
+# 2 Start Pseudo event device (for Touch Panel)
+#../tests/test-send_event -mq=5551 &
+#sleep 1
+
+# 3 Weston/Wayland Envionment
+export XDG_RUNTIME_DIR=/tmp/run-root
+export QT_QPA_PLATFORM=wayland
+export ELM_ENGINE=wayland_egl
+export ECORE_EVAS_ENGINE=wayland_egl
+#export ELM_ENGINE=wayland_shm
+#export ECORE_EVAS_ENGINE=wayland_shm
+export EVAS_FONT_DPI=72
+export ECORE_IMF_MODULE=isf
+export ELM_MODULES="ctxpopup_copypasteUI>entry/api:datetime_input_ctxpopup>datetime/api"
+export ELM_SCALE="0.7"
+export ELM_PROFILE=mobile
+
+# 4 Set Environment for Test
+export WESTON_IVI_PLUGIN_DIR="../src/.libs"
+
+# 5 Start Weston
+export XDG_CONFIG_HOME="../tests"
+MOD_DIR="$PWD/../src/.libs"
+/usr/bin/weston --backend=drm-backend.so --modules=$MOD_DIR/ico_plugin_loader.so --idle-time=0 --log=../tests/testlog/weston.log &
+sleep 1
+
+# 6 Set library path
+export LD_LIBRARY_PATH=../src/.libs:$LD_LIBRARY_PATH
+
+# 7 Start test-homescreen
+../tests/test-homescreen < ../tests/testdata/hs_alltest.dat 2> ../tests/testlog/test-homescreen.log
+
+# 8 End of Test
+sleep 1
+/usr/bin/killall weston
+/usr/bin/killall test-send_event
+sleep 1
+
+# 9 Check Error
+FOUND_ERR=0
+/bin/grep "ERR>" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "WRN>" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "Error" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "error" testlog/* | /bin/grep -v "error_but_no_problem_for_test"
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "Fail" testlog/* | /bin/grep -v "error_but_no_problem_for_test"
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+
+if [ $FOUND_ERR = 0 ] ; then
+ echo "Weston IVI Plugin Test: OK"
+else
+ echo "Weston IVI Plugin Test: ERROR"
+fi
+
diff --git a/tests/weston-plugin-test.resize b/tests/weston-plugin-test.resize
new file mode 100755
index 0000000..4999038
--- /dev/null
+++ b/tests/weston-plugin-test.resize
@@ -0,0 +1,76 @@
+#!/bin/sh
+#
+# Weston IVI Plugin Test (Resize Buf test)
+#
+# Remark: This examination premises that Weston does not run.
+
+# 1 Delete log file
+rm -fr ../tests/testlog/*
+
+# 2 Start Pseudo event device (for Touch Panel)
+../tests/test-send_event -d -mq=5551 2> ../tests/testlog/event_log.log &
+sleep 1
+
+# 3 Weston/Wayland Envionment
+export XDG_RUNTIME_DIR=/tmp/run-root
+export QT_QPA_PLATFORM=wayland
+export ELM_ENGINE=wayland_egl
+export ECORE_EVAS_ENGINE=wayland_egl
+#export ELM_ENGINE=wayland_shm
+#export ECORE_EVAS_ENGINE=wayland_shm
+export EVAS_FONT_DPI=72
+export ECORE_IMF_MODULE=isf
+export ELM_MODULES="ctxpopup_copypasteUI>entry/api:datetime_input_ctxpopup>datetime/api"
+export ELM_SCALE="0.7"
+export ELM_PROFILE=mobile
+
+# 4 Set Environment for Test
+export WESTON_IVI_PLUGIN_DIR="../src/.libs"
+
+# 5 Start Weston
+export XDG_CONFIG_HOME="../tests"
+MOD_DIR="$PWD/../src/.libs"
+/usr/bin/weston --backend=drm-backend.so --modules=$MOD_DIR/ico_plugin_loader.so --idle-time=0 --log=../tests/testlog/weston.log &
+sleep 1
+
+# 6 Set library path
+export LD_LIBRARY_PATH=../src/.libs:$LD_LIBRARY_PATH
+
+# 7 Start test-homescreen
+../tests/test-homescreen < ../tests/testdata/hs_resize.dat 2> ../tests/testlog/test-homescreen.log
+
+# 8 End of Test
+sleep 1
+/usr/bin/killall weston
+/usr/bin/killall test-send_event
+sleep 1
+
+# 9 Check Error
+FOUND_ERR=0
+/bin/grep "ERR>" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "WRN>" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "Error" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "error" testlog/* | /bin/grep -v "error_but_no_problem_for_test"
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "Fail" testlog/* | /bin/grep -v "error_but_no_problem_for_test"
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+
+if [ $FOUND_ERR = 0 ] ; then
+ echo "Weston IVI Plugin Test: OK"
+else
+ echo "Weston IVI Plugin Test: ERROR"
+fi
+
diff --git a/tests/weston-plugin-test.resize_flower b/tests/weston-plugin-test.resize_flower
new file mode 100755
index 0000000..12d4411
--- /dev/null
+++ b/tests/weston-plugin-test.resize_flower
@@ -0,0 +1,76 @@
+#!/bin/sh
+#
+# Weston IVI Plugin Test (Resize Buf test)
+#
+# Remark: This examination premises that Weston does not run.
+
+# 1 Delete log file
+rm -fr ../tests/testlog/*
+
+# 2 Start Pseudo event device (for Touch Panel)
+../tests/test-send_event -d -mq=5551 2> ../tests/testlog/event_log.log &
+sleep 1
+
+# 3 Weston/Wayland Envionment
+export XDG_RUNTIME_DIR=/tmp/run-root
+export QT_QPA_PLATFORM=wayland
+export ELM_ENGINE=wayland_egl
+export ECORE_EVAS_ENGINE=wayland_egl
+#export ELM_ENGINE=wayland_shm
+#export ECORE_EVAS_ENGINE=wayland_shm
+export EVAS_FONT_DPI=72
+export ECORE_IMF_MODULE=isf
+export ELM_MODULES="ctxpopup_copypasteUI>entry/api:datetime_input_ctxpopup>datetime/api"
+export ELM_SCALE="0.7"
+export ELM_PROFILE=mobile
+
+# 4 Set Environment for Test
+export WESTON_IVI_PLUGIN_DIR="../src/.libs"
+
+# 5 Start Weston
+export XDG_CONFIG_HOME="../tests"
+MOD_DIR="$PWD/../src/.libs"
+/usr/bin/weston --backend=drm-backend.so --modules=$MOD_DIR/ico_plugin_loader.so --idle-time=0 --log=../tests/testlog/weston.log &
+sleep 1
+
+# 6 Set library path
+export LD_LIBRARY_PATH=../src/.libs:$LD_LIBRARY_PATH
+
+# 7 Start test-homescreen
+../tests/test-homescreen < ../tests/testdata/hs_resize_flower.dat 2> ../tests/testlog/test-homescreen.log
+
+# 8 End of Test
+sleep 1
+/usr/bin/killall weston
+/usr/bin/killall test-send_event
+sleep 1
+
+# 9 Check Error
+FOUND_ERR=0
+/bin/grep "ERR>" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "WRN>" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "Error" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "error" testlog/* | /bin/grep -v "error_but_no_problem_for_test"
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "Fail" testlog/* | /bin/grep -v "error_but_no_problem_for_test"
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+
+if [ $FOUND_ERR = 0 ] ; then
+ echo "Weston IVI Plugin Test: OK"
+else
+ echo "Weston IVI Plugin Test: ERROR"
+fi
+
diff --git a/tests/weston-plugin-test.resize_native b/tests/weston-plugin-test.resize_native
new file mode 100755
index 0000000..fb26de0
--- /dev/null
+++ b/tests/weston-plugin-test.resize_native
@@ -0,0 +1,76 @@
+#!/bin/sh
+#
+# Weston IVI Plugin Test (Resize Buf test)
+#
+# Remark: This examination premises that Weston does not run.
+
+# 1 Delete log file
+rm -fr ../tests/testlog/*
+
+# 2 Start Pseudo event device (for Touch Panel)
+../tests/test-send_event -d -mq=5551 2> ../tests/testlog/event_log.log &
+sleep 1
+
+# 3 Weston/Wayland Envionment
+export XDG_RUNTIME_DIR=/tmp/run-root
+export QT_QPA_PLATFORM=wayland
+export ELM_ENGINE=wayland_egl
+export ECORE_EVAS_ENGINE=wayland_egl
+#export ELM_ENGINE=wayland_shm
+#export ECORE_EVAS_ENGINE=wayland_shm
+export EVAS_FONT_DPI=72
+export ECORE_IMF_MODULE=isf
+export ELM_MODULES="ctxpopup_copypasteUI>entry/api:datetime_input_ctxpopup>datetime/api"
+export ELM_SCALE="0.7"
+export ELM_PROFILE=mobile
+
+# 4 Set Environment for Test
+export WESTON_IVI_PLUGIN_DIR="../src/.libs"
+
+# 5 Start Weston
+export XDG_CONFIG_HOME="../tests"
+MOD_DIR="$PWD/../src/.libs"
+/usr/bin/weston --backend=drm-backend.so --modules=$MOD_DIR/ico_plugin_loader.so --idle-time=0 --log=../tests/testlog/weston.log &
+sleep 1
+
+# 6 Set library path
+export LD_LIBRARY_PATH=../src/.libs:$LD_LIBRARY_PATH
+
+# 7 Start test-homescreen
+../tests/test-homescreen < ../tests/testdata/hs_resize_native.dat 2> ../tests/testlog/test-homescreen.log
+
+# 8 End of Test
+sleep 1
+/usr/bin/killall weston
+/usr/bin/killall test-send_event
+sleep 1
+
+# 9 Check Error
+FOUND_ERR=0
+/bin/grep "ERR>" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "WRN>" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "Error" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "error" testlog/* | /bin/grep -v "error_but_no_problem_for_test"
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "Fail" testlog/* | /bin/grep -v "error_but_no_problem_for_test"
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+
+if [ $FOUND_ERR = 0 ] ; then
+ echo "Weston IVI Plugin Test: OK"
+else
+ echo "Weston IVI Plugin Test: ERROR"
+fi
+
diff --git a/tests/weston-plugin-test.resize_smoke b/tests/weston-plugin-test.resize_smoke
new file mode 100755
index 0000000..f725aae
--- /dev/null
+++ b/tests/weston-plugin-test.resize_smoke
@@ -0,0 +1,80 @@
+#!/bin/sh
+#
+# Weston IVI Plugin Test (Resize Buf test)
+#
+# Remark: This examination premises that Weston does not run.
+
+# 1 Delete log file
+rm -fr ../tests/testlog/*
+
+# 2 Start Pseudo event device (for Touch Panel)
+../tests/test-send_event -d -mq=5551 2> ../tests/testlog/event_log.log &
+sleep 1
+
+# 3 Weston/Wayland Envionment
+export XDG_RUNTIME_DIR=/tmp/run-root
+export QT_QPA_PLATFORM=wayland
+export ELM_ENGINE=wayland_egl
+export ECORE_EVAS_ENGINE=wayland_egl
+#export ELM_ENGINE=wayland_shm
+#export ECORE_EVAS_ENGINE=wayland_shm
+export EVAS_FONT_DPI=72
+export ECORE_IMF_MODULE=isf
+export ELM_MODULES="ctxpopup_copypasteUI>entry/api:datetime_input_ctxpopup>datetime/api"
+export ELM_SCALE="0.7"
+export ELM_PROFILE=mobile
+
+# 4 Set Environment for Test
+export WESTON_IVI_PLUGIN_DIR="../src/.libs"
+
+# 5 Start Weston
+export XDG_CONFIG_HOME="../tests"
+MOD_DIR="$PWD/../src/.libs"
+/usr/bin/weston --backend=drm-backend.so --modules=$MOD_DIR/ico_plugin_loader.so --idle-time=0 --log=../tests/testlog/weston.log &
+sleep 1
+
+# 6 Set library path
+export LD_LIBRARY_PATH=../src/.libs:$LD_LIBRARY_PATH
+
+# 7 Start test-homescreen
+if [ $# != 0 ] ; then
+ ../tests/test-homescreen < ../tests/testdata/$1 2> ../tests/testlog/test-homescreen.log
+else
+ ../tests/test-homescreen < ../tests/testdata/hs_resize_smoke.dat 2> ../tests/testlog/test-homescreen.log
+fi
+
+# 8 End of Test
+sleep 1
+/usr/bin/killall weston
+/usr/bin/killall test-send_event
+sleep 1
+
+# 9 Check Error
+FOUND_ERR=0
+/bin/grep "ERR>" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "WRN>" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "Error" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "error" testlog/* | /bin/grep -v "error_but_no_problem_for_test"
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "Fail" testlog/* | /bin/grep -v "error_but_no_problem_for_test"
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+
+if [ $FOUND_ERR = 0 ] ; then
+ echo "Weston IVI Plugin Test: OK"
+else
+ echo "Weston IVI Plugin Test: ERROR"
+fi
+
diff --git a/tests/weston-plugin-test.resize_smoke2 b/tests/weston-plugin-test.resize_smoke2
new file mode 100755
index 0000000..a012e10
--- /dev/null
+++ b/tests/weston-plugin-test.resize_smoke2
@@ -0,0 +1,76 @@
+#!/bin/sh
+#
+# Weston IVI Plugin Test (Resize Buf test)
+#
+# Remark: This examination premises that Weston does not run.
+
+# 1 Delete log file
+rm -fr ../tests/testlog/*
+
+# 2 Start Pseudo event device (for Touch Panel)
+../tests/test-send_event -d -mq=5551 2> ../tests/testlog/event_log.log &
+sleep 1
+
+# 3 Weston/Wayland Envionment
+export XDG_RUNTIME_DIR=/tmp/run-root
+export QT_QPA_PLATFORM=wayland
+export ELM_ENGINE=wayland_egl
+export ECORE_EVAS_ENGINE=wayland_egl
+#export ELM_ENGINE=wayland_shm
+#export ECORE_EVAS_ENGINE=wayland_shm
+export EVAS_FONT_DPI=72
+export ECORE_IMF_MODULE=isf
+export ELM_MODULES="ctxpopup_copypasteUI>entry/api:datetime_input_ctxpopup>datetime/api"
+export ELM_SCALE="0.7"
+export ELM_PROFILE=mobile
+
+# 4 Set Environment for Test
+export WESTON_IVI_PLUGIN_DIR="../src/.libs"
+
+# 5 Start Weston
+export XDG_CONFIG_HOME="../tests"
+MOD_DIR="$PWD/../src/.libs"
+/usr/bin/weston --backend=drm-backend.so --modules=$MOD_DIR/ico_plugin_loader.so --idle-time=0 --log=../tests/testlog/weston.log &
+sleep 1
+
+# 6 Set library path
+export LD_LIBRARY_PATH=../src/.libs:$LD_LIBRARY_PATH
+
+# 7 Start test-homescreen
+../tests/test-homescreen < ../tests/testdata/hs_resize_smoke2.dat 2> ../tests/testlog/test-homescreen.log
+
+# 8 End of Test
+sleep 1
+/usr/bin/killall weston
+/usr/bin/killall test-send_event
+sleep 1
+
+# 9 Check Error
+FOUND_ERR=0
+/bin/grep "ERR>" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "WRN>" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "Error" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "error" testlog/* | /bin/grep -v "error_but_no_problem_for_test"
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "Fail" testlog/* | /bin/grep -v "error_but_no_problem_for_test"
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+
+if [ $FOUND_ERR = 0 ] ; then
+ echo "Weston IVI Plugin Test: OK"
+else
+ echo "Weston IVI Plugin Test: ERROR"
+fi
+
diff --git a/tests/weston-plugin-test_gdb b/tests/weston-plugin-test_gdb
new file mode 100755
index 0000000..2e0a697
--- /dev/null
+++ b/tests/weston-plugin-test_gdb
@@ -0,0 +1,75 @@
+#!/bin/sh
+#
+# Weston IVI Plugin Test
+#
+# Remark: This examination premises that Weston does not run.
+
+# 1 Delete log file
+rm -fr ../tests/testlog/*
+
+# 2 Start Pseudo event device (for Touch Panel)
+../tests/test-send_event -d -mq=5551 2> ../tests/testlog/event_log.log &
+sleep 1
+
+# 3 Weston/Wayland Envionment
+export XDG_RUNTIME_DIR=/tmp/run-root
+export QT_QPA_PLATFORM=wayland
+export ELM_ENGINE=wayland_egl
+export ECORE_EVAS_ENGINE=wayland_egl
+export EVAS_FONT_DPI=72
+export ECORE_IMF_MODULE=isf
+export ELM_MODULES="ctxpopup_copypasteUI>entry/api:datetime_input_ctxpopup>datetime/api"
+export ELM_SCALE="0.7"
+export ELM_PROFILE=mobile
+
+# 4 Set Environment for Test
+export WESTON_IVI_PLUGIN_DIR="../src/.libs"
+
+# 5 Start Weston
+export XDG_CONFIG_HOME="../tests"
+MOD_DIR="$PWD/../src/.libs"
+/usr/bin/weston --backend=drm-backend.so --modules=$MOD_DIR/ico_plugin_loader.so --idle-time=0 --log=../tests/testlog/weston.log &
+sleep 1
+
+# 6 Set library path
+export LD_LIBRARY_PATH=../src/.libs:$LD_LIBRARY_PATH
+
+# 7 Start test-homescreen
+gdb ../tests/test-homescreen
+../tests/test-homescreen < ../tests/testdata/hs_inputtest.dat 2> ../tests/testlog/test-homescreen.log
+
+# 8 End of Test
+sleep 1
+/usr/bin/killall weston
+/usr/bin/killall test-send_event
+sleep 1
+
+# 9 Check Error
+FOUND_ERR=0
+/bin/grep "ERR>" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "WRN>" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "Error" testlog/*
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "error" testlog/* | /bin/grep -v "error_but_no_problem_for_test"
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+/bin/grep "Fail" testlog/* | /bin/grep -v "error_but_no_problem_for_test"
+if [ "$?" != "1" ] ; then
+ FOUND_ERR=1
+fi
+
+if [ $FOUND_ERR = 0 ] ; then
+ echo "Weston IVI Plugin Test: OK"
+else
+ echo "Weston IVI Plugin Test: ERROR"
+fi
+
diff --git a/tests/weston.ini b/tests/weston.ini
new file mode 100644
index 0000000..62d8338
--- /dev/null
+++ b/tests/weston.ini
@@ -0,0 +1,25 @@
+[core]
+modules=error_but_no_problem_for_test.so
+# This is Error for Test(No Problem)
+
+#[output]
+#name=HDMI3
+#mode=1680x945
+#mode=1920x1080
+#mode=173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
+#transform=90
+
+#[output]
+#name=LVDS1
+#mode=1680x1050
+#transform=90
+
+#[output]
+#name=VGA1
+#mode=173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
+#transform=90
+
+#[output]
+#name=X1
+#mode=1024x768
+#transform=flipped-270
diff --git a/tests/weston_ivi_plugin.ini b/tests/weston_ivi_plugin.ini
new file mode 100644
index 0000000..89798d3
--- /dev/null
+++ b/tests/weston_ivi_plugin.ini
@@ -0,0 +1,18 @@
+[plugin]
+modules=ico_ivi_common.so,ico_ivi_shell.so,ico_window_mgr.so,ico_input_mgr.so
+
+[shell]
+animation=none
+#animation=zoom
+# 0=hide on surface create(for with HomeScreen)/1=show on surface create(for Debug)
+visible_on_create=0
+
+[debug]
+# option flag
+# 0x00000001 : =1, At the time of unvisible of surface, it travels surface outside a screen.
+# : =0, Exclude surface of the unvisible from a list of surface of Westons.
+option_flag=1
+
+# 0=no debug write(1=err/2=warn/3=info/4=debug)
+ivi_debug=4
+
diff --git a/weston.ini.ico b/weston.ini.ico
new file mode 100644
index 0000000..3ed96fa
--- /dev/null
+++ b/weston.ini.ico
@@ -0,0 +1,23 @@
+[core]
+modules=ico_plugin_loader.so
+
+[output]
+name=HDMI3
+#mode=1680x945
+mode=173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
+#transform=90
+
+#[output]
+#name=LVDS1
+#mode=1680x1050
+#transform=90
+
+[output]
+name=VGA1
+#mode=173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
+#transform=90
+
+#[output]
+#name=X1
+#mode=1024x768
+#transform=flipped-270
diff --git a/weston_ivi_plugin.ini b/weston_ivi_plugin.ini
new file mode 100644
index 0000000..0c24230
--- /dev/null
+++ b/weston_ivi_plugin.ini
@@ -0,0 +1,17 @@
+[plugin]
+modules=ico_ivi_common.so,ico_ivi_shell.so,ico_window_mgr.so,ico_input_mgr.so
+
+[shell]
+animation=none
+# 0=hide on surface create(for with HomeScreen)/1=show on surface create(for Debug)
+visible_on_create=0
+
+[debug]
+# option flag
+# 0x00000001 : =1, At the time of unvisible of surface, it travels surface outside a screen.
+# : =0, Exclude surface of the unvisible from a list of surface of Westons.
+option_flag=1
+
+# 0=no debug write(1=err/2=warn/3=info/4=debug)
+ivi_debug=4
+