electron/patches/chromium/fix_activate_background_material_on_windows.patch

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

60 lines
2.4 KiB
Diff
Raw Normal View History

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: clavin <clavin@electronjs.org>
Date: Mon, 11 Dec 2023 20:43:34 -0300
Subject: fix: activate background material on windows
This patch adds a condition to the HWND message handler to allow windows
with translucent background materials to become activated.
It also ensures the lParam of WM_NCACTIVATE is set to -1 so as to not repaint
the client area, which can lead to a title bar incorrectly being displayed in
frameless windows.
This patch likely can't be upstreamed as-is, as Chromium doesn't have
this use case in mind currently.
diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc
chore: bump chromium to 136.0.7067.0 (36-x-y) (#46017) * chore: bump chromium in DEPS to 136.0.7066.1 * chore: bump chromium in DEPS to 136.0.7067.0 * chore: bump chromium in DEPS to 136.0.7067.3 * chore: bump chromium in DEPS to 136.0.7069.1 * chore: bump chromium in DEPS to 136.0.7071.0 * chore: bump chromium in DEPS to 136.0.7073.1 * chore: bump chromium in DEPS to 136.0.7075.1 * chore: bump chromium in DEPS to 136.0.7076.1 * chore: bump chromium in DEPS to 136.0.7077.1 * chore: bump chromium to 136.0.7064.0 (main) (#45985) * chore: bump chromium in DEPS to 136.0.7063.0 * chore: bump chromium in DEPS to 136.0.7064.0 * 6169919: Instantiate Linux (or CrOS) system fonts using Fontations Refs https://chromium-review.googlesource.com/c/chromium/src/+/6169919 * 6341209: Remove file-wide unsafe buffer suppression from content/ [1 of N]. Refs https://chromium-review.googlesource.com/c/chromium/src/+/6341209 * chore: update patches --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: David Sanders <dsanders11@ucsbalum.com> (cherry picked from commit 962d8b325aa2ace6a72f0606ddc2e1ac65ee0907) * chore: bump chromium to 136.0.7067.0 (main) (#46018) * chore: bump chromium in DEPS to 136.0.7066.0 * chore: bump chromium in DEPS to 136.0.7067.0 * 6325710: [LNA] Add Local Network Access permission type Refs https://chromium-review.googlesource.com/c/chromium/src/+/6325710 * 6342514: Create frame mojo endpoints in renderer during window.open() Refs https://chromium-review.googlesource.com/c/chromium/src/+/6342514 * 6344040: Create widget mojo endpoints in renderer process for window.open() Refs https://chromium-review.googlesource.com/c/chromium/src/+/6344040 * chore: update patches * 6349218: Move ExtensionService::install_directory() to ExtensionRegistrar Refs https://chromium-review.googlesource.com/c/chromium/src/+/6349218 * 6349395: Move ExtensionService::extensions_enabled() to ExtensionRegistrar Refs https://chromium-review.googlesource.com/c/chromium/src/+/6349395 * 6331510: Migrate views::Background class to ui::ColorVariant | https://chromium-review.googlesource.com/c/chromium/src/+/6331510 * build: reorder set-cookie step https://github.com/electron/electron/pull/46091 --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: David Sanders <dsanders11@ucsbalum.com> Co-authored-by: alice <alice@makenotion.com> (cherry picked from commit b13f05e2dc355a4d2bcfb0823ccf3b89e39350b3) * chore: update patch --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2025-03-21 10:21:08 -04:00
index 3d8a590aacd3a65d5a19004dc11e770b31a0f614..64dd7b6e507b61fab7a044823462fb04eabba698 100644
--- a/ui/views/win/hwnd_message_handler.cc
+++ b/ui/views/win/hwnd_message_handler.cc
chore: bump chromium to 136.0.7067.0 (36-x-y) (#46017) * chore: bump chromium in DEPS to 136.0.7066.1 * chore: bump chromium in DEPS to 136.0.7067.0 * chore: bump chromium in DEPS to 136.0.7067.3 * chore: bump chromium in DEPS to 136.0.7069.1 * chore: bump chromium in DEPS to 136.0.7071.0 * chore: bump chromium in DEPS to 136.0.7073.1 * chore: bump chromium in DEPS to 136.0.7075.1 * chore: bump chromium in DEPS to 136.0.7076.1 * chore: bump chromium in DEPS to 136.0.7077.1 * chore: bump chromium to 136.0.7064.0 (main) (#45985) * chore: bump chromium in DEPS to 136.0.7063.0 * chore: bump chromium in DEPS to 136.0.7064.0 * 6169919: Instantiate Linux (or CrOS) system fonts using Fontations Refs https://chromium-review.googlesource.com/c/chromium/src/+/6169919 * 6341209: Remove file-wide unsafe buffer suppression from content/ [1 of N]. Refs https://chromium-review.googlesource.com/c/chromium/src/+/6341209 * chore: update patches --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: David Sanders <dsanders11@ucsbalum.com> (cherry picked from commit 962d8b325aa2ace6a72f0606ddc2e1ac65ee0907) * chore: bump chromium to 136.0.7067.0 (main) (#46018) * chore: bump chromium in DEPS to 136.0.7066.0 * chore: bump chromium in DEPS to 136.0.7067.0 * 6325710: [LNA] Add Local Network Access permission type Refs https://chromium-review.googlesource.com/c/chromium/src/+/6325710 * 6342514: Create frame mojo endpoints in renderer during window.open() Refs https://chromium-review.googlesource.com/c/chromium/src/+/6342514 * 6344040: Create widget mojo endpoints in renderer process for window.open() Refs https://chromium-review.googlesource.com/c/chromium/src/+/6344040 * chore: update patches * 6349218: Move ExtensionService::install_directory() to ExtensionRegistrar Refs https://chromium-review.googlesource.com/c/chromium/src/+/6349218 * 6349395: Move ExtensionService::extensions_enabled() to ExtensionRegistrar Refs https://chromium-review.googlesource.com/c/chromium/src/+/6349395 * 6331510: Migrate views::Background class to ui::ColorVariant | https://chromium-review.googlesource.com/c/chromium/src/+/6331510 * build: reorder set-cookie step https://github.com/electron/electron/pull/46091 --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: David Sanders <dsanders11@ucsbalum.com> Co-authored-by: alice <alice@makenotion.com> (cherry picked from commit b13f05e2dc355a4d2bcfb0823ccf3b89e39350b3) * chore: update patch --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2025-03-21 10:21:08 -04:00
@@ -941,13 +941,13 @@ void HWNDMessageHandler::FrameTypeChanged() {
void HWNDMessageHandler::PaintAsActiveChanged() {
if (!delegate_->HasNonClientView() || !delegate_->CanActivate() ||
- !delegate_->HasFrame() ||
+ (!delegate_->HasFrame() && !is_translucent_) ||
(delegate_->GetFrameMode() == FrameMode::CUSTOM_DRAWN)) {
return;
}
DefWindowProcWithRedrawLock(WM_NCACTIVATE, delegate_->ShouldPaintAsActive(),
- 0);
+ delegate_->HasFrame() ? 0 : -1);
}
void HWNDMessageHandler::SetWindowIcons(const gfx::ImageSkia& window_icon,
chore: bump chromium to 136.0.7067.0 (36-x-y) (#46017) * chore: bump chromium in DEPS to 136.0.7066.1 * chore: bump chromium in DEPS to 136.0.7067.0 * chore: bump chromium in DEPS to 136.0.7067.3 * chore: bump chromium in DEPS to 136.0.7069.1 * chore: bump chromium in DEPS to 136.0.7071.0 * chore: bump chromium in DEPS to 136.0.7073.1 * chore: bump chromium in DEPS to 136.0.7075.1 * chore: bump chromium in DEPS to 136.0.7076.1 * chore: bump chromium in DEPS to 136.0.7077.1 * chore: bump chromium to 136.0.7064.0 (main) (#45985) * chore: bump chromium in DEPS to 136.0.7063.0 * chore: bump chromium in DEPS to 136.0.7064.0 * 6169919: Instantiate Linux (or CrOS) system fonts using Fontations Refs https://chromium-review.googlesource.com/c/chromium/src/+/6169919 * 6341209: Remove file-wide unsafe buffer suppression from content/ [1 of N]. Refs https://chromium-review.googlesource.com/c/chromium/src/+/6341209 * chore: update patches --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: David Sanders <dsanders11@ucsbalum.com> (cherry picked from commit 962d8b325aa2ace6a72f0606ddc2e1ac65ee0907) * chore: bump chromium to 136.0.7067.0 (main) (#46018) * chore: bump chromium in DEPS to 136.0.7066.0 * chore: bump chromium in DEPS to 136.0.7067.0 * 6325710: [LNA] Add Local Network Access permission type Refs https://chromium-review.googlesource.com/c/chromium/src/+/6325710 * 6342514: Create frame mojo endpoints in renderer during window.open() Refs https://chromium-review.googlesource.com/c/chromium/src/+/6342514 * 6344040: Create widget mojo endpoints in renderer process for window.open() Refs https://chromium-review.googlesource.com/c/chromium/src/+/6344040 * chore: update patches * 6349218: Move ExtensionService::install_directory() to ExtensionRegistrar Refs https://chromium-review.googlesource.com/c/chromium/src/+/6349218 * 6349395: Move ExtensionService::extensions_enabled() to ExtensionRegistrar Refs https://chromium-review.googlesource.com/c/chromium/src/+/6349395 * 6331510: Migrate views::Background class to ui::ColorVariant | https://chromium-review.googlesource.com/c/chromium/src/+/6331510 * build: reorder set-cookie step https://github.com/electron/electron/pull/46091 --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: David Sanders <dsanders11@ucsbalum.com> Co-authored-by: alice <alice@makenotion.com> (cherry picked from commit b13f05e2dc355a4d2bcfb0823ccf3b89e39350b3) * chore: update patch --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
2025-03-21 10:21:08 -04:00
@@ -2337,17 +2337,18 @@ LRESULT HWNDMessageHandler::OnNCActivate(UINT message,
delegate_->SchedulePaint();
chore: bump chromium to 133.0.6920.0 (main) (#45055) * chore: bump chromium in DEPS to 133.0.6902.0 * chore: bump chromium in DEPS to 133.0.6903.0 * chore: update patches * Update PdfViewer Save File Picker to use showSaveFilePicker. Refs https://chromium-review.googlesource.com/c/chromium/src/+/6074308 * Code Health: Clean up stale MacWebContentsOcclusion Refs https://chromium-review.googlesource.com/c/chromium/src/+/6078344 * Change RenderProcessHost::GetID to RenderProcessHost::GetDeprecatedID Refs https://chromium-review.googlesource.com/c/chromium/src/+/6065543 * [WebRTC] Make WebRTC IP Handling policy a mojo enum Refs https://chromium-review.googlesource.com/c/chromium/src/+/6063620 * chore: gen filenames.libcxx.gni * Remove allow_unsafe_buffers pragma in //printing Refs https://chromium-review.googlesource.com/c/chromium/src/+/6092280 * refactor: to use ChildProcessId where possible Refs https://issues.chromium.org/issues/379869738 * [Win] Update TabletMode detection code Refs https://chromium-review.googlesource.com/c/chromium/src/+/6003486 * chore: bump chromium in DEPS to 133.0.6905.0 * chore: update patches * Reland "Move global shortcut listener to //ui/base" Refs https://chromium-review.googlesource.com/c/chromium/src/+/6099035 * [shared storage] Implement the batch `with_lock` option for response header Refs https://chromium-review.googlesource.com/c/chromium/src/+/6072742 * chore: bump chromium in DEPS to 133.0.6907.0 * chore: bump chromium in DEPS to 133.0.6909.0 * chore: bump chromium in DEPS to 133.0.6911.0 * chore: bump chromium in DEPS to 133.0.6912.0 * chore: update patches * WebUI: Reveal hidden deps to ui/webui/resources. Refs https://chromium-review.googlesource.com/c/chromium/src/+/6096291 * chore: bump chromium in DEPS to 133.0.6913.0 * chore: bump chromium in DEPS to 133.0.6915.0 * Code Health: Clean up stale base::Feature "AccessibilityTreeForViews" Refs https://chromium-review.googlesource.com/c/chromium/src/+/6104174 Co-authored-by: David Sanders <dsanders11@ucsbalum.com> * fix: remove fastapitypedarray usage * chore: update patches * chore: script/gen-libc++-filenames.js * Code Health: Clean up stale base::Feature "WinRetrieveSuggestionsOnlyOnDemand" Refs https://chromium-review.googlesource.com/c/chromium/src/+/6109477 * fix: empty suggestions with windows platform checker Amends the fix from https://github.com/electron/electron/pull/29690 since the feature flag is no longer available. We follow the same pattern as //chrome/browser/renderer_context_menu/spelling_menu_observer.cc to generate the suggestion list on demand when context menu action is invoked. Co-authored-by: David Sanders <dsanders11@ucsbalum.com> * fixup! fix: empty suggestions with windows platform checker * fixup! fix: empty suggestions with windows platform checker * revert: 6078344: Code Health: Clean up stale MacWebContentsOcclusion | https://chromium-review.googlesource.com/c/chromium/src/+/6078344 * Revert "revert: 6078344: Code Health: Clean up stale MacWebContentsOcclusion | https://chromium-review.googlesource.com/c/chromium/src/+/6078344" This reverts commit 9cacda452ed5a072351e8f5a35b009d91843a08c. * chore: bump to 133.0.6920.0, update patches * Revert "6078344: Code Health: Clean up stale MacWebContentsOcclusion" Refs: https://chromium-review.googlesource.com/c/chromium/src/+/6078344 * fixup! Update PdfViewer Save File Picker to use showSaveFilePicker. --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: deepak1556 <hop2deep@gmail.com> Co-authored-by: David Sanders <dsanders11@ucsbalum.com> Co-authored-by: Keeley Hammond <khammond@slack-corp.com>
2025-01-10 10:52:34 -06:00
}
- // Calling DefWindowProc is only necessary if there's a system frame being
- // drawn. Otherwise it can draw an incorrect title bar and cause visual
- // corruption.
- if (!delegate_->HasFrame() ||
+ // If the window is translucent, it may have the Mica background.
+ // In that case, it's necessary to call |DefWindowProc|, but we can
+ // pass -1 in the lParam to prevent any non-client area elements from
+ // being displayed.
+ if ((!delegate_->HasFrame() && !is_translucent_) ||
delegate_->GetFrameMode() == FrameMode::CUSTOM_DRAWN) {
SetMsgHandled(TRUE);
return TRUE;
}
return DefWindowProcWithRedrawLock(WM_NCACTIVATE, paint_as_active || active,
- 0);
+ delegate_->HasFrame() ? 0 : -1);
}
LRESULT HWNDMessageHandler::OnNCCalcSize(BOOL mode, LPARAM l_param) {