|
| 1 | +From e578fb7405c399d7ac98bb5889a8f0f145c9a092 Mon Sep 17 00:00:00 2001 |
| 2 | +From: Ray Smith < [email protected]> |
| 3 | +Date: Mon, 9 Feb 2026 12:55:09 +0000 |
| 4 | +Subject: [PATCH 1/2] nexus_window: Only update window properties that actually |
| 5 | + change |
| 6 | + |
| 7 | +Now that NXPL_GetNativeWindowInfoEXT works properly, we don't need to |
| 8 | +re-apply bounds, zorder etc. in unrelated functions. |
| 9 | +--- |
| 10 | + ui/ozone/platform/nexus/nexus_window.cc | 31 ++++--------------------- |
| 11 | + 1 file changed, 4 insertions(+), 27 deletions(-) |
| 12 | + |
| 13 | +diff --git a/ui/ozone/platform/nexus/nexus_window.cc b/ui/ozone/platform/nexus/nexus_window.cc |
| 14 | +index e126a07d15..654ff513dc 100644 |
| 15 | +--- a/ui/ozone/platform/nexus/nexus_window.cc |
| 16 | ++++ b/ui/ozone/platform/nexus/nexus_window.cc |
| 17 | +@@ -110,12 +110,7 @@ void NexusWindow::Show(bool inactive) { |
| 18 | + BS_DEBUG( "%s\n", __PRETTY_FUNCTION__); |
| 19 | + visible_ = true; |
| 20 | + NXPL_NativeWindowInfoEXT win_info; |
| 21 | +- NXPL_GetDefaultNativeWindowInfoEXT(&win_info); |
| 22 | +- win_info.x = bounds_.x(); |
| 23 | +- win_info.y = bounds_.y(); |
| 24 | +- win_info.width = bounds_.width(); |
| 25 | +- win_info.height = bounds_.height(); |
| 26 | +- win_info.zOrder = kZOrder; |
| 27 | ++ NXPL_GetNativeWindowInfoEXT(native_window_, &win_info); |
| 28 | + |
| 29 | + // Apply current opacity when showing |
| 30 | + if (opacity_ == 1.0f) { |
| 31 | +@@ -153,12 +148,7 @@ void NexusWindow::Hide() { |
| 32 | + BS_DEBUG( "%s\n", __PRETTY_FUNCTION__); |
| 33 | + visible_ = false; |
| 34 | + NXPL_NativeWindowInfoEXT win_info; |
| 35 | +- NXPL_GetDefaultNativeWindowInfoEXT(&win_info); |
| 36 | +- win_info.x = bounds_.x(); |
| 37 | +- win_info.y = bounds_.y(); |
| 38 | +- win_info.width = bounds_.width(); |
| 39 | +- win_info.height = bounds_.height(); |
| 40 | +- win_info.zOrder = kZOrder; |
| 41 | ++ NXPL_GetNativeWindowInfoEXT(native_window_, &win_info); |
| 42 | + win_info.colorBlend = HideSourceColor; |
| 43 | + win_info.alphaBlend = HideSourceAlpha; |
| 44 | + NXPL_UpdateNativeWindowEXT(native_window_, &win_info); |
| 45 | +@@ -200,19 +190,11 @@ void NexusWindow::SetBoundsInPixels(const gfx::Rect& bounds) { |
| 46 | + if (adjusted_bounds != bounds_) |
| 47 | + { |
| 48 | + NXPL_NativeWindowInfoEXT win_info; |
| 49 | +- NXPL_GetDefaultNativeWindowInfoEXT(&win_info); |
| 50 | ++ NXPL_GetNativeWindowInfoEXT(native_window_, &win_info); |
| 51 | + win_info.x = adjusted_bounds.x(); |
| 52 | + win_info.y = adjusted_bounds.y(); |
| 53 | + win_info.width = adjusted_bounds.width(); |
| 54 | + win_info.height = adjusted_bounds.height(); |
| 55 | +- win_info.zOrder = kZOrder; |
| 56 | +- if (!visible_ ) { |
| 57 | +- win_info.colorBlend = HideSourceColor; |
| 58 | +- win_info.alphaBlend = HideSourceAlpha; |
| 59 | +- } |
| 60 | +- else { |
| 61 | +- win_info.colorBlend = ShowSourceColor; |
| 62 | +- } |
| 63 | + NXPL_UpdateNativeWindowEXT(native_window_, &win_info); |
| 64 | + |
| 65 | + bounds_ = adjusted_bounds; |
| 66 | +@@ -455,12 +437,7 @@ void NexusWindow::SetOpacity(float opacity) { |
| 67 | + // Update the window with new opacity settings |
| 68 | + if (native_window_) { |
| 69 | + NXPL_NativeWindowInfoEXT win_info; |
| 70 | +- NXPL_GetDefaultNativeWindowInfoEXT(&win_info); |
| 71 | +- win_info.x = bounds_.x(); |
| 72 | +- win_info.y = bounds_.y(); |
| 73 | +- win_info.width = bounds_.width(); |
| 74 | +- win_info.height = bounds_.height(); |
| 75 | +- win_info.zOrder = kZOrder; |
| 76 | ++ NXPL_GetNativeWindowInfoEXT(native_window_, &win_info); |
| 77 | + |
| 78 | + if (!visible_ || opacity_ == 0.0f) { |
| 79 | + // Hidden or fully transparent |
| 80 | +-- |
| 81 | +2.30.2 |
| 82 | + |
0 commit comments