From 8f9055f48b288ca8f2c9b8441cce38f4b8881b17 Mon Sep 17 00:00:00 2001 From: Henrique Santiago Date: Sun, 10 Feb 2013 03:24:51 -0200 Subject: [PATCH] Fixed mouse bug, allow locales list --- modules/client_locales/locales.lua | 13 ++++++++++++- modules/client_locales/locales.otui | 2 -- modules/corelib/mouse.lua | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/modules/client_locales/locales.lua b/modules/client_locales/locales.lua index ff64d38b..aa620c2c 100644 --- a/modules/client_locales/locales.lua +++ b/modules/client_locales/locales.lua @@ -17,14 +17,22 @@ end function createWindow() localesWindow = g_ui.displayUI('locales') local localesPanel = localesWindow:getChildById('localesPanel') + local layout = localesPanel:getLayout() + local spacing = layout:getCellSpacing() + local size = layout:getCellSize() + local count = 0 for name,locale in pairs(installedLocales) do local widget = g_ui.createWidget('LocalesButton', localesPanel) widget:setImageSource('/images/flags/' .. name .. '') widget:setText(locale.languageName) widget.onClick = function() selectFirstLocale(name) end + count = count + 1 end + count = math.max(1, math.min(count, 3)) + localesPanel:setWidth(size.width*count + spacing*(count-1)) + addEvent(function() addEvent(function() localesWindow:raise() localesWindow:focus() end) end) end @@ -61,7 +69,7 @@ function init() pdebug('Using configured locale: ' .. userLocaleName) else setLocale(defaultLocaleName) - connect(g_app, {onRun = createWindow}) + connect(g_app, { onRun = createWindow }) end ProtocolGame.registerExtendedOpcode(ExtendedIds.Locale, onExtendedLocales) @@ -73,6 +81,7 @@ function terminate() currentLocale = nil ProtocolGame.unregisterExtendedOpcode(ExtendedIds.Locale) + disconnect(g_app, { onRun = createWindow }) disconnect(g_game, { onGameStart = onGameStart }) end @@ -101,6 +110,8 @@ function installLocale(locale) error('Unable to install locale.') end + if _G.allowedLocales and not _G.allowedLocales[locale.name] then return end + if locale.name ~= defaultLocaleName then local updatesNeeded = 0 for _i,k in pairs(neededTranslations) do diff --git a/modules/client_locales/locales.otui b/modules/client_locales/locales.otui index b1182d4d..6b5c33e5 100644 --- a/modules/client_locales/locales.otui +++ b/modules/client_locales/locales.otui @@ -24,8 +24,6 @@ UIWindow Panel id: localesPanel - !width: 96*3 + 32*3 - margin-left: 16 margin-top: 50 anchors.horizontalCenter: parent.horizontalCenter anchors.top: prev.bottom diff --git a/modules/corelib/mouse.lua b/modules/corelib/mouse.lua index 03e2603f..3aa33f55 100644 --- a/modules/corelib/mouse.lua +++ b/modules/corelib/mouse.lua @@ -20,8 +20,8 @@ function g_mouse.bindPressMove(widget, callback) connect(widget, { onMouseMove = function(widget, mousePos, mouseMoved) if widget:isPressed() then callback(mousePos, mouseMoved) + return true end - return true end }) end