mirror of
				https://github.com/kunkundi/crossdesk.git
				synced 2025-10-26 20:25:34 +08:00 
			
		
		
		
	[feat] use SDL_WINDOW_HIDDEN to delay showing the main window to avoid black window during initialization
This commit is contained in:
		| @@ -408,7 +408,8 @@ int Render::CreateMainWindow() { | ||||
|   ImGui::SetCurrentContext(main_ctx_); | ||||
|  | ||||
|   SDL_WindowFlags window_flags = | ||||
|       (SDL_WindowFlags)(SDL_WINDOW_ALLOW_HIGHDPI | SDL_WINDOW_BORDERLESS); | ||||
|       (SDL_WindowFlags)(SDL_WINDOW_ALLOW_HIGHDPI | SDL_WINDOW_BORDERLESS | | ||||
|                         SDL_WINDOW_HIDDEN); | ||||
|   main_window_ = SDL_CreateWindow( | ||||
|       "Remote Desk", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, | ||||
|       main_window_width_default_, main_window_height_default_, window_flags); | ||||
| @@ -516,28 +517,13 @@ int Render::SetupFontAndStyle(bool is_main_window) { | ||||
|   // Load Fonts | ||||
|   ImFontConfig config; | ||||
|   config.FontDataOwnedByAtlas = false; | ||||
|   (is_main_window ? font_size_32_main_ : font_size_32_sub_) = | ||||
|       io.Fonts->AddFontFromMemoryTTF( | ||||
|           OPPOSans_Regular_ttf, sizeof(OPPOSans_Regular_ttf), 32.0f, &config, | ||||
|           io.Fonts->GetGlyphRangesChineseFull()); | ||||
|   io.Fonts->AddFontFromMemoryTTF(OPPOSans_Regular_ttf, OPPOSans_Regular_ttf_len, | ||||
|                                  32.0f, &config, | ||||
|                                  io.Fonts->GetGlyphRangesChineseFull()); | ||||
|   config.MergeMode = true; | ||||
|   (is_main_window ? font_size_25_main_ : font_size_25_sub_) = | ||||
|       io.Fonts->AddFontFromMemoryTTF( | ||||
|           OPPOSans_Regular_ttf, sizeof(OPPOSans_Regular_ttf), 25.0f, &config, | ||||
|           io.Fonts->GetGlyphRangesChineseFull()); | ||||
|   (is_main_window ? font_size_16_main_ : font_size_16_sub_) = | ||||
|       io.Fonts->AddFontFromMemoryTTF( | ||||
|           OPPOSans_Regular_ttf, sizeof(OPPOSans_Regular_ttf), 16.0f, &config, | ||||
|           io.Fonts->GetGlyphRangesChineseFull()); | ||||
|  | ||||
|   static const ImWchar icon_ranges[] = {ICON_MIN_FA, ICON_MAX_FA, 0}; | ||||
|   (is_main_window ? icon_size_30_main_ : icon_size_30_sub_) = | ||||
|       io.Fonts->AddFontFromMemoryTTF(fa_solid_900_ttf, fa_solid_900_ttf_len, | ||||
|                                      30.0f, &config, icon_ranges); | ||||
|   (is_main_window ? icon_size_15_main_ : icon_size_15_sub_) = | ||||
|       io.Fonts->AddFontFromMemoryTTF(fa_solid_900_ttf, fa_solid_900_ttf_len, | ||||
|                                      15.0f, &config, icon_ranges); | ||||
|  | ||||
|   io.Fonts->AddFontFromMemoryTTF(fa_solid_900_ttf, fa_solid_900_ttf_len, 30.0f, | ||||
|                                  &config, icon_ranges); | ||||
|   io.Fonts->Build(); | ||||
|   ImGui::StyleColorsLight(); | ||||
|  | ||||
| @@ -930,9 +916,9 @@ int Render::Run() { | ||||
|     } | ||||
|  | ||||
|     if (reload_recent_connections_ && main_renderer_) { | ||||
|       // loal recent connection thumbnails after saving for 1 second | ||||
|       // loal recent connection thumbnails after saving for 0.5 second | ||||
|       uint32_t now_time = SDL_GetTicks(); | ||||
|       if (now_time - recent_connection_image_save_time_ >= 1000) { | ||||
|       if (now_time - recent_connection_image_save_time_ >= 500) { | ||||
|         int ret = thumbnail_->LoadThumbnail( | ||||
|             main_renderer_, recent_connection_textures_, | ||||
|             &recent_connection_image_width_, &recent_connection_image_height_); | ||||
| @@ -959,6 +945,10 @@ int Render::Run() { | ||||
|  | ||||
|     DrawMainWindow(); | ||||
|  | ||||
|     if (SDL_WINDOW_HIDDEN & SDL_GetWindowFlags(main_window_)) { | ||||
|       SDL_ShowWindow(main_window_); | ||||
|     } | ||||
|  | ||||
|     if (stream_window_inited_) { | ||||
|       DrawStreamWindow(); | ||||
|     } | ||||
|   | ||||
| @@ -193,7 +193,7 @@ class Render { | ||||
|   int main_window_text_y_padding_ = 10; | ||||
|   int main_child_window_x_padding_ = 27; | ||||
|   int main_child_window_y_padding_ = 45; | ||||
|   int status_bar_height_ = 20; | ||||
|   int status_bar_height_ = 22; | ||||
|   int connection_status_window_width_ = 200; | ||||
|   int connection_status_window_height_ = 150; | ||||
|   int notification_window_width_ = 200; | ||||
| @@ -353,19 +353,6 @@ class Render { | ||||
|  | ||||
|  private: | ||||
|   bool settings_window_pos_reset_ = true; | ||||
|  | ||||
|  private: | ||||
|   ImFont *font_size_32_main_ = nullptr; | ||||
|   ImFont *font_size_25_main_ = nullptr; | ||||
|   ImFont *font_size_16_main_ = nullptr; | ||||
|   ImFont *font_size_32_sub_ = nullptr; | ||||
|   ImFont *font_size_25_sub_ = nullptr; | ||||
|   ImFont *font_size_16_sub_ = nullptr; | ||||
|  | ||||
|   ImFont *icon_size_30_main_ = nullptr; | ||||
|   ImFont *icon_size_15_main_ = nullptr; | ||||
|   ImFont *icon_size_30_sub_ = nullptr; | ||||
|   ImFont *icon_size_15_sub_ = nullptr; | ||||
| }; | ||||
|  | ||||
| #endif | ||||
		Reference in New Issue
	
	Block a user