* chore: bump node in DEPS to v22.14.0 * src: move more crypto impl detail to ncrypto dep https://github.com/nodejs/node/pull/56421 * test: move crypto related common utilities in common/crypto https://github.com/nodejs/node/pull/56714 * module: add findPackageJSON util https://github.com/nodejs/node/pull/55412 * module: mark evaluation rejection in require(esm) as handled https://github.com/nodejs/node/pull/56122 * chore: fixup patch indices * deps: move inspector_protocol to deps https://github.com/nodejs/node/pull/56649 * fixup! src: move more crypto impl detail to ncrypto dep * fixup! deps: move inspector_protocol to deps * fixup! src: move more crypto impl detail to ncrypto dep * crypto: fix checkPrime crash with large buffers https://github.com/nodejs/node/pull/56559 * tls: fix error stack conversion in cryptoErrorListToException() https://github.com/nodejs/node/pull/56554 * module: add findPackageJSON util https://github.com/nodejs/node/pull/55412 Our revert of native legacyMainResolve makes this very difficult to make work, so disable for now. * lib: add typescript support to STDIN eval https://github.com/nodejs/node/pull/56359 --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
		
			
				
	
	
		
			48 lines
		
	
	
	
		
			2.4 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
	
		
			2.4 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 | 
						|
From: Raymond Zhao <7199958+rzhao271@users.noreply.github.com>
 | 
						|
Date: Wed, 17 Aug 2022 13:49:40 -0700
 | 
						|
Subject: fix: Adjust caption-removing style call
 | 
						|
 | 
						|
There is a SetWindowLong call that removes WS_CAPTION for frameless
 | 
						|
windows, but Electron uses WS_CAPTION even for frameless windows,
 | 
						|
unless they are transparent.
 | 
						|
 | 
						|
Changing this call only affects frameless windows, and it fixes
 | 
						|
a visual glitch where they showed a Windows 7 style frame
 | 
						|
during startup.
 | 
						|
 | 
						|
The if statement was originally introduced by
 | 
						|
https://codereview.chromium.org/9372053/, and it was there to fix
 | 
						|
a visual glitch with the close button showing up during startup
 | 
						|
or resizing, but Electron does not seem to run into that issue
 | 
						|
for opaque frameless windows even with that block commented out.
 | 
						|
 | 
						|
diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc
 | 
						|
index 759f00dd4e674d1dfca690b82e6e1820900ebf0c..9888ac709c51cd30228e3bca6915f7d89071cb83 100644
 | 
						|
--- a/ui/views/win/hwnd_message_handler.cc
 | 
						|
+++ b/ui/views/win/hwnd_message_handler.cc
 | 
						|
@@ -1786,7 +1786,23 @@ LRESULT HWNDMessageHandler::OnCreate(CREATESTRUCT* create_struct) {
 | 
						|
   SendMessage(hwnd(), WM_CHANGEUISTATE, MAKELPARAM(UIS_CLEAR, UISF_HIDEFOCUS),
 | 
						|
               0);
 | 
						|
 
 | 
						|
-  if (!delegate_->HasFrame()) {
 | 
						|
+  LONG is_popup =
 | 
						|
+      GetWindowLong(hwnd(), GWL_STYLE) & static_cast<LONG>(WS_POPUP);
 | 
						|
+
 | 
						|
+  // For transparent windows, Electron removes the WS_CAPTION style,
 | 
						|
+  // so we continue to remove it here. If we didn't, an opaque rectangle
 | 
						|
+  // would show up.
 | 
						|
+  // For non-transparent windows, Electron keeps the WS_CAPTION style,
 | 
						|
+  // so we don't remove it in that case. If we did, a Windows 7 frame
 | 
						|
+  // would show up.
 | 
						|
+  // We also need this block for frameless popup windows. When the user opens
 | 
						|
+  // a dropdown in an Electron app, the internal popup menu from
 | 
						|
+  // third_party/blink/renderer/core/html/forms/internal_popup_menu.h
 | 
						|
+  // is rendered. That menu is actually an HTML page inside of a frameless popup window.
 | 
						|
+  // A new popup window is created every time the user opens the dropdown,
 | 
						|
+  // and this code path is run. The code block below runs SendFrameChanged,
 | 
						|
+  // which gives the dropdown options the proper layout.
 | 
						|
+  if (!delegate_->HasFrame() && (is_translucent_ || is_popup)) {
 | 
						|
     SetWindowLong(hwnd(), GWL_STYLE,
 | 
						|
                   GetWindowLong(hwnd(), GWL_STYLE) & ~WS_CAPTION);
 | 
						|
     SendFrameChanged();
 |