when no input method is found but the replicant was loaded, we now unload it
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25330 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
3b41ad8606
commit
f27f494cb2
@ -476,6 +476,13 @@ AddOnManager::RegisterMethod(BInputServerMethod* method, const entry_ref& ref,
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
AddOnManager::UnloadReplicant()
|
||||
{
|
||||
BDeskbar().RemoveItem(REPLICANT_CTL_NAME);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
AddOnManager::LoadReplicant()
|
||||
{
|
||||
@ -756,6 +763,12 @@ status_t
|
||||
AddOnManager::HandleMethodReplicant(BMessage* message, BMessage* reply)
|
||||
{
|
||||
CALLED();
|
||||
|
||||
if (InputServer::gInputMethodList.CountItems() == 0) {
|
||||
UnloadReplicant();
|
||||
return B_OK;
|
||||
}
|
||||
|
||||
LoadReplicant();
|
||||
|
||||
BAutolock lock(InputServer::gInputMethodListLocker);
|
||||
|
@ -51,6 +51,7 @@ class AddOnManager : public BLooper {
|
||||
status_t HandleNodeMonitor(BMessage*);
|
||||
|
||||
void LoadReplicant();
|
||||
void UnloadReplicant();
|
||||
int32 GetReplicantAt(BMessenger target, int32 index) const;
|
||||
status_t GetReplicantName(BMessenger target, int32 uid, BMessage *reply) const;
|
||||
status_t GetReplicantView(BMessenger target, int32 uid, BMessage *reply) const;
|
||||
|
Loading…
Reference in New Issue
Block a user