From 93f7813d1a2472f660f759f94009b767757051c6 Mon Sep 17 00:00:00 2001 From: Qingping Hou Date: Fri, 14 Dec 2012 05:52:56 +0800 Subject: [PATCH] do deep copy on InputContainer widget _init --- frontend/ui/widget.lua | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/frontend/ui/widget.lua b/frontend/ui/widget.lua index 6abd6f2c4..0a1796a60 100644 --- a/frontend/ui/widget.lua +++ b/frontend/ui/widget.lua @@ -590,8 +590,22 @@ and store that table as configuration setting InputContainer = WidgetContainer:new{} function InputContainer:_init() - self.key_events = {} - self.ges_events = {} + -- we need to do deep copy here + local new_key_events = {} + if self.key_events then + for k,v in pairs(self.key_events) do + new_key_events[k] = v + end + end + self.key_events = new_key_events + + local new_ges_events = {} + if self.ges_events then + for k,v in pairs(self.ges_events) do + new_ges_events[k] = v + end + end + self.ges_events = new_ges_events end function InputContainer:paintTo(bb, x, y)