At present, when a RadWindow is pinned, it still uses position: absolute and an interval is initiated to recalculate its position every 100ms. This causes it to visibly "jump" when the user scrolls the page because of the interval update in its location. Instead, position: fixed should be used to avoid the position calculation on an interval.
The Classic RenderMode hides all iframes on the page when the user starts moving or resizing the RadWindow. This prevents them from consuming the mouse events and thus ensures proper behavior, but hides content from the user which is unexpected. You can find attached below an illustration of the issue. Due to numerous requests about changing this, the Lightweight mode does not hide the iframes. Thus in some cases, if the browser had not redrawn the RadWindow fast enough, the mouse events may get captured by another iframe. Cast your vote whether you want the Lightweight mode to do this as well. You can change this by using the following script (the second instance has the necessary handlers attached, in a real app you can do that via the RadWindowManager, or via an ASP Theme) <telerik:RadWindow runat="server" ID="rw1" VisibleOnPageLoad="true" NavigateUrl="Default2.aspx" RenderMode="Lightweight"></telerik:RadWindow> <telerik:RadWindow runat="server" ID="rw2" VisibleOnPageLoad="true" NavigateUrl="Default3.aspx" RenderMode="Lightweight" OnClientDragStart="hideFrames" OnClientResizeStart="hideFrames" OnClientDragEnd="showFrames" OnClientResizeEnd="showFrames"> </telerik:RadWindow> <script> function hideFrames(sender, args) { setIframesVisible(false, sender); } function showFrames(sender, args) { setIframesVisible(true, sender); } function setIframesVisible(bVisible, wnd) { var iframes = document.getElementsByTagName("iframe"); var iframeToSkip = wnd.get_contentFrame(); for (var i = 0, length = iframes.length; i < length; i++) { var frame = iframes[i]; if (iframeToSkip && (iframeToSkip === frame || iframeToSkip == frame))//compare through == and === because of FF 3.5 and 3.6 iframeToSkip = null; else { frame.style.visibility = bVisible ? "" : "hidden"; //For some extremely strange reason in IE the iframe does not get hidden properly and continues to consume mouse events if ($telerik.isIE) try { frame.contentWindow.document.body.style.visibility = bVisible ? "" : "hidden"; } catch (ex) { } } } } </script>
Bug 1:
When RadWindow behavior is set to Maximize/Minimize only, the expected behavior is while minimized, it must only show Maximize button and when maximized, it should show minimize button.
Currently, it is showing restore button on minimizing and then it restores to a random size.
Bug 2:
Page reloads on maximizing the minimized page.
Currently, when a maximized RadWindow is closed the OnClientCommand event handler is called with a command "Restore" because when a maximized RadWindow is being closed it is first restored. A flag can be used to avoid it, see the attachment.
I needed this event because I wanted to implement custom logic at end of animation. I am trying to auto-size the standard dialogs when animation is enabled. Right now, the code library that I submitted for auto-sizing standard dialogs works only if there is no animation. I feel providing an AnimationCompleted event on client-side would provide more power to the developer and finer control on customizing the RadWindow when its animated.
The Lightweight RenderMode of the RadWindow does not have a <label> element next to the <input> inside the status bar. When running this through automated accessibility checks, this can be reported as an issue. It is very likely a false positive because: - when the WAI-ARIA support of the control is enabled (EnableAriaSupport="true"), the role="presentation" attributes is present and it should instruct screen readers to skip this part of the page. - the input has the readonly and unselectable attributes which should indicate to screen readers that the user cannot interact with it. Nevertheless, there are several possible workarounds: - use the Classic RenderMode of the control. It renders a <label> element, but uses many tables. - remove the input (see Example 1 below) - add a label (see Example 2 below) Like this idea to vote for adding a <label> for the statusbar <input> in the Lighweight RenderMode as well. Otherwise, a <label> will not be added. Example 1: remove the statusbar input <telerik:RadWindow runat="server" ID="RadWindow1" VisibleStatusbar="false" RenderMode="Lightweight" EnableAriaSupport="true" VisibleOnPageLoad="true" NavigateUrl="http://www.telerik.com/" OnClientShow="removeStatusInput"></telerik:RadWindow> <script> function removeStatusInput(sender, args) { $telerik.$(".rwStatusBar input", sender.get_popupElement()).remove(); } </script> Example 2: add a statusbar label <telerik:RadWindow runat="server" ID="RadWindow1" VisibleStatusbar="false" RenderMode="Lightweight" EnableAriaSupport="true" VisibleOnPageLoad="true" NavigateUrl="http://www.telerik.com/" OnClientShow="addStatusLabel"></telerik:RadWindow> <script> function addStatusLabel(sender, args) { var label = $telerik.$(".rwStatusBar label", sender.get_popupElement()); if (label.length == 0) { label = document.createElement("label"); label.setAttribute("for", $telerik.$(".rwStatusBar input", sender.get_popupElement()).attr("id")); label.style.display = "none"; label.innerHTML = "status label"; $telerik.$(".rwStatusBar", sender.get_popupElement()).append(label); } } </script>
The content scrollbars of RadWindow are not shown in Lightweight if ShowContentDuringLoad="false". The bug is specific to Chrome. ---------------------------------------- Workarounds: 1. Use the control in RenderMode=Classic 2. Enable the ShowContentDuringLoad="true" property 3. or attach a handler to the RadWindow's OnClientPageLoad proeprty and call the restore() method of the control in it: <telerik:RadWindow RenderMode="Lightweight" ID="RadWindow1" ShowContentDuringLoad="false" VisibleOnPageLoad="true" Width="600px" Height="400px" Title="Wikipedia" OnClientPageLoad="onLoad" NavigateUrl="https://www.wikipedia.org" runat="server"> </telerik:RadWindow> <script> function onLoad(sender, args) { sender.restore(); } </script> ---------------------------------------- Steps to reproduce: 1. Run the following code: <telerik:RadWindow RenderMode="Lightweight" ID="RadWindow1" ShowContentDuringLoad="false" VisibleOnPageLoad="true" Width="600px" Height="400px" Title="Wikipedia" NavigateUrl="https://www.wikipedia.org" runat="server"> </telerik:RadWindow> Result: No scroll bars are shown, they apper after moving the window