fix: use -webkit-user-select for text selection on Safari (#10982)

Signed-off-by: Alexander Onnikov <Alexander.Onnikov@xored.com>
This commit is contained in:
Alexander Onnikov
2026-07-17 16:44:09 +07:00
committed by GitHub
parent 21dfcf0774
commit 4c5d2d578e
58 changed files with 76 additions and 0 deletions
@@ -107,6 +107,7 @@
max-width: 40rem;
background: var(--theme-popup-color);
border-radius: 0.5rem;
-webkit-user-select: none;
user-select: none;
box-shadow: var(--theme-popup-shadow);
+6
View File
@@ -61,6 +61,7 @@ button {
border: 1px solid transparent;
outline: none;
cursor: pointer;
-webkit-user-select: none;
user-select: none;
}
input {
@@ -124,6 +125,7 @@ li {
}
p {
-webkit-user-select: inherit;
user-select:inherit;
a {
@@ -345,6 +347,7 @@ input.search {
color: var(--theme-content-color);
overflow: hidden;
-webkit-user-select: none;
user-select: none;
&:not(.nowrap) {
@@ -886,6 +889,7 @@ a.no-line {
font-size: 1rem;
color: var(--theme-caption-color);
user-select: none;
-webkit-user-select: none;
text-rendering: optimizeLegibility;
}
.trans-title {
@@ -894,6 +898,7 @@ a.no-line {
font-size: .75rem;
color: var(--theme-dark-color);
user-select: none;
-webkit-user-select: none;
text-rendering: optimizeLegibility;
}
.text-16px { font-size: 16px; }
@@ -941,6 +946,7 @@ a.no-line {
overflow: hidden;
white-space: pre-wrap;
width: max-content;
-webkit-user-select: none;
user-select: none;
min-width: auto;
}
+2
View File
@@ -281,6 +281,7 @@
@supports (selector(:has(.text-editor-image-container))) {
p:has(> .text-editor-image-container) {
-webkit-user-select: none;
user-select: none;
}
}
@@ -429,6 +430,7 @@
color: transparent;
background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20256%20256%22%20id%3D%22note%22%3E%3Crect%20width%3D%22256%22%20height%3D%22256%22%20fill%3D%22none%22%3E%3C%2Frect%3E%3Cline%20x1%3D%2296%22%20x2%3D%22160%22%20y1%3D%2296%22%20y2%3D%2296%22%20fill%3D%22none%22%20stroke%3D%22%23313131%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%228%22%3E%3C%2Fline%3E%3Cline%20x1%3D%2296%22%20x2%3D%22160%22%20y1%3D%22128%22%20y2%3D%22128%22%20fill%3D%22none%22%20stroke%3D%22%23313131%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%228%22%3E%3C%2Fline%3E%3Cline%20x1%3D%2296%22%20x2%3D%22128%22%20y1%3D%22160%22%20y2%3D%22160%22%20fill%3D%22none%22%20stroke%3D%22%23313131%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%228%22%3E%3C%2Fline%3E%3Cpath%20fill%3D%22none%22%20stroke%3D%22%23313131%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%228%22%20d%3D%22M156.68629%2C216H48a8%2C8%2C0%2C0%2C1-8-8V48a8%2C8%2C0%2C0%2C1%2C8-8H208a8%2C8%2C0%2C0%2C1%2C8%2C8V156.68629a8%2C8%2C0%2C0%2C1-2.34315%2C5.65686l-51.3137%2C51.3137A8%2C8%2C0%2C0%2C1%2C156.68629%2C216Z%22%3E%3C%2Fpath%3E%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22%23313131%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%228%22%20points%3D%22215.277%20159.992%20160%20159.992%20160%20215.272%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E');
background-repeat: no-repeat;
-webkit-user-select: none;
user-select: none;
cursor: pointer;
+7
View File
@@ -204,6 +204,7 @@
& > * {
pointer-events: none;
-webkit-user-select: none;
user-select: none;
-webkit-user-drag: none;
}
@@ -1220,6 +1221,7 @@
text-overflow: ellipsis;
white-space: nowrap;
user-select: none;
-webkit-user-select: none;
}
.ac-header__counter {
flex-shrink: 0;
@@ -1241,6 +1243,7 @@
-webkit-line-clamp: 2;
line-clamp: 2;
user-select: none;
-webkit-user-select: none;
}
.ac-header__icon-button {
@@ -1319,6 +1322,7 @@
color: var(--dark-color);
cursor: pointer;
user-select: none;
-webkit-user-select: none;
&.selected {
border-top: .125rem solid transparent;
@@ -1764,6 +1768,7 @@
color: var(--theme-dark-color);
box-shadow: inset 0 -1px 0 0 var(--theme-table-border-color);
user-select: none;
-webkit-user-select: none;
// z-index: 5;
&.sortable { cursor: pointer; }
@@ -2015,6 +2020,7 @@
text-overflow: ellipsis;
overflow: hidden;
user-select: none;
-webkit-user-select: none;
min-width: 0;
font-size: .75rem;
@@ -2101,6 +2107,7 @@
text-overflow: ellipsis;
overflow: hidden;
user-select: none;
-webkit-user-select: none;
min-width: 0;
&.selected { color: var(--caption-color); }
+1
View File
@@ -62,6 +62,7 @@
white-space: nowrap;
text-overflow: ellipsis;
user-select: none;
-webkit-user-select: none;
min-width: 0;
line-height: 150%;
color: var(--theme-caption-color);
+1
View File
@@ -156,6 +156,7 @@ body {
color: var(--content-color);
background-color: var(--theme-bg-color);
user-select: none;
-webkit-user-select: none;
--status-bar-height: 36px;
--status-bar-normal-height: 36px;
+1
View File
@@ -363,6 +363,7 @@
min-height: 0;
min-width: 0;
user-select: none;
-webkit-user-select: none;
&:not(.embedded) {
max-width: 30rem;
+1
View File
@@ -542,6 +542,7 @@ pre.proseCodeBlock>pre.proseCode {
}
header {
-webkit-user-select: none;
user-select: none;
position: absolute;
right: 0.5rem;
@@ -55,6 +55,7 @@
vertical-align: middle;
font-size: inherit;
user-select: none;
-webkit-user-select: none;
.chBox {
position: absolute;
width: 1px;
@@ -43,6 +43,7 @@
.checkbox-label {
color: var(--global-primary-TextColor);
user-select: none;
-webkit-user-select: none;
}
.checkbox {
overflow: hidden;
@@ -300,6 +300,7 @@
font-size 0.2s;
pointer-events: none;
user-select: none;
-webkit-user-select: none;
}
input:focus + .label,
input:not(:placeholder-shown) + .label {
@@ -43,6 +43,7 @@
.radioButton-label {
color: var(--global-primary-TextColor);
user-select: none;
-webkit-user-select: none;
}
.radioButton {
overflow: hidden;
@@ -75,6 +75,7 @@
.toggle-label {
color: var(--global-primary-TextColor);
user-select: none;
-webkit-user-select: none;
}
.toggle {
overflow: hidden;
@@ -112,6 +112,7 @@
border-radius: 0.75rem;
box-shadow: var(--popup-shadow);
user-select: none;
-webkit-user-select: none;
z-index: 10;
}
.scrolling {
@@ -587,6 +587,7 @@
class:sticked={stickedScrollBars}
class:thin={thinScrollBars}
class:shrink
style:-webkit-user-select={isScrolling ? 'none' : 'inherit'}
style:user-select={isScrolling ? 'none' : 'inherit'}
style:--scroller-header-height={`${(fade.multipler?.top ?? 0) * fz + 2}px`}
style:--scroller-footer-height={`${(fade.multipler?.bottom ?? 0) * fz + (stickedScrollBars ? 0 : 2)}px`}
@@ -770,6 +771,7 @@
outline: none;
box-shadow: 0 0 0.375rem rgba($color: #000000, $alpha: 0.1);
user-select: none;
-webkit-user-select: none;
-webkit-tap-highlight-color: transparent;
tap-highlight-color: transparent;
@@ -87,6 +87,7 @@
border-radius: 2.5rem;
// z-index: 1;
user-select: none;
-webkit-user-select: none;
cursor: pointer;
&.outter {
+1
View File
@@ -21,6 +21,7 @@
<style lang="scss">
.container {
user-select: none;
-webkit-user-select: none;
font-size: 14px;
color: var(--theme-content-color);
&.WARNING {
@@ -15,6 +15,7 @@
<style lang="scss">
.container {
-webkit-user-select: none;
user-select: none;
color: var(--theme-content-color);
&.OK {
@@ -111,6 +111,7 @@
opacity: 0.8;
transition: top 200ms;
pointer-events: none;
-webkit-user-select: none;
user-select: none;
}
input:focus + .label,
@@ -63,6 +63,7 @@
span {
text-wrap: nowrap;
color: var(--global-secondary-TextColor);
-webkit-user-select: none;
user-select: none;
}
}
@@ -93,6 +93,7 @@
height: 4.5rem;
color: var(--theme-dark-color);
cursor: pointer;
-webkit-user-select: none;
user-select: none;
&.selected {
@@ -69,6 +69,7 @@
font-weight: 500;
color: var(--accent-color);
pointer-events: none;
-webkit-user-select: none;
user-select: none;
}
@@ -52,6 +52,7 @@
<div bind:this={openedContainerRef}>
<div
class="flex-col background-accent-bg-color border-divider-color border-radius-1 pt-1 pb-1 pr-2 pl-2"
style:-webkit-user-select="none"
style:user-select="none"
>
<TextArea
+1
View File
@@ -47,6 +47,7 @@
// line-height: 1.75rem;
vertical-align: middle;
font-size: inherit;
-webkit-user-select: none;
user-select: none;
cursor: pointer;
@@ -48,6 +48,7 @@
.caption {
margin-right: 1rem;
color: var(--caption-color);
-webkit-user-select: none;
user-select: none;
span {
display: block;
@@ -501,6 +501,7 @@
border: 1px solid var(--theme-popup-divider);
border-radius: 0.75rem;
box-shadow: var(--theme-popup-shadow);
-webkit-user-select: none;
user-select: none;
&.doublePadding {
@@ -540,6 +541,7 @@
.nub {
position: fixed;
// background-color: rgba(255, 255, 0, .5);
-webkit-user-select: none;
user-select: none;
pointer-events: none;
@@ -634,6 +636,7 @@
border: 1px solid var(--theme-popup-divider);
border-radius: 0.25rem;
box-shadow: var(--theme-popup-shadow);
-webkit-user-select: none;
user-select: none;
display: flex;
align-items: center;