Verbeter grafische kwaliteit van kleurplaten (v0.4.67-beta) #5
4 changed files with 33 additions and 21 deletions
|
|
@ -1362,8 +1362,10 @@ body.hc .am-reset,body.hc .am-reset-row{border:1.5px solid #000; background:var(
|
||||||
+- of bordenknop, waardoor "steeds" het bordenpaneel of +-menu
|
+- of bordenknop, waardoor "steeds" het bordenpaneel of +-menu
|
||||||
(→ afbeeldingenscherm) opende. Nu ligt de tekenbalk in een eigen laag
|
(→ afbeeldingenscherm) opende. Nu ligt de tekenbalk in een eigen laag
|
||||||
bóven de knoppenrij (hij groeit omhoog, dus dit klopt bij elke
|
bóven de knoppenrij (hij groeit omhoog, dus dit klopt bij elke
|
||||||
schermbreedte), en houden + en borden de onderrand voor zichzelf. */
|
schermbreedte), en houden + en borden de onderrand voor zichzelf.
|
||||||
#hud{left:8px; right:8px; bottom:88px; transform:none; max-width:none; justify-content:center;}
|
Gecentreerd op inhoudsbreedte (geen vaste randen), zodat de balk
|
||||||
|
geminimaliseerd ook echt smal is. */
|
||||||
|
#hud{bottom:88px; max-width:calc(100vw - 16px);}
|
||||||
|
|
||||||
/* beheerpaneel: dichte rijen worden gestapeld i.p.v. verdrukt */
|
/* beheerpaneel: dichte rijen worden gestapeld i.p.v. verdrukt */
|
||||||
.am-row{flex-direction:column; align-items:stretch;}
|
.am-row{flex-direction:column; align-items:stretch;}
|
||||||
|
|
|
||||||
|
|
@ -508,7 +508,9 @@ function refreshPenbar(){
|
||||||
penbar.querySelector('[data-picker="sizes"] .pen-current').title = T("penSize");
|
penbar.querySelector('[data-picker="sizes"] .pen-current').title = T("penSize");
|
||||||
const currentBg = penbar.querySelector(".pen-current-bg");
|
const currentBg = penbar.querySelector(".pen-current-bg");
|
||||||
currentBg.className = "pen-current-bg bg-"+BOARD.bg;
|
currentBg.className = "pen-current-bg bg-"+BOARD.bg;
|
||||||
penbar.querySelector('[data-picker="backgrounds"] .pen-current').title = T(PEN_BGS.find(x=>x[0]===BOARD.bg)[1]);
|
/* onbekende (oude/corrupte) bg-waarde mag nooit de hele hydrate laten
|
||||||
|
crashen - dat logde de gebruiker stilletjes uit bij het verversen */
|
||||||
|
penbar.querySelector('[data-picker="backgrounds"] .pen-current').title = T((PEN_BGS.find(x=>x[0]===BOARD.bg) || PEN_BGS[0])[1]);
|
||||||
penbar.querySelector('[data-picker="extras"] .pen-current').title = T("penExtras");
|
penbar.querySelector('[data-picker="extras"] .pen-current').title = T("penExtras");
|
||||||
penbar.querySelector(".pen-recent-label").textContent = T("recentColors");
|
penbar.querySelector(".pen-recent-label").textContent = T("recentColors");
|
||||||
penbar.querySelector(".pen-palette-label").textContent = T("paletteColors");
|
penbar.querySelector(".pen-palette-label").textContent = T("paletteColors");
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
/* version — shown until /api/version resolves (or if the fetch fails, e.g. offline).
|
/* version — shown until /api/version resolves (or if the fetch fails, e.g. offline).
|
||||||
Kept in sync by hand with the VERSION file at the repo root on every release. */
|
Kept in sync by hand with the VERSION file at the repo root on every release. */
|
||||||
const VERSION = "0.3.63-beta";
|
const VERSION = "0.3.64-beta";
|
||||||
(function(){
|
(function(){
|
||||||
const tag = document.getElementById("verTag");
|
const tag = document.getElementById("verTag");
|
||||||
tag.textContent = "v"+VERSION;
|
tag.textContent = "v"+VERSION;
|
||||||
|
|
|
||||||
|
|
@ -121,21 +121,13 @@ function mountAnchor(root, initState, opts){
|
||||||
setPic(pic, wPic);
|
setPic(pic, wPic);
|
||||||
}else{
|
}else{
|
||||||
/* no automatic match (or not tried yet) - stays empty, but doubles as a
|
/* no automatic match (or not tried yet) - stays empty, but doubles as a
|
||||||
shortcut to manually pick a picture instead of showing a fake anchor icon */
|
shortcut to manually pick a picture instead of showing a fake anchor icon.
|
||||||
|
Geen eigen pointer/click-handlers meer: die blokkeerden het pannen en
|
||||||
|
openden de kiezer bij elke veeg die op dit vak begon (op telefoons was
|
||||||
|
dat vrijwel elke aanraking). De tik loopt nu via de stage-logica
|
||||||
|
hieronder, mét de sleep-drempel. */
|
||||||
pic.classList.add("an-pic-empty");
|
pic.classList.add("an-pic-empty");
|
||||||
if(!readonly){
|
if(!readonly) pic.title = T("pickPic");
|
||||||
pic.title = T("pickPic");
|
|
||||||
pic.addEventListener("pointerdown", ev=>ev.stopPropagation());
|
|
||||||
pic.addEventListener("click", ev=>{
|
|
||||||
ev.stopPropagation();
|
|
||||||
openPicPicker(normWord, chosen=>{
|
|
||||||
S.pics[normWord] = chosen;
|
|
||||||
syncSource();
|
|
||||||
render();
|
|
||||||
persistWords();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
c.appendChild(pic);
|
c.appendChild(pic);
|
||||||
const span = document.createElement("span");
|
const span = document.createElement("span");
|
||||||
|
|
@ -180,7 +172,8 @@ function mountAnchor(root, initState, opts){
|
||||||
stage.setPointerCapture(e.pointerId);
|
stage.setPointerCapture(e.pointerId);
|
||||||
const sc = stage.getBoundingClientRect().width / stage.offsetWidth;
|
const sc = stage.getBoundingClientRect().width / stage.offsetWidth;
|
||||||
pd = { x:e.clientX/sc, y:e.clientY/sc, px:S.pan.x, py:S.pan.y,
|
pd = { x:e.clientX/sc, y:e.clientY/sc, px:S.pan.x, py:S.pan.y,
|
||||||
moved:false, target:e.target.closest(".an-cell"), sc };
|
moved:false, target:e.target.closest(".an-cell"),
|
||||||
|
pic:e.target.closest(".an-pic-empty"), sc };
|
||||||
});
|
});
|
||||||
stage.addEventListener("pointermove", e=>{
|
stage.addEventListener("pointermove", e=>{
|
||||||
if(!pd) return;
|
if(!pd) return;
|
||||||
|
|
@ -190,10 +183,25 @@ function mountAnchor(root, initState, opts){
|
||||||
});
|
});
|
||||||
stage.addEventListener("pointerup", ()=>{
|
stage.addEventListener("pointerup", ()=>{
|
||||||
if(!pd) return;
|
if(!pd) return;
|
||||||
const {moved, target} = pd;
|
const {moved, target, pic} = pd;
|
||||||
pd = null;
|
pd = null;
|
||||||
if(moved){ render(); return; }
|
if(moved){ render(); return; }
|
||||||
if(target && !readonly) editCell(target);
|
if(readonly || !target) return;
|
||||||
|
/* stilstaande tik op een leeg plaatjesvak: plaatje kiezen voor dat woord */
|
||||||
|
if(pic){
|
||||||
|
const cell = S.cells[key(+target.dataset.gx, +target.dataset.gy)];
|
||||||
|
const normWord = cell && cell.t && cell.t.trim().toLowerCase();
|
||||||
|
if(normWord){
|
||||||
|
openPicPicker(normWord, chosen=>{
|
||||||
|
S.pics[normWord] = chosen;
|
||||||
|
syncSource();
|
||||||
|
render();
|
||||||
|
persistWords();
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
editCell(target);
|
||||||
});
|
});
|
||||||
stage.addEventListener("pointercancel", ()=>{
|
stage.addEventListener("pointercancel", ()=>{
|
||||||
const moved = pd && pd.moved;
|
const moved = pd && pd.moved;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue