app: surfaces on layer != 1000 leave a 100pixel top and bottom margin
[staging/windowmanager.git] / src / app.cpp
index 255a64a..58a62ee 100644 (file)
@@ -18,6 +18,8 @@
 
 #include <fstream>
 #include <json.hpp>
+#include <bits/signum.h>
+#include <csignal>
 
 namespace wm {
 
@@ -229,11 +231,22 @@ void App::surface_created(uint32_t surface_id) {
          "fullscreen surface",
          [layer_id, surface_id](struct genivi::controller *c) {
             auto &s = c->surfaces[surface_id];
-            s->set_destination_rectangle(0, 0, c->output_size.w,
-                                         c->output_size.h);
+            // s->set_destination_rectangle(0, 0, c->output_size.w, c->output_size.h);
+            // s->set_source_rectangle(0, 100, c->output_size.w, c->output_size.h - 200);
+            if (layer_id != 1000) {
+               // s->set_source_rectangle(0, 0, c->output_size.w, c->output_size.h - 200);
+               s->set_configuration(c->output_size.w, c->output_size.h - 200);
+               s->set_destination_rectangle(0, 100, c->output_size.w,
+                                            c->output_size.h - 200);
+            } else {
+               // s->set_source_rectangle(0, 0, c->output_size.w, c->output_size.h);
+               s->set_configuration(c->output_size.w, c->output_size.h);
+               s->set_destination_rectangle(0, 0, c->output_size.w,
+                                            c->output_size.h);
+            }
             s->set_visibility(1);
             c->layers[layer_id]->add_surface(s.get());
-            logdebug("Surface %u now fullscreen on layer %u", surface_id,
+            logdebug("Surface %u now on layer %u", surface_id,
                      layer_id);
          });
    }
@@ -282,6 +295,12 @@ binding_api::result_type binding_api::debug_status() {
    return Ok(jr);
 }
 
+binding_api::result_type binding_api::debug_terminate() {
+   logdebug("%s", __func__);
+   raise(SIGKILL);  // XXX afb-daemon kills it's pgroup using TERM, which doesn't play well with perf
+   return Ok(json_object_new_object());
+}
+
 //                  _             _ _            _                 _
 //   ___ ___  _ __ | |_ _ __ ___ | | | ___ _ __ | |__   ___   ___ | | _____
 //  / __/ _ \| '_ \| __| '__/ _ \| | |/ _ \ '__|| '_ \ / _ \ / _ \| |/ / __|