From 8b14a91ed98214618c8bca6546718ea02a86d8b3 Mon Sep 17 00:00:00 2001 From: Eduardo Bart Date: Wed, 16 Jan 2013 17:57:05 -0200 Subject: [PATCH] Fix save of MiniWindow positions, issue #163 --- modules/corelib/math.lua | 29 +++++++++++++++++++++++++++-- modules/corelib/ui/uiminiwindow.lua | 9 +++++---- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/modules/corelib/math.lua b/modules/corelib/math.lua index e4649bed..79c6670d 100644 --- a/modules/corelib/math.lua +++ b/modules/corelib/math.lua @@ -1,10 +1,35 @@ -- @docclass math +local U8 = 2^8 +local U16 = 2^16 +local U32 = 2^32 +local U64 = 2^64 + function math.round(num, idp) local mult = 10^(idp or 0) if num >= 0 then - return math.floor(num * mult + 0.5) / mult + return math.floor(num * mult + 0.5) / mult else - return math.ceil(num * mult - 0.5) / mult + return math.ceil(num * mult - 0.5) / mult end end + +function math.isu8(num) + return math.isinteger(num) and num >= 0 and num < U8 +end + +function math.isu16(num) + return math.isinteger(num) and num >= U8 and num < U16 +end + +function math.isu32(num) + return math.isinteger(num) and num >= U16 and num < U32 +end + +function math.isu64(num) + return math.isinteger(num) and num >= U32 and num < U64 +end + +function math.isinteger(num) + return ((type(num) == 'number') and (num == math.floor(num))) +end diff --git a/modules/corelib/ui/uiminiwindow.lua b/modules/corelib/ui/uiminiwindow.lua index 496020eb..fc9310b3 100644 --- a/modules/corelib/ui/uiminiwindow.lua +++ b/modules/corelib/ui/uiminiwindow.lua @@ -104,9 +104,8 @@ function UIMiniWindow:setup() self.miniIndex = selfSettings.index parent:scheduleInsert(self, selfSettings.index) elseif selfSettings.position then + self:setParent(parent, true) self:setPosition(topoint(selfSettings.position)) - self:setParent(parent) - addEvent(function() self:bindRectToParent() end) end end end @@ -334,9 +333,11 @@ function UIMiniWindow:fitOnParent() end end -function UIMiniWindow:setParent(parent) +function UIMiniWindow:setParent(parent, dontsave) UIWidget.setParent(self, parent) - self:saveParent(parent) + if not dontsave then + self:saveParent(parent) + end self:fitOnParent() end