update
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import Clutter from 'gi://Clutter';
|
||||
import GObject from 'gi://GObject';
|
||||
import Pango from 'gi://Pango';
|
||||
import St from 'gi://St';
|
||||
|
||||
@@ -50,8 +51,19 @@ export function scrollBox(styleClass) {
|
||||
|
||||
// Mehrzeiliges Eingabefeld in einem Scrollbereich. Der Scrollbereich ist der sichtbare Rahmen,
|
||||
// ein Klick in die freie Fläche darunter setzt den Cursor ans Ende. Der Cursor bleibt beim Tippen sichtbar.
|
||||
// Ein mehrzeiliges Feld ist so hoch wie sein Text. Themes wie Yaru geben StEntry eine min-height.
|
||||
// Die ersetzt die Mindesthöhe, der Scrollbereich richtet sich aber genau danach: er hielte das
|
||||
// Feld für schrumpfbar und ließe nichts zu scrollen.
|
||||
const MultilineEntry = GObject.registerClass(
|
||||
class MultilineEntry extends St.Entry {
|
||||
vfunc_get_preferred_height(forWidth) {
|
||||
const [, natural] = super.vfunc_get_preferred_height(forWidth);
|
||||
return [natural, natural];
|
||||
}
|
||||
});
|
||||
|
||||
export function multilineEntry(text, styleClass, scrollClass, hint = '') {
|
||||
const entry = new St.Entry({can_focus: true, text, hint_text: hint, style_class: `${styleClass} multiline`, x_expand: true});
|
||||
const entry = new MultilineEntry({can_focus: true, text, hint_text: hint, style_class: `${styleClass} multiline`, x_expand: true});
|
||||
const clutterText = entry.clutter_text;
|
||||
clutterText.single_line_mode = false;
|
||||
clutterText.line_wrap = true;
|
||||
|
||||
Reference in New Issue
Block a user