fix: small changes and fixes for applet switching
This commit is contained in:
parent
3b568b61ba
commit
d7cdb5584c
@ -321,17 +321,17 @@ namespace Ryujinx.HLE.HOS.Applets
|
|||||||
{
|
{
|
||||||
lock (_homeMenu.Lock)
|
lock (_homeMenu.Lock)
|
||||||
{
|
{
|
||||||
_homeMenu.AppletState.PushUnorderedMessage(message);
|
|
||||||
if (message == AppletMessage.DetectShortPressingHomeButton)
|
if (message == AppletMessage.DetectShortPressingHomeButton)
|
||||||
{
|
{
|
||||||
foreach (var applet in _applets.Values)
|
foreach (var applet in _applets.Values)
|
||||||
{
|
{
|
||||||
if (applet != _homeMenu)
|
if (applet != _homeMenu && _foregroundRequestedApplet==applet)
|
||||||
{
|
{
|
||||||
applet.ProcessHandle.SetActivity(true);
|
applet.ProcessHandle.SetActivity(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
_homeMenu.AppletState.PushUnorderedMessage(message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.Sys
|
|||||||
{
|
{
|
||||||
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
Logger.Stub?.PrintStub(LogClass.ServiceAm);
|
||||||
context.Device.System.WindowSystem.RequestApplicationToGetForeground(_pid);
|
context.Device.System.WindowSystem.RequestApplicationToGetForeground(_pid);
|
||||||
|
context.Device.System.GetAppletState(_pid).SetFocusForce(true);
|
||||||
|
|
||||||
return ResultCode.Success;
|
return ResultCode.Success;
|
||||||
}
|
}
|
||||||
|
@ -442,16 +442,19 @@ namespace Ryujinx.HLE.Loaders.Processes
|
|||||||
|
|
||||||
// Register everything in arp service.
|
// Register everything in arp service.
|
||||||
device.System.ServiceTable.ArpWriter.AcquireRegistrar(out IRegistrar registrar);
|
device.System.ServiceTable.ArpWriter.AcquireRegistrar(out IRegistrar registrar);
|
||||||
registrar.SetApplicationControlProperty(MemoryMarshal.Cast<byte, Horizon.Sdk.Ns.ApplicationControlProperty>(applicationControlProperties.ByteSpan)[0]);
|
if (registrar != null)
|
||||||
// TODO: Handle Version and StorageId when it will be needed.
|
|
||||||
registrar.SetApplicationLaunchProperty(new ApplicationLaunchProperty()
|
|
||||||
{
|
{
|
||||||
ApplicationId = new Horizon.Sdk.Ncm.ApplicationId(programId),
|
registrar.SetApplicationControlProperty(MemoryMarshal.Cast<byte, Horizon.Sdk.Ns.ApplicationControlProperty>(applicationControlProperties.ByteSpan)[0]);
|
||||||
Version = 0x00,
|
// TODO: Handle Version and StorageId when it will be needed.
|
||||||
Storage = Horizon.Sdk.Ncm.StorageId.BuiltInUser,
|
registrar.SetApplicationLaunchProperty(new ApplicationLaunchProperty()
|
||||||
PatchStorage = Horizon.Sdk.Ncm.StorageId.None,
|
{
|
||||||
ApplicationKind = ApplicationKind.Application,
|
ApplicationId = new Horizon.Sdk.Ncm.ApplicationId(programId),
|
||||||
});
|
Version = 0x00,
|
||||||
|
Storage = Horizon.Sdk.Ncm.StorageId.BuiltInUser,
|
||||||
|
PatchStorage = Horizon.Sdk.Ncm.StorageId.None,
|
||||||
|
ApplicationKind = ApplicationKind.Application,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
device.System.ServiceTable.ArpReader.GetApplicationInstanceId(out ulong applicationInstanceId, process.Pid);
|
device.System.ServiceTable.ArpReader.GetApplicationInstanceId(out ulong applicationInstanceId, process.Pid);
|
||||||
device.System.ServiceTable.ArpWriter.AcquireApplicationProcessPropertyUpdater(out IUpdater updater, applicationInstanceId);
|
device.System.ServiceTable.ArpWriter.AcquireApplicationProcessPropertyUpdater(out IUpdater updater, applicationInstanceId);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user