App: remove last_active logic
[staging/windowmanager.git] / generate-binding-glue.py
index c6fda53..3fd0828 100644 (file)
@@ -49,6 +49,7 @@ def emit_func_impl(api, f):
 
 def emit_func(api, f):
     p('void %(impl_name)s(afb_req req) noexcept {' % f)
+    p('   std::lock_guard<std::mutex> guard(binding_m);')
     p('   if (g_afb_instance == nullptr) {',
       '      afb_req_fail(req, "failed", "Binding not initialized, did the compositor die?");',
       '      return;',
@@ -87,6 +88,7 @@ def emit_afb_api(api):
     p('struct binding_api {')
     p('   typedef wm::result<json_object *> result_type;')
     p('   struct wm::App *app;')
+    p('   void send_event(char const *evname, char const *label);')
     for f in api['functions']:
         p('   result_type %(name)s(' % f + ', '.join(map(lambda x: '%(type)s %(name)s' % x, f.get('args', []))) + ');')
     p('};', '')
@@ -112,12 +114,26 @@ API = {
                     { 'name': 'drawing_name', 'type': 'char const*', 'jtype': 'string' },
                 ],
             },
+            {
+                'name': 'deactivate_surface',
+                'args': [
+                    { 'name': 'drawing_name', 'type': 'char const*', 'jtype': 'string' },
+                ],
+            },
+            {
+                'name': 'enddraw',
+                'args': [
+                    { 'name': 'drawing_name', 'type': 'char const*', 'jtype': 'string' },
+                ],
+            },
             { 'name': 'list_drawing_names', },
             {
                 'name': 'demo_activate_surface',
                 'args': [ { 'name': 'surfaceid', 'type': 'uint32_t', 'jtype': 'int' } ]
             },
+
             { 'name': 'demo_activate_all' },
+
             { 'name': 'debug_status', },
             { 'name': 'debug_layers', },
             { 'name': 'debug_surfaces', },