mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 11:32:43 +00:00 
			
		
		
		
	LibGfx+Everywhere: Change Gfx::Rect to be endpoint exclusive
				
					
				
			Previously, calling `.right()` on a `Gfx::Rect` would return the last column's coordinate still inside the rectangle, or `left + width - 1`. This is called 'endpoint inclusive' and does not make a lot of sense for `Gfx::Rect<float>` where a rectangle of width 5 at position (0, 0) would return 4 as its right side. This same problem exists for `.bottom()`. This changes `Gfx::Rect` to be endpoint exclusive, which gives us the nice property that `width = right - left` and `height = bottom - top`. It enables us to treat `Gfx::Rect<int>` and `Gfx::Rect<float>` exactly the same. All users of `Gfx::Rect` have been updated accordingly.
This commit is contained in:
		
							parent
							
								
									b7f4363791
								
							
						
					
					
						commit
						f391ccfe53
					
				
					 88 changed files with 524 additions and 518 deletions
				
			
		|  | @ -98,7 +98,7 @@ void MenuManager::event(Core::Event& event) | |||
|                     else { | ||||
|                         auto* target_menu = previous_menu(m_current_menu); | ||||
|                         if (target_menu) { | ||||
|                             target_menu->ensure_menu_window(target_menu->rect_in_window_menubar().bottom_left().translated(wm.window_with_active_menu()->frame().rect().location()).translated(wm.window_with_active_menu()->frame().menubar_rect().location())); | ||||
|                             target_menu->ensure_menu_window(target_menu->rect_in_window_menubar().bottom_left().moved_up(1).translated(wm.window_with_active_menu()->frame().rect().location()).translated(wm.window_with_active_menu()->frame().menubar_rect().location())); | ||||
|                             open_menu(*target_menu); | ||||
|                             wm.window_with_active_menu()->invalidate_menubar(); | ||||
|                         } | ||||
|  | @ -115,7 +115,7 @@ void MenuManager::event(Core::Event& event) | |||
|                 else if (m_open_menu_stack.size() <= 1 && wm.window_with_active_menu()) { | ||||
|                     auto* target_menu = next_menu(m_current_menu); | ||||
|                     if (target_menu) { | ||||
|                         target_menu->ensure_menu_window(target_menu->rect_in_window_menubar().bottom_left().translated(wm.window_with_active_menu()->frame().rect().location()).translated(wm.window_with_active_menu()->frame().menubar_rect().location())); | ||||
|                         target_menu->ensure_menu_window(target_menu->rect_in_window_menubar().bottom_left().moved_up(1).translated(wm.window_with_active_menu()->frame().rect().location()).translated(wm.window_with_active_menu()->frame().menubar_rect().location())); | ||||
|                         open_menu(*target_menu); | ||||
|                         wm.window_with_active_menu()->invalidate_menubar(); | ||||
|                         close_everyone_not_in_lineage(*target_menu); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Jelle Raaijmakers
						Jelle Raaijmakers