mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 13:22:43 +00:00 
			
		
		
		
	 0d4fd4e2a6
			
		
	
	
		0d4fd4e2a6
		
	
	
	
	
		
			
			with the RenderAbove WindowMode. This mode will ensure child windows always draw above their parents, even when focus is lost. RenderAbove modals are automatically themed the same as the old ToolWindows. Fixes ToolWindows rendering above ALL normal windows, regardless of parent. We can't rely on WindowType to create these sort of effects because of WindowManager's strict display hierarchy.
		
			
				
	
	
		
			26 lines
		
	
	
	
		
			922 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
	
		
			922 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  * Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org>
 | |
|  * Copyright (c) 2021, sin-ack <sin-ack@protonmail.com>
 | |
|  *
 | |
|  * SPDX-License-Identifier: BSD-2-Clause
 | |
|  */
 | |
| 
 | |
| #include "Menubar.h"
 | |
| #include "WindowManager.h"
 | |
| 
 | |
| namespace WindowServer {
 | |
| 
 | |
| void Menubar::layout_menu(Menu& menu, Gfx::IntRect window_rect)
 | |
| {
 | |
|     // FIXME: Maybe move this to the theming system?
 | |
|     static constexpr auto menubar_menu_margin = 14;
 | |
| 
 | |
|     auto& wm = WindowManager::the();
 | |
|     auto menubar_rect = Gfx::WindowTheme::current().menubar_rect(Gfx::WindowTheme::WindowType::Normal, Gfx::WindowTheme::WindowMode::Other, window_rect, wm.palette(), 1);
 | |
| 
 | |
|     int text_width = wm.font().width(Gfx::parse_ampersand_string(menu.name()));
 | |
|     menu.set_rect_in_window_menubar({ m_next_menu_location.x(), 0, text_width + menubar_menu_margin, menubar_rect.height() });
 | |
|     m_next_menu_location.translate_by(menu.rect_in_window_menubar().width(), 0);
 | |
| }
 | |
| 
 | |
| }
 |