Zwei Meldungen aus dem Support: Auswahlmenues und die Stelle im Chat
DIENE: "Beim Kalender laesst sich die Art noch nicht einstellen, das
Menue ploppt nur ganz kurz auf und verschwindet direkt wieder. Das
selbe bei den Wiederholungen."
In wahl.js stand `addEventListener('resize', schliessen)`. Auf dem
Rechner ist das harmlos -- dort aendert sich die Fenstergroesse nur,
wenn jemand sie aendert. Auf einem Handy aendert sie sich BEIM
BEDIENEN: Die Adressleiste faehrt beim kleinsten Scrollen ein und
aus, die Tastatur kommt und geht, und jedes Mal feuert `resize`. Die
Liste ging auf, der Browser meldete eine neue Hoehe, und sie war
wieder zu.
Es ist derselbe Fehler wie am 04.09. beim Scrollen ("wenn ich da
scollen will geht das immer zu"), nur eine Zeile tiefer: Ein
Ereignis, das beim BEDIENEN entsteht, wird als Grund zum Abbrechen
genommen. Jetzt wird die Liste neu ausgerichtet statt geschlossen --
`stelle()` kann das ohnehin, und nach einer Groessenaenderung muss
sie es sowieso.
pruef-suchfeld 8 -> 15, an Dienes genauem Fall: Kalenderformular,
beide Felder, echte Groessenaenderung dazwischen. Gemessen wird nicht
nur "offen", sondern auch "sitzt noch am Knopf" (6 px) -- offen, aber
verrutscht waere nur die halbe Antwort. Gegenprobe: mit der alten
Zeile 4 Fehler.
----------------------------------------------------------------------
MISS: "Wenn ich auf den Chat gehen, komme ich zuerst auf die erste
neue Nachricht, aber kurze Zeit spaeter springt er auf die zuletzt
geschrieben Nachricht."
In chat.js stand `unten = true; neuUnten = 0;` AUSSERHALB von
`if (!sanft)` -- es lief also bei jedem Nachladen, auch beim sanften,
das staendig passiert (Strom verbindet, jemand heftet etwas an, eine
Nachricht kommt).
Solange die Neu-Linie steht, faellt das nicht auf: Der Zweig darueber
springt dorthin und kehrt zurueck, bevor `unten` gelesen wird. Die
zweite Haelfte ist `wache` -- sie loescht den Sprung-Merker beim
ersten FINGERTIPP auf den Verlauf, und das ist richtig so. Ab da ist
der Weg frei, und das naechste sanfte Nachladen findet `unten ===
true` vor und reisst die Ansicht ans Ende. Genau ihre "kurze Zeit
spaeter".
Ein sanftes Nachladen ist kein Oeffnen. Wo jemand steht, weiss ab
jetzt allein der Scroll-Horcher -- und der misst es, statt es
anzunehmen.
DREI FEHLVERSUCHE BIS ZUR MESSUNG, und sie gehoeren ins Protokoll:
Erst sechs Sekunden Nichtstun, dann ein Fingertipp auf Koordinaten,
dann ein Verbindungsabriss -- alle drei waren mit dem ALTEN Code
gruen. Eine Pruefung, die den Fehler nicht herstellt, misst nichts,
und ich haette sie beinahe als Beweis genommen. Was fehlte: Der Griff
muss den Verlauf WIRKLICH treffen (Koordinaten gehen daneben), und es
braucht einen echten sanften Nachlauf -- hier das Anheften, das ein
`pin`-Ereignis an alle im Raum schickt.
Erst damit flippt die Gegenprobe: ohne Korrektur 500 -> 7054 px und
`amEnde: true`, mit Korrektur bleibt es bei 500.
pruef-chat-neu-stelle 62 -> 69.
Unterwegs wieder entfernt: ein Merker `schonGesprungen`, den ich
zuerst eingebaut hatte. Nach der echten Korrektur ist er
unerreichbar, und ich konnte ihn mit keiner Messung zum Greifen
bringen. Ein Zweig, den nichts erreicht, sieht beim Lesen aus wie ein
Fall, den es gibt.
Gegengemessen: pruef-chat 80, pruef-chat-optik 84, pruef-freie-namen
32 -- 0 Fehler.
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -1666,9 +1666,32 @@
|
||||
irgendwann von der ersten abweicht. */
|
||||
$('raum-aufloesen').hidden = !offen.darf_aufloesen;
|
||||
|
||||
/* Ein frisch geoeffnetes Gespraech steht immer am Ende -- man will
|
||||
das Letzte sehen, nicht das Erste. */
|
||||
unten = true; neuUnten = 0;
|
||||
/* ==== NUR EIN FRISCH GEOEFFNETES GESPRAECH STEHT AM ENDE =======
|
||||
(berichtigt 05.10.2026, gemeldet von Miss)
|
||||
|
||||
"Wenn ich auf den Chat gehen, komme ich zuerst auf die erste
|
||||
neue Nachricht, aber kurze Zeit spaeter springt er auf die
|
||||
zuletzt geschrieben Nachricht."
|
||||
|
||||
Diese Zeile stand ausserhalb von `if (!sanft)` und lief damit
|
||||
bei JEDEM Nachladen -- auch beim sanften, das staendig
|
||||
passiert: Der Ereignisstrom verbindet sich, eine Nachricht
|
||||
kommt, jemand heftet etwas an.
|
||||
|
||||
Solange die Neu-Linie steht, faellt das nicht auf: Der Zweig
|
||||
darueber springt dorthin und kehrt zurueck, bevor `unten`
|
||||
ueberhaupt gelesen wird. Aufgefallen ist es erst durch die
|
||||
zweite Haelfte -- `wache` loescht den Merker beim ersten
|
||||
FINGERTIPP auf den Verlauf. Auf einem Handy tippt man beim
|
||||
Lesen fast zwangslaeufig einmal hin. Ab da ist der Weg frei,
|
||||
und das naechste sanfte Nachladen findet `unten === true` vor
|
||||
und reisst die Ansicht ans Ende. Genau das sind ihre "kurze
|
||||
Zeit spaeter".
|
||||
|
||||
Ein sanftes Nachladen ist kein Oeffnen. Wo jemand steht, weiss
|
||||
ab dann allein der Scroll-Horcher weiter unten -- und der misst
|
||||
es, statt es anzunehmen. */
|
||||
if (!sanft) { unten = true; neuUnten = 0; }
|
||||
pinsZeichnen();
|
||||
verlaufZeichnen();
|
||||
/* Der Entwurf von vorhin, falls einer da ist. */
|
||||
|
||||
@@ -528,7 +528,32 @@
|
||||
if (aktiv.liste.contains(e.target) || aktiv.knopf.contains(e.target)) return;
|
||||
schliessen();
|
||||
});
|
||||
addEventListener('resize', schliessen);
|
||||
/* EINE GROESSENAENDERUNG SCHLIESST NICHTS MEHR -- sie stellt um
|
||||
(05.10.2026, gemeldet von Diene).
|
||||
|
||||
"Beim Kalender laesst sich die Art noch nicht einstellen, das
|
||||
Menue ploppt nur ganz kurz auf und verschwindet direkt wieder.
|
||||
Das selbe bei den Wiederholungen."
|
||||
|
||||
Hier stand `addEventListener('resize', schliessen)`. Auf dem
|
||||
Rechner ist das harmlos: Dort aendert sich die Fenstergroesse nur,
|
||||
wenn jemand sie aendert. Auf einem Handy aendert sie sich
|
||||
dauernd -- die Adressleiste faehrt beim kleinsten Scrollen ein
|
||||
und aus, die Bildschirmtastatur kommt und geht, und jedes Mal
|
||||
feuert `resize`. Die Liste ging auf, der Browser meldete eine
|
||||
neue Hoehe, und sie war wieder zu.
|
||||
|
||||
Es ist derselbe Fehler wie am 04.09. beim Scrollen ("wenn ich da
|
||||
scollen will geht das immer zu"), nur eine Zeile tiefer: Ein
|
||||
Ereignis, das BEIM BEDIENEN entsteht, wird als Grund zum
|
||||
Abbrechen genommen.
|
||||
|
||||
Richtig ist, was `stelle()` ohnehin kann: neu ausrichten. Die
|
||||
Liste haengt an `position: fixed` und muss nach einer
|
||||
Groessenaenderung sowieso neu gesetzt werden -- sonst stuende sie
|
||||
neben ihrem Knopf. Damit ueberlebt sie die Tastatur UND sitzt
|
||||
hinterher richtig. */
|
||||
addEventListener('resize', () => { if (aktiv) stelle(aktiv); });
|
||||
|
||||
/* SCROLLEN IN DER LISTE DARF SIE NICHT SCHLIESSEN (04.09.2026, von Filipe gemeldet:
|
||||
"wenn ich da scollen will geht das immer zu").
|
||||
|
||||
Reference in New Issue
Block a user