Kivy. Problem z przesuwaniem linii z wyk. _shift_lines

0

Ponownie ja z kolejnym wg mnie dziwnym problemem Kivy.
Jak zwykle minimalny przykład.
W zmiennej lorem ostatnia linia jest bez znaku przejścia do kolejnej i to stanowi chyba problem dla funkcji _shift_lines

from kivy.app import runTouchApp,stopTouchApp
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.textinput import TextInput
from kivy.clock import Clock

lorem="""Asdsadas
dsfdsf fds dsfdsf
sdf dsfd fds fds fds.
Rdf sdf sd fds
a"""

def f_LineUp(*Data):
	txt._shift_lines(-1)
	Clock.schedule_once(lambda _x: txt.cancel_selection())
	txt.focus=True
	return None
def f_LineDw(*Data):
	txt._shift_lines(1)
	Clock.schedule_once(lambda _x: txt.cancel_selection())
	txt.focus=True
	return None

main=BoxLayout(orientation='vertical',size_hint=(1,1))
layh=BoxLayout(orientation='horizontal',size_hint=(1,.1))
btnUp=Button(text="LineUp",size_hint=(.5,1))
btnUp.bind(on_release=f_LineUp)
btnDw=Button(text="LineDw",size_hint=(.5,1))
btnDw.bind(on_release=f_LineDw)
txt=TextInput(text=lorem,multiline=True,size_hint=(1,.9))
layh.add_widget(btnUp)
layh.add_widget(btnDw)
main.add_widget(layh)
main.add_widget(txt)
runTouchApp(main)

Czy to jest błąd?
Będę pisał swoją funkcję, a chciałem wykorzystać coś wbudowanego.

Pozdrawiam
Radosław Głębicki

0

Powinieneś pewnie używać txt.do_cursor_movement('cursor_up', alt=True) zamiast txt._shift_lines(-1) i txt.do_cursor_movement('cursor_down', alt=True) zamiast txt._shift_lines(1) ale to ma ten sam skutek ¯\(ツ)/¯ Żeby było śmieszniej, w dev wersji nie działa to wcale, musieli to zepsuć w ostatnim refaktorze (https://github.com/kivy/kivy/pull/7449).

Tak że tak, wygląda na legitny bug. Trzeba by to zgłosić w issues na githubie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1