Fix build break 76/40676/3
authorSangyoon Jang <s89.jang@samsung.com>
Mon, 8 Jun 2015 06:02:34 +0000 (15:02 +0900)
committerSangyoon Jang <s89.jang@samsung.com>
Mon, 8 Jun 2015 08:10:23 +0000 (17:10 +0900)
add missing dependency
add missing static functions

Change-Id: I8aff2ff02902dc138d2f08588e42be0222d4fd20
Signed-off-by: Sangyoon Jang <s89.jang@samsung.com>
CMakeLists.txt
packaging/app-core.spec
src/appcore-X.c

index fa4255e..c3c334a 100644 (file)
@@ -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})
index 2428648..5746efb 100644 (file)
@@ -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)
index c0a7e66..cec8eb4 100755 (executable)
@@ -26,6 +26,7 @@
 #include <errno.h>
 #include <signal.h>
 
+#include <Eina.h>
 #include <X11/Xlib.h>
 #include <X11/Xatom.h>
 
@@ -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;