summaryrefslogtreecommitdiff
path: root/kvmd
diff options
context:
space:
mode:
Diffstat (limited to 'kvmd')
-rw-r--r--kvmd/web/css/keyboard.css10
-rw-r--r--kvmd/web/css/main.css1
-rw-r--r--kvmd/web/css/mobile.css65
-rw-r--r--kvmd/web/index.html8
-rw-r--r--kvmd/web/js/ui.js15
5 files changed, 91 insertions, 8 deletions
diff --git a/kvmd/web/css/keyboard.css b/kvmd/web/css/keyboard.css
index f19a5689..7686a3f3 100644
--- a/kvmd/web/css/keyboard.css
+++ b/kvmd/web/css/keyboard.css
@@ -42,15 +42,15 @@ div#keyboard div.key:hover, div.modifier:hover {
color: var(--fg-color-intensive);
background-color: var(--bg-color-ctl);
}
-div#keyboard div.pressed, div.pressed {
+div#keyboard div.pressed {
box-shadow: none;
- color: var(--fg-color-selected);
- background-color: var(--bg-color-dark);
+ color: var(--fg-color-selected) !important;
+ background-color: var(--bg-color-dark) !important;
}
div#keyboard div.holded {
box-shadow: none;
- color: var(--fg-color-normal);
- background-color: var(--bg-color-intensive);
+ color: var(--fg-color-normal) !important;
+ background-color: var(--bg-color-intensive) !important;
}
div#keyboard div.key:last-child, div.empty-key:last-child, div.modifier:last-child {
margin-right: 0;
diff --git a/kvmd/web/css/main.css b/kvmd/web/css/main.css
index 630536da..dec3cb45 100644
--- a/kvmd/web/css/main.css
+++ b/kvmd/web/css/main.css
@@ -7,6 +7,7 @@ body {
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
+ touch-action: manipulation;
}
img#logo {
-webkit-filter: invert(0.7);
diff --git a/kvmd/web/css/mobile.css b/kvmd/web/css/mobile.css
new file mode 100644
index 00000000..9d686da2
--- /dev/null
+++ b/kvmd/web/css/mobile.css
@@ -0,0 +1,65 @@
+/*
+ http://stephen.io/mediaqueries/
+ https://gist.github.com/gokulkrishh/242e68d1ee94ad05f488
+*/
+
+@media only screen and (min-device-width : 768px) and (max-device-width : 1024px) {
+ div.window {
+ padding-top: 45px !important;
+ }
+ div.window-header {
+ height: 35px !important;
+ }
+ div.window-grab {
+ height: 35px !important;
+ }
+ button.window-button-close {
+ height: 40px !important;
+ }
+
+ div#keyboard div.key:hover, div.modifier:hover {
+ color: var(--fg-color-normal);
+ background-color: var(--bg-color-gray);
+ }
+}
+
+@media only screen and (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {
+ div.ctl-dropdown-content button {
+ height: 45px !important;
+ }
+
+ div#stream-window {
+ padding-top: 9px !important;
+ border-top: 0 !important;
+ border-radius: 0 0 8px 8px !important;
+ top: 50px !important;
+ left: 50% !important;
+ -webkit-transform: translateX(-50%) !important;
+ transform: translateX(-50%) !important;
+ }
+ div#stream-window-header {
+ display: none !important;
+ }
+
+ div#keyboard {
+ zoom: 1.1 !important;
+ }
+ div#keyboard-window {
+ visibility: visible !important;
+ padding-top: 9px !important;
+ padding-bottom: 30px !important;
+ border-bottom: 0 !important;
+ border-left: 0 !important;
+ border-right: 0 !important;
+ border-radius: 0 !important;
+ top: unset !important;
+ bottom: 0 !important;
+ width: 100% !important;
+ left: 50% !important;
+ -webkit-transform: translateX(-50%) !important;
+ transform: translateX(-50%) !important;
+ }
+ div#keyboard-window-header {
+ display: none !important
+ }
+}
diff --git a/kvmd/web/index.html b/kvmd/web/index.html
index 5f27074d..4f225f02 100644
--- a/kvmd/web/index.html
+++ b/kvmd/web/index.html
@@ -18,6 +18,8 @@
<link rel="stylesheet" href="css/keyboard.css">
<link rel="stylesheet" href="css/about.css">
+ <link rel="stylesheet" href="css/mobile.css">
+
<script src="js/tools.js"></script>
<script src="js/stream.js"></script>
<script src="js/atx.js"></script>
@@ -216,18 +218,18 @@
</ul>
<div id="stream-window" class="window" style="z-index: 1" tabindex="0">
- <div class="window-header"><div class="window-grab">Stream</div></div>
+ <div id="stream-window-header" class="window-header"><div class="window-grab">Stream</div></div>
<div id="stream-box" class="stream-box-inactive">
<img id="stream-image" class="stream-image-inactive" src="png/blank-stream.png" />
</div>
</div>
<div id="keyboard-window" class="window" tabindex="0">
- <div class="window-header">
+ <div id="keyboard-window-header" class="window-header">
<div class="window-grab">Virtual Keyboard</div>
<button class="window-button-close">&times;</button>
</div>
- <div id="keyboard">
+ <div id="keyboard" align="center">
<div class="keyboard-block">
<div class="keyboard-row">
<div id="Escape" class="key small"><p>Esc</p></div>
diff --git a/kvmd/web/js/ui.js b/kvmd/web/js/ui.js
index f97b237b..cb782bda 100644
--- a/kvmd/web/js/ui.js
+++ b/kvmd/web/js/ui.js
@@ -58,6 +58,9 @@ function Ui(hid) {
window.onmouseup = __globalMouseButtonHandler;
// window.oncontextmenu = __globalMouseButtonHandler;
+ window.addEventListener("resize", () => __organizeWindowsOnResize(false));
+ window.addEventListener("orientationchange", () => __organizeWindowsOnResize(true));
+
$("show-about-button").onclick = () => self.showWindow($("about-window"));
$("show-keyboard-button").onclick = () => self.showWindow($("keyboard-window"));
$("show-stream-button").onclick = () => self.showWindow($("stream-window"));
@@ -153,6 +156,18 @@ function Ui(hid) {
}
};
+ var __organizeWindowsOnResize = function(orientation) {
+ var view = __getViewGeometry();
+ Array.prototype.forEach.call($$("window"), function(el_window) {
+ if (el_window.style.visibility === "visible" && (orientation || el_window.hasAttribute("data-centered"))) {
+ var rect = el_window.getBoundingClientRect();
+ el_window.style.top = Math.max($("ctl").clientHeight, Math.round((view.bottom - rect.height) / 2)) + "px";
+ el_window.style.left = Math.round((view.right - rect.width) / 2) + "px";
+ el_window.setAttribute("data-centered", "");
+ }
+ });
+ };
+
var __makeWindowMovable = function(el_window) {
var el_header = el_window.querySelector(".window-header");
var el_grab = el_window.querySelector(".window-header .window-grab");