X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fxwt%2FSpecialBoxProperty.java;h=cb64849031f8dc13ecde8ddb3deb9f6b54fdd3a2;hb=97895aee36c586b3648398c4d26c4ff954be5ffe;hp=52fc331adf09c2aa4c2b4b68303503a762a5c8d2;hpb=5d41517a1e4ee5201568531809835f663d00be3b;p=org.ibex.core.git diff --git a/src/org/xwt/SpecialBoxProperty.java b/src/org/xwt/SpecialBoxProperty.java index 52fc331..cb64849 100644 --- a/src/org/xwt/SpecialBoxProperty.java +++ b/src/org/xwt/SpecialBoxProperty.java @@ -180,9 +180,12 @@ class SpecialBoxProperty { public Object get(Box b) { return b; } public void put(Box b, Object value) { if (value == null) b.remove(); - else if (value.equals("window")) Platform.createSurface(b, false, true); - else if (value.equals("frame")) Platform.createSurface(b, true, true); - else if (Log.on) Log.log(this, "put invalid value to 'thisbox' property: " + value); + else if (value.equals("window") || value.equals("frame")) { + if (b.redirect != b && Log.on) + Log.log(this, "WARNING: you have created a surface whose root box's redirect is not itself " + + "-- this isn't usually a good idea"); + Platform.createSurface(b, value.equals("frame"), true); + } else if (Log.on) Log.log(this, "put invalid value to 'thisbox' property: " + value); } }); @@ -239,6 +242,15 @@ class SpecialBoxProperty { } } }); + specialBoxProperties.put("fixedaspect", new SpecialBoxProperty() { + public Object get(Box b) { return b.sizetoimage ? Boolean.TRUE : Boolean.FALSE; } + public void put(Box b, Object value) { + boolean newval = stob(value); + if (newval == b.fixedaspect) return; + b.fixedaspect = newval; + b.dirty(); + } }); + specialBoxProperties.put("shrink", new SpecialBoxProperty() { public Object get(Box b) { return (b.vshrink && b.hshrink) ? Boolean.TRUE : Boolean.FALSE; } public void put(Box b, Object value) { @@ -466,7 +478,7 @@ class SpecialBoxProperty { public void put(String name, Box b, Object value) { if (b.surface == null) return; if (b.getParent() == null) { - if (b.surface.boxContainingMouse.getParent() != null) + if (b.surface.boxContainingMouse != null && b.surface.boxContainingMouse.getParent() != null) b.surface.boxContainingMouse.put(name, b.surface.boxContainingMouse, value); } else { // check siblings