Verbeter grafische kwaliteit van kleurplaten (v0.4.67-beta) #5

Open
bes-r wants to merge 208 commits from bes-r/coloring-quality-v0.4.67 into main AGit
4 changed files with 33 additions and 21 deletions
Showing only changes of commit 3e6ab09e1f - Show all commits

View file

@ -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;}

View file

@ -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");

View file

@ -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;

View file

@ -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;