From 8aeeacf178b234cefd046aa4ea8ec9c076d3f7b1 Mon Sep 17 00:00:00 2001
From: Drew DeVault <sir@cmpwn.com>
Date: Thu, 1 Dec 2016 22:09:33 -0500
Subject: Enforce keyboard permissions

---
 sway/handlers.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/sway/handlers.c b/sway/handlers.c
index 24784330..3b85679d 100644
--- a/sway/handlers.c
+++ b/sway/handlers.c
@@ -725,6 +725,15 @@ static bool handle_key(wlc_handle view, uint32_t time, const struct wlc_modifier
 	}
 
 	list_free(candidates);
+
+	swayc_t *focused = get_focused_container(&root_container);
+	if (focused->type == C_VIEW) {
+		pid_t pid = wlc_view_get_pid(focused->handle);
+		if (!(get_feature_policy(pid) & FEATURE_KEYBOARD)) {
+			sway_log(L_INFO, "Denying keypress to %d (%s)", pid, focused->name);
+			return EVENT_HANDLED;
+		}
+	}
 	return EVENT_PASSTHROUGH;
 }
 
-- 
cgit v1.2.3