diff --git a/packages/window_manager/windows/window_manager_plugin.cpp b/packages/window_manager/windows/window_manager_plugin.cpp index 36e767ab..489af340 100644 --- a/packages/window_manager/windows/window_manager_plugin.cpp +++ b/packages/window_manager/windows/window_manager_plugin.cpp @@ -31,11 +31,6 @@ bool IsWindows11OrGreater() { return dwBuild < 22000; } -std::unique_ptr< - flutter::MethodChannel, - std::default_delete>> - channel = nullptr; - class WindowManagerPlugin : public flutter::Plugin { public: static void RegisterWithRegistrar(flutter::PluginRegistrarWindows* registrar); @@ -45,6 +40,12 @@ class WindowManagerPlugin : public flutter::Plugin { virtual ~WindowManagerPlugin(); private: + std::unique_ptr< + flutter::MethodChannel, + std::default_delete>> + channel = nullptr; + + WindowManager* window_manager; flutter::PluginRegistrarWindows* registrar; @@ -95,17 +96,8 @@ class WindowManagerPlugin : public flutter::Plugin { // static void WindowManagerPlugin::RegisterWithRegistrar( flutter::PluginRegistrarWindows* registrar) { - channel = std::make_unique>( - registrar->messenger(), "window_manager", - &flutter::StandardMethodCodec::GetInstance()); - auto plugin = std::make_unique(registrar); - channel->SetMethodCallHandler( - [plugin_pointer = plugin.get()](const auto& call, auto result) { - plugin_pointer->HandleMethodCall(call, std::move(result)); - }); - registrar->AddPlugin(std::move(plugin)); } @@ -117,6 +109,14 @@ WindowManagerPlugin::WindowManagerPlugin( [this](HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { return HandleWindowProc(hWnd, message, wParam, lParam); }); + channel = std::make_unique>( + registrar->messenger(), "window_manager", + &flutter::StandardMethodCodec::GetInstance()); + + channel->SetMethodCallHandler( + [this](const auto& call, auto result) { + HandleMethodCall(call, std::move(result)); + }); } WindowManagerPlugin::~WindowManagerPlugin() {