DolphinQt2/MainWindow: Resolve a memory leak on systems with X11

In the case we had X11 libs available, we'd allocate an XRRConfiguration instance and pass it
to the GraphicsWindow instance, but it would never actually be freed.
This commit is contained in:
Lioncash 2018-04-05 09:03:12 -04:00
parent d0b7c013a1
commit 839fc7e749
No known key found for this signature in database
GPG Key ID: 4E3C3CC1031BA9C7
2 changed files with 14 additions and 6 deletions

View File

@ -221,12 +221,11 @@ void MainWindow::CreateComponents()
&MemoryWidget::Update);
#if defined(HAVE_XRANDR) && HAVE_XRANDR
m_graphics_window = new GraphicsWindow(
new X11Utils::XRRConfiguration(
static_cast<Display*>(QGuiApplication::platformNativeInterface()->nativeResourceForWindow(
"display", windowHandle())),
winId()),
this);
m_xrr_config = std::make_unique<X11Utils::XRRConfiguration>(
static_cast<Display*>(QGuiApplication::platformNativeInterface()->nativeResourceForWindow(
"display", windowHandle())),
winId());
m_graphics_window = new GraphicsWindow(m_xrr_config.get(), this);
#else
m_graphics_window = new GraphicsWindow(nullptr, this);
#endif

View File

@ -43,6 +43,11 @@ class SettingsWindow;
class WatchWidget;
class WiiTASInputWindow;
namespace X11Utils
{
class XRRConfiguration;
}
class MainWindow final : public QMainWindow
{
Q_OBJECT
@ -146,6 +151,10 @@ private:
void dropEvent(QDropEvent* event) override;
QSize sizeHint() const override;
#if defined(HAVE_XRANDR) && HAVE_XRANDR
std::unique_ptr<X11Utils::XRRConfiguration> m_xrr_config;
#endif
QProgressDialog* m_progress_dialog = nullptr;
QStackedWidget* m_stack;
ToolBar* m_tool_bar;