Flutter Windows Embedder
window_manager.cc File Reference

Go to the source code of this file.

Namespaces

 flutter
 

Functions

void InternalFlutterWindows_WindowManager_Initialize (int64_t engine_id, const flutter::WindowingInitRequest *request)
 
FlutterViewId InternalFlutterWindows_WindowManager_CreateRegularWindow (int64_t engine_id, const flutter::RegularWindowCreationRequest *request)
 
FLUTTER_EXPORT FlutterViewId InternalFlutterWindows_WindowManager_CreateDialogWindow (int64_t engine_id, const flutter::DialogWindowCreationRequest *request)
 
FLUTTER_EXPORT FlutterViewId InternalFlutterWindows_WindowManager_CreateTooltipWindow (int64_t engine_id, const flutter::TooltipWindowCreationRequest *request)
 
HWND InternalFlutterWindows_WindowManager_GetTopLevelWindowHandle (int64_t engine_id, FlutterViewId view_id)
 
flutter::ActualWindowSize InternalFlutterWindows_WindowManager_GetWindowContentSize (HWND hwnd)
 
void InternalFlutterWindows_WindowManager_SetWindowSize (HWND hwnd, const flutter::WindowSizeRequest *size)
 
void InternalFlutterWindows_WindowManager_OnDestroyWindow (HWND hwnd)
 
void InternalFlutterWindows_WindowManager_SetWindowConstraints (HWND hwnd, const flutter::WindowConstraints *constraints)
 
void InternalFlutterWindows_WindowManager_SetFullscreen (HWND hwnd, const flutter::FullscreenRequest *request)
 
bool InternalFlutterWindows_WindowManager_GetFullscreen (HWND hwnd)
 
FLUTTER_EXPORT void InternalFlutterWindows_WindowManager_UpdateTooltipPosition (HWND hwnd)
 

Function Documentation

◆ InternalFlutterWindows_WindowManager_CreateDialogWindow()

FLUTTER_EXPORT FlutterViewId InternalFlutterWindows_WindowManager_CreateDialogWindow ( int64_t  engine_id,
const flutter::DialogWindowCreationRequest request 
)

Definition at line 149 of file window_manager.cc.

151  {
154  return engine->window_manager()->CreateDialogWindow(request);
155 }
static FlutterWindowsEngine * GetEngineForId(int64_t engine_id)
FlutterViewId CreateDialogWindow(const DialogWindowCreationRequest *request)

References flutter::WindowManager::CreateDialogWindow(), flutter::FlutterWindowsEngine::GetEngineForId(), and flutter::FlutterWindowsEngine::window_manager().

Referenced by flutter::testing::TEST_F().

◆ InternalFlutterWindows_WindowManager_CreateRegularWindow()

FlutterViewId InternalFlutterWindows_WindowManager_CreateRegularWindow ( int64_t  engine_id,
const flutter::RegularWindowCreationRequest request 
)

Definition at line 140 of file window_manager.cc.

142  {
145  return engine->window_manager()->CreateRegularWindow(request);
146 }
FlutterViewId CreateRegularWindow(const RegularWindowCreationRequest *request)

References flutter::WindowManager::CreateRegularWindow(), flutter::FlutterWindowsEngine::GetEngineForId(), and flutter::FlutterWindowsEngine::window_manager().

Referenced by flutter::testing::TEST_F().

◆ InternalFlutterWindows_WindowManager_CreateTooltipWindow()

FLUTTER_EXPORT FlutterViewId InternalFlutterWindows_WindowManager_CreateTooltipWindow ( int64_t  engine_id,
const flutter::TooltipWindowCreationRequest request 
)

Definition at line 158 of file window_manager.cc.

160  {
163  return engine->window_manager()->CreateTooltipWindow(request);
164 }
FlutterViewId CreateTooltipWindow(const TooltipWindowCreationRequest *request)

References flutter::WindowManager::CreateTooltipWindow(), flutter::FlutterWindowsEngine::GetEngineForId(), and flutter::FlutterWindowsEngine::window_manager().

Referenced by flutter::testing::TEST_F().

◆ InternalFlutterWindows_WindowManager_GetFullscreen()

bool InternalFlutterWindows_WindowManager_GetFullscreen ( HWND  hwnd)

Definition at line 235 of file window_manager.cc.

235  {
237  if (window) {
238  return window->GetFullscreen();
239  }
240 
241  return false;
242 }
static HostWindow * GetThisFromHandle(HWND hwnd)
Definition: host_window.cc:335
virtual bool GetFullscreen() const
Definition: host_window.cc:720

References flutter::HostWindow::GetFullscreen(), and flutter::HostWindow::GetThisFromHandle().

Referenced by flutter::testing::TEST_F().

◆ InternalFlutterWindows_WindowManager_GetTopLevelWindowHandle()

HWND InternalFlutterWindows_WindowManager_GetTopLevelWindowHandle ( int64_t  engine_id,
FlutterViewId  view_id 
)

Definition at line 166 of file window_manager.cc.

168  {
171  flutter::FlutterWindowsView* view = engine->view(view_id);
172  if (view == nullptr) {
173  return nullptr;
174  } else {
175  return GetAncestor(view->GetWindowHandle(), GA_ROOT);
176  }
177 }
FlutterWindowsView * view(FlutterViewId view_id) const
virtual HWND GetWindowHandle() const

References flutter::FlutterWindowsEngine::GetEngineForId(), flutter::FlutterWindowsView::GetWindowHandle(), and flutter::FlutterWindowsEngine::view().

Referenced by flutter::testing::TEST_F().

◆ InternalFlutterWindows_WindowManager_GetWindowContentSize()

flutter::ActualWindowSize InternalFlutterWindows_WindowManager_GetWindowContentSize ( HWND  hwnd)

Definition at line 180 of file window_manager.cc.

180  {
182 }
static ActualWindowSize GetWindowContentSize(HWND hwnd)
Definition: host_window.cc:724

References flutter::HostWindow::GetWindowContentSize().

Referenced by flutter::testing::TEST_F().

◆ InternalFlutterWindows_WindowManager_Initialize()

void InternalFlutterWindows_WindowManager_Initialize ( int64_t  engine_id,
const flutter::WindowingInitRequest request 
)

◆ InternalFlutterWindows_WindowManager_OnDestroyWindow()

void InternalFlutterWindows_WindowManager_OnDestroyWindow ( HWND  hwnd)

Definition at line 193 of file window_manager.cc.

193  {
195  HWND flutter_view_handle = nullptr;
196  if (window) {
197  // First reparent the FlutterView to null parent. Otherwise destroying
198  // the window HWND will immediately destroy the FlutterView HWND as well,
199  // which will cause crash when raster thread tries to reallocate surface.
200  // The FlutterView may only be destroyed safely when
201  // FlutterWindowsEngine::RemoveView finishes.
202  flutter_view_handle = window->GetFlutterViewWindowHandle();
203  ShowWindow(flutter_view_handle, SW_HIDE);
204  SetParent(flutter_view_handle, nullptr);
205  }
206  DestroyWindow(hwnd);
207  if (flutter_view_handle) {
208  // Now the flutter view HWND can be destroyed safely.
209  DestroyWindow(flutter_view_handle);
210  }
211 }
HWND GetFlutterViewWindowHandle() const
Definition: host_window.cc:354

References flutter::HostWindow::GetFlutterViewWindowHandle(), and flutter::HostWindow::GetThisFromHandle().

Referenced by flutter::WindowManager::OnEngineShutdown().

◆ InternalFlutterWindows_WindowManager_SetFullscreen()

void InternalFlutterWindows_WindowManager_SetFullscreen ( HWND  hwnd,
const flutter::FullscreenRequest request 
)

Definition at line 222 of file window_manager.cc.

224  {
226  const std::optional<FlutterEngineDisplayId> display_id =
227  request->has_display_id
228  ? std::optional<FlutterEngineDisplayId>(request->display_id)
229  : std::nullopt;
230  if (window) {
231  window->SetFullscreen(request->fullscreen, display_id);
232  }
233 }
virtual void SetFullscreen(bool fullscreen, std::optional< FlutterEngineDisplayId > display_id)
Definition: host_window.cc:574
FlutterEngineDisplayId display_id

References flutter::FullscreenRequest::display_id, flutter::FullscreenRequest::fullscreen, flutter::HostWindow::GetThisFromHandle(), flutter::FullscreenRequest::has_display_id, and flutter::HostWindow::SetFullscreen().

Referenced by flutter::testing::TEST_F().

◆ InternalFlutterWindows_WindowManager_SetWindowConstraints()

void InternalFlutterWindows_WindowManager_SetWindowConstraints ( HWND  hwnd,
const flutter::WindowConstraints constraints 
)

Definition at line 213 of file window_manager.cc.

215  {
217  if (window) {
218  window->SetConstraints(*constraints);
219  }
220 }
void SetConstraints(const WindowConstraints &constraints)
Definition: host_window.cc:533

References flutter::HostWindow::GetThisFromHandle(), and flutter::HostWindow::SetConstraints().

Referenced by flutter::testing::TEST_F().

◆ InternalFlutterWindows_WindowManager_SetWindowSize()

void InternalFlutterWindows_WindowManager_SetWindowSize ( HWND  hwnd,
const flutter::WindowSizeRequest size 
)

Definition at line 184 of file window_manager.cc.

186  {
188  if (window) {
189  window->SetContentSize(*size);
190  }
191 }
void SetContentSize(const WindowSizeRequest &size)
Definition: host_window.cc:491

References flutter::HostWindow::GetThisFromHandle(), and flutter::HostWindow::SetContentSize().

Referenced by flutter::testing::TEST_F().

◆ InternalFlutterWindows_WindowManager_UpdateTooltipPosition()

FLUTTER_EXPORT void InternalFlutterWindows_WindowManager_UpdateTooltipPosition ( HWND  hwnd)