From 64d39b5203e873d79e863116d6d0efd3b4ca33b1 Mon Sep 17 00:00:00 2001 From: Sangyoon Jang Date: Mon, 8 Jun 2015 15:02:34 +0900 Subject: Fix build break add missing dependency add missing static functions Change-Id: I8aff2ff02902dc138d2f08588e42be0222d4fd20 Signed-off-by: Sangyoon Jang --- CMakeLists.txt | 5 ++++- packaging/app-core.spec | 3 +++ src/appcore-X.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fa4255e..c3c334a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,9 +38,12 @@ SET(HEADERS_common appcore-common.h) INCLUDE(FindPkgConfig) SET(APPCORE_PKG_CHECK_MODULES "dbus-1 vconf sensor aul dlog libtzplatform-config ecore") IF (with_x11) - SET(APPCORE_PKG_CHECK_MODULES "${APPCORE_PKG_CHECK_MODULES} x11 ecore-x") + SET(APPCORE_PKG_CHECK_MODULES "${APPCORE_PKG_CHECK_MODULES} x11 eina ecore-x") +ELSEIF (with_wayland) + SET(APPCORE_PKG_CHECK_MODULES "${APPCORE_PKG_CHECK_MODULES} ecore-wayland") ENDIF (with_x11) + pkg_check_modules(pkg_common REQUIRED ${APPCORE_PKG_CHECK_MODULES}) FOREACH(flag ${pkg_common_CFLAGS}) diff --git a/packaging/app-core.spec b/packaging/app-core.spec index 2428648..5746efb 100644 --- a/packaging/app-core.spec +++ b/packaging/app-core.spec @@ -11,6 +11,9 @@ Source0: app-core-%{version}.tar.gz %if %{with x} BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(ecore-x) +BuildRequires: pkgconfig(eina) +%else if %{with wayland} +BuildRequires: pkgconfig(ecore-wayland) %endif Source1001: app-core.manifest BuildRequires: pkgconfig(dbus-1) diff --git a/src/appcore-X.c b/src/appcore-X.c index c0a7e66..cec8eb4 100755 --- a/src/appcore-X.c +++ b/src/appcore-X.c @@ -26,6 +26,7 @@ #include #include +#include #include #include @@ -103,6 +104,58 @@ static int __find_win(Display *d, Window *win, pid_t pid) return 0; } +static void __add_win_list(Eina_List **list, Window *win) +{ + Window w; + Eina_List *l; + + if (!list || !win) + return; + + EINA_LIST_FOREACH(*list, l, w) { + if (w == *win) + return; + } + + *list = eina_list_append(*list, *win); +} + +static void __foreach_win(Eina_List **list, Display *d, Window *win, pid_t pid) +{ + int i; + int r; + pid_t p; + unsigned int n; + Window root, parent, *child; + + p = __get_win_pid(d, *win); + if (p == pid) + __add_win_list(list, win); + + r = XQueryTree(d, *win, &root, &parent, &child, &n); + if (r) { + for (i = 0; i < n; i++) { + __foreach_win(list, d, &child[i], pid); + } + XFree(child); + } +} + +static int __iconify_win(Eina_List *list, Display *d) +{ + Window w; + Eina_List *l; + + if (!list || !d) + return -1; + + EINA_LIST_FOREACH(list, l, w) { + XIconifyWindow(d, w, 0); + } + + return 0; +} + static int __raise_win(Display *d, Window win) { XEvent xev; -- cgit v1.2.3