소스 검색

display server window position bug fix (#37323)

Thakee Nathees 5 년 전
부모
커밋
63a00aec68
3개의 변경된 파일12개의 추가작업 그리고 4개의 파일을 삭제
  1. 4 2
      platform/linuxbsd/display_server_x11.cpp
  2. 4 1
      platform/osx/display_server_osx.mm
  3. 4 1
      platform/windows/display_server_windows.cpp

+ 4 - 2
platform/linuxbsd/display_server_x11.cpp

@@ -3603,8 +3603,10 @@ DisplayServerX11::DisplayServerX11(const String &p_rendering_driver, WindowMode
 		}
 	}
 #endif
-
-	WindowID main_window = _create_window(p_mode, p_flags, Rect2i(Point2(), p_resolution));
+	Point2i window_position(
+			(screen_get_size(0).width - p_resolution.width) / 2,
+			(screen_get_size(0).height - p_resolution.height) / 2);
+	WindowID main_window = _create_window(p_mode, p_flags, Rect2i(window_position, p_resolution));
 	for (int i = 0; i < WINDOW_FLAG_MAX; i++) {
 		if (p_flags & (1 << i)) {
 			window_set_flag(WindowFlags(i), true, main_window);

+ 4 - 1
platform/osx/display_server_osx.mm

@@ -3524,7 +3524,10 @@ DisplayServerOSX::DisplayServerOSX(const String &p_rendering_driver, WindowMode
 	}
 #endif
 
-	WindowID main_window = _create_window(p_mode, Rect2i(Point2i(), p_resolution));
+	Point2i window_position(
+			(screen_get_size(0).width - p_resolution.width) / 2,
+			(screen_get_size(0).height - p_resolution.height) / 2);
+	WindowID main_window = _create_window(p_mode, Rect2i(window_position, p_resolution));
 	for (int i = 0; i < WINDOW_FLAG_MAX; i++) {
 		if (p_flags & (1 << i)) {
 			window_set_flag(WindowFlags(i), true, main_window);

+ 4 - 1
platform/windows/display_server_windows.cpp

@@ -2897,7 +2897,10 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win
 		}
 	}
 #endif
-	WindowID main_window = _create_window(p_mode, 0, Rect2i(Point2i(), p_resolution));
+	Point2i window_position(
+			(screen_get_size(0).width - p_resolution.width) / 2,
+			(screen_get_size(0).height - p_resolution.height) / 2);
+	WindowID main_window = _create_window(p_mode, 0, Rect2i(window_position, p_resolution));
 	for (int i = 0; i < WINDOW_FLAG_MAX; i++) {
 		if (p_flags & (1 << i)) {
 			window_set_flag(WindowFlags(i), true, main_window);