Release Notes - OpenLaszlo - Version 4.9 - HTML format


  • [LPP-1905] - dataset src attribute can't be a once expression
  • [LPP-2655] - Drawview.arc is not whatwg compliant
  • [LPP-2912] - Bevels are wrong in edittext component
  • [LPP-3412] - <switch> also affects embedded datasets
  • [LPP-3725] - Canvas width and height with percentage values use window size - should use embedded iframe size
  • [LPP-4224] - cannot set Rate in kHz of Microphone
  • [LPP-4225] - Cannot set activityLevel to Microphone
  • [LPP-4259] - Documentation for "updateData" missing in "LzNode"
  • [LPP-5360] - Lose keyup event when using <command> to open new window ie7
  • [LPP-6131] - Compiler error when if at top level and script executes immediately
  • [LPP-6639] - The documentation for LzView is incorrect for onerror event
  • [LPP-6776] - ActionScript error in Browser Integration example, SWF9-specific
  • [LPP-7065] - reference: lz.DataProvider page problems
  • [LPP-7066] - reference: lz.DataRequest page problems
  • [LPP-7086] - SWF9 cannot print Function/method names
  • [LPP-7391] - LzTextSprite and LzInputTextSprite have no business processing init args from `construct`
  • [LPP-7632] - remove Components Guide from dguide, index, laszlo in 10
  • [LPP-8052] - Update Debugger section on finding Memory Leaks
  • [LPP-8188] - compiler cannot handle package names in method argument var type declarations

    Release Note: In is now possible to use package prefixes in type names when declaring variable, parameter, and return types. These type declarations are simply passed through to the platform back-end, which may enforce them, or may ignore them, depending on the platform's capabilities.

  • [LPP-8221] - Add documentation about inherited font attribute limitations
  • [LPP-8543] - History example in dguide is poorly formatted
  • [LPP-8546] - Dguide example on history integration doesn't work
  • [LPP-8700] - OL 4.7.X - DHTML - IE7 - Components - Sampler - Can NOT go back different parts of app using Shift + Tab
  • [LPP-8738] - auto-include detection broken by mixin implementation
  • [LPP-8739] - bug in lzsprite DHTML kernel when running LzPIX
  • [LPP-8742] - Cornerradius, borderwidth and bordercolor unreliable
  • [LPP-8781] - It is not possible to print drawview.getDisplayObject() into file (or printer) if initial view size was changed.
  • [LPP-8782] - lzhistory changes the title on reload in ie
  • [LPP-8802] - error when compiling binary library from lps components
  • [LPP-8803] - Cursor example fails to compile in SWF9
  • [LPP-8814] - resource gets wrong width when stretches equals width
  • [LPP-8840] - TestSuite example not working
  • [LPP-8862] - Bug in reading text scroll height value from callback in DHTML
  • [LPP-8905] - Cannot drag components (e.g., sliders) in mobile Safari
  • [LPP-8911] - fix incremental mode for lzc / swf10
  • [LPP-8943] - dguide: broken links in Chapter 16. Getting More from Components
  • [LPP-8965] - dguide: Chapter 3. OpenLaszlo for Designers, remove section 8. OpenLaszlo Components Design Guide
  • [LPP-8971] - Drawview is incorrectly printed when clip of wrapper-view is true
  • [LPP-8973] - developers/delegates.html Example 30.1
  • [LPP-8987] - Mac Firefox - No onmouseout event fires when mousing out of a view after clicking on it
  • [LPP-8999] - bug in compiling swf10 mixins
  • [LPP-9007] - Edittext is not locked while modaldialog is opened
  • [LPP-9027] - pattern attribute on text doesn't work as expected in trunk

    Release Note: The LZX `string` attribute type is no longer a synonym for `text` and `html`. The `string` type implies an ECMAScript String. Literal values assigned to attributes of that type will be interpreted as ECMAScript `String` literals, meaning that the ECMAScript single-character (\t, \n, etc.) and short (\xNN) and long (\uNNNN) escapes will be interpreted as defined in the ECMAScript standard. The `text` and `html` types imply XML content. Literal values assigned to attributes of that type will (continue to) be interpreted as verbatim text. ECMAScript escapes will not be interpreted. The `<text>/text` attribute is now declared to be of type `text`, to indicate that it represents HTML content, not an ECMAScript string. If you redeclare the `text` attribute in a subclass of `<text>` you should omit any type declaration as it is redundant. (If you had declared the type as `string`, the compiler will issue a warning.) At present `text` and `html` are still synonyms, but this is a bug. The intent is that `text` represents XML CDATA (with the implication that markup is _not_ interpreted), whereas `html` represents XML content (with the implication that markup _is_ interpreted). See LPP-1948.

  • [LPP-9054] - No visitor method for ASTClassIfDirective
  • [LPP-9059] - debugger eval broken in swf10
  • [LPP-9091] - docs/developers/tutorials/art_assets.html should discuss <resource name="foo" src="directory/"/> include for multiframe resources
  • [LPP-9097] - swf10 idle kernel not safe against re-entrant call
  • [LPP-9101] - swf10: mouse events for text links interfere with clickable views beneath them
  • [LPP-9102] - regression: <animator to="..." .../> won't work on attributes with a null value
  • [LPP-9103] - Wrong patterns in CanvasCompiler and NodeModel
  • [LPP-9116] - DHTML: rotation not working in Chrome 5
  • [LPP-9132] - Regression: examples/animation/animation.lzx?lzr=swf8&debug=true failing to start up
  • [LPP-9134] - WARNING: LzTextSprite.setPattern argument '[^\x01-\b\v-\f\x0e-\x1f\x7f-\x84\x86-\x9f]*' must be of the form "[...]*"
  • [LPP-9142] - Import tag throws flash error with Stage="defer". Imported classes aren't available for instantiation unless hardcoded in XML.
  • [LPP-9153] - OL 5.0 - DHTML - Component Sample - It can not be loaded successfully with script error
  • [LPP-9160] - IE DHTML regression: right-click on canvas causing exception
  • [LPP-9164] - swf10 regression: test/drawing/drawing.lzx?lzr=swf10&lzt=html failing on clipButton()
  • [LPP-9165] - Add documentation for resource offsetx/y
  • [LPP-9166] - regression: canvas css not applying
  • [LPP-9168] - Import tag with Stage="defer" and debug set to false will NOT compile in 5.0.x and 4.8.0 Flash 9 and 10.
  • [LPP-9170] - inputtext can have cursor and allow input without focus on it
  • [LPP-9176] - regression in test/lfc/data/alldata.lzx in swf10
  • [LPP-9182] - DHTML: rotation not applying to clickable regions
  • [LPP-9183] - CSS: dynamic selectors shouldn't set attributes to the same value
  • [LPP-9192] - lz.GlobalMouse events not consistent across runtimes for selectable text.
  • [LPP-9202] - DHTML on iphone: cornerradius not working
  • [LPP-9203] - DHTML Contextmenu: when scroll up browser, object contextmenu is pointed wrong position
  • [LPP-9205] - Inline mixins break autoincludes
  • [LPP-9206] - DHTML: single-line text is too tall
  • [LPP-9226] - Can't compile an LZO that includes another LZO that contains a mixin
  • [LPP-9228] - doesn't handle strings properly
  • [LPP-9234] - HTML/SWF: __gotload event can fire more than once
  • [LPP-9235] - command.lzx throwing an error if no value is provided for key
  • [LPP-9238] - SWF - SAF4 - Components Sample - The tab key can not work anymores

    Release Note: The Flash player appears to be having issues displaying on top of Flash content loaded in an iframe in Safari. Resizing the window will cause the content to show up. laszlo-explorer/index.html?lzr=swf10#_lzbookmark=Components%7CSampler shows this issue.

  • [LPP-9240] - HTML: onload() event is called prematurely becaue callJavascript() calls can still be queued.
  • [LPP-9241] - HTML SWF: You cannot have a string with a comma when using iframemanager#asyncCallback()
  • [LPP-9242] - HTML SWF8: An empty string is "null" when passed by callJavascript()
  • [LPP-9247] - IE/SWF: Runtime errors in flash.js
  • [LPP-9248] - compiling snippets in swf10 fails in some cases
  • [LPP-9251] - HTML SWF: onload event fires twice
  • [LPP-9253] - dead loop in embed-compressed.js at line #109
  • [LPP-9254] - dguide examples don't show up
  • [LPP-9256] - click to focus on swf10 bidirectional text doesn't work properly
  • [LPP-9260] - Interstitials in lzo's need unique names
  • [LPP-9261] - The callJavascript method of the html component does not call methods

    Release Note: To reliably use the html.callJavascript() method, use an onload handler to ensure the page is loaded first, e.g. <canvas> <html name="testHtml" src="test.html"> <handler name="onload"> this.callJavascript('testMethod'); </handler> </html> </canvas>

  • [LPP-9263] - Modify context menu to be compatible Adobe AIR player
  • [LPP-9267] - negative values for letterspacing and textindent no longer possible
  • [LPP-9268] - DHTML: padding is not subtracted from width/height for texts
  • [LPP-9271] - Specifying a class type for an arg does not appear to be supported when the class is lz.Foo

    Release Note: It is now possible to specify type declarations on methods for LZX-defined classes using the syntax: <class name="myclass" ... <method args="aclass:lz.myclass" ... That is, you can refer to an LZX-defined class type using the `lz.` pseudo-namespace. This should lead to better compiler warnings and runtime efficiency for those platforms that support type declarations (as of now, just swf10).

  • [LPP-9272] - HTML SWF: onload event does not fire correctly.
  • [LPP-9273] - Opera not detected by lz.embed.browser
  • [LPP-9279] - allocation attribute not handled in lzx2js2doc
  • [LPP-9280] - edittext.setSelection does not get focus when run as swf10
  • [LPP-9283] - DHTML backtrace enabled: Running any application generates runtime errors
  • [LPP-9288] - Single-line comment terminates subsequent codes in mixin's Lzo library
  • [LPP-9289] - lz.Keys onmousewheeldelta does not work in swf10
  • [LPP-9291] - DHTML: provide way to show browser context-menu (regression)
  • [LPP-9304] - Canvas size doesn't update accordingly when wrapper's scrollbar becomes invisible in dhtml
  • [LPP-9305] - Warning appears in debugger when applying CSS dynamically if a parent node contains a true/false style

    Release Note: You can now give a default value for an attribute that is styleable using CSS, use CSS to override that value, and if the CSS is "dynamic" (depends on the value of another attribute), the default value will be re-installed if the CSS becomes non-applicable. E.g., <canvas> <stylesheet> view[toggle=true] { background-color: red } </stylesheet> <view id="swatch" height="50" width="50"> <attribute name="toggle" type="boolean" value="false" /> <handler name="onclick">this.setAttribute('toggle', (! this.toggle))</handler> <attribute name="bgcolor" type="color" style="background-color" value="blue" /> </view> </canvas> Will change the color of the `swatch` view each time you click it.

  • [LPP-9307] - RTE: Upgrades to RTE to reach beta functionality
  • [LPP-9308] - SWF preloader appears slow
  • [LPP-9310] - bad as3 code if methodname and arg name are the same when a super call is made
  • [LPP-9313] - CSS `*` rules do not work
  • [LPP-9318] - reference: view reference page problems
  • [LPP-9320] - When resize view, the embed html component's position can't be resized to correct position if the resize operation is fast
  • [LPP-9322] - ref: add style attribute to <attribute> reference page
  • [LPP-9327] - RTE/SWF: destroying rte object displays error message
  • [LPP-9328] - RTE: Remove the need for getText()
  • [LPP-9330] - Add RTE to reference guide
  • [LPP-9333] - lz.view getAttributeRelative() doesn't work with nested views inside a view that has xscale/yscale
  • [LPP-9335] - RTE: Entry missing in reference guide toc
  • [LPP-9336] - IE/html: pmrpc requires JSON library.

    Release Note: Note that pmrpc/cross domain capability needs IE 8 or greater. SInce the rte (rich text editor) uses pmrpc, it also requires IE 8 or higher

  • [LPP-9337] - RTE/dhtml: Buttons do not work
  • [LPP-9338] - HTML/DHTML: rpc callbacks do not work
  • [LPP-9339] - Tutorial .lzx example will not correctly output dhtlm resources.
  • [LPP-9347] - sw9 compiler will crash if super.setAttribute doesn't have a second arg
  • [LPP-9348] - RTE: Revert pmrpc usage to original version
  • [LPP-9350] - write 4.9 release notes
  • [LPP-9353] - RTE - Emoticons - Missing icon for emoticons
  • [LPP-9355] - RTE: extra_plugins attribute is not wired into rtemanager.js
  • [LPP-9358] - RTE - CCS - The CCS-able feature doesn't implement in current test component
  • [LPP-9360] - HTML Tag not working in the solo mode
  • [LPP-9361] - HTML Tag sendToBack() and bringToFront() not working
  • [LPP-9363] - the documentation says a view has zero height when it has zero width
  • [LPP-9365] - drawview: oval() renders an oval that looks lopsided, especially in smaller sizes on SWF9+
  • [LPP-9369] - Safari OSX: mousewheel way to fast
  • [LPP-9370] - Setting the RTE text when the editor is not visible appends the text rather than replacing it
  • [LPP-9378] - RTE does not display
  • [LPP-9379] - SOLO DHTML deploy utility leaves some absolute pathnames in index.html file
  • [LPP-9380] - OL 5.0.x - DHTML - Opera - Component Sample - The tabsliders can not work
  • [LPP-9382] - OL 5.0.x - DHTML - Opera - Component Sample - Frosty the Snowman window can not work well
  • [LPP-9383] - OL 5.0.x - DHTML - Opera - Form Components - Button - The tab key can not work well
  • [LPP-9385] - <mixin> should be listed in the "Structure" tab of the reference index
  • [LPP-9396] - Poorly worded warning when named child collides with attribute of same name
  • [LPP-9404] - OL 5.0.x - SWF10 - Component Sample - When select the coffee option of Pistachio combobox, the editable filed can not be focused

    Release Note: It can not be reproduced on latest 4.9 build (17685), seems it's fixed by other issue

  • [LPP-9405] - OL 5.0.x - SWF10 - Amazon - The input field of Shipping Address or Payment Method can NOT work
  • [LPP-9406] - OL 5.0.x - SWF10 - The debug console can NOT input anything after one time
  • [LPP-9408] - OL 5.0.x - IE - SWF10 - The onmousewheeldelta doesn't work
  • [LPP-9410] - Chrome only: OL 5.0.x - DHTML - Mouse test - The onmouseupoutside of "selectable", "clickable" and "inputtext" doesn't work
  • [LPP-9412] - OL 5.0.x - IE8 - Component - Class Hierarchy - When click the detailled sub-component button, JS error will pop up
  • [LPP-9430] - <html> tag doesn't support child views
  • [LPP-9431] - html attribute of <html> element doesn't set the html
  • [LPP-9434] - DHTML: context-menu not displayed / context-menu throws error
  • [LPP-9439] - Got $0.__iframemanager_frames is undefined error when loading dhtml app with <html/> tag
  • [LPP-9442] - regression in DHTML context menu
  • [LPP-9817] - Recursive tree that exists in a dynamically created class creates null objects for all nodes deeper than 2 levels under root


  • [LPP-3479] - Replace ?lz* with unified ?lzoptions

    Release Note: compiler options can now be passed in the URL in a single argument called 'lzoptions', with syntax as follows: ?lzoptions=runtime(dhtml),debug(false),proxied(true) For boolean options, we default that if they are present they are true, if not they are false so: ?lzoptions=runtime(dhtml),proxied would be the same as the above. multiple comma separated values can be passed in args list, e.g., ?lzoptions=runtime(swf10),package(widget,android) option names have been changed slightly when they are used in the lzoptions string lzr => runtime lzproxied => proxied lzbacktrace => backtrace

  • [LPP-7934] - DHTML: don't store initial args in global object

    Release Note: Use lz.Browser.getInitArg() to retrieve browser initialization arguments instead of looking them up in canvas/global.

  • [LPP-7949] - Dev guide should have an example of Debug.explainStyleBindings in the CSS section
  • [LPP-8119] - Make a generic 'notifying event' for more efficient runtime callback handling
  • [LPP-8123] - lz.text - reference: improve description of "letterspacing", "textalign", "textdecoration" and "textindent"
  • [LPP-8470] - Simplify IE 7-specific mousehandling logic
  • [LPP-8780] - Strokes don't appear crisp in dhtml drawviews

    Release Note: Drawview now has a 'aliaslines' attribute which if true causes lines to be offset as needed to appear aliased/sharp. This is only used in DHTML.

  • [LPP-8979] - reduce peak memory usage in swf10 compiles
  • [LPP-8994] - reduce DHTML compile peak memory usage
  • [LPP-9000] - Text is not anti-aliased in SWF 10
  • [LPP-9049] - Allow lz.embed.lfc() and lz.embed.dhtml() calls to be combined

    Release Note: lz.embed.lfc() is no longer required to load the lfc, if the lfcurl and serverroot attributes are specified when calling lz.embed.dhtml().

  • [LPP-9078] - lz.embed should append script tags to the body, when possible
  • [LPP-9089] - Add ability to use resource as a click mask

    Release Note: view.clickregion allows the view's click region to be set/unset at runtime.

  • [LPP-9146] - Use notifyingevents to automatically turn on scroll events on text

    Release Note: It's no longer necessary to explicitly set scroll events on text. A constraint or handler on onyscroll, onscroll, onxscroll, onhscroll, onscrollheight, onmaxscroll, onscrollwidth or onmaxhscroll will automatically enable scrollevents.

  • [LPP-9178] - A mechanism to constrain to value passed in via initArgs would be helpful.
  • [LPP-9180] - Move non-essential parts of the LFC to LZX includes

    Release Note: layout, command, selectionmanager and dataselectionmanager have been moved out of the LFC and into LZX auto includes, found at lps/components/utils/. Any other components that use the autoinclude mechanism will need to be updated to manually include layout.lzx, dataselectionmanager.lzx, selectionmanager.lzx and/or command.lzx.

  • [LPP-9187] - HTML: Improve html component by returning a result from callJavascript()
  • [LPP-9190] - Add generic events to html tag

    Release Note: If the HTML loaded into your <html/> component includes lps/includes/iframestub.js, you can send events into the parent OL <html/> object with the browser Javascript method lz.sendEvent(name, value). Likewise, the <html/> component now has a lz.html.callRPC() method that allows browser Javascript to be invoked in iframes, similar to lz.html.callJavascripti(). You can check the rpcmethods attribute for a list of available method names. You need to register javascript functions for callback with pmrpc for them to be available, e.g.: <script> ... pmrpc.register( { publicProcedureName: "myMethod", procedure: function(methodName, args) { ... } } ); </script> Note that both of these methods work with HTML loaded from different domains, thanks to the wonderful pmrpc library. Please note that pmrpc requires IE 8 and above. See for more details about pmrpc.

  • [LPP-9191] - Add `html` attribute to html component.

    Release Note: The html component now has a text attribute that can be set to contain some default HTML that should be displayed.

  • [LPP-9200] - Add way to capture all mouse and keyboard events

    Release Note: lz.Keys.onkeyevent is now sent for all keyboard-related events. lz.GlobalMouse.mouseevent sends all mouse-related events.

  • [LPP-9244] - RTE: Improvements so rich text editor runs in swf
  • [LPP-9245] - Break up embedding JS includes

    Release Note: Please note that lps/includes/flash.js, lps/includes/iframemanager.js and lps/includes/rtemanager.js should be included alongside your copies of lps/includes/embed-compressed.js, so you may need to update your build system accordingly. SOLO builds will automatically include these files.

  • [LPP-9252] - RTE: Fix layout of RTE within the iframe.
  • [LPP-9292] - Add way to scale views

    Release Note: View.xscale and yscale will scale a view and all its children. Check capabilities.scaling to be sure your runtime supports this feature.

  • [LPP-9302] - Docs need updating for Dynamic CSS
  • [LPP-9325] - Clear server caches on startup
  • [LPP-9329] - add proxied checkbox to dev console
  • [LPP-9376] - add warning when node has both text attribute and text content in the body

    Release Note: A node which contains both a text attribute value and a non-whitespace text body will now print a compiler warning. For example <text text="this is text attr"> this is text body </text> should yield a compilation warning test/hello.lzx:5:34: Element 'text' has both an explicit text attribute value (this is text attr), and also has text content (this is text body). The attribute value will be used.

  • [LPP-9395] - live code examples are currently SWF8; change to SWF10
  • [LPP-9432] - Use <passthrough when=""> instead of <switch> in components

New Feature

  • [LPP-7358] - Add support for CSS 'classes' to <node>

    Release Note: It is now possible to use CSS class selectors (i.e., for LZX <node>s. The `styleclass` attribute of <node> is a space-separated list of CSS class names that the node belongs to. These class names can be used in CSS selectors to cause the corresponding styles to be applied to the node. See the CSS section of the Developer's Guide for more information.

  • [LPP-9179] - implement bidirectional text view for swf10
  • [LPP-9217] - RTE component. Alpha release for dhtml

    Release Note: Alpha release of the RTE (rich text editor) component. The version works in dhtml.

  • [LPP-9293] - automatically generate exploded widget directory for developers to test SOLO widget deploy

    Release Note: The dev-console now has a "Widget Emulator" button. This is an extension of the SOLO deploy feature. The application is packaged up as a .wgt archive, and then extracted to a temporary working directory on the server, and the browser is redirected to it. This makes a simple one-step way to test changes to a Widget or SOLO deployment, and works with the Ripple widget emulator in Chrome.

  • [LPP-10344] - I need the Solar datapicker!!

Edit/Copy Release Notes

The text area below allows the project release notes to be edited and copied to another document.