diff --git a/doc/lua_api.txt b/doc/lua_api.txt index b809e18c3..5a991c278 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -2092,11 +2092,15 @@ Elements * Show an inventory image of registered item/node -### `bgcolor[;]` +### `bgcolor[]` * Sets background color of formspec as `ColorString` -* If `true`, the background color is drawn fullscreen (does not affect the size - of the formspec). + +### `bgcolor[;]` + +* If `color` is a valid `ColorString`, the fullscreen background color + is set to `color`. +* If `fullscreen` is a true value, the fullscreen background color is drawn. ### `background[,;,;]` diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp index 53b8ae848..e8a7f546e 100644 --- a/src/gui/guiFormSpecMenu.cpp +++ b/src/gui/guiFormSpecMenu.cpp @@ -1881,17 +1881,17 @@ void GUIFormSpecMenu::parseBox(parserData* data, const std::string &element) errorstream<< "Invalid Box element(" << parts.size() << "): '" << element << "'" << std::endl; } -void GUIFormSpecMenu::parseBackgroundColor(parserData* data, const std::string &element) +void GUIFormSpecMenu::parseBackgroundColor(parserData *data, const std::string &element) { std::vector parts = split(element,';'); if (((parts.size() == 1) || (parts.size() == 2)) || ((parts.size() > 2) && (m_formspec_version > FORMSPEC_API_VERSION))) { - parseColorString(parts[0], m_bgcolor, false); - - if (parts.size() == 2) { - std::string fullscreen = parts[1]; - m_bgfullscreen = is_yes(fullscreen); + if (parts.size() == 1) { + parseColorString(parts[0], m_bgcolor, false); + } else if (parts.size() == 2) { + parseColorString(parts[0], m_fullscreen_bgcolor, false); + m_bgfullscreen = is_yes(parts[1]); } return; @@ -2921,8 +2921,7 @@ void GUIFormSpecMenu::drawMenu() if (m_bgfullscreen) driver->draw2DRectangle(m_fullscreen_bgcolor, allbg, &allbg); - else - driver->draw2DRectangle(m_bgcolor, AbsoluteRect, &AbsoluteClippingRect); + driver->draw2DRectangle(m_bgcolor, AbsoluteRect, &AbsoluteClippingRect); m_tooltip_element->setVisible(false);