Hide launcher window when child application starts
This commit is contained in:
parent
c852b74582
commit
d2bebd39a6
1 changed files with 19 additions and 2 deletions
|
|
@ -300,6 +300,7 @@ impl LauncherApp {
|
||||||
// Set up state change handler
|
// Set up state change handler
|
||||||
let stack_weak = stack.downgrade();
|
let stack_weak = stack.downgrade();
|
||||||
let grid_weak = grid.downgrade();
|
let grid_weak = grid.downgrade();
|
||||||
|
let window_weak = window.downgrade();
|
||||||
let error_label = error_view.1.clone();
|
let error_label = error_view.1.clone();
|
||||||
let session_label = session_view.1.clone();
|
let session_label = session_view.1.clone();
|
||||||
|
|
||||||
|
|
@ -316,12 +317,19 @@ impl LauncherApp {
|
||||||
};
|
};
|
||||||
|
|
||||||
let grid = grid_weak.upgrade();
|
let grid = grid_weak.upgrade();
|
||||||
|
let window = window_weak.upgrade();
|
||||||
|
|
||||||
match state {
|
match state {
|
||||||
LauncherState::Disconnected => {
|
LauncherState::Disconnected => {
|
||||||
|
if let Some(ref win) = window {
|
||||||
|
win.set_visible(true);
|
||||||
|
}
|
||||||
stack.set_visible_child_name("disconnected");
|
stack.set_visible_child_name("disconnected");
|
||||||
}
|
}
|
||||||
LauncherState::Connecting => {
|
LauncherState::Connecting => {
|
||||||
|
if let Some(ref win) = window {
|
||||||
|
win.set_visible(true);
|
||||||
|
}
|
||||||
stack.set_visible_child_name("loading");
|
stack.set_visible_child_name("loading");
|
||||||
}
|
}
|
||||||
LauncherState::Idle { entries } => {
|
LauncherState::Idle { entries } => {
|
||||||
|
|
@ -329,9 +337,12 @@ impl LauncherApp {
|
||||||
grid.set_entries(entries);
|
grid.set_entries(entries);
|
||||||
grid.set_tiles_sensitive(true);
|
grid.set_tiles_sensitive(true);
|
||||||
}
|
}
|
||||||
|
if let Some(ref win) = window {
|
||||||
|
win.set_visible(true);
|
||||||
|
}
|
||||||
stack.set_visible_child_name("grid");
|
stack.set_visible_child_name("grid");
|
||||||
}
|
}
|
||||||
LauncherState::Launching { entry_id } => {
|
LauncherState::Launching { entry_id: _ } => {
|
||||||
if let Some(grid) = grid {
|
if let Some(grid) = grid {
|
||||||
grid.set_tiles_sensitive(false);
|
grid.set_tiles_sensitive(false);
|
||||||
}
|
}
|
||||||
|
|
@ -343,9 +354,15 @@ impl LauncherApp {
|
||||||
time_remaining: _,
|
time_remaining: _,
|
||||||
} => {
|
} => {
|
||||||
session_label.set_text(&format!("Running: {}", entry_label));
|
session_label.set_text(&format!("Running: {}", entry_label));
|
||||||
stack.set_visible_child_name("session");
|
// Hide the launcher window so the application can be seen
|
||||||
|
if let Some(ref win) = window {
|
||||||
|
win.set_visible(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
LauncherState::Error { message } => {
|
LauncherState::Error { message } => {
|
||||||
|
if let Some(ref win) = window {
|
||||||
|
win.set_visible(true);
|
||||||
|
}
|
||||||
error_label.set_text(&message);
|
error_label.set_text(&message);
|
||||||
stack.set_visible_child_name("error");
|
stack.set_visible_child_name("error");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue