diff --git a/bigbluebutton-client/resources/prod/bbb-deskshare-applet-0.9.0.jar b/bigbluebutton-client/resources/prod/bbb-deskshare-applet-0.9.0.jar index 1d4a06a90e..508975f164 100644 Binary files a/bigbluebutton-client/resources/prod/bbb-deskshare-applet-0.9.0.jar and b/bigbluebutton-client/resources/prod/bbb-deskshare-applet-0.9.0.jar differ diff --git a/bigbluebutton-client/resources/prod/bbb-deskshare-applet-unsigned-0.9.0.jar b/bigbluebutton-client/resources/prod/bbb-deskshare-applet-unsigned-0.9.0.jar index 5df4384975..d27cf1103b 100755 Binary files a/bigbluebutton-client/resources/prod/bbb-deskshare-applet-unsigned-0.9.0.jar and b/bigbluebutton-client/resources/prod/bbb-deskshare-applet-unsigned-0.9.0.jar differ diff --git a/bigbluebutton-client/resources/prod/lib/bbb_deskshare.js b/bigbluebutton-client/resources/prod/lib/bbb_deskshare.js index 1728c46bc8..a9b88a21c3 100755 --- a/bigbluebutton-client/resources/prod/lib/bbb_deskshare.js +++ b/bigbluebutton-client/resources/prod/lib/bbb_deskshare.js @@ -3,6 +3,9 @@ if (!window.console.log) window.console.log = function () { }; function startApplet(IP, roomNumber, fullScreen, useSVC2) { + var deskshareElement = document.getElementById("deskshare"); + if (deskshareElement == null) { + console.log("Starting deskshare applet."); var div = document.createElement("div"); div.id = "deskshare"; @@ -20,15 +23,40 @@ function startApplet(IP, roomNumber, fullScreen, useSVC2) "" + ""; document.body.appendChild(div); + } else { + console.log("Deskshare applet element already exists."); + var div = document.getElementById("deskshare"); + if (div.parentNode) { + // Just rewrite the applet tag to kick off the applet. We don't remove the applet tag + // when desktop sharing is stopped to prevent Firefox (38.0.5) from asking for user permissions + // again resulting in the page reloading. (ralam june 17, 2015) + // https://code.google.com/p/bigbluebutton/issues/detail?id=1953 + div.innerHTML = + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + ""; + } + } } + function removeFrame () { var div = document.getElementById("deskshare"); if (div.parentNode) { // Need to set the innerHTML otherwise the applet will restart in IE. // see https://code.google.com/p/bigbluebutton/issues/detail?id=1776 - div.innerHTML = ""; - div.parentNode.removeChild(div); + // Do NOT remove the applet tag as it makes Firefox (38.0.5) prompt for + // permissions again resulting in the page reloading. (ralam june 17, 2015) + // div.innerHTML = ""; +// div.parentNode.removeChild(div); } } @@ -142,4 +170,4 @@ function checkJavaVersion(minJavaVersion) { } } -} \ No newline at end of file +} diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/view/components/DesktopPublishWindow.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/view/components/DesktopPublishWindow.mxml index 7fcaf670f2..5b04b24e57 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/view/components/DesktopPublishWindow.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/deskshare/view/components/DesktopPublishWindow.mxml @@ -100,6 +100,8 @@ with BigBlueButton; if not, see . [Bindable] private var baseIndex:int; [Bindable] private var dsOptions:DeskshareOptions; + private var calledStopApplet:Boolean = false; + private function init():void { dsOptions = new DeskshareOptions(); baseIndex = dsOptions.baseTabIndex; @@ -332,15 +334,24 @@ with BigBlueButton; if not, see . closeWindow(); } - private function closeWindow():void { - ExternalInterface.call("stopApplet"); - dispatchEvent(new ShareWindowEvent(ShareWindowEvent.CLOSE)); - } - - private function restartJava():void { - ExternalInterface.call("stopApplet"); - shareScreen(sharingFullScreen); - } + private function callStopApplet():void { + if (!calledStopApplet) { + calledStopApplet = true; + trace("Calling stopApplet in callStopApplet()"); + ExternalInterface.call("stopApplet"); + } + } + private function closeWindow():void { + trace("Calling stopApplet in closeWindow()"); + callStopApplet(); + dispatchEvent(new ShareWindowEvent(ShareWindowEvent.CLOSE)); + } + + private function restartJava():void { + trace("Calling stopApplet in restartJava()"); + callStopApplet(); + shareScreen(sharingFullScreen); + } private function handleDeskshareAppletLaunchedEvent(e:DeskshareAppletLaunchedEvent):void { if (javaTimer && javaTimer.running) { diff --git a/deskshare/applet/src/main/java/org/bigbluebutton/deskshare/client/DeskShareApplet.java b/deskshare/applet/src/main/java/org/bigbluebutton/deskshare/client/DeskShareApplet.java index ce83360aec..cb5f0abd74 100755 --- a/deskshare/applet/src/main/java/org/bigbluebutton/deskshare/client/DeskShareApplet.java +++ b/deskshare/applet/src/main/java/org/bigbluebutton/deskshare/client/DeskShareApplet.java @@ -192,7 +192,9 @@ public class DeskShareApplet extends JApplet implements ClientListener { } public void onClientStop(ExitCode reason) { - // determine if client is disconnected _PTS_272_ + client.stop(); + + /* if ( ExitCode.CONNECTION_TO_DESKSHARE_SERVER_DROPPED == reason ){ JFrame pframe = new JFrame("Desktop Sharing Disconneted"); if ( null != pframe ){ @@ -206,6 +208,7 @@ public class DeskShareApplet extends JApplet implements ClientListener { }else{ client.stop(); } + */ } }