From ce1cd2700724c77312dd42f61bf7f361c9730f38 Mon Sep 17 00:00:00 2001 From: "Charles J. Cliffe" Date: Mon, 30 May 2016 00:17:08 -0400 Subject: [PATCH] ifdef'd windows focus calls, remove unnecessary meter refreshes --- src/AppFrame.cpp | 3 ++- src/AppFrame.h | 4 +++- src/visual/MeterCanvas.cpp | 9 ++------- src/visual/SpectrumCanvas.cpp | 2 ++ src/visual/TuningCanvas.cpp | 2 ++ src/visual/WaterfallCanvas.cpp | 2 ++ 6 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/AppFrame.cpp b/src/AppFrame.cpp index e760533..38c74f1 100644 --- a/src/AppFrame.cpp +++ b/src/AppFrame.cpp @@ -1779,10 +1779,11 @@ void AppFrame::refreshGainUI() { gainCanvas->Refresh(); } - +#ifdef _WIN32 bool AppFrame::canFocus() { return (!wxGetApp().isDeviceSelectorOpen() && (!modemProps || !modemProps->isMouseInView())); } +#endif FrequencyDialog::FrequencyDialogTarget AppFrame::getFrequencyDialogTarget() { FrequencyDialog::FrequencyDialogTarget target = FrequencyDialog::FrequencyDialogTarget::FDIALOG_TARGET_DEFAULT; diff --git a/src/AppFrame.h b/src/AppFrame.h index 000ca15..8679c9a 100644 --- a/src/AppFrame.h +++ b/src/AppFrame.h @@ -96,8 +96,10 @@ public: FrequencyDialog::FrequencyDialogTarget getFrequencyDialogTarget(); void refreshGainUI(); +#ifdef _WIN32 bool canFocus(); - +#endif + private: void OnMenu(wxCommandEvent& event); void OnClose(wxCloseEvent& event); diff --git a/src/visual/MeterCanvas.cpp b/src/visual/MeterCanvas.cpp index 4196af0..e0bf014 100644 --- a/src/visual/MeterCanvas.cpp +++ b/src/visual/MeterCanvas.cpp @@ -126,18 +126,15 @@ void MeterCanvas::OnMouseDown(wxMouseEvent& event) { InteractiveCanvas::OnMouseDown(event); userInputValue = mouseTracker.getMouseY() * (level_max-level_min) + level_min; mouseTracker.setHorizDragLock(true); - Refresh(); } void MeterCanvas::OnMouseReleased(wxMouseEvent& event) { InteractiveCanvas::OnMouseReleased(event); userInputValue = mouseTracker.getMouseY() * (level_max-level_min) + level_min; - Refresh(); } void MeterCanvas::OnMouseRightDown(wxMouseEvent& event) { InteractiveCanvas::OnMouseRightDown(event); - Refresh(); } void MeterCanvas::OnMouseRightReleased(wxMouseEvent& event) { @@ -145,7 +142,6 @@ void MeterCanvas::OnMouseRightReleased(wxMouseEvent& event) { if (showUserInput) { userInputValue = level - level * 0.02; } - Refresh(); } void MeterCanvas::OnMouseWheelMoved(wxMouseEvent& event) { @@ -169,8 +165,6 @@ void MeterCanvas::OnMouseWheelMoved(wxMouseEvent& event) { } userInputValue = currentValue; - - Refresh(); } void MeterCanvas::OnMouseLeftWindow(wxMouseEvent& event) { @@ -182,10 +176,11 @@ void MeterCanvas::OnMouseLeftWindow(wxMouseEvent& event) { void MeterCanvas::OnMouseEnterWindow(wxMouseEvent& event) { InteractiveCanvas::mouseTracker.OnMouseEnterWindow(event); SetCursor(wxCURSOR_CROSS); - Refresh(); +#ifdef _WIN32 if (wxGetApp().getAppFrame()->canFocus()) { this->SetFocus(); } +#endif } void MeterCanvas::setHelpTip(std::string tip) { diff --git a/src/visual/SpectrumCanvas.cpp b/src/visual/SpectrumCanvas.cpp index 421fc81..42877bd 100644 --- a/src/visual/SpectrumCanvas.cpp +++ b/src/visual/SpectrumCanvas.cpp @@ -259,11 +259,13 @@ void SpectrumCanvas::OnMouseReleased(wxMouseEvent& event) { void SpectrumCanvas::OnMouseEnterWindow(wxMouseEvent& event) { InteractiveCanvas::OnMouseEnterWindow(event); SetCursor(wxCURSOR_SIZEWE); +#ifdef _WIN32 if (waterfallCanvas) { if (wxGetApp().getAppFrame()->canFocus()) { this->SetFocus(); } } +#endif } void SpectrumCanvas::OnMouseLeftWindow(wxMouseEvent& event) { diff --git a/src/visual/TuningCanvas.cpp b/src/visual/TuningCanvas.cpp index fd10d8a..4302cf5 100644 --- a/src/visual/TuningCanvas.cpp +++ b/src/visual/TuningCanvas.cpp @@ -410,9 +410,11 @@ void TuningCanvas::OnMouseEnterWindow(wxMouseEvent& event) { hoverIndex = 0; hoverState = TUNING_HOVER_NONE; lastPPM = currentPPM = wxGetApp().getPPM(); +#ifdef _WIN32 if (wxGetApp().getAppFrame()->canFocus()) { this->SetFocus(); } +#endif } void TuningCanvas::setHelpTip(std::string tip) { diff --git a/src/visual/WaterfallCanvas.cpp b/src/visual/WaterfallCanvas.cpp index 9bb08e8..740efab 100644 --- a/src/visual/WaterfallCanvas.cpp +++ b/src/visual/WaterfallCanvas.cpp @@ -852,9 +852,11 @@ void WaterfallCanvas::OnMouseLeftWindow(wxMouseEvent& event) { void WaterfallCanvas::OnMouseEnterWindow(wxMouseEvent& event) { InteractiveCanvas::OnMouseEnterWindow(event); SetCursor(wxCURSOR_CROSS); +#ifdef _WIN32 if (wxGetApp().getAppFrame()->canFocus()) { this->SetFocus(); } +#endif } void WaterfallCanvas::OnMouseRightDown(wxMouseEvent& event) {