diff --git a/Web/Presenters/templates/Apps/Play.latte b/Web/Presenters/templates/Apps/Play.latte index c268ddeb0..d0143d231 100644 --- a/Web/Presenters/templates/Apps/Play.latte +++ b/Web/Presenters/templates/Apps/Play.latte @@ -16,7 +16,7 @@ {block header} {$name} - {_report} + [{_report}] [{_menu_settings}] [πŸ——] {/block} {block content} @@ -43,6 +43,53 @@ window.appTitle = {$name}; window.appPerms = {$perms}; window.appOrigin = {$origin}; + window.fsApps = JSON.parse(localStorage.getItem("fullscreen_apps") || "[]"); + + + {script "js/al_games.js"} diff --git a/Web/static/css/main.css b/Web/static/css/main.css index 39ea4f1b1..6731d1076 100644 --- a/Web/static/css/main.css +++ b/Web/static/css/main.css @@ -4828,3 +4828,45 @@ hr { white-space: nowrap; } } + +html.app_fullscreen { + overflow-y: hidden !important; +} + +html.app_fullscreen .page_header { + z-index: 0; +} + +html.app_fullscreen #app_dev { + display: none; +} + +body.dimmed .dimmer { + z-index: 1023; +} + +#ajax_audio_player { + z-index: 1020; +} + +center.app_fullscreen { + position: fixed; + display: flex; + flex-direction: column; + width: 100vw; + height: 100vh; + text-align: left; + top: 0; + left: 0; +} + +.app_fullscreen #appFrame, .app_fullscreen .page_yellowheader { + z-index: 1021; +} + +.app_fullscreen #appFrame { + position: relative; + width: 100% !important; + height: auto !important; + flex: 1; +} \ No newline at end of file diff --git a/Web/static/js/options.js b/Web/static/js/options.js index 2e9e85df7..4da0d6a04 100644 --- a/Web/static/js/options.js +++ b/Web/static/js/options.js @@ -181,6 +181,12 @@ window.tweaks = [ `) u("#appFrame").closest("center").addClass("app_block") }), + new TweakOption("apps.fullscreen_show_notifications", function () { + this.customCSS(`html.app_fullscreen .notifications_global_wrap {z-index: 1022;}`) + }), + new TweakOption("apps.fullscreen_show_ajax_player", function () { + this.customCSS(`html.app_fullscreen #ajax_audio_player {z-index: 1025;}`) + }), new TweakOption("wall.hide_edit_mark", function () { this.customCSS(`.editedMark {display: none;}`) }), diff --git a/Web/static/js/router.js b/Web/static/js/router.js index 454b805b3..a95566ff3 100644 --- a/Web/static/js/router.js +++ b/Web/static/js/router.js @@ -160,6 +160,8 @@ window.router = new class { await window.player._handlePageTransition() } + if (u("html").hasClass("app_fullscreen")) { u("html").removeClass("app_fullscreen") } + this.applyTweaks() /*window.document.dispatchEvent(new Event("DOMContentLoaded", { diff --git a/locales/en.strings b/locales/en.strings index 2ec5d4533..2e3588034 100644 --- a/locales/en.strings +++ b/locales/en.strings @@ -1339,6 +1339,7 @@ "app_err_note_desc" = "Make sure the link is correct and the note belongs to you."; "app_delete_modal_desc" = "Are you sure you want to delete the app? This action cannot be undone."; "app_delete_succ" = "The app has been deleted"; +"app_start_fullscreen" = "Start app in fullscreen mode automatically"; "learn_more" = "Learn more"; diff --git a/locales/ru.strings b/locales/ru.strings index f12221c8a..ff3af0c56 100644 --- a/locales/ru.strings +++ b/locales/ru.strings @@ -1272,6 +1272,7 @@ "app_err_note_desc" = "Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ссылка ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ° ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π’Π°ΠΌ."; "app_delete_modal_desc" = "Π’Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅? Π­Ρ‚ΠΎ дСйствиС нСльзя ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ."; "app_delete_succ" = "ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΎ"; +"app_start_fullscreen" = "АвтоматичСски Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² полноэкранном Ρ€Π΅ΠΆΠΈΠΌΠ΅"; "learn_more" = "ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅";