fix: cm initial size incorrect sometimes.

opt: linux can hide window when rustdesk core not ready.
This commit is contained in:
Kingtous 2022-09-26 17:56:32 +08:00
parent 0589f5ae9a
commit ed04ede830
3 changed files with 16 additions and 7 deletions

View File

@ -19,6 +19,8 @@ const int kMobileDefaultDisplayHeight = 1280;
const int kDesktopDefaultDisplayWidth = 1080; const int kDesktopDefaultDisplayWidth = 1080;
const int kDesktopDefaultDisplayHeight = 720; const int kDesktopDefaultDisplayHeight = 720;
const Size kConnectionManagerWindowSize = Size(300, 400);
/// [kDefaultScrollAmountMultiplier] indicates how many rows can be scrolled after a minimum scroll action of mouse /// [kDefaultScrollAmountMultiplier] indicates how many rows can be scrolled after a minimum scroll action of mouse
const kDefaultScrollAmountMultiplier = 5.0; const kDefaultScrollAmountMultiplier = 5.0;
const kDefaultScrollDuration = Duration(milliseconds: 50); const kDefaultScrollDuration = Duration(milliseconds: 50);

View File

@ -103,6 +103,7 @@ void runMainApp(bool startService) async {
restoreWindowPosition(WindowType.Main); restoreWindowPosition(WindowType.Main);
await windowManager.show(); await windowManager.show();
await windowManager.focus(); await windowManager.focus();
await windowManager.setOpacity(1);
}); });
} }
@ -190,8 +191,13 @@ void runPortForwardScreen(Map<String, dynamic> argument) async {
void runConnectionManagerScreen() async { void runConnectionManagerScreen() async {
// initialize window // initialize window
WindowOptions windowOptions = WindowOptions windowOptions =
getHiddenTitleBarWindowOptions(size: const Size(300, 400)); getHiddenTitleBarWindowOptions(size: kConnectionManagerWindowSize);
await initEnv(kAppTypeMain); // ensure initial window size to be changed
await windowManager.setSize(kConnectionManagerWindowSize);
await Future.wait([
windowManager.setAlignment(Alignment.topRight),
initEnv(kAppTypeMain)
]);
runApp(GetMaterialApp( runApp(GetMaterialApp(
debugShowCheckedModeBanner: false, debugShowCheckedModeBanner: false,
theme: MyTheme.lightTheme, theme: MyTheme.lightTheme,
@ -206,17 +212,17 @@ void runConnectionManagerScreen() async {
home: const DesktopServerPage(), home: const DesktopServerPage(),
builder: _keepScaleBuilder())); builder: _keepScaleBuilder()));
windowManager.waitUntilReadyToShow(windowOptions, () async { windowManager.waitUntilReadyToShow(windowOptions, () async {
await windowManager.setAlignment(Alignment.topRight); windowManager.show();
await windowManager.show(); windowManager.focus();
await windowManager.focus(); windowManager.setOpacity(1);
await windowManager.setAlignment(Alignment.topRight); // ensure windowManager.setAlignment(Alignment.topRight); // ensure
}); });
} }
WindowOptions getHiddenTitleBarWindowOptions({Size? size}) { WindowOptions getHiddenTitleBarWindowOptions({Size? size}) {
return WindowOptions( return WindowOptions(
size: size, size: size,
center: true, center: false,
backgroundColor: Colors.transparent, backgroundColor: Colors.transparent,
skipTaskbar: false, skipTaskbar: false,
titleBarStyle: TitleBarStyle.hidden, titleBarStyle: TitleBarStyle.hidden,

View File

@ -53,6 +53,7 @@ static void my_application_activate(GApplication* application) {
// bdw->setCustomFrame(true); // <-- add this line // bdw->setCustomFrame(true); // <-- add this line
gtk_window_set_default_size(window, 800, 600); // <-- comment this line gtk_window_set_default_size(window, 800, 600); // <-- comment this line
gtk_widget_show(GTK_WIDGET(window)); gtk_widget_show(GTK_WIDGET(window));
gtk_widget_set_opacity(GTK_WIDGET(window), 0);
g_autoptr(FlDartProject) project = fl_dart_project_new(); g_autoptr(FlDartProject) project = fl_dart_project_new();
fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments); fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments);