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:
@@ -476,6 +476,13 @@ AddOnManager::RegisterMethod(BInputServerMethod* method, const entry_ref& ref,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
AddOnManager::UnloadReplicant()
|
||||||
|
{
|
||||||
|
BDeskbar().RemoveItem(REPLICANT_CTL_NAME);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
AddOnManager::LoadReplicant()
|
AddOnManager::LoadReplicant()
|
||||||
{
|
{
|
||||||
@@ -756,6 +763,12 @@ status_t
|
|||||||
AddOnManager::HandleMethodReplicant(BMessage* message, BMessage* reply)
|
AddOnManager::HandleMethodReplicant(BMessage* message, BMessage* reply)
|
||||||
{
|
{
|
||||||
CALLED();
|
CALLED();
|
||||||
|
|
||||||
|
if (InputServer::gInputMethodList.CountItems() == 0) {
|
||||||
|
UnloadReplicant();
|
||||||
|
return B_OK;
|
||||||
|
}
|
||||||
|
|
||||||
LoadReplicant();
|
LoadReplicant();
|
||||||
|
|
||||||
BAutolock lock(InputServer::gInputMethodListLocker);
|
BAutolock lock(InputServer::gInputMethodListLocker);
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ class AddOnManager : public BLooper {
|
|||||||
status_t HandleNodeMonitor(BMessage*);
|
status_t HandleNodeMonitor(BMessage*);
|
||||||
|
|
||||||
void LoadReplicant();
|
void LoadReplicant();
|
||||||
|
void UnloadReplicant();
|
||||||
int32 GetReplicantAt(BMessenger target, int32 index) const;
|
int32 GetReplicantAt(BMessenger target, int32 index) const;
|
||||||
status_t GetReplicantName(BMessenger target, int32 uid, BMessage *reply) const;
|
status_t GetReplicantName(BMessenger target, int32 uid, BMessage *reply) const;
|
||||||
status_t GetReplicantView(BMessenger target, int32 uid, BMessage *reply) const;
|
status_t GetReplicantView(BMessenger target, int32 uid, BMessage *reply) const;
|
||||||
|
|||||||
Reference in New Issue
Block a user