From: <au...@us...> - 2011-03-20 20:12:45
|
Revision: 8004 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=8004&view=rev Author: auria Date: 2011-03-20 20:12:39 +0000 (Sun, 20 Mar 2011) Log Message: ----------- Improved hovering over tabs (no more messed up focus when mouse leaves) Modified Paths: -------------- main/trunk/src/guiengine/skin.cpp main/trunk/src/guiengine/widgets/ribbon_widget.cpp main/trunk/src/guiengine/widgets/ribbon_widget.hpp Modified: main/trunk/src/guiengine/skin.cpp =================================================================== --- main/trunk/src/guiengine/skin.cpp 2011-03-20 20:03:29 UTC (rev 8003) +++ main/trunk/src/guiengine/skin.cpp 2011-03-20 20:12:39 UTC (rev 8004) @@ -722,11 +722,13 @@ /* 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"]; Modified: main/trunk/src/guiengine/widgets/ribbon_widget.cpp =================================================================== --- main/trunk/src/guiengine/widgets/ribbon_widget.cpp 2011-03-20 20:03:29 UTC (rev 8003) +++ main/trunk/src/guiengine/widgets/ribbon_widget.cpp 2011-03-20 20:12:39 UTC (rev 8004) @@ -435,6 +435,7 @@ } } // ----------------------------------------------------------------------------- + EventPropagation RibbonWidget::focused(const int playerID) { Widget::focused(playerID); @@ -456,7 +457,14 @@ return EVENT_LET; } + // ----------------------------------------------------------------------------- + +void RibbonWidget::unfocused(const int playerID) +{ +} + +// ----------------------------------------------------------------------------- EventPropagation RibbonWidget::mouseHovered(Widget* child, const int mousePlayerID) { if (m_deactivated) return EVENT_LET; Modified: main/trunk/src/guiengine/widgets/ribbon_widget.hpp =================================================================== --- main/trunk/src/guiengine/widgets/ribbon_widget.hpp 2011-03-20 20:03:29 UTC (rev 8003) +++ main/trunk/src/guiengine/widgets/ribbon_widget.hpp 2011-03-20 20:12:39 UTC (rev 8004) @@ -74,6 +74,7 @@ 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<irr::gui::IGUIStaticText, REF> m_labels; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |