Merge pull request #6 from KapiX/tabview-fix
Fix crashes and mismatched tabs in TabView.
This commit is contained in:
@@ -392,7 +392,7 @@ int YabInterface::CloseWindow(const char* view)
|
|||||||
{
|
{
|
||||||
YabView *t = (YabView*)((YabTabView*)child)->TabAt(i)->View();
|
YabView *t = (YabView*)((YabTabView*)child)->TabAt(i)->View();
|
||||||
RemoveView(t);
|
RemoveView(t);
|
||||||
viewList->DelView(t->Name());
|
viewList->DelView(t->NameForTabView());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(is_kind_of(child, YabBitmapView))
|
if(is_kind_of(child, YabBitmapView))
|
||||||
@@ -409,7 +409,7 @@ int YabInterface::CloseWindow(const char* view)
|
|||||||
{
|
{
|
||||||
YabView *t = (YabView*)((YabTabView*)subchild)->TabAt(i)->View();
|
YabView *t = (YabView*)((YabTabView*)subchild)->TabAt(i)->View();
|
||||||
RemoveView(t);
|
RemoveView(t);
|
||||||
viewList->DelView(t->Name());
|
viewList->DelView(t->NameForTabView());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(viewList->GetView(subchild->Name()))
|
if(viewList->GetView(subchild->Name()))
|
||||||
@@ -3385,7 +3385,7 @@ void YabInterface::WindowClear(const char* window)
|
|||||||
{
|
{
|
||||||
YabView *t = (YabView*)((YabTabView*)child)->TabAt(i)->View();
|
YabView *t = (YabView*)((YabTabView*)child)->TabAt(i)->View();
|
||||||
RemoveView(t);
|
RemoveView(t);
|
||||||
viewList->DelView(t->Name());
|
viewList->DelView(t->NameForTabView());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(is_kind_of(child, YabBitmapView))
|
if(is_kind_of(child, YabBitmapView))
|
||||||
@@ -3400,7 +3400,7 @@ void YabInterface::WindowClear(const char* window)
|
|||||||
{
|
{
|
||||||
YabView *t = (YabView*)((YabTabView*)subchild)->TabAt(i)->View();
|
YabView *t = (YabView*)((YabTabView*)subchild)->TabAt(i)->View();
|
||||||
RemoveView(t);
|
RemoveView(t);
|
||||||
viewList->DelView(t->Name());
|
viewList->DelView(t->NameForTabView());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(viewList->GetView(subchild->Name()))
|
if(viewList->GetView(subchild->Name()))
|
||||||
@@ -3465,7 +3465,7 @@ void YabInterface::RemoveView(BView *myView)
|
|||||||
{
|
{
|
||||||
YabView *t = (YabView*)((YabTabView*)child)->TabAt(i)->View();
|
YabView *t = (YabView*)((YabTabView*)child)->TabAt(i)->View();
|
||||||
RemoveView(t);
|
RemoveView(t);
|
||||||
viewList->DelView(t->Name());
|
viewList->DelView(t->NameForTabView());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(is_kind_of(child, YabBitmapView))
|
if(is_kind_of(child, YabBitmapView))
|
||||||
@@ -3480,7 +3480,7 @@ void YabInterface::RemoveView(BView *myView)
|
|||||||
{
|
{
|
||||||
YabView *t = (YabView*)((YabTabView*)subchild)->TabAt(i)->View();
|
YabView *t = (YabView*)((YabTabView*)subchild)->TabAt(i)->View();
|
||||||
RemoveView(t);
|
RemoveView(t);
|
||||||
viewList->DelView(t->Name());
|
viewList->DelView(t->NameForTabView());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(viewList->GetView(subchild->Name()))
|
if(viewList->GetView(subchild->Name()))
|
||||||
|
|||||||
@@ -48,6 +48,11 @@ YabView::YabView(BRect frame, const char *name, uint32 resizingMode, uint32 flag
|
|||||||
dropZone = false;
|
dropZone = false;
|
||||||
pressedKeys.SetTo("");
|
pressedKeys.SetTo("");
|
||||||
SetDrawingMode(B_OP_COPY);
|
SetDrawingMode(B_OP_COPY);
|
||||||
|
|
||||||
|
// BTab uses view Name() as displayed label storage, so SetLabel changes it
|
||||||
|
// this interferes with yab method of referencing views by name
|
||||||
|
// to be removed
|
||||||
|
nameWAForTabView = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
YabView::~YabView()
|
YabView::~YabView()
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ class YabView : public BView
|
|||||||
virtual void MouseDown(BPoint point);
|
virtual void MouseDown(BPoint point);
|
||||||
virtual void KeyUp(const char *bytes, int32 numBytes);
|
virtual void KeyUp(const char *bytes, int32 numBytes);
|
||||||
virtual void KeyDown(const char *bytes, int32 numBytes);
|
virtual void KeyDown(const char *bytes, int32 numBytes);
|
||||||
|
const char* NameForTabView() { return nameWAForTabView; }
|
||||||
BList *drawList;
|
BList *drawList;
|
||||||
int mouseMovedInfo;
|
int mouseMovedInfo;
|
||||||
int mouseStateInfo;
|
int mouseStateInfo;
|
||||||
@@ -39,6 +40,8 @@ class YabView : public BView
|
|||||||
BString pressedKeys;
|
BString pressedKeys;
|
||||||
private:
|
private:
|
||||||
int prevMouseStateInfo;
|
int prevMouseStateInfo;
|
||||||
|
// TODO: revisit at a later time, more info in constructor
|
||||||
|
BString nameWAForTabView;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user