From dee22104b7a9220e365f5d3aa95e2fd20cebfcf5 Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Sun, 6 Oct 2019 14:50:45 +0200 Subject: [PATCH] Revert "Fix the bgcolor formspec element (#8716)" (#9018) This reverts commit 1db3d252cff9e8d61fecf1052d7497813851da51. Temporary solution until a compatible solution is found to define both - formspec and fullscreen backgrounds. --- doc/lua_api.txt | 10 +++------- src/gui/guiFormSpecMenu.cpp | 15 ++++++++------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index bbd11c867..907f47e73 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -2092,15 +2092,11 @@ Elements * Show an inventory image of registered item/node -### `bgcolor[]` - -* Sets background color of formspec as `ColorString` - ### `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. +* Sets background color of formspec as `ColorString` +* If `true`, a fullscreen background is drawn and the color is ignored + (does not affect the size of the formspec) ### `background[,;,;]` diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp index 9dacf37d7..aee7da869 100644 --- a/src/gui/guiFormSpecMenu.cpp +++ b/src/gui/guiFormSpecMenu.cpp @@ -1885,17 +1885,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))) { - 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]); + parseColorString(parts[0], m_bgcolor, false); + + if (parts.size() == 2) { + std::string fullscreen = parts[1]; + m_bgfullscreen = is_yes(fullscreen); } return; @@ -2925,7 +2925,8 @@ void GUIFormSpecMenu::drawMenu() if (m_bgfullscreen) driver->draw2DRectangle(m_fullscreen_bgcolor, allbg, &allbg); - driver->draw2DRectangle(m_bgcolor, AbsoluteRect, &AbsoluteClippingRect); + else + driver->draw2DRectangle(m_bgcolor, AbsoluteRect, &AbsoluteClippingRect); m_tooltip_element->setVisible(false);