return Request::Status::Invalid;
}
- if (b->GetString(AUL_K_APPID).empty())
+ auto appid = b->GetString(AUL_K_APPID);
+ if (appid.empty())
return Request::Status::Normal;
- if (req->CanBeImplicitLaunch())
- _app_control_resolve(req->GetTargetUID(), b->GetHandle());
-
- if (_app_property_set_real_appid(req->GetTargetUID(),
- b->GetHandle()) == 0 && req->GetCmd() == APP_RESUME)
- b->Delete(AUL_K_INSTANCE_ID);
-
- _app_property_set_real_widget_id(req->GetTargetUID(), b->GetHandle());
- _appinfo_set_effective_appid(req->GetTargetUID(), b->GetHandle());
-
- auto appid = b->GetString(AUL_K_APPID);
auto pending_item = GetPendingItem(req, appid);
if (pending_item == nullptr)
return Request::Status::Normal;
return;
}
+void RequestManager::CheckRequest(const RequestPtr& req) {
+ auto& b = req->GetBundle();
+ if (b == nullptr) return;
+
+ if (b->GetString(AUL_K_APPID).empty()) return;
+
+ if (req->CanBeImplicitLaunch())
+ _app_control_resolve(req->GetTargetUID(), b->GetHandle());
+
+ if (_app_property_set_real_appid(req->GetTargetUID(),
+ b->GetHandle()) == 0 && req->GetCmd() == APP_RESUME)
+ b->Delete(AUL_K_INSTANCE_ID);
+
+ _app_property_set_real_widget_id(req->GetTargetUID(), b->GetHandle());
+ _appinfo_set_effective_appid(req->GetTargetUID(), b->GetHandle());
+}
+
gboolean RequestManager::RequestHandler(GIOChannel* io,
GIOCondition cond, gpointer data) {
int fd = g_io_channel_unix_get_fd(io);
return G_SOURCE_CONTINUE;
}
+ GetInst().CheckRequest(req);
if (req->GetUID() >= REGULAR_UID_MIN || req->IsIndirectRequest()) {
if (req->GetUID() >= REGULAR_UID_MIN &&
req->GetUID() != req->GetTargetUID()) {