From fb5112b1330fa82523e360209bf83c5417da9ffc Mon Sep 17 00:00:00 2001
From: crater2150 <crater@qwertyuiop.de>
Date: Thu, 19 Feb 2015 11:12:12 +0100
Subject: [PATCH] modalbind: add onClose hook

---
 modalbind.lua | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/modalbind.lua b/modalbind.lua
index a4d409f..6696121 100644
--- a/modalbind.lua
+++ b/modalbind.lua
@@ -176,9 +176,11 @@ local function show_box(s, map, name)
 	local label = "<b>" .. name .. "</b>"
 	if settings.show_options then
 		for key, mapping in pairs(map) do
-			label = label .. "\n<b>" .. key .. "</b>"
-			if type(mapping) == "table" then
-				label = label .. "\t" .. (mapping.desc or "???")
+			if key ~= "onClose" then
+				label = label .. "\n<b>" .. key .. "</b>"
+				if type(mapping) == "table" then
+					label = label .. "\t" .. (mapping.desc or "???")
+				end
 			end
 		end
 	end
@@ -200,6 +202,9 @@ function grab(keymap, name, stay_in_mode)
 
 	keygrabber.run(function(mod, key, event)
 		if key == "Escape" then
+			if keymap["onClose"] then
+				keymap["onClose"]()
+			end
 			keygrabber.stop()
 			nesting = 0
 			hide_box();