@@ -737,14 +737,13 @@ EventPropagation DynamicRibbonWidget::rightPressed(const int playerID)
737737 if (w != NULL )
738738 {
739739 updateLabel ();
740-
741740 propagateSelection ();
742741
743742 const int listenerAmount = m_hover_listeners.size ();
744743 for (int n=0 ; n<listenerAmount; n++)
745744 {
746- m_hover_listeners[n].onSelectionChanged (this , getSelectedRibbon (playerID) ->getSelectionIDString (playerID),
747- getSelectedRibbon (playerID) ->getSelectionText (playerID), playerID);
745+ m_hover_listeners[n].onSelectionChanged (this , w ->getSelectionIDString (playerID),
746+ w ->getSelectionText (playerID), playerID);
748747 }
749748 }
750749 // Log::info("DynamicRibbonWidget", "Rightpressed %s", m_properties[PROP_ID].c_str());
@@ -755,30 +754,16 @@ EventPropagation DynamicRibbonWidget::rightPressed(const int playerID)
755754 // Log::info("DynamicRibbonWidget", "Rightpressed returning EVENT_LET");
756755
757756 return EVENT_LET;
758- }
757+ } // rightPressed
758+
759759// -----------------------------------------------------------------------------
760760EventPropagation DynamicRibbonWidget::leftPressed (const int playerID)
761761{
762- if (m_deactivated) return EVENT_LET;
763-
764- RibbonWidget* w = getSelectedRibbon (playerID);
765- if (w != NULL )
766- {
767- updateLabel ();
768- propagateSelection ();
762+ // Left and right key presses use exactly the same propagation rules
763+ // in dynamic ribbon widgets, we can avoid duplicating the code.
764+ return rightPressed (playerID);
765+ } // leftPressed
769766
770- for_var_in (DynamicRibbonHoverListener*, listener, m_hover_listeners)
771- {
772- listener->onSelectionChanged (this , w->getSelectionIDString (playerID),
773- w->getSelectionText (playerID), playerID);
774- }
775- }
776-
777- assert (m_rows.size () >= 1 );
778- if (m_rows[0 ].m_ribbon_type == RIBBON_TOOLBAR) return EVENT_BLOCK;
779-
780- return EVENT_LET;
781- }
782767// -----------------------------------------------------------------------------
783768EventPropagation DynamicRibbonWidget::transmitEvent (Widget* w,
784769 const std::string& originator,
@@ -964,10 +949,6 @@ void DynamicRibbonWidget::propagateSelection()
964949 {
965950 where = (float )relative_selection / (float )(selected_ribbon->m_children .size () - 1 );
966951 }
967- else
968- {
969- where = 0 .0f ;
970- }
971952
972953 if (where < 0 .0f ) where = 0 .0f ;
973954 else if (where > 1 .0f ) where = 1 .0f ;
0 commit comments