diff --git a/src/guiengine/skin.cpp b/src/guiengine/skin.cpp index 9b6627595..8516a91f4 100644 --- a/src/guiengine/skin.cpp +++ b/src/guiengine/skin.cpp @@ -722,11 +722,13 @@ void Skin::drawRibbonChild(const core::rect< s32 > &rect, Widget* widget, const /* tab-bar ribbons */ if (type == RIBBON_TABS) { + const bool mouseIn = rect.isPointInside(irr_driver->getDevice()->getCursorControl()->getPosition()); + BoxRenderParams* params; if (mark_selected && (focused || parent_focused)) params = &SkinConfig::m_render_params["tab::focused"]; - else if (parentRibbon->m_mouse_focus == widget) + else if (parentRibbon->m_mouse_focus == widget && mouseIn) params = &SkinConfig::m_render_params["tab::focused"]; else if (mark_selected) params = &SkinConfig::m_render_params["tab::down"]; diff --git a/src/guiengine/widgets/ribbon_widget.cpp b/src/guiengine/widgets/ribbon_widget.cpp index f6b2d1baa..9594efe12 100644 --- a/src/guiengine/widgets/ribbon_widget.cpp +++ b/src/guiengine/widgets/ribbon_widget.cpp @@ -435,6 +435,7 @@ EventPropagation RibbonWidget::leftPressed(const int playerID) } } // ----------------------------------------------------------------------------- + EventPropagation RibbonWidget::focused(const int playerID) { Widget::focused(playerID); @@ -456,6 +457,13 @@ EventPropagation RibbonWidget::focused(const int playerID) return EVENT_LET; } + +// ----------------------------------------------------------------------------- + +void RibbonWidget::unfocused(const int playerID) +{ +} + // ----------------------------------------------------------------------------- EventPropagation RibbonWidget::mouseHovered(Widget* child, const int mousePlayerID) { diff --git a/src/guiengine/widgets/ribbon_widget.hpp b/src/guiengine/widgets/ribbon_widget.hpp index 616fab97f..0f7654c4b 100644 --- a/src/guiengine/widgets/ribbon_widget.hpp +++ b/src/guiengine/widgets/ribbon_widget.hpp @@ -74,6 +74,7 @@ namespace GUIEngine virtual EventPropagation mouseHovered(Widget* child, const int playerID); virtual EventPropagation transmitEvent(Widget* w, std::string& originator, const int playerID=0); virtual EventPropagation focused(const int playerID); + virtual void unfocused(const int playerID); PtrVector m_labels;