Use configured bind_address for HTTPFetch
[oweals/minetest.git] / src / guiTable.cpp
index c8930410a3b18ab74d03be2b4b87310b091db758..1543497ab3c5bcb7433b11c71e8b1af22ea151f9 100644 (file)
@@ -33,6 +33,9 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "util/string.h"
 #include "util/numeric.h"
 #include "guiFormSpecMenu.h" // for parseColor()
+#include "main.h"
+#include "settings.h" // for settings
+#include "porting.h" // for dpi
 
 /*
        GUITable
@@ -89,6 +92,14 @@ GUITable::GUITable(gui::IGUIEnvironment *env,
        setTabStop(true);
        setTabOrder(-1);
        updateAbsolutePosition();
+
+       core::rect<s32> relative_rect = m_scrollbar->getRelativePosition();
+       s32 width = (relative_rect.getWidth()/(2.0/3.0)) * porting::getDisplayDensity() *
+                       g_settings->getFloat("gui_scaling");
+       m_scrollbar->setRelativePosition(core::rect<s32>(
+                       relative_rect.LowerRightCorner.X-width,relative_rect.UpperLeftCorner.Y,
+                       relative_rect.LowerRightCorner.X,relative_rect.LowerRightCorner.Y
+                       ));
 }
 
 GUITable::~GUITable()
@@ -183,6 +194,16 @@ void GUITable::setTable(const TableOptions &options,
        // j is always a column index, 0-based
        // k is another index, for example an option index
 
+       // Handle a stupid error case... (issue #1187)
+       if (columns.empty()) {
+               TableColumn text_column;
+               text_column.type = "text";
+               TableColumns new_columns;
+               new_columns.push_back(text_column);
+               setTable(options, new_columns, content);
+               return;
+       }
+
        // Handle table options
        video::SColor default_color(255, 255, 255, 255);
        s32 opendepth = 0;
@@ -823,7 +844,7 @@ bool GUITable::OnEvent(const SEvent &event)
 
                if (event.MouseInput.Event == EMIE_MOUSE_WHEEL) {
                        m_scrollbar->setPos(m_scrollbar->getPos() +
-                                       (event.MouseInput.Wheel < 0 ? -1 : 1) *
+                                       (event.MouseInput.Wheel < 0 ? -3 : 3) *
                                        - (s32) m_rowheight / 2);
                        return true;
                }