"If the crawl is stopped and you press fontsize font_up_down() - Crawl_label disappears."
In KV the pos of the label is set as:
self.parent.right, green_box.y - self.height # positioned based on the green_box
This creates a bind setting the position of the Label. You need to set the x position of the label without a bind.
Set the y position of the label in kv, and set the x position manually.
In the attached kv code:
This fixes the issue. The font size can be changed with the animation running or stopped and the size change is visible.
I have not done anything with the x position of the Label when the window size is changed. You could check that if the animation is not running that you position the label off screen when the screen size is changed.
To change the velocity on the fly:
See the code for some details but simply put, call crawlstop() and crawlstart(). This uses the updated position to calculate the new duration.
I created a new instance var self.anim_is_running to track the state of the animation.
I moved changing the backgroud_color of the ToggleButton (ssb) to kv.
background_color: {'normal': 'green', 'down': 'red'}[self.state]
I also commented out the on_focus behavior of the textin, it does not seem to be required, and was causing some erroneous behavior.
I also noticed this code:
def clock_self_select_all(self):
Clock.schedule_once(lambda dt: TextInput.select_all(self))
I'm not sure what you intended, the code is never called. There is a problem here, the method select_all() needs to be used with a TextInput instance.