Silverlight control goes black in FF during fullscreen (SL 4, Firefox 3.6, multiple monitors) - silverlight

If I click to make my Silverlight object fullscreen in Firefox 3.6 it works successfully, but then if I select a different window (I'm running two monitors so can do this) then a new window appears in my Windows taskbar titled 'Microsoft Silverlight' which is where my fullscreen Silverlight application now lives. So it's moved out of Firefox.
I can click on that new window to return to my fullscreen application but if instead of returning to that window, I click on Firefox in the taskbar, I see my web application running but with a black void where my Silverlight object was. If I try and right click on the black bit, I don't get the usual Silverlight right-click menu.
If I click on the new 'Microsoft Silverlight' window in the taskbar and then click Escape, it disappears (i.e. it exits fullscreen), and the Silverlight app reappears in Firefox and all is well.
This isn't a problem in IE, but my client requires that it work in Firefox. Seems like some sort of plug-in bug, and it doesn't make a difference whether I'm running with windowless set to true or not.
Any tips? Cheers.

The only time i've seen a black screen (region) being rendered was when something funky was going on with the silverlight app (i think it was crashing or something, but the errors were being swallowed up somehow/somewhere).
I discovered that the black region, in my situation, was the result of the background being set to transparent on the silverlight control side (where it's embedded in the web page).
Hope that helps you in your debugging effort.

Related

CefSharp screen rendering problems Windows 10 touch screen

I have a PiPo x9 (touch screen) running Windows 10. Google Chrome is loaded and can view the web page correctly. The same page loaded through CefBrowser responds strangely to mouse events. I am using a USB mouse and keyboard.
To demonstrate when a page is loaded it initially displays correctly.
When you move the mouse over the username textbox the screen will zoom in, however it doesn't render properly and UI elements will be unresponsive.
Another example;
I have had a look at the CefSettings here Settings, but there are too many to know what to try.
I also stumbled across this problem recently. In my case it was a DPI scaling issue (my client was using an Nvidia GPU), so one way to "fix" it, is by setting the display scaling to 100% (right click on desktop -> Display Settings -> Change the size, text, apps and other items -> set to 100%).
But if you can't or don't want to do that, you can call the SetOffScreenRenderingBestPerformanceArgs method of CefSettings, like this:
var settings = new CefSettings();
//set any required settings here
settings.SetOffScreenRenderingBestPerformanceArgs();
Cef.Initialize(settings);

WPF Popup getting closed in a seamless citrix mode

First things first, this problem only happens while working in Citrix XenApp seamless mode (which, in simplest of words means the actual app is running on some citrix host but it is simulated as residing in your own desktop). I will take this up with Citrix Support as well but just wanted to poll the group in case someone faced a problem like this before.
I have a WPF app which uses Winforms NotifyIcon to reside in system tray until mouse clicked. In Citrix seamless mode, as user clicks the icon in system tray, the popup flashes and immediately closes on its own.
The Popup window is a vanilla one created with StaysOpen as FALSE and same works in every other environment.
Any suggestions ? This is what I've noticed so far:
The window stays open if I use StaysOpen as true. But then I don't have a way to close the window manually when it loses focus. LostFocus Event doesn't get fired on popup when user clicks outside.
In citrix seamless mode, the MouseEnter event is captured but MouseLeave is NOT so the approach of closing the window if user mouse is outside the window for X secs is not achievable.
Tried the workaround of starting the popup with Staysopen as FALSE and then reset staysopen after like 2 secs so that the pop sticks. It works but a soon as I set StaysOpen as FALSE once the timer is hit, the pop up closes on its own.
Without all these workarounds, if a user quickly clicks (leftclick) on the window before it disappears, the pop up sticks so I tried few ways to simulate the mouse click on the popup as it opens up but that doesn't cut it either.
Thanks
I can't help you with specific advice for tweaking your app to work around the issue, however there is always the hit it very hard with a hammer approach, i.e. tell consumers of your app to disable seamless for your application:
http://support.citrix.com/article/CTX116357/
Update: I pinged the original seamless dev - he said it sounds like a bug where seamless is not correctly routing all the necessary mouse messages between client and server. He said the best way to diagnose this was to run the Spy++ tool on the XenApp server and on the client, and then compare the messages each side sees to identify what messages are not getting translated. Since it sounds like a genuine bug, your best bet is to raise a support ticket with Citrix support and provide them with a sample app that can repro the bug.

Background HTML visibiltiy in Silverlight Full Screen Mode

I am creating a page with Silverlight component and some HTML controls.
On enabling Silverlight's full screen, I am unable to view the background HTML controls. Even if I set the xaml's background to transparent.
Please let me know if it's possible to view the HTML controls in full screen mode of Silverlight or not.
Thanks
I doubt that such thing is possible, for security reasons, as the keybordsupport in Fullscreen is. It would enable you create such things as a app totally visible observing the movements.
But I might be wrong !
Fullscreen mode takes the content currently restricted to rectangle on hosts window (the Browser client area window) and displays it on full screen window. This full screen window is a new window and contains only the Siverlight content.
When silverlight is rendering in a windowless mode it is simply rendering directly on to the host window. When you got fullscreen mode in Silverlight you are not affecting the hosts window, fullscreen effectively suppends windowless mode as it needs a new window of its own to render on.

To view the silverlight app in fullscreen mode(F11)

Is there any way to load my silverlight app in F11 mode directly?
I have used
window.open(url, '_self',
'toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=no,fullscreen=yes',
'true');
HtmlPage.window.invoke("launchPage",url);
But the problem is that two instances of my app are opened. One in normal screen and the other in fullscreen.
I have tried
App.Current.Host.Content.IsFullScreen = true;
in the constructor of the App.xaml
Still its not working. :(
Where am I going wrong??
running a Silverlight application automatically in full-screen is not possible because of security restriction. It is like the following...
You have opened your banks login page in a Firefox tab. This is your current tab.
You are opening a malicious silverlight application on another tab.
The malicious silverlight application loads and creates a full-screen that exactly matches your bank's login page.
You are talking to someone while the silverlight application loads. (Your eye is not on screen) So you missed the fullscreen message that pops up.
Now when you look at the computer screen you see your bank login page that is actually a fullscreen page of the silverlight application that matches your bank's login page.
You enter your user name and password...and
When you click login the malicious application has got everything it wanted.
This is not only for Silverlight. It is a restriction that SHOULD BE THERE WITH EVERY ACTIVEX CONTROL UNTIL THIS PROBLEM IS SOLVED.
What you are doing with javascript is you are opening a new pop up window without menubar, addressbar etc. It is not a replacement of F11. And to my experience most of the users hate automatic poping up. And most modern browsers will block them anyway.
The best way is to tell the user she needs to view your application on fullscreen and LET HER DECIDE INSTEAD OF FORCING IT.

How to force IE7 toolbars to always show

I have the developer toolbar for IE7, which is great when I want to inspect the page layout in a fashion similar to the functionality of firebug for firefox.
However I am working with a web site that opens a new window with the toolbars disabled, and I cannot access my dev toolbar button! Is there a way to force IE7 to always show the toolbar?
I don't believe you can.
You can recover the navigation toolbar (back, forward, address bar, search box) in a chromeless window (one opened without navigation toolbar, menus, other toolbars) by hitting F11, then F11 again, but that still doesn't give you access to the IE Developer Toolbar.
What will sometimes work is to hit CTRL+N while the new, chromeless window has focus. Doing that will open a new chromed (toolbars, menus, etc) to the same URL as the chromeless window. The trick won't work very well if the chromeless window URL is the result of a POST, or does a GET that modifies state in some way on the server.
I imagine that this happens because the pop-up window is opened using a javascript window.open() call specifying not to have the toolbars on the new window?
One possibility is opening the page source, finding the javascript call that opens the window, and pasting it into the address bar, modifying it to not disable toolbars.
For example, if the call currently looks like:
window.open(url, "newWindow", "toolbar=no,width=500,...");
Edit the address bar to read something like:
javascript:window.open(url, "newWindow", "toolbar=yes,width=500,...");
When you push enter on that, it should pop up the window just the same, but with toolbars.
IE8 has the dev toolbar built-in, so you can always access it via F12. Consider upgrading?

Resources