   onSelectSegment : (ev) ->
     if @props.state == 'results'
       segment = $(ev.currentTarget).data('segment')
-      # if clicking on already selected segment, then we'll deselect
-      @props.onSelectSegment if @props.selected_segment_in_histogram == segment then null else segment
+
+
+      # If clicking on already hard-selected segment, then we'll deselect. 
+      segment = if @props.selected_segment_in_histogram[0] == segment && @props.selected_segment_in_histogram[1] then null else segment
+      click_select = ev.type == 'click' 
+
+      #ignore mouseEnter and mouseLeave events if selection was via click
+      return if @props.selected_segment_in_histogram && @props.selected_segment_in_histogram[1] && !click_select 
+
+      @props.onSelectSegment(segment, click_select && segment)
 
   render : ->
     [num_columns, segments, avatar_size] = @buildHistogram() #todo: memoize

    route = if @props.state == 'results' then Routes.new_opinion_proposal_path(@props.data.proposal.long_id) else Routes.proposal_path(@props.data.proposal.long_id)
    app_router.navigate route, {trigger : true}
  
  onSelectSegment : ( segment ) ->
    @setState
      selected_segment_in_histogram : segment

  ##
  # Make this thing!

    R.table className: 'histogram', style: { width: effective_histogram_width, marginLeft: margin_adjustment }, 
      R.tr null, 
        for bars, segment in segments.reverse()
          R.td className:"histogram_segment", key:segment, onClick: @onSelectSegment, onMouseLeave: @onSelectSegment, onMouseEnter: @onSelectSegment, 'data-segment':segment, style : { opacity: if !@props.selected_segment_in_histogram[0]? || @props.selected_segment_in_histogram[0] == segment then '1' else '.2' },
            R.table null,
              R.tr null,
                for bar in bars
