mirror of
https://github.com/cookiengineer/audacity
synced 2025-06-24 16:20:05 +02:00
Fix memory leaks, though in unused code...
... Is this kept around for future use?
This commit is contained in:
parent
17faf86967
commit
d84e1cc45e
@ -132,7 +132,6 @@ ExpandingToolBar::ExpandingToolBar(wxWindow* parent,
|
||||
mDialogParent(NULL),
|
||||
mAreaParent(NULL),
|
||||
mSavedArrangement{},
|
||||
mDragImage(NULL),
|
||||
mTopLevelParent(NULL)
|
||||
{
|
||||
mMainPanel = safenew wxPanelWrapper(this, -1,
|
||||
@ -280,11 +279,15 @@ class ExpandingToolBarEvtHandler final : public wxEvtHandler
|
||||
{
|
||||
public:
|
||||
ExpandingToolBarEvtHandler(ExpandingToolBar *toolbar,
|
||||
wxWindow *window,
|
||||
wxEvtHandler *inheritedEvtHandler)
|
||||
{
|
||||
mToolBar = toolbar;
|
||||
mWindow = window;
|
||||
mInheritedEvtHandler = inheritedEvtHandler;
|
||||
}
|
||||
|
||||
window->PushEventHandler(this);
|
||||
}
|
||||
|
||||
bool ProcessEvent(wxEvent& evt) override
|
||||
{
|
||||
@ -296,8 +299,14 @@ class ExpandingToolBarEvtHandler final : public wxEvtHandler
|
||||
return mInheritedEvtHandler->ProcessEvent(evt);
|
||||
}
|
||||
|
||||
~ExpandingToolBarEvtHandler()
|
||||
{
|
||||
mWindow->RemoveEventHandler(this);
|
||||
}
|
||||
|
||||
protected:
|
||||
ExpandingToolBar *mToolBar;
|
||||
wxWindow *mWindow;
|
||||
wxEvtHandler *mInheritedEvtHandler;
|
||||
|
||||
DECLARE_NO_COPY_CLASS(ExpandingToolBarEvtHandler);
|
||||
@ -306,9 +315,8 @@ protected:
|
||||
void ExpandingToolBar::RecursivelyPushEventHandlers(wxWindow *win)
|
||||
{
|
||||
if (!mWindowHash[win]) {
|
||||
ExpandingToolBarEvtHandler *evtHandler =
|
||||
new ExpandingToolBarEvtHandler(this, win->GetEventHandler());
|
||||
win->PushEventHandler(evtHandler);
|
||||
mHandlers.push_back(make_movable<ExpandingToolBarEvtHandler>
|
||||
(this, win, win->GetEventHandler()));
|
||||
mWindowHash[win] = 1;
|
||||
}
|
||||
|
||||
@ -556,7 +564,7 @@ void ExpandingToolBar::StartMoving()
|
||||
|
||||
mAreaParent->SetCapturedChild(this);
|
||||
|
||||
mDragImage = new wxDragImage(toolbarBitmap);
|
||||
mDragImage = std::make_unique<wxDragImage>(toolbarBitmap);
|
||||
mDragImage->BeginDrag(hotSpot, mAreaParent, mTopLevelParent);
|
||||
mDragImage->Show();
|
||||
mDragImage->Move(ScreenToClient(wxGetMousePosition()));
|
||||
|
@ -12,6 +12,7 @@
|
||||
#define __AUDACITY_EXPANDING_TOOL_BAR__
|
||||
|
||||
#include "../MemoryX.h"
|
||||
#include <vector>
|
||||
#include <wx/defs.h>
|
||||
#include <wx/dialog.h>
|
||||
#include <wx/dynarray.h>
|
||||
@ -39,6 +40,8 @@ WX_DECLARE_VOIDPTR_HASH_MAP(int, WindowHash);
|
||||
WX_DEFINE_ARRAY(ExpandingToolBar *, ExpandingToolBarArray);
|
||||
WX_DECLARE_OBJARRAY(wxRect, wxArrayRect);
|
||||
|
||||
class ExpandingToolBarEvtHandler;
|
||||
|
||||
//
|
||||
// A smart ToolBar class that has a "MainPanel" which is always
|
||||
// displayed, and an "ExtraPanel" that can be hidden to save space.
|
||||
@ -111,7 +114,7 @@ class ExpandingToolBar final : public wxPanelWrapper
|
||||
ToolBarArea *mAreaParent;
|
||||
std::unique_ptr<ToolBarArrangement> mSavedArrangement;
|
||||
ImageRollPanel *mTargetPanel;
|
||||
wxDragImage *mDragImage;
|
||||
std::unique_ptr<wxDragImage> mDragImage;
|
||||
wxWindow *mTopLevelParent;
|
||||
wxArrayRect mDropTargets;
|
||||
wxRect mDropTarget;
|
||||
@ -121,6 +124,7 @@ class ExpandingToolBar final : public wxPanelWrapper
|
||||
DECLARE_EVENT_TABLE();
|
||||
|
||||
friend class ExpandingToolBarEvtHandler;
|
||||
std::vector< movable_ptr< ExpandingToolBarEvtHandler > > mHandlers;
|
||||
};
|
||||
|
||||
class ToolBarGrabber final : public wxPanelWrapper
|
||||
|
Loading…
x
Reference in New Issue
Block a user