aboutsummaryrefslogtreecommitdiffstatsci
path: root/src/Interface.cs
diff options
context:
space:
mode:
authorj-p <jp.bruyere@live.be>2016-09-01 13:22:56 +0200
committerGitHub <noreply@github.com>2016-09-01 13:22:56 +0200
commit4b97ce36188afb1b08c1d5836f57fa73a1adab6a (patch)
tree337845f6e2156c6e408b5f7f1ce9d8e5710036aa /src/Interface.cs
parentd4bc4a1aba5df1d5a93474259c5d5a52f993d475 (diff)
parent1a08acb6ec65508b5247b554cda403a9e51d4eb4 (diff)
Merge pull request #29 from jpbruyere/TemplatedGroup
Templated group, proportional splitter, menus
Diffstat (limited to 'src/Interface.cs')
-rw-r--r--src/Interface.cs36
1 files changed, 23 insertions, 13 deletions
diff --git a/src/Interface.cs b/src/Interface.cs
index 0d97685e..d01d2e8f 100644
--- a/src/Interface.cs
+++ b/src/Interface.cs
@@ -467,7 +467,7 @@ namespace Crow
g.Parent = this;
GraphicTree.Insert (0, g);
g.RegisteredLayoutings = LayoutingType.None;
- g.RegisterForLayouting (LayoutingType.Sizing);
+ g.RegisterForLayouting (LayoutingType.Sizing | LayoutingType.ArrangeChildren);
}
public void DeleteWidget(GraphicObject g)
{
@@ -572,7 +572,15 @@ namespace Crow
int i = 0;
while (i < idxhw) {
if (GraphicTree [i].MouseIsIn (e.Position)) {
- HoverWidget.onMouseLeave (this, e);
+ while (HoverWidget != null) {
+ if (HoverWidget is Popper) {
+ if ((HoverWidget as Popper).Content == GraphicTree[i])
+ break;
+ }
+ HoverWidget.onMouseLeave (HoverWidget, e);
+ HoverWidget = HoverWidget.LogicalParent as GraphicObject;
+ }
+
GraphicTree [i].checkHoverWidget (e);
return true;
}
@@ -585,27 +593,29 @@ namespace Crow
HoverWidget.checkHoverWidget (e);
return true;
} else {
- HoverWidget.onMouseLeave (this, e);
+ HoverWidget.onMouseLeave (HoverWidget, e);
//seek upward from last focused graph obj's
- while (HoverWidget.Parent as GraphicObject != null) {
- HoverWidget = HoverWidget.Parent as GraphicObject;
+ while (HoverWidget.LogicalParent as GraphicObject != null) {
+ HoverWidget = HoverWidget.LogicalParent as GraphicObject;
if (HoverWidget.MouseIsIn (e.Position)) {
HoverWidget.checkHoverWidget (e);
return true;
} else
- HoverWidget.onMouseLeave (this, e);
+ HoverWidget.onMouseLeave (HoverWidget, e);
}
}
}
//top level graphic obj's parsing
- for (int i = 0; i < GraphicTree.Count; i++) {
- GraphicObject g = GraphicTree[i];
- if (g.MouseIsIn (e.Position)) {
- g.checkHoverWidget (e);
- if (g is Window)
- PutOnTop (g);
- return true;
+ lock (GraphicTree) {
+ for (int i = 0; i < GraphicTree.Count; i++) {
+ GraphicObject g = GraphicTree [i];
+ if (g.MouseIsIn (e.Position)) {
+ g.checkHoverWidget (e);
+ if (g is Window)
+ PutOnTop (g);
+ return true;
+ }
}
}
HoverWidget = null;