diff --git a/src/Menus.cpp b/src/Menus.cpp index 73f49054f..1d238f001 100644 --- a/src/Menus.cpp +++ b/src/Menus.cpp @@ -6544,7 +6544,7 @@ void AudacityProject::OnZoomToggle(const CommandContext &) double Zoom1 = GetZoomOfPref( wxT("/GUI/ZoomPreset1"), WaveTrack::kZoomDefault ); double Zoom2 = GetZoomOfPref( - wxT("/GUI/ZoomPreset2"), WaveTrack::kZoomMinutes ); + wxT("/GUI/ZoomPreset2"), WaveTrack::kZoom4To1 ); double Z = mViewInfo.GetZoom();// Current Zoom. double ChosenZoom = abs(log(Zoom1 / Z)) > abs(log( Z / Zoom2)) ? Zoom1:Zoom2; diff --git a/src/prefs/TracksPrefs.cpp b/src/prefs/TracksPrefs.cpp index a813f21e4..c7fa1a81d 100644 --- a/src/prefs/TracksPrefs.cpp +++ b/src/prefs/TracksPrefs.cpp @@ -163,7 +163,7 @@ void TracksPrefs::PopulateOrExchange(ShuttleGui & S) } S.EndStatic(); - S.StartStatic(_("Zoom-Toggle")); + S.StartStatic(_("Zoom Toggle")); { S.StartMultiColumn(4); { @@ -176,7 +176,7 @@ void TracksPrefs::PopulateOrExchange(ShuttleGui & S) S.TieChoice(_("Preset 2:"), wxT("/GUI/ZoomPreset2"), - WaveTrack::kZoomMinutes, + WaveTrack::kZoom4To1, mZoomChoices, mZoomCodes); S.SetSizeHints(mZoomChoices); diff --git a/src/toolbars/EditToolBar.cpp b/src/toolbars/EditToolBar.cpp index ca5d24585..ce30edf45 100644 --- a/src/toolbars/EditToolBar.cpp +++ b/src/toolbars/EditToolBar.cpp @@ -128,6 +128,7 @@ void EditToolBar::Populate() MakeButtonBackgroundsSmall(); /* Buttons */ + // Tooltips slightly more verbose than the menu entries are. AddButton(bmpCut, bmpCut, bmpCutDisabled, ETBCutID, _("Cut selection")); AddButton(bmpCopy, bmpCopy, bmpCopyDisabled, ETBCopyID, @@ -155,14 +156,16 @@ void EditToolBar::Populate() AddSeparator(); #endif + // Tooltips match menu entries. + // We previously had longer tooltips which were not more clear. AddButton(bmpZoomIn, bmpZoomIn, bmpZoomInDisabled, ETBZoomInID, _("Zoom In")); AddButton(bmpZoomOut, bmpZoomOut, bmpZoomOutDisabled, ETBZoomOutID, _("Zoom Out")); AddButton(bmpZoomSel, bmpZoomSel, bmpZoomSelDisabled, ETBZoomSelID, - _("Fit selection in window")); + _("Zoom to Selection")); AddButton(bmpZoomFit, bmpZoomFit, bmpZoomFitDisabled, ETBZoomFitID, - _("Fit project in window")); + _("Fit to Width")); #ifdef EXPERIMENTAL_ZOOM_TOGGLE_BUTTON AddButton(bmpZoomToggle, bmpZoomToggle, bmpZoomToggleDisabled, ETBZoomToggleID, diff --git a/src/tracks/ui/CommonTrackPanelCell.cpp b/src/tracks/ui/CommonTrackPanelCell.cpp index ecdf26856..5ccce5214 100644 --- a/src/tracks/ui/CommonTrackPanelCell.cpp +++ b/src/tracks/ui/CommonTrackPanelCell.cpp @@ -74,22 +74,28 @@ unsigned CommonTrackPanelCell::HandleWheelRotation // Time corresponding to mouse position wxCoord xx; double center_h; - if (scrubber.IsScrollScrubbing()) { - // Expand or contract about the center, ignoring mouse position + double mouse_h = viewInfo.PositionToTime(event.m_x, trackLeftEdge); + + // Scrubbing? Expand or contract about the center, ignoring mouse position + if (scrubber.IsScrollScrubbing()) center_h = viewInfo.h + (pProject->GetScreenEndTime() - viewInfo.h) / 2.0; - xx = viewInfo.TimeToPosition(center_h, trackLeftEdge); - } - else if( steps > 0 ){ - // When zooming in, keep the selection start where it was. - // This is particularly helpful for a point selection. + // Zooming out? Focus on mouse. + else if( steps <= 0 ) + center_h = mouse_h; + // No Selection? Focus on mouse. + else if( viewInfo.selectedRegion.t1() <= 0.0 ) + center_h = mouse_h; + // Before Selection? Focus on left + else if( mouse_h < viewInfo.selectedRegion.t0() ) center_h = viewInfo.selectedRegion.t0(); - xx = viewInfo.TimeToPosition( center_h, trackLeftEdge); - } + // After Selection? Focus on right + else if( mouse_h > viewInfo.selectedRegion.t1() ) + center_h = viewInfo.selectedRegion.t1(); + // Inside Selection? Focus on mouse else - { - xx = event.m_x; - center_h = viewInfo.PositionToTime(xx, trackLeftEdge); - } + center_h = mouse_h; + + xx = viewInfo.TimeToPosition(center_h, trackLeftEdge); // Time corresponding to last (most far right) audio. double audioEndTime = pProject->GetTracks()->GetEndTime();