free(cb_item);
}
-static int _send_async_noti(GVariant *body, struct result_cb_item *cb_item, char *cmd)
+static int _send_async_shortcut(GVariant *body, struct result_cb_item *cb_item, char *cmd)
{
GDBusMessage *msg;
msg = g_dbus_message_new_method_call(
g_object_unref(msg);
- DbgPrint("_send_async_noti done !!");
+ DbgPrint("_send_async_shortcut done !!");
return SHORTCUT_ERROR_NONE;
}
DbgPrint("name vanished : %s", name);
}
+static int _check_privilege(void)
+{
+ GDBusMessage *reply = NULL;
+ int ret = SHORTCUT_ERROR_NONE;
+
+ ret = _send_sync_shortcut(NULL, &reply, "check_privilege");
+
+ if (reply)
+ g_object_unref(reply);
+
+ return ret;
+}
+
EAPI int shortcut_set_request_cb(shortcut_request_cb request_cb, void *data)
{
int ret = _dbus_init();
return ret;
}
+ ret = _check_privilege();
+ if (ret != SHORTCUT_ERROR_NONE)
+ return ret;
+
appid = _shortcut_get_pkgname_by_pid();
item = malloc(sizeof(struct result_cb_item));
if (!item) {
icon = "";
body = g_variant_new("(ississi)", getpid(), appid, name, type, uri, icon, allow_duplicate);
- ret = _send_async_noti(body, item, "add_shortcut");
+
+ ret = _send_async_shortcut(body, item, "add_shortcut");
if (ret != SHORTCUT_ERROR_NONE) {
free(item);
item = NULL;
return ret;
}
+ ret = _check_privilege();
+ if (ret != SHORTCUT_ERROR_NONE)
+ return ret;
+
appid = _shortcut_get_pkgname_by_pid();
item = malloc(sizeof(struct result_cb_item));
if (!item) {
item->data = data;
body = g_variant_new("(ississdi)", getpid(), widget_id, name, size, NULL, icon, period, allow_duplicate);
- ret = _send_async_noti(body, item, "add_shortcut_widget");
+ ret = _send_async_shortcut(body, item, "add_shortcut_widget");
if (ret != SHORTCUT_ERROR_NONE) {
free(item);