/*
* Copyright (c) 2017 TOYOTA MOTOR CORPORATION
+ * Copyright (c) 2018 Konsulko Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#include "window_manager.hpp"
#include "json_helper.hpp"
+#include "util.hpp"
#include "applist.hpp"
extern "C"
id_alloc{},
pending_events(false)
{
- char const *path_layers_json = getenv("AFM_APP_INSTALL_DIR");
- std::string path;
- if (!path_layers_json)
- {
- HMI_ERROR("wm", "AFM_APP_INSTALL_DIR is not defined");
- path = std::string(path_layers_json);
- }
- else
- {
- path = std::string(path_layers_json) + std::string("/etc/layers.json");
- }
+ std::string path(get_file_path("layers.json"));
try
{
this->controller->chooks = &this->chooks;
// This protocol needs the output, so lets just add our mapping here...
- this->controller->add_proxy_to_id_mapping(
- this->outputs.front()->proxy.get(),
- wl_proxy_get_id(reinterpret_cast<struct wl_proxy *>(
- this->outputs.front()->proxy.get())));
-
- // Create screen
- this->controller->create_screen(this->outputs.front()->proxy.get());
+ if(!this->outputs.empty()) {
+ // FIXME : Work around to avoid signal 11. Window Manager can't handle hotplug.
+ this->controller->add_proxy_to_id_mapping(
+ this->outputs.front()->proxy.get(),
+ wl_proxy_get_id(reinterpret_cast<struct wl_proxy *>(
+ this->outputs.front()->proxy.get())));
+
+ // Create screen
+ this->controller->create_screen(this->outputs.front()->proxy.get());
+ }
+ else {
+ HMI_WARNING("wm", "No output object. Window Manager can't handle screen");
+ }
// Set display to controller
this->controller->display = this->display;
{
bool found;
auto const &surface_id = this->lookup_id(act.role.c_str());
+ if(surface_id == nullopt)
+ {
+ goto proc_remove_request;
+ }
std::string appid = g_app_list.getAppID(*surface_id, act.role, &found);
if (!found)
{
int WindowManager::loadOldRoleDb()
{
- // Get afm application installed dir
- char const *afm_app_install_dir = getenv("AFM_APP_INSTALL_DIR");
- HMI_DEBUG("wm", "afm_app_install_dir:%s", afm_app_install_dir);
-
- std::string file_name;
- if (!afm_app_install_dir)
- {
- HMI_ERROR("wm", "AFM_APP_INSTALL_DIR is not defined");
- }
- else
- {
- file_name = std::string(afm_app_install_dir) + std::string("/etc/old_roles.db");
- }
+ std::string file_name(get_file_path("old_roles.db"));
// Load old_role.db
json_object* json_obj;