Known bugs in Sidebar RTM |
![]() |
Dec 20 2006, 10:22 AM
Post
#1
|
|
|
Forum Guru ![]() ![]() ![]() ![]() ![]() Posts: 772 Joined: 6-July 06 Member No.: 4,576 I'm running: Vista Ultimate 64-bit SP2 |
Here's all the reproducible bugs in Sidebar RTM. If you have any more or know workarounds, let me know and I'll add them.
Bug #1: The bottom and right are incorrectly cropped when rotation is applied to <g:background>
Bug #2: <g:background> and addImageObject incorrectly place the image, by (originalImageWidth-scaledImageWidth)/2, (originalImageHeight-scaledImageHeight)/2
Bug #3: A g:background image will become corrupt if it is sized than 50% of it's original size.
Bug #4: Gadgets will not install if they contain blank directories in the Gadget package. Workaround: Put a dummy file in the directory. Bug #5: Changing <g:text>.value doesn't update <g:text>.width or <g:text>.height - the text is stretched, or you get an invalid result when trying to reference it.
Bug #6: Settings page is limited to 300x400. The Settings page on this gadget should be 1000x1000
Bug #7: Sidebar crashes when trying to use addImageObject or addTextObject in the BODY section.
Bug #8: The aliased surround of a g:image is incorrectly placed if the object is rotated and body margin is not 0.
Bug #9: The three (or two if you have no settings) icons that appear when you hover over a Gadget are incorrectly placed for detached Gadgets after Sidebar is reloaded. They're shifted left 6 pixels. Docked Gadgets are also placed incorrectly, shifted right 6 pixels. To reproduce this: Bug #10: If you manually Exit Sidebar, the X position of all detached Gadgets is decreased by 6. To reproduce this: Bug #11: System.* namespace goes missing after "window.location.reload(true);"
Bug #12: Focus is lost on the Flyout if you change System.Gadget.Flyout.file whilst a Flyout is open Workaround: You need to pause for at least 300ms and then set the focus back. Add the following code to the very end of the Flyout html: Bug #13: Setting "System.Gadget.Flyout.onShow = null;" generates an error. This goes for all other Gadget settings that are set to a function. Workaround: Set it to a blank function: Bug #14: Partially transparent surround is scaled incorrectly when setting System.Gadget.background, if the image is larger than the Gadget
Bug #15: Background image doesn't change if it's changed through a stylesheet Workaround: Set the background with System.Gadget.background or <g:background> Issue #16: addImageObject holds the image open. If you're developing a Gadget and want to change one of the images, you can't overwrite it. Workaround: Exit Sidebar, update your image and then reload Issue #17: Images are cached. If you remove all instances of a Gadget, change the images within it and then re-add it to Sidebar, the old images still show. Workaround: Exit Sidebar and the reload to clear the image cache Bug #18: If a Gadget is partially off screen, Sidebar shifts it so it's completely on screen on loading. To reproduce this: Bug #19: <g:background>.blur / <g:background>.softEdge effect is positioned incorrectly. It doesn't take account of the top and left parameters.
Bug #20: When digitally signing a Gadget, if the filename is long the signature is corrupt:
Bug #21: The GPO Policy setting ""Turn Off User Installed Windows Sidebar Gadgets"", also stops users from adding Gadgets in the "Shared Gagets" folder: Workaround (by Brian Teutsch @ MS): Don't use the GPO Policy Setting, instead point the User Gadget Folder environment variable "GADGETS_USER" to "%PROGRAMFILES%\Windows Sidebar\Shared Gadgets" Bug #22: <BODY onunload> doesn't fire during logout and shutdown. Workaround: If you're just saving settings, periodically save them with a timer. Bug #23: BODY background colour cannot be set from a stylesheet. Workaround: Create a DIV section that fills the flyout and set the background colour on that. Bug #24: Gadget may never appear on the sidebar if you have overlayed RGB transparent images and are updating the screen too often.
Issue #25: Flyout will only show if Sidebar has focus. If you show the Flyout via "System.Gadget.Flyout.show = true" and Sidebar doesn't have focus, the "System.Gadget.Flyout.onHide" event immediately fires. In this example Gadget, the Flyout should open 500ms after it closes. Bug #26: System.Shell.saveFileDialog(strPath, strFilter) filter string doesn't work as expected. The documentation states filters should be seperated with a ":", eg "Text File:*.txt:Reg File:*.reg::", which doesn't work. Note: This issue is now noted in the August 2007 documentation refresh. Bug #27: System.Gadget.begin/endTransition can cause corruption of a g:background. It happens regardless of what transition type you use, or if you use an image or not. In the following Repro, Left click to see the problem. Right click to see, with the workaround.
Bug #28: g:background becomes corrupt if you change document.body.style.zoom. In the following Repro, Left click to see the problem. Right click to turn on the workaround.
Bug #29: If the g:background image is set to a percentage of the Gadget size, it's not rescaled when the Gadget body size changes. In the following Repro, Left click to see the problem. Right click to turn on the workaround.
Bug #30: begin/endTransition can hang a Gadget, if the body size isn't changed. In the following Repro, the image should toggle between two images. Right click to toggle with the workaround, Left click to recreate the problem.
Bug #31: System.Gadget.background="..." will corrupt the image if it's height is less than 57 pixels. If you set a Gadget background via System.Gadget.Background = "..." to an image that is less than 57 pixels in height that has partially transparent pixels, the background becomes corrupt. Sidebar stretches the transparent pixels to 57 pixels in height, but leaves the opaque pixels their original size.
Bug #32: g:background "blur" and "softEdge" cause the partially transparent background pixels to overlay the Gadget when focus is lost. In the Repro, move the Gadget to reproduce the problem.
Bug #33: Sidebar will crash if the Gadget tries to show a Flyout during the onunload event.
Issue #34: Fonts change scale when the desktop DPI is changed. Workaround: Specify all font sizes in px, and add a default font size to all HTML pages: Bug #35: BODY width/height cannot be set through a stylesheet Workaround: Set it at the time you change the stylesheet: Bug #36 (variation on Bug#30): begin/endTransition will stop mouse event from firing if the Gadget size isn't changed. In the following Repro, clicking the mouse should display a message. As soon as the first begin/endTransition has occured, mouse events stop firing.
Bug #37: System.Shell.Item.isFile generates an error. In the following Repro, a left click should list if the files and folders in the Gadget are a file or not. Right click to use the workaround. Note: This functionality has been removed in the August 2007 documentation refresh. Issue #38: System.Sound.playSound does not always play the sound. Repro to follow. Issue #39: Magenta (#FF00FF) in images (JPG, PNG or GIF) becomes transparent. The Repro should display "Transparent" in Magenta, left click to toggle the filter workaround. Workaround: Either modify #FF00FF in the image to #FF00FE, or display the image twice with a filter applied to convert #FF00FF to #FF00FE: Bug #40 (variation of Bug#32): Overlaying an image with transparency onto a g:background that has Opacity set, will cause the g:background to overlay the image when the Gadget loses focus. ie When the Gadget is docked/undocked, visibility changes, or changes position on the Sidebar. In the following Repro, dock/undock the Gadget to see the problem. Bug #41: g:image.softEdge is not consistent as the images rotation is changed. The soft edge appears to double in size as the image approaches 45, 135, 225 and 315 degrees. In the following Repro, which rotates a white square, the soft edge should look the same regardless of it's rotation.
Bug #42: Mouse events do not fire on pixels that are partially transparent. In the following Repro, left click to fire a mouse event. Right click to apply opacity to the background image, which will cause mouse events to stop firing.
Bug #43: Sidebar does not apply document.body.style.zoom to the Gadget thumbnail image shown on the Settings page. In the following Repro, open the settings page to see the Gadget appear to double in size in the thumbnail (zoom is set to "0.5").
Bug #44: g:background becomes corrupt when it's changed, when hosting a WPF application. In the Repro Gadget, after adding it to Sidebar, dock/undock it to see what should happen. Then click the background to add the WPF application. Dock/undock will now corrupt the background. Workaround: Use System.Gadget.background = "..." instead Bug #45: g:background.move, g:image.move and g:text.move methods do not exist. Note: This functionality has been removed in the August 2007 documentation refresh. Bug #46: g:image.addImageObject, g:image.addTextObject, g:image.removeObjects methods do not exist. Note: This functionality has been removed in the August 2007 documentation refresh. (Fixed) Issue #47: System.Gadget.Shell.chooseFile documentation is incorrect. Note: This issue has been fixed in the August 2007 documentation refresh. Issue #48: Undocked Gadgets on the primary display will move after running a full screen DirectX application (ie games), if they are positioned beyond the applications new resolution. Workaround: Quit Sidebar before loading the application. Bug #49: Setting a Gadget's background image via CSS "background-image", can cause the image to lose it's transparency. Workaround: Set the image via System.Gadget.background or <g:background>. Issue #50: Resizing a gBackground does not automatically resize any gImage or gText objects it contains. Workaround: You must manually adjust the top, left, width, height and fontsize properties to reflect the change in size of the background image. Be aware that resizing a gImage object will cause bug#2. Bug #51: g:text fonts smaller than 18pt are not anti-aliased. Workaround: If possible, switch to VML or HTML text. VML will give you the ability to rotate the text. Bug #52: Gadgets that play streamed media may become untrusted. Symptoms include the inability to access variables from the Flyout/Settings and Gadget and "Permission Denied" errors when accessing local content. Partial workaround: Mark all your HTML as being in the local domain with a Mark of the Web, by placing the following code at the top of your HTML files: Issue #53: Setting a DOCTYPE can cause a Gadget to scroll within its window when a scroll event occurs, if the document body margin style is not set to 0. Events such as middle mouse button scrolling (horizonal or vertical) can cause the issue. Workaround: Either set margin to 0, or unless you specifically need to set the DOCTYPE for strict adherance etc. remove it. |
|
|
|
Dec 20 2006, 02:41 PM
Post
#2
|
|
|
Forum Guru ![]() ![]() ![]() ![]() ![]() Posts: 1,432 Joined: 29-April 05 Member No.: 685 |
Sidebar tries to read the data pointed to by a null pointer and crashes. This is because you're trying to access the g:background before the HTML document has fully loaded. I moved the javascript into a function called upon onload and it works fine. CODE <html>
<head> <script language="javascript"> function manipulate() { bodyBackground.addImageObject("image.jpg", 50, 50); } </script> </head> -------------------- Stephen got a Microsoft janitorial job; Want Windows 7 builds? Too bad, he got fired for stealing toilet paper.
|
|
|
|
Dec 20 2006, 03:08 PM
Post
#3
|
|
|
Forum Guru ![]() ![]() ![]() ![]() ![]() Posts: 1,432 Joined: 29-April 05 Member No.: 685 |
Bug# 3: Image exploded beyond belief Looks like Sidebar cannot resize the image smaller than 50% of it's original size (when using percentages). Sounds like a math error in Sidebar. Workaround: Calculate image size manually and use that value. -------------------- Stephen got a Microsoft janitorial job; Want Windows 7 builds? Too bad, he got fired for stealing toilet paper.
|
|
|
|
Dec 20 2006, 04:05 PM
Post
#4
|
|
|
Forum Guru ![]() ![]() ![]() ![]() ![]() Posts: 772 Joined: 6-July 06 Member No.: 4,576 I'm running: Vista Ultimate 64-bit SP2 |
Looks like Sidebar cannot resize the image smaller than 50% of it's original size (when using percentages). Sounds like a math error in Sidebar. Workaround: Calculate image size manually and use that value. Cheers, I've added both workarounds and given you credit for them. |
|
|
|
Dec 22 2006, 04:35 PM
Post
#5
|
|
|
Member ![]() ![]() Member Posts: 17 Joined: 7-November 06 Member No.: 7,008 I'm running: Vista RTM |
We are doing well this week
|
|
|
|
Jan 8 2007, 04:47 AM
Post
#6
|
|
![]() Advanced Member ![]() ![]() ![]() ![]() Loyal Member Posts: 252 Joined: 25-December 06 Member No.: 8,362 I'm running: Vista x64 Ultimate |
The Bug# 12 was bugging me for a while. (pun intended)
Thanks for the info. |
|
|
|
Jan 24 2007, 02:22 AM
Post
#7
|
|
|
My First Post ^_^ ![]() Member Posts: 1 Joined: 24-January 07 Member No.: 9,479 I'm running: RTM |
|
|
|
|
Jan 24 2007, 07:32 PM
Post
#8
|
|
|
Forum Guru ![]() ![]() ![]() ![]() ![]() Posts: 772 Joined: 6-July 06 Member No.: 4,576 I'm running: Vista Ultimate 64-bit SP2 |
|
|
|
|
Jun 18 2007, 03:50 PM
Post
#9
|
|
![]() Member ![]() ![]() Member Posts: 40 Joined: 3-July 06 From: UK Member No.: 4,553 I'm running: Windows Vista Home Premium RTM |
Jonathan, I posted this on MSDN forums but you may have missed it. A much simpler workaround to bug #35 is to ensure the body css is set at the top of the stylesheet and use document.styleSheets to parse it, like so:
CODE document.body.style.width = document.styleSheets[0].rules[0].style.width; document.body.style.height = document.styleSheets[0].rules[0].style.height; This saves the need for a dummy div to be created. A loop could also be created to find the body css anywhere in the stylesheet. Cheers, Andy -------------------- |
|
|
|
Jun 18 2007, 07:24 PM
Post
#10
|
|
|
Forum Guru ![]() ![]() ![]() ![]() ![]() Posts: 772 Joined: 6-July 06 Member No.: 4,576 I'm running: Vista Ultimate 64-bit SP2 |
Jonathan, I posted this on MSDN forums but you may have missed it. A much simpler workaround to bug #35 is to ensure the body css is set at the top of the stylesheet and use document.styleSheets to parse it, like so: This saves the need for a dummy div to be created. A loop could also be created to find the body css anywhere in the stylesheet. Cheers, Andy I did see it and initially thought "neat solution", but then I thought about the code you'd need to find the body rule and thought, "perhaps not" eg CODE bodyStyle = findBodyRule();
if (bodyStyle != null) { document.body.style.width = bodyStyle.style.width; document.body.style.height = bodyStyle.style.height; } ... function findBodyRule() { for (var sheet = 0; sheet < document.styleSheets.length; sheet++) { for (var rule = 0; rule < document.styleSheets(sheet).rules.length; rule++) { if (document.styleSheets(sheet).rules(rule).selectorText == "body") return document.styleSheets(sheet).rules(rule); } } return null; } |
|
|
|
Jun 18 2007, 09:34 PM
Post
#11
|
|
![]() Member ![]() ![]() Member Posts: 40 Joined: 3-July 06 From: UK Member No.: 4,553 I'm running: Windows Vista Home Premium RTM |
Yeah, it is a bit of a nightmare. Although technically, you wouldn't have to search for the stylesheet. If you were dynamically switching the stylesheet, you'd already have the stylesheet object referring to the stylesheet you just switched. That's also why I just make sure the body rule is the first CSS rule defined, but I guess that's not really the best workaround!
Andy -------------------- |
|
|
|
Jun 19 2007, 08:52 AM
Post
#12
|
|
|
Forum Guru ![]() ![]() ![]() ![]() ![]() Posts: 772 Joined: 6-July 06 Member No.: 4,576 I'm running: Vista Ultimate 64-bit SP2 |
Yeah, it is a bit of a nightmare. Although technically, you wouldn't have to search for the stylesheet. If you were dynamically switching the stylesheet, you'd already have the stylesheet object referring to the stylesheet you just switched. That's also why I just make sure the body rule is the first CSS rule defined, but I guess that's not really the best workaround! I added that loop, in case there were cascaded stylesheets. It's fairly neat, although I haven't tested it to see if it actually works! I've added it above, giving you credit for it. |
|
|
|
Jun 19 2007, 09:08 PM
Post
#13
|
|
![]() Forum Guru ![]() ![]() ![]() ![]() ![]() Forum Guru Posts: 2,199 Joined: 23-September 04 From: milkyway.sol.earth Member No.: 211 I'm running: Human 2.0 |
Its a shame Bruce doesnt come around anymore, or his team could sure benefit from taking a look at this.
-------------------- |
|
|
|
Aug 9 2007, 10:40 AM
Post
#14
|
|
|
Forum Guru ![]() ![]() ![]() ![]() ![]() Posts: 772 Joined: 6-July 06 Member No.: 4,576 I'm running: Vista Ultimate 64-bit SP2 |
Added two new issues/bugs I've find whilst coding FlipCalendar, taking the count to 51.
|
|
|
|
Aug 10 2007, 10:46 PM
Post
#15
|
|
![]() Editor in Chief / PR / MCSA ![]() ![]() ![]() ![]() ![]() Posts: 5,733 Joined: 13-November 04 From: GMT -5:00 Member No.: 320 I'm running: something... |
Bruce is no longer with the sidebar.
-------------------- ![]() |
|
|
|
![]() |
|
Lo-Fi Version | Time is now: 9th February 2010 - 04:22 PM |