mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 17:12:43 +00:00 
			
		
		
		
	WindowServer: don't send resize on resolution change unless needed
fixes #2575 The extra ResizeEvent would be handled after on_rect_change, and would reset the size of main_widget to what it was before the resize. Bonus: Less unnecessary events.
This commit is contained in:
		
							parent
							
								
									951a429268
								
							
						
					
					
						commit
						f833362536
					
				
					 2 changed files with 12 additions and 5 deletions
				
			
		|  | @ -520,11 +520,20 @@ void Window::recalculate_rect() | |||
|         return; | ||||
| 
 | ||||
|     auto old_rect = m_rect; | ||||
|     if (m_tiled != WindowTileType::None) | ||||
|     bool send_event = true; | ||||
|     if (m_tiled != WindowTileType::None) { | ||||
|         set_rect(tiled_rect(m_tiled)); | ||||
|     else if (is_maximized()) | ||||
|     } else if (is_maximized()) { | ||||
|         set_rect(WindowManager::the().maximized_window_rect(*this)); | ||||
|     Core::EventLoop::current().post_event(*this, make<ResizeEvent>(old_rect, m_rect)); | ||||
|     } else if (type() == WindowType::Desktop) { | ||||
|         set_rect(WindowManager::the().desktop_rect()); | ||||
|     } else { | ||||
|         send_event = false; | ||||
|     } | ||||
| 
 | ||||
|     if (send_event) { | ||||
|         Core::EventLoop::current().post_event(*this, make<ResizeEvent>(old_rect, m_rect)); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| void Window::add_child_window(Window& child_window) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Peter Elliott
						Peter Elliott