X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fxwalk%2Fapplication%2Ftools%2Flinux%2Fxwalk_launcher_tizen.cc;h=27f8eff03d672c3848bd1cc742ff526d1682a308;hb=490a4587e7e356282cb1453efaf36de4acc9762f;hp=f7a83c030f406773b2cc34c270eaeea3b3b10ab8;hpb=3a51af92707b9c600d06a404c9db8f07fcd50959;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/xwalk/application/tools/linux/xwalk_launcher_tizen.cc b/src/xwalk/application/tools/linux/xwalk_launcher_tizen.cc index f7a83c0..27f8eff 100644 --- a/src/xwalk/application/tools/linux/xwalk_launcher_tizen.cc +++ b/src/xwalk/application/tools/linux/xwalk_launcher_tizen.cc @@ -3,6 +3,7 @@ // found in the LICENSE file. #include +#include #include #include #include @@ -60,15 +61,42 @@ static const char* event2str(enum app_event event) { static void application_event_cb(enum app_event event, void* data, bundle* b) { fprintf(stderr, "event '%s'\n", event2str(event)); + GDBusProxy* app_proxy = reinterpret_cast(data); - if (event == AE_TERMINATE) { - exit(0); + if (!app_proxy) { + fprintf(stderr, "Invalid DBus proxy."); + return; + } + + switch (event) { + case AE_UNKNOWN: + case AE_CREATE: + break; + case AE_TERMINATE: + exit(0); + break; + case AE_PAUSE: + g_dbus_proxy_call( + app_proxy, "Suspend", NULL, + G_DBUS_CALL_FLAGS_NONE, -1, NULL, NULL, NULL); + break; + case AE_RESUME: + g_dbus_proxy_call( + app_proxy, "Resume", NULL, + G_DBUS_CALL_FLAGS_NONE, -1, NULL, NULL, NULL); + break; + case AE_RESET: + case AE_LOWMEM_POST: + case AE_MEM_FLUSH: + case AE_MAX: + break; } } -int xwalk_appcore_init(int argc, char** argv, const char* name) { +int xwalk_appcore_init( + int argc, char** argv, const char* name, GDBusProxy* app_proxy) { appcore_ops.cb_app = application_event_cb; - appcore_ops.data = NULL; + appcore_ops.data = app_proxy; return appcore_init(name, &appcore_ops, argc, argv); }