| 457 | } |
| 458 | |
| 459 | HRESULT GlassFrameHandler::MyCTopLevelWindow_ValidateVisual(uDWM::CTopLevelWindow* This) |
| 460 | { |
| 461 | auto data = This->GetData(); |
| 462 | if (!data) |
| 463 | { |
| 464 | return g_CTopLevelWindow_ValidateVisual_Org(This); |
| 465 | } |
| 466 | |
| 467 | GlassKernel::g_window = This; |
| 468 | const auto updateReflectionBeforeLeave = wil::scope_exit([This] |
| 469 | { |
| 470 | GlassKernel::g_window = nullptr; |
| 471 | LOG_IF_FAILED(UpdateReflectionViewport(This)); |
| 472 | }); |
| 473 | |
| 474 | return g_CTopLevelWindow_ValidateVisual_Org(This); |
| 475 | } |
| 476 | |
| 477 | void GlassFrameHandler::MyCTopLevelWindow_Destructor(uDWM::CTopLevelWindow* This) |
| 478 | { |