ソースを参照

Optimized many things about the mobile interface

TC pushbot 5 4 年 前
コミット
df26179b11

BIN
web/SystemAO/cluster/img/f_f_business_61_s512_f_business_61_2nbg.png


BIN
web/SystemAO/cluster/img/small_icon.png


BIN
web/SystemAO/cluster/img/small_icon.psd


+ 3 - 1
web/SystemAO/desktop/personalization.html

@@ -312,7 +312,9 @@
                 //Restart desktop background changer interval
                 if (ao_module_virtualDesktop){
                     console.log("Restarting desktop background changer interval")
-                    parent.clearInterval(parent.backgroundIntervalCounter);
+                    if (parent.backgroundIntervalCounter){
+                        parent.clearInterval(parent.backgroundIntervalCounter);
+                    }
                     parent.initBackgroundSwitchingAnimation();
                 }
                 

BIN
web/SystemAO/disk/quota/img/small_icon.png


BIN
web/SystemAO/disk/quota/img/small_icon.psd


BIN
web/SystemAO/disk/smart/img/small_icon.png


BIN
web/SystemAO/disk/smart/img/small_icon.psd


BIN
web/SystemAO/disk/space/img/small_icon.png


BIN
web/SystemAO/disk/space/img/small_icon.psd


+ 43 - 2
web/SystemAO/file_system/file_selector.html

@@ -279,11 +279,10 @@
                 $("#newFolderInput").toggle();
                 if($("#newFolderInput").is(":visible")){
                     $("#sidebarPadder").css("height", "90px");
-                    $(".fileListWrapper").css("padding-top", "50px");
                 }else{
                     $("#sidebarPadder").css("height", "46px");
-                    $(".fileListWrapper").css("padding-top", "0px");
                 }
+                updateFileListTopLocation();
             }
 
             function hideFolderNameInput(){
@@ -540,14 +539,55 @@
 
             function updateWindowResize(){
                 if (window.innerWidth < 560){
+                    //Mobile mode
                     $("#sidebar").attr("class", "ts left overlapped sidebar");
                     $(".pusher").css("margin-left", "0px").css("width","100%");
+                    $("#sidebar").css("margin-top", "30px");
                     $("#sidebarToggleBtn").show();
+
+                    $("#addressbar").parent().css({
+                        "width": "100%",
+                        "margin-top": "4px"
+                    });
+
+                    $("#newfilenameInput").find(".input").css({
+                        "width": "100%",
+                        "margin-top": "4px"
+                    });
+
+                    $("#newFolderInput").find(".input").css({
+                        "width": "100%",
+                        "margin-top": "4px"
+                    });
+
+
                 }else{
                     $("#sidebar").attr("class", "ts left static visible overlapped sidebar");
                     $(".pusher").css("margin-left", "200px").css("width","calc(100% - 200px)");
                     $("#sidebarToggleBtn").hide();
+                    $("#sidebar").css("margin-top", "0px");
+
+                    $("#addressbar").parent().css({
+                        "width": "calc(100% - 180px)",
+                        "margin-top": "0px"
+                    });
+
+                    $("#newfilenameInput").find(".input").css({
+                        "width": "calc(100% - 180px)",
+                        "margin-top": "0px"
+                    });
+
+                    $("#newFolderInput").find(".input").css({
+                        "width": "calc(100% - 180px)",
+                        "margin-top": "8px"
+                    });
                 }
+
+                updateFileListTopLocation();
+            }
+
+            function updateFileListTopLocation(){
+                $(".fileListWrapper").css("padding-top", $(".navi").height() - 38 + "px");
             }
 
             function initAddressBarWidth(){
@@ -613,6 +653,7 @@
                     ts('.sidebar').sidebar('hide');
                 }
             }
+
         </script>
     </body>
 </html>

BIN
web/Web Downloader/img/f_f_business_2_s512_f_business_2_2bg.png


BIN
web/Web Downloader/img/f_f_business_2_s512_f_business_2_2nbg.png


+ 8 - 0
web/desktop.system

@@ -1693,6 +1693,10 @@
             event.stopImmediatePropagation();
             var targetWFID = $(object).attr("windowId");
             var targetFW = getFloatWindowByID(targetWFID);
+            if (targetFW == undefined){
+                //fw not found
+                return;
+            }
             $(targetFW).fadeIn(100);
             MoveFloatWindowToTop(targetFW);
             stackedFloatWindowListShwon = false;
@@ -1704,6 +1708,10 @@
             event.stopImmediatePropagation();
             var targetWFID = $(object).parent().attr("windowId");
             var targetFW = getFloatWindowByID(targetWFID);
+            if (targetFW == undefined){
+                //fw not found
+                return;
+            }
             closeFloatWindow(targetFW.find(".close"), event);
             $(object).parent().remove();
             if ($("#stackedWindowList").find(".item").length == 0) {

ファイルの差分が大きいため隠しています
+ 27 - 0
web/img/desktop/system_icon/user.ai


+ 5 - 4
web/img/desktop/system_icon/user.svg

@@ -3,8 +3,9 @@
 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 <svg version="1.1" id="圖層_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
 	 width="128px" height="128px" viewBox="0 0 128 128" enable-background="new 0 0 128 128" xml:space="preserve">
-<circle fill="#00A0E9" cx="64" cy="42.483" r="20.033"/>
-<path fill="#00A0E9" d="M62.895,106.882c16.229,0,29.361-2.217,29.361-4.959c0-21.133-8.806-38.231-19.689-38.231
-	c0,3.252-3.99,5.883-8.922,5.883c-4.693,0-8.492-2.631-8.492-5.883c-10.728,0-19.41,17.099-19.41,38.231
-	c0,2.742,12.235,4.959,27.355,4.959"/>
+<rect fill="#3E3A39" width="128" height="128"/>
+<circle fill="#FFFFFF" cx="64.001" cy="46.508" r="20.033"/>
+<path fill="#FFFFFF" d="M62.896,110.907c16.229,0,29.361-2.217,29.361-4.959c0-21.133-8.806-38.231-19.689-38.231
+	c0,3.252-3.989,5.884-8.922,5.884c-4.692,0-8.492-2.632-8.492-5.884c-10.728,0-19.41,17.1-19.41,38.231
+	c0,2.742,12.235,4.959,27.354,4.959"/>
 </svg>

+ 1 - 0
web/img/mobile/account_circle_white_48dp.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 0 24 24" width="48px" fill="#FFFFFF"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM7.07 18.28c.43-.9 3.05-1.78 4.93-1.78s4.51.88 4.93 1.78C15.57 19.36 13.86 20 12 20s-3.57-.64-4.93-1.72zm11.29-1.45c-1.43-1.74-4.9-2.33-6.36-2.33s-4.93.59-6.36 2.33C4.62 15.49 4 13.82 4 12c0-4.41 3.59-8 8-8s8 3.59 8 8c0 1.82-.62 3.49-1.64 4.83zM12 6c-1.94 0-3.5 1.56-3.5 3.5S10.06 13 12 13s3.5-1.56 3.5-3.5S13.94 6 12 6zm0 5c-.83 0-1.5-.67-1.5-1.5S11.17 8 12 8s1.5.67 1.5 1.5S12.83 11 12 11z"/></svg>

+ 1 - 0
web/img/mobile/folder_open_white_24dp.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#FFFFFF"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z"/></svg>

+ 1 - 0
web/img/mobile/fullscreen_white_48dp.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 0 24 24" width="48px" fill="#FFFFFF"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"/></svg>

+ 1 - 0
web/img/mobile/layers_clear_white_48dp.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 0 24 24" width="48px" fill="#FFFFFF"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M12 4.53L17.74 9l-1.89 1.47 1.43 1.42L21 9l-9-7-2.59 2.02 1.42 1.42zm9 9.54l-1.63-1.27-.67.52 1.43 1.43zM3.41.86L2 2.27l4.22 4.22L3 9l9 7 2.1-1.63 1.42 1.42-3.53 2.75-7.37-5.73L3 14.07l9 7 4.95-3.85L20.73 21l1.41-1.41L3.41.86zM12 13.47L6.26 9l1.39-1.08 5.02 5.02-.67.53z"/></svg>

+ 1 - 0
web/img/mobile/palette_white_48dp.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 20 20" height="48px" viewBox="0 0 20 20" width="48px" fill="#FFFFFF"><g><rect fill="none" height="20" width="20"/></g><g><g><path d="M10,2c-4.41,0-8,3.59-8,8s3.59,8,8,8c1.1,0,2-0.9,2-2c0-0.49-0.18-0.96-0.51-1.34c-0.24-0.3-0.02-0.66,0.3-0.66h1.42 c2.65,0,4.8-2.15,4.8-4.8C18,5.23,14.41,2,10,2z M13.2,12.5h-1.42c-1.05,0-1.9,0.85-1.9,1.9c0,0.47,0.19,0.92,0.47,1.25 c0.34,0.39,0.02,0.85-0.36,0.85c-3.58,0-6.5-2.92-6.5-6.5S6.42,3.5,10,3.5s6.5,2.56,6.5,5.7C16.5,11.02,15.02,12.5,13.2,12.5z"/><circle cx="14.5" cy="9.5" r="1.25"/><circle cx="12" cy="6.5" r="1.25"/><circle cx="5.5" cy="9.5" r="1.25"/><circle cx="8" cy="6.5" r="1.25"/></g></g></svg>

+ 1 - 0
web/img/mobile/tune_white_24dp.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#FFFFFF"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z"/></svg>

+ 264 - 6
web/mobile.system

@@ -120,6 +120,9 @@
                 position:absolute;
                 bottom:12px;
                 left:12px;
+            }
+
+            .listMenuLauncher .functionbtn{
                 cursor:pointer;
             }
             
@@ -241,6 +244,10 @@
                 justify-content: flex-end;
                 pointer-events: none;
             }
+
+            .extendOnly{
+                display:none;
+            }
             
 
             /* Magic css to make the connection logo blink */
@@ -308,6 +315,39 @@
                 display:none;
             }
 
+            #userprofile{
+                z-index: 90;
+                position: fixed;
+                top: 0px;
+                left: 3em;
+                right: 3em;
+                background-color: rgba(255,255,255,0.95);
+                backdrop-filter: blur(4px);
+                border-bottom-left-radius: 20px;
+                border-bottom-right-radius: 20px;
+                padding-left: 1.2em;
+                padding-right: 1.2em;
+                padding-top: 1.2em;
+                display:none;
+
+                box-shadow: 6px 8px 5px 2px rgba(0,0,0,0.2);
+                -webkit-box-shadow: 6px 8px 5px 2px rgba(0,0,0,0.2);
+                -moz-box-shadow: 6px 8px 5px 2px rgba(0,0,0,0.2);
+            }
+
+            .clock{
+                position: fixed; 
+                left: 0px; 
+                width: 100%; 
+                top: 0px; 
+                padding-top: 0.3em;
+                padding-bottom: 0.7em;
+                color: white; 
+                text-align: center; 
+                pointer-events: none;
+                background: rgb(255,255,255);
+                background: linear-gradient(0deg, rgba(255,255,255,0) 2%, rgba(6,6,6,0.4479635060791801) 44%, rgba(29,29,29,1) 100%); 
+            }
         </style>
     </head>
     <body>
@@ -315,14 +355,39 @@
             <div class="toggleTaskBar themeColor" shown="false" onclick="toggleTaskBar(this);">
                 <img class="ui image sidebararrow" style="margin-top:8px; margin-left: -10px;" src="img/mobile/keyboard_arrow_right-white-48dp.svg"></img>
             </div>
-            <div class="listMenuLauncher" onclick="showListMenu();">
-                <img src="img/mobile/apps-white-48dp.svg" style="width: 30px;"/>
+            <div class="listMenuLauncher">
+                <img onclick="showListMenu();" class="functionbtn" src="img/mobile/apps-white-48dp.svg" style="width: 30px;"/>
+                <img onclick="showProfileInfo();" class="functionbtn extendOnly" src="img/mobile/account_circle_white_48dp.svg" style="width: 30px;"/>
+                <img onclick="openDesktopCustomization();" class="functionbtn extendOnly" src="img/mobile/palette_white_48dp.svg" style="width: 30px;"/>
+                <img onclick="openDesktopAsFolder();" class="functionbtn extendOnly" src="img/mobile/folder_open_white_24dp.svg" style="width: 30px;"/>
+                <img onclick="fullscreen();" class="functionbtn extendOnly" src="img/mobile/fullscreen_white_48dp.svg" style="width: 30px;"/>
+                <img onclick="openSystemSettings();" class="functionbtn extendOnly" src="img/mobile/tune_white_24dp.svg" style="width: 30px;"/>
+
+                <img onclick="showDesktop();" class="functionbtn extendOnly" src="img/mobile/layers_clear_white_48dp.svg" style="width: 30px;"/>
             </div>
             <div id="windowButtonWrapper">
                
             </div>
         </div>
 
+        <div id="userprofile">
+            <div class="ui minimal comments">
+                <div class="ui comment">
+                    <div class="avatar">
+                        <img class="usericon" src="img/desktop/system_icon/user.svg">
+                    </div>
+                    <div class="content">
+                        <dic class="author" id="username">User</dic>
+                        <div class="text" id="usergroups">@user</div>
+                    </div>
+                </div>
+            </div>
+            <button onclick="logout();" class="ui basic blue mini button" style="position: absolute; top: 1em; right: 1em;">Logout</button>
+            <button onclick="toggleProfileInfo();" class="circular ui themecolor icon button" style="position: absolute; bottom: 0px; right: 0px; margin-bottom: -10px; margin-right: -10px; color: white;">
+                <i class="remove icon"></i>
+              </button>
+        </div>
+
         <div id="listMenu" style="left:-100%;">
             <div class="searchBar" onkeydown="searchModule(event);">
                 <div class="ui icon fluid input" style="border-radius: 0px !important;">
@@ -356,6 +421,9 @@
         <div id="mainFrame">
             <div id="backdrop">
                 
+            </div>
+            <div class="clock">
+                ArozOS Desktop
             </div>
             <div id="windowWrapper">
                 
@@ -375,6 +443,13 @@
             var listMenuShown = false;
             var hostInfo;
 
+            //IME mockup
+            window.ime = null;
+
+            //Clock related
+            var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
+        var daysNames = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
+
             //initiation Functions
             initHostInfo();
             initModuleList();
@@ -382,6 +457,8 @@
             initBackdropImage();
             initUserDefinedThemeColor();
             bindBackgroundClickActions();
+            initStartupSounds();
+            initDesktopUserInfo();
 
             //Bind background click
             function bindBackgroundClickActions(){
@@ -523,6 +600,7 @@
                 });
 
                 $("#sidebarToggleOverlay").hide();
+                $(".extendOnly").slideUp("fast");
             }
 
             function showTaskBar(){
@@ -535,6 +613,7 @@
                         $(this).find(".minimizedElements").hide();
                         $(this).find(".normalElements").show();
                      });
+                     $(".extendOnly").slideDown("fast");
                 });
                 $(".taskBar").find('.sidebararrow').attr("src","img/mobile/keyboard_arrow_left-white-48dp.svg");
                 $(".taskBar").find(".toggleTaskBar").attr("shown","true");
@@ -689,8 +768,11 @@
                     $(".taskBar").animate({
                         width: "300px",
                     },300,"swing", function(){
+                        
                         if (typeof callback != "undefined"){
                             callback();
+                        }else{
+                            $(".extendOnly").slideDown("fast");
                         }
                     });
                     
@@ -717,8 +799,14 @@
                 if ($(evt.target).hasClass("taskBar")){
                         swipeTarget = evt.target;
                         targetType = "taskbar"
+                }else if ($(evt.target).hasClass("toggleTaskBar")){
+
+                
                 }else{
-                    swipeTarget = getFloatWindowObjectFromPath(evt.path);
+                    if (evt.path != undefined){
+                        swipeTarget = getFloatWindowObjectFromPath(evt.path);
+                    }
+                    
                 }
                 
                 xDown = firstTouch.clientX; 
@@ -989,8 +1077,11 @@
 
             function closeFloatWindow(windowID){
                 //Get the content iframe with that windowID
-                var contentWindow = getFloatWindowByID(windowID).find("iframe")[0].contentWindow;
-                console.log(contentWindow);
+                var contentWindow = getFloatWindowByID(windowID);
+                if (contentWindow == undefined){
+                    return;
+                }
+                contentWindow = contentWindow.find("iframe")[0].contentWindow;
                 try {
                     if (contentWindow.ao_module_close === undefined) {
                         //This module do not use ao_module wrapper. Close it directly.
@@ -1082,8 +1173,13 @@
                     }
                 }, 100);
                 
+                
             }
 
+            function bindObjectToIMEEvents(object){
+                console.log("IME not supported in mobile desktop mode")
+            };
+
             function openFileWithModule(moduleLaunchInfo, openFileList) {
                 var url = moduleLaunchInfo["StartDir"];
                 var size = [undefined, undefined];
@@ -1110,7 +1206,7 @@
                 var openParamter = encodeURIComponent(JSON.stringify(openFileList));
 
                 //Add launch files info and launch floatWindow
-                parent.newFloatWindow({
+                newFloatWindow({
                     url: url + "#" + openParamter,
                     width: size[0],
                     height: size[1],
@@ -1126,7 +1222,169 @@
             function UnpinFloatWindowFromTopMostMode(object){
 
             }
+
+            /*
+                List Menu Specific function groups
+            */
+
+            function openDesktopAsFolder(){
+                newFloatWindow({
+                    url: "SystemAO/file_system/file_explorer.html#" + encodeURIComponent("user:/Desktop/"),
+                    appicon: "SystemAO/file_system/img/small_icon.png",
+                    width:1080,
+                    height:580,
+                    title: "File Manager"
+                });
+
+                hideTaskBar();
+            }
+
+            function openDesktopCustomization(){
+                newFloatWindow({
+                    url: "SystemAO/desktop/personalization.html",
+                    appicon: "SystemAO/desktop/img/personalization.png",
+                    width:640,
+                    height:480,
+                    title: "Personalization"
+                });
+
+                hideTaskBar();
+            }
+
+            function showDesktop(){
+                $(".floatWindowWrapper").fadeOut("fast");
+                hideTaskBar();
+            }
+
+            //Theme color placeholder functions
+            function setThemeColor(color){
+                $(".themeColor").css("background-color", color);
+            }
+
+            //Startup sound
+            function initStartupSounds(){
+                $.ajax({
+                    url: "../../system/desktop/preference",
+                    method: "GET",
+                    data: {preference: "startup-audio"},
+                    success: function(data){
+                        if (data == undefined || data == ""){
+                            return;
+                        }
+                        var currentGlobalVol = localStorage.getItem("global_volume");
+                        if (currentGlobalVol != null && currentGlobalVol != undefined && currentGlobalVol != ""){
+                            
+                        }else{
+                            currentGlobalVol = 0;
+                        }
+
+                        var audio = new Audio("media?file=" + data);
+                        audio.volume = currentGlobalVol;
+                        audio.play();
+                    }
+                });
+            }
+
+            function fullscreen() {
+                //Opening full screen will lead to hidden of all iframe for unknown reasons
+                var isInFullScreen = (document.fullscreenElement && document.fullscreenElement !== null) ||
+                    (document.webkitFullscreenElement && document.webkitFullscreenElement !== null) ||
+                    (document.mozFullScreenElement && document.mozFullScreenElement !== null) ||
+                    (document.msFullscreenElement && document.msFullscreenElement !== null);
+                var elem = document.documentElement;
+                if (!isInFullScreen) {
+                    if (elem.requestFullscreen) {
+                        elem.requestFullscreen();
+                    } else if (elem.mozRequestFullScreen) { /* Firefox */
+                        elem.mozRequestFullScreen();
+                    } else if (elem.webkitRequestFullscreen) { /* Chrome, Safari and Opera */
+                        elem.webkitRequestFullscreen();
+                    } else if (elem.msRequestFullscreen) { /* IE/Edge */
+                        elem.msRequestFullscreen();
+                    }
+                } else {
+                    if (document.exitFullscreen) {
+                        document.exitFullscreen();
+                    } else if (document.webkitExitFullscreen) {
+                        document.webkitExitFullscreen();
+                    } else if (document.mozCancelFullScreen) {
+                        document.mozCancelFullScreen();
+                    } else if (document.msExitFullscreen) {
+                        document.msExitFullscreen();
+                    }
+                }
+
+                hideTaskBar();
+            }
+
+            function initDesktopUserInfo(){
+                $.get("system/desktop/user", function(data){
+                    if (data.error !== undefined){
+                        alert(data.error);
+                    }else{
+                        userInfo = data;
+                        //Update the user tag
+                        $("#username").text(userInfo.Username);
+                        $("#usergroups").text("@" + userInfo.UserGroups.join("/"));
+                        $("#usergroups").attr("title",userInfo.UserGroups.join(" / "));
+                        if (data.UserIcon !== ""){
+                            $(".usericon").attr("src",data.UserIcon);
+                        }
+                    }
+                });
+            }
+
+            function showProfileInfo(){
+                hideTaskBar();
+                setTimeout(function(){
+                    toggleProfileInfo();
+                }, 500);
+            }
+
+            function toggleProfileInfo(){
+                $("#userprofile").transition('drop');
+            }
+
+            function openSystemSettings(){
+                openModule("System Setting");
+            }
+
+            function logout() {
+                loggingOut = true;
+                if (confirm("Exiting Session. Confirm?")){
+                    $.get("system/auth/logout", function() {
+                        window.location.href = "/";
+                    });
+                    toggleProfileInfo();
+                }
+                
+            }
             
+            //Keep the clock updated
+            setInterval(function(){
+                updateClockTime();
+            },5000);
+            updateClockTime();
+            function updateClockTime(){
+                var d = new Date();
+                var display = monthNames[d.getMonth()] + " " + d.getDate() + " " + zeropad(d.getHours(),2) + ":" + zeropad(d.getMinutes(),2);
+                
+                if ($(".notification.object").length > 0){
+                    display += `<span style="color: #f54242; margin-left: 8px; float: center;"><i class="notice circle icon"></i></span>`;
+                }
+                $(".clock").html(display);
+                var largedate = monthNames[d.getMonth()] + " " + d.getDate() + " " + d.getFullYear() 
+                $("#largedate").text(largedate);
+                var dow = daysNames[d.getDay()];
+                $("#dayofweek").text(dow);
+            }
+
+            function zeropad(n, width, z) {
+                z = z || '0';
+                n = n + '';
+                return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
+            }
+
         </script>
     </body>
 </html>

+ 3 - 0
web/script/ao_module.js

@@ -31,6 +31,9 @@ ao_root = ao_module_getAORootFromScriptPath();
 
 document.addEventListener("DOMContentLoaded", function() {
     if (ao_module_virtualDesktop){
+        if (parent.window.ime == null){
+            return;
+        }
         //Add window focus handler
         document.addEventListener("mousedown", function(event) {
             //When click on this document, focus this

この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません