Ticket #3634: BeMenu.cpp.diff

File BeMenu.cpp.diff, 1017 bytes (added by jonas.kirilla, 15 years ago)

BeMenu.cpp.diff

  • src/apps/deskbar/BeMenu.cpp

     
    6161    public:
    6262        DeskbarMountMenu(const char *name);
    6363        virtual bool AddDynamicItem(add_state s);
     64        static int32 MountMenuFiller(void *arg);
     65    private:
     66        add_state fAddState;
    6467};
    6568
    6669#endif
     
    730733bool
    731734DeskbarMountMenu::AddDynamicItem(add_state s)
    732735{
    733     BPrivate::MountMenu::AddDynamicItem(s);
     736    fAddState = s;
    734737
    735     SetTargetForItems(BMessenger(kTrackerSignature));
     738    thread_id thread = spawn_thread(MountMenuFiller,
     739        "MountMenuFiller", B_LOW_PRIORITY, this);
     740    resume_thread(thread);
    736741
    737742    return false;
    738743}
    739744
     745int32
     746DeskbarMountMenu::MountMenuFiller(void* arg)
     747{
     748    DeskbarMountMenu *mountMenu = (DeskbarMountMenu *)arg;
     749    mountMenu->BPrivate::MountMenu::AddDynamicItem(mountMenu->fAddState);
     750    mountMenu->SetTargetForItems(BMessenger(kTrackerSignature));
     751
     752    return B_OK;
     753}
     754
    740755#endif