mirror of
https://github.com/yuzu-emu/yuzu.git
synced 2024-12-27 12:50:06 +00:00
am: use WindowSystem to track library applets
This commit is contained in:
parent
c4a820f1c8
commit
4d471b67d5
@ -124,25 +124,14 @@ std::shared_ptr<ILibraryAppletAccessor> CreateGuestApplet(Core::System& system,
|
|||||||
applet->applet_id = applet_id;
|
applet->applet_id = applet_id;
|
||||||
applet->type = AppletType::LibraryApplet;
|
applet->type = AppletType::LibraryApplet;
|
||||||
applet->library_applet_mode = mode;
|
applet->library_applet_mode = mode;
|
||||||
|
applet->window_visible = mode != LibraryAppletMode::AllForegroundInitiallyHidden;
|
||||||
// Set focus state
|
|
||||||
switch (mode) {
|
|
||||||
case LibraryAppletMode::AllForeground:
|
|
||||||
case LibraryAppletMode::NoUi:
|
|
||||||
case LibraryAppletMode::PartialForeground:
|
|
||||||
case LibraryAppletMode::PartialForegroundIndirectDisplay:
|
|
||||||
applet->lifecycle_manager.SetFocusState(FocusState::InFocus);
|
|
||||||
applet->SetInteractibleLocked(true);
|
|
||||||
break;
|
|
||||||
case LibraryAppletMode::AllForegroundInitiallyHidden:
|
|
||||||
applet->lifecycle_manager.SetFocusState(FocusState::NotInFocus);
|
|
||||||
applet->SetInteractibleLocked(false);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
auto broker = std::make_shared<AppletDataBroker>(system);
|
auto broker = std::make_shared<AppletDataBroker>(system);
|
||||||
applet->caller_applet = caller_applet;
|
applet->caller_applet = caller_applet;
|
||||||
applet->caller_applet_broker = broker;
|
applet->caller_applet_broker = broker;
|
||||||
|
caller_applet->child_applets.push_back(applet);
|
||||||
|
|
||||||
|
window_system.TrackApplet(applet, false);
|
||||||
|
|
||||||
return std::make_shared<ILibraryAppletAccessor>(system, broker, applet);
|
return std::make_shared<ILibraryAppletAccessor>(system, broker, applet);
|
||||||
}
|
}
|
||||||
@ -165,6 +154,9 @@ std::shared_ptr<ILibraryAppletAccessor> CreateFrontendApplet(Core::System& syste
|
|||||||
applet->caller_applet = caller_applet;
|
applet->caller_applet = caller_applet;
|
||||||
applet->caller_applet_broker = storage;
|
applet->caller_applet_broker = storage;
|
||||||
applet->frontend = system.GetFrontendAppletHolder().GetApplet(applet, applet_id, mode);
|
applet->frontend = system.GetFrontendAppletHolder().GetApplet(applet, applet_id, mode);
|
||||||
|
caller_applet->child_applets.push_back(applet);
|
||||||
|
|
||||||
|
window_system.TrackApplet(applet, false);
|
||||||
|
|
||||||
return std::make_shared<ILibraryAppletAccessor>(system, storage, applet);
|
return std::make_shared<ILibraryAppletAccessor>(system, storage, applet);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user