+
+
{{ hint }}
+
+
+
+
@@ -32,19 +37,67 @@
background: $text-normal;
}
}
+
+ // on touch devices it sits at the top, clear of the soft keyboard and the controls
+ &.touch {
+ top: calc(56px + env(safe-area-inset-top));
+ bottom: auto;
+ left: 50%;
+ right: auto;
+ z-index: 4;
+ width: calc(100% - 24px);
+ height: auto;
+ max-height: none;
+ transform: translateX(-50%);
+ box-sizing: border-box;
+
+ textarea {
+ display: block;
+ height: 96px;
+ font-size: 16px;
+ user-select: text;
+ -webkit-user-select: text;
+ }
+
+ .hint {
+ margin: 0 0 4px;
+ color: $text-normal;
+ font-size: 13px;
+ }
+
+ .actions {
+ display: flex;
+ justify-content: flex-end;
+ gap: 8px;
+ margin-top: 4px;
+
+ button {
+ min-height: 36px;
+ padding: 0 12px;
+ border: 0;
+ border-radius: 18px;
+ background: rgba($color: #fff, $alpha: 0.15);
+ color: $text-normal;
+ font-weight: 600;
+ }
+ }
+ }
}
diff --git a/images/chromium-headful/client/src/components/touch-keys.vue b/images/chromium-headful/client/src/components/touch-keys.vue
new file mode 100644
index 000000000..93779da0e
--- /dev/null
+++ b/images/chromium-headful/client/src/components/touch-keys.vue
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+
diff --git a/images/chromium-headful/client/src/components/video.vue b/images/chromium-headful/client/src/components/video.vue
index 6b0355651..de10e4cda 100644
--- a/images/chromium-headful/client/src/components/video.vue
+++ b/images/chromium-headful/client/src/components/video.vue
@@ -12,9 +12,12 @@
ref="overlay"
class="overlay"
spellcheck="false"
+ autocapitalize="off"
+ autocorrect="off"
+ :autocomplete="is_touch_device ? 'one-time-code' : 'off'"
tabindex="0"
data-gramm="false"
- :style="{ pointerEvents: hosting ? 'auto' : 'none' }"
+ :style="{ pointerEvents: hosting || is_touch_device ? 'auto' : 'none' }"
@click.stop.prevent
@contextmenu.stop.prevent
@mousemove.stop.prevent="onMouseMove"
@@ -22,12 +25,18 @@
@mouseup.stop.prevent="onMouseUp"
@mouseenter.stop.prevent="onMouseEnter"
@mouseleave.stop.prevent="onMouseLeave"
- @touchmove.stop.prevent="onTouchHandler"
- @touchstart.stop.prevent="onTouchHandler"
- @touchend.stop.prevent="onTouchHandler"
+ @touchstart.stop.prevent="onTouchStart"
+ @touchmove.stop.prevent="onTouchMove"
+ @touchend.stop.prevent="onTouchEnd"
+ @touchcancel.stop.prevent="onTouchCancel"
+ @keydown="onOverlayKey"
+ @keyup="onOverlayKey"
+ @input="onOverlayInput"
+ @compositionstart="onCompositionStart"
+ @compositionend="onCompositionEnd"
@paste.stop.prevent="onPaste"
@focus="onOverlayFocus"
- @blur="resetKeyboard"
+ @blur="onOverlayBlur"
/>
-
+
-
-
+
+
+
+
{{ touchNotice }}
-
+