Xojo 2013r4 has many changes, improvements and fixes to the IDE, Cocoa, Web, Windows, the documentation and more. The full release notes are listed below.
30925 All: EncodeHex no longer crashes in certain circumstances if told to insert spaces.
28050 All: Fixed handling of Chinese and other Unicode characters in StyledText's RTF code.
30963 All: MemoryBlock.CString now reliably generates OutOfBoundsExceptions when there is no NUL terminator present.
14061 All: No longer crashes when creating an XML element with an invalid namespace.
22560 All: No longer displays a failed assertion dialog if the debugged app cannot connect to the debugger.
29908 All: Picture.ApplyMask now throws an exception if either dimension of the mask is incorrect. Previously it only threw an exception if both dimensions were incorrect.
30593 All: XojoScripts with floating point math now work on Windows XP.
9200 Compiler: No longer asserts if there are more than 8192 plugin entry points in the final executable.
15071 Compiler: No longer triggers a failed assertion when compiling large methods.
27167 Desktop: Fixed an issue in the reporting engine where it could terminate printing details lines too soon and so put fewer details on a page than it should.
26815 Desktop: Getting ListBox.CellType now returns the correct type when the ColumnType has been set for that cell.
27704 Fixes to case 27192 make the symptoms this cases experiences no longer happen. Pressing enter commits the change so "Save" is enabled. It wasn't in this case so you would just get a beep.
29765 IDE: A bunch of tweaks to make it so you CANNOT do invalid things with drag and drop. Prevented actions include:
- drag a window from a desktop project into a web project (or a web view into a desktop project)
- drag a window from a desktop project into a console project (or a web view into a console project)
- drag web styles into web pages
- drag class interfaces INTO windows or web pages
- drag windows onto windows (or web pages into web pages)
- drag windows into container controls (but you can drag containers onto windows)
28902 IDE: A NilObjectException that can be encountered sometimes in the Universal Layout Editor has been fixed.
29544 IDE: Adding empty attributes no longer causes an OutOfBoundsException. They are properly discarded and not saved if you create attributes with no name.
30649 IDE: Analyze project once again shows if there are only warnings.
29805 IDE: Application.Open event handler no longer shows Application.OpenDocument description.
29446 IDE: Attributes on a window are no longer replicated to every control.
30191 IDE: Auto spell checking has been turned off in a number of property editor panes as its not really useful there.
30313 IDE: Can now clear the destination property in Shared Build Settings.
30069 IDE: Classes are no longer duplicated in Navigator listings.
24300 IDE: Code Editor no longer tries to center the line in the editor if you just move the cursor to the beginning or end of the line.
29957 IDE: Copy and paste of controls in web projects no longer raises an OutOfBoundsException.
29847 IDE: Copying and pasting control no longer causes an OutOfBoundsException.
29709 IDE: Copying and pasting onto the group header in the Navigator works using command key short cuts as well as the contextual menus.
29862 IDE: Copying and pasting with a Navigator filter in effect no longer causes a NilObjectException.
31049 IDE: Data Control Inspector no longer shows name of constant (#kTable).
30628 IDE: Debugger shuts down the app being debugged when you close the tab.
26633 IDE: Default size for report field, label, date and page number add to layout is more appropriate.
30007 IDE: Deleting an item from the Navigator pressing the up arrow key no longer causes an exception.
27297 IDE: Dragging a Generic object back onto a layout it already is on no longer causes an exception.
24716 IDE: Editing SegmentedControl labels now preserves the encoding.
27192 IDE: Enter key on numeric keypad now commits changes in Inspector like return key does.
30646 IDE: Enum property values in Xojo Text Projects no longer flip between quoted strings and integers.
21711 IDE: Exporting an external item now gives a result that makes sense (whether it's exported as binary or xml) instead of an empty or useless file.
27959 IDE: External items in projects now save properly when edited after initially making them external.
29052 IDE: External subclasses now show in the class selector dialog.
13533 IDE: Fill Width and Fill Height actions in the layout editor are now undoable / redo-able.
28874 IDE: Find field no longer gets focus simply deactivating and activating the IDE.
29466 IDE: Fixed a display issue in the Navigator where subitems could show in the wrong location.
30844 IDE: Fixed a failed assertion that could occur when compiling code that has ambiguous interface implementation.
30687 IDE: Fixed an assertion that could occur when loading projects with invalid item names.
29457 IDE: Fixed an error in handling missing files that resulted in an UnsupportedFormatException.
28537 IDE: Fixed an error when loading projects that have external items that are missing that could cause an Unsupported Format Exception.
29451 IDE: Fixed an exception that could sometimes occur when copying and pasting web controls.
26176 IDE: Fixed an issue in search result pane where selecting a found line could go to the wrong place and could also reset the search scope.
27682 IDE: Fixed an issue that could cause control events to not load properly from a saved binary project.
29838 IDE: Fixed cause of a NilObjectException in the Navigator when you may be dragging. Could have been caused by many actions like dragging a file over the Navigator when debugging.
30327 IDE: Fixed one case where the "Add Event" menu item would not enable.
30577 IDE: Fixed the illegal cast exception that could occur when locating images.
29281 IDE: If you have a Navigator filter applied and use Go To Location the filter is cleared so the location you go to can be revealed.
29326 IDE: Invalid XML files no longer cause an exception.
30407 IDE: Items that have no tab stop property on a desktop project don't appear in the tab order editor.
27030 IDE: Locked objects on non-front front most tab or page panels no longer bleed through.
12770 IDE: Made it much harder to import items into the wrong kind of project (e.g. you can't import desktop items to web or console apps, no web items in to desktop or console apps, etc).
There's no way for to know at the point the selection dialog is displayed that an item is desktop, web, console etc so we cannot filter them out at that point.
30661 IDE: Missing images no longer cause an unsupported format exception to be raised if we try to use the full path to the item to find it.
27996 IDE: No longer causes an exception when pasting into the Icon Editor.
29614 IDE: No longer show odds HTML markup for descriptions in the Add Event Handler dialog.
29186 IDE: No longer show shortcuts in contextual menus.
28730 IDE: No longer throws an exception when bad values are entered for the Listbox ColumnWidth property.
30079 IDE: No longer updating editors off on hidden tabs, this should make editing much quicker for those that work with many tabs. Also improved performance when editing Structures.
30874 IDE: Non-visual controls no longer have TabStop and TabIndex properties.
28246 IDE: Now writes out encrypted items contained by a module as EXTERNAL ENCRYPTED BINARY items same as other top level encrypted items in a text project.
20570 IDE: Old text (VCP) projects that wrote windows with segmented controls as "Begin SegmentedControl" now load as expected and do not cause unhanded exceptions.
28113 IDE: Only changes to project items actually altered by the user are saved.
30175 IDE: Optimized the drawing of Web Text controls to make dragging and resizing a little faster.
27599 IDE: Overloaded methods no longer mix up shared and non-shared methods in the group.
30140 IDE: Pasting tables from Excel to ListBox InitialValue property converts column into tab delimited (&h09) and line feed (&h0A) delimited data once again.
29530 IDE: Plugins now show proper icons on disk.
22864 IDE: Prevent the placement of a WebContainer inside a module.
29746 IDE: Run remotely now uses Ctrl+Alt+R on Windows to avoid the conflict with Ctrl+Shift+R that is used by stop debugging.
30752 IDE: Running and closing the tab and then running again no longer causes an exception.
29837 IDE: Saving a project to a read only location no longer causes an assertion.
26946 IDE: Script Step Editor uses the same code editor canvas as the new code editor so it handles keyboard input properly. It also obeys the same set of commands (like forward delete).
28338 IDE: Scrolling the layout no longer results in a toolbar you can't edit.
28163 IDE: Search field no longer steals focus when activating / deactivating the IDE.
30786 IDE: Searches are done 0.5 seconds AFTER the text stops changing OR when ENTER OR RETURN are pressed (in which case the search is done immediately).
29339 IDE: Significantly improved performance when pasting a long list of items. Time to paste 1,100 items reduced from hours to less than a minute.
29616 IDE: Skipping locating missing files no longer eventually leads to an exception when trying to run the project.
24405 IDE: Tab panels that have captions set using constant no longer mangle the encoding of the constants resulting in incorrect display.
30257 IDE: The build button disables if there are no targets selected.
30020 IDE: The debugger now catches exceptions raised in computed properties rather than letting them escape into the program and alter control flow.
30056 IDE: The highlight area for the inline editor of a toolbar stays over the toolbar when you scroll the layout editor and inline editing is active.
29021 IDE: The Library splitter not longer drags when the mouse cursor really isn't in a spot where it appears it SHOULD be dragging.
29877 IDE: The Navigator no longer experiences a NilObjectException when adding classes to modules and then selecting something OTHER than an item in the module.
30784 IDE: The Navigator width is common across all tabs in a window but NOT shared across windows.
27993 IDE: The Project Chooser window no longer trims off localized strings in the list of project types.
30980 IDE: Thread objects can be dragged to WebPages again.
29613 IDE: Typing a name into the certificate file (or any other file type property) no longer causes an exception. File properties editor has the ellipsis for selecting a file again.
21608 IDE: Updated wording and button titles for "File is in trash" dialog.
30853 IDE: Using Duplicate in the Navigator no longer duplicates the wrong item.
25699 IDE: When you delete one or more items in the Navigator, the inspector no longer appears to still have them selected and editable.
26135 IDE: When you drag a project item into a folder in the Navigator the selection rectangles are update properly.
31029 IDE: You can no longer enter invalid port values for web applications.
29961 IDE: You can now edit the values in a WebListBox when there is only 1 column. Fixed a drawing bug where some values would be truncated when the ListBox had multiple columns. Also made it so the drawing relies on the DEFINED column count property for how many columns to show.
30196 Linux IDE: In the Options dialog, the Reveal apps checkbox label is no longer cut off.
30195 Linux IDE: The Clear button text on Messages Pane is no longer cut off.
30194 Linux IDE: The Go To Location dialog no longer has overlapping controls.
30197 Linux IDE: The tooltip that appears over an exception in the debugger no longer displays all black.
28839 Linux IDE: WebStyle editor no longer overlaps Inspector.
29188 Linux: Dragging a DragItem, with a Picture indicator, no longer causes an assertion.
29289 Linux: Graphics DrawRect and DrawRoundRect no longer clips the left edge when drawing without anti-aliasing enabled. With anti-aliasing enabled, it no longer draws a double soft edge (i.e. an edge which looks like it was "over aliased").
15773 Mac/Linux: ConsoleApplication.Run's args parameter no longer has an extra element at the end of the array.
29433 MacCocoa: Fixed a source of unbounded memory growth.
30436 MacCocoa: ListBox headers now draw the ascending sort arrow when ran on 10.9.
31107 MacCocoa: The framework no longer links against QuickTime, which was preventing submission of applications to the Mac App Store.
5378 Plugins SDK: Added namespace support, see REALmoduleDefinition documentation.
29288 Web: Browsers are now explicitly asked to revalidate framework files on load, so newer versions won't try to use the old framework.
30563 Web: Fixed a bug in the new logging mechanism for standalone apps which made it live all the time for CGI applications.
15443 Web: Fixed a bug in WebListbox.Headers where assigning all of the headers using -1 as the index would not push the changes to the browser.
29775 Web: Fixed a bug which caused certain POST and Querystring variables to be unavailable in a POST request sent to /special or /api.
16136 Web: WebImageViewer no longer causes IDE crashes when you use certain URLs.
24127 Web: WebListBox.AddRow no longer adds rows twice if called before the Shown event.
30361 Web: WebPopupMenu: DeleteAllRows no longer causes errors if called in the Open event.
29665 Windows IDE: Debugger string variable viewer no longer clips some data in HiDPI mode.
30342 Windows IDE: Debugging Web project on XP now launches the default browser instead of Internet Explorer all the time.
29663 Windows IDE: Error message is no longer clipped while in HiDPI mode.
29661 Windows IDE: Tab bar text now aligns properly when user is in high DPI mode.
24028 Windows IDE: Text no longer gets clipped at 125% resolution.
29586 Windows IDE: The WebKit based HTMLViewer that is used in our Messages Pane no longer steals keystrokes that would cause menu shortcuts like Ctrl+C or Ctrl+V to intermittently fail.
29662 Windows IDE: When in HiDPI mode, the search pane's search/replace text field is no longer clipped, and the results list rows accommodate the larger text.
30500 Windows/Linux IDE: Incremental compilation now works properly (i.e. running/building no longer recompiles everything even if nothing changes between runs/builds).
29241 Windows/Linux: A SegmentedControl with only one segment now draws properly.
10077 Windows: BevelButton no longer flickers when moved, resized or on mouse over.
30011 Windows: Ctrl-+ keyboard shortcut now works.
31005 Windows: OLEObject can now retrieve DECIMAL types (they are returned as strings).
30394 Windows: Shell Completed and DataAvailable events now fire in Console and Web apps when its Mode is 1 or 2.
30357 Windows: Shells that are created in a secondary thread now fire their Completed and DataAvailable events again (broken since 2013r3).
29229 All: Added a DebugIdentifier property to Thread, which will show up in the debugger's thread popup and allow easier debugging of threaded code.
23227 All: The RegEx class has been updated to use PCRE 8.3.3.
23643 Desktop: Canvas/ContainerControl: Added Transparent property, whose default value is True, this maintains current compatibility. If set the False then the Canvas/ContainerControl will become opaque (i.e. background will not show through). On Linux this has particularly special meaning in that child controls on an Opaque Canvas/ContainerControl can be clipped.
28826 Framework: Added new Crypto functions: Crypto.RSAGenerateKeyPair(Bits As Integer, ByRef PrivateKey As String, ByRef PublicKey As String) As Boolean Bits would usually be 1024 or 2048. Generates a private and public key pair that is hex encoded. Returns true on success, false if failed.
Crypto.RSAVerifyKey(Key as String) as Boolean Attempts to validate the specified key
Crypto.RSAEncrypt (Data As MemoryBlock, Key As String) As MemoryBlock Encrypts the data with the specified key, which is either a private or public key.
Crypto.RSADecrypt (Data As MemoryBlock, PrivateKey As String) As MemoryBlock The reverse of Crypto.RSADecrypt.
Crypto.RSASign (Data As MemoryBlock, PrivateKey As String) As MemoryBlock Signs the data block with the specified private key.
Crypto.RSAVerifySignature (Data As MemoryBlock, Signature As MemoryBlock, PublicKey As String) As Boolean Verifies the data with the specified signature and key. Returns true if the signature is verified, false otherwise.
Crypto.GenerateRandomBytes (ByteCount As Integer) As MemoryBlock
Generates a random block of data.
29939 IDE: Preferences window has a new pane for updates and also a way to opt in/out of sending system details.
27275 IDE: The "Help for" item appears in the contextual menu of controls selected in the Layout Editor.
30710 IDE: You can use a constant for the app identifier. The value of the constant still should conform to the recommended form (com.xxxx.xxxx).
30694 WebSDK: Added an example project for using the LoadLibraries method
30913 Windows: MouseWheel event is now triggered for the control that the mouse pointer is over.
25806 Database: Updated SQLiteDatabase to use SQLite 3.7.17.
28702 Desktop: Removed the following TextArea properties and methods since they do nothing: SelCondense, SelExtend, SelOutline, SelShadow, ToggleSelectionCondense, ToggleSelectionExtend, ToggleSelectionOutline, ToggleSelectionShadow
28754 IDE: Clicking the + (new tab) creates a new tab with no selection.
30650 IDE: If you have only one workspace with two tabs - a project item and the debugger both in separate tabs - you can't close the non-debugger tab as when you quit the debugger it leaves you in a weird state with no obvious way to get back to working on your project.
29262 IDE: Local Language Reference updated as of Sep 1, 2013.
29029 IDE: New local Language Reference updated as of Aug 23th.
30444 IDE: Search results are now listed in alphabetical order.
24359 IDE: The Goto Location window is resizable and retains its height and control positions. You can drag it to make it wider.
27557 IDE: Visible property of a menu item can be set in the Menu Editor as well as at run time.
30014 MacCocoa: When running on 10.7 and higher, the Sound class now uses AVFoundation instead of the legacy Sound Manager framework.
30356 Macintosh: The minimum supported version of OS X for the IDE and built applications is now 10.7.
27380 Web: ChromeFrame support has been removed in preparation for Google's service discontinuation in January 2014.
27207 Web: Implemented Apache-style logging for standalone web apps. Use --logging command-line option to turn on. Added standards compliant headers for responses.
30238 Web: Removed unsupported FastCGI code from the CGI script.
Docs and Examples
30855 Doc: Updated system requirements for Linux in User Guide and Lang Ref.
15065 DocLangRef: Added more info about WebStyle usage with WebButton.
19173 DocLangRef: Clarified that FileTypes are converted to their string equivalent when used with GetOpenFolderItem.
30689 DocLangRef: Clarified Window.Top position.
30939 DocLangRef: Corrected append example for Clipboard.
30619 DocLangRef: Corrected MenuItem.Constructor parameter list names.
30033 DocLangRef: Fixed "See Also" section of Database.Rollback.
31047 DocLangRef: Fixed broken link to WebKitGTK web site on the HTMLViewer topic.
30088 DocLangRef: Fixed example for TextInputStream.
30252 DocLangRef: Fixed typo in XmlDocument.LoadXML example.
30464 DocLangRef: Fixed typo on integer division page.
29415 DocLangRef: Fixer typo in example on Join topic.
30013 DocLangRef: Improved examples for XMLDocument topic.
15580 DocLangRef: ReportDateLabel updated.
15579 DocLangRef: Updated ReportPageNumberLabel.
30723 DocLangRef: Updated SpecialFolder FolderName paths to match current OS values.
29346 DocLangRef: Updated WebStyle topic in Language Reference to remove outdated screenshots and improve organization.
18394 DocLangRef: Updated WebTextControl.TextChanged with correct information about when the event handler is called.
30200 DocLangRef: Updated XML topics in to include examples.
28225 DocUserGuide: Added AppleScript section to User Guide Book 4: Development and also added an example project.
29996 DocUserGuide: Added more information about the use of "Default" to the Localization section in Book 4: Development.
29382 DocUserGuide: Added table that maps data type integer values to data types to the Databases chapter and refer to it from the Reports section.
29438 DocUserGuide: Updated Navigator section in Fundamentals Guide to better describe "Double click opens items in new tab" preference setting.
30290 Examples: Added "#" to URL on RegisterLink in LoginExample so that it correctly loads page on all browsers.
28271 Examples: Added WebSDK custom controls to Examples so that they can be easily found using the Project Chooser.
29802 Examples: Fixed Linux script name in AutoSaveScript.
Release Total: 179