diff options
author | Marcus Fritzsch <marcus_fritzsch@mentor.com> | 2017-08-29 14:55:35 +0200 |
---|---|---|
committer | Marcus Fritzsch <marcus_fritzsch@mentor.com> | 2017-09-04 16:53:59 +0200 |
commit | 38da977e18f4b9e9a295119b8bac194a8a87a498 (patch) | |
tree | 3da50543ce6bd03d40cb7427f3ab55cf3e358ad7 /src/app.cpp | |
parent | 7a5d735041a1390fffda46ef451d70859137a808 (diff) |
app/main: add send_event() to binding_api
* Preliminary event support - wrong names, likely wrong implementation
Signed-off-by: Marcus Fritzsch <marcus_fritzsch@mentor.com>
Diffstat (limited to 'src/app.cpp')
-rw-r--r-- | src/app.cpp | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/app.cpp b/src/app.cpp index 76668cc..53a1a86 100644 --- a/src/app.cpp +++ b/src/app.cpp @@ -352,7 +352,6 @@ char const *App::activate_surface(uint32_t surface_id) { /// // XXX: I am not sure I even need 5 elements... /// this->last_active.resize(std::min(int(this->last_active.size()), 5)); - // no error return nullptr; } @@ -441,6 +440,22 @@ void App::surface_removed(uint32_t surface_id) { }); } +void App::emit_activated(char const *label) { + this->api.send_event("activated", json_object_new_string(label)); +} + +void App::emit_deactivated(char const *label) { + this->api.send_event("deactivated", json_object_new_string(label)); +} + +void App::emit_syncdraw(char const *label) { + this->api.send_event("syncdraw", json_object_new_string(label)); +} + +void App::emit_visible(char const *label, bool is_visible) { + this->api.send_event(is_visible ? "visible" : "invisible", json_object_new_string(label)); +} + result<int> App::request_surface(char const *drawing_name) { auto lid = this->layers.get_layer_id(std::string(drawing_name)); if (!lid) { @@ -475,7 +490,11 @@ char const *App::activate_surface(char const *drawing_name) { if (osid) { logdebug("ativate surface with name %s and id %u", drawing_name, osid.value()); - return this->activate_surface(osid.value()); + auto ret = this->activate_surface(osid.value()); + if (!ret) { + this->emit_activated(drawing_name); + } + return ret; } logerror("surface %s unknown", drawing_name); |