mirror of
				https://github.com/Textualize/textual.git
				synced 2025-10-17 02:38:12 +03:00 
			
		
		
		
	changelog
This commit is contained in:
		| @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. | ||||
| The format is based on [Keep a Changelog](http://keepachangelog.com/) | ||||
| and this project adheres to [Semantic Versioning](http://semver.org/). | ||||
|  | ||||
| ## [0.79.1] - 2024-08-31 | ||||
|  | ||||
| ### Fixed | ||||
|  | ||||
| - Fixed broken updates when non active screen changes | ||||
|  | ||||
| ## [0.79.0] - 2024-08-30 | ||||
|  | ||||
| ### Added | ||||
|   | ||||
| @@ -31,6 +31,12 @@ Here's what the finished app will look like: | ||||
| ```{.textual path="docs/examples/tutorial/stopwatch.py" title="stopwatch.py" press="tab,enter,tab,enter,tab,enter,tab,enter"} | ||||
| ``` | ||||
|  | ||||
| !!! info | ||||
|  | ||||
|     Did you notice the `^p palette` at the bottom right hand corner? | ||||
|     This is the [Command Palette](./guide/command_palette.md). | ||||
|     You can think of it as a dedicated command prompt for your app. | ||||
|  | ||||
| ### Try it out! | ||||
|  | ||||
| The following is *not* a screenshot, but a fully interactive Textual app running in your browser. | ||||
|   | ||||
| @@ -18,7 +18,7 @@ class DictionaryApp(App): | ||||
|     CSS_PATH = "dictionary.tcss" | ||||
|  | ||||
|     def compose(self) -> ComposeResult: | ||||
|         yield Input(placeholder="Search for a word") | ||||
|         yield Input(placeholder="Search for a word", id="dictionary-search") | ||||
|         with VerticalScroll(id="results-container"): | ||||
|             yield Markdown(id="results") | ||||
|  | ||||
|   | ||||
| @@ -2,7 +2,7 @@ Screen { | ||||
|     background: $panel; | ||||
| } | ||||
|  | ||||
| Input { | ||||
| Input#dictionary-search { | ||||
|     dock: top; | ||||
|     margin: 1 0; | ||||
| } | ||||
|   | ||||
| @@ -935,8 +935,9 @@ class Screen(Generic[ScreenResultType], Widget): | ||||
|             elif ( | ||||
|                 self in self.app._background_screens and self._compositor._dirty_regions | ||||
|             ): | ||||
|                 # Background screen | ||||
|                 self._set_dirty(*self._compositor._dirty_regions) | ||||
|                 app.screen.refresh(*self._compositor._dirty_regions) | ||||
|                 self._repaint_required = True | ||||
|                 self._compositor._dirty_regions.clear() | ||||
|                 self._dirty_widgets.clear() | ||||
|         app._update_mouse_over(self) | ||||
| @@ -1097,6 +1098,7 @@ class Screen(Generic[ScreenResultType], Widget): | ||||
|         message.prevent_default() | ||||
|         widget = message.widget | ||||
|         assert isinstance(widget, Widget) | ||||
|  | ||||
|         self._dirty_widgets.add(widget) | ||||
|         self.check_idle() | ||||
|  | ||||
|   | ||||
| @@ -1460,10 +1460,14 @@ def test_system_commands(snap_compare): | ||||
|  | ||||
|     class SimpleApp(App): | ||||
|         def compose(self) -> ComposeResult: | ||||
|             yield Input() | ||||
|             input = Input() | ||||
|             input.cursor_blink = False | ||||
|             yield input | ||||
|  | ||||
|     app = SimpleApp() | ||||
|     app.animation_level = "none" | ||||
|     assert snap_compare( | ||||
|         SimpleApp(), | ||||
|         app, | ||||
|         terminal_size=(100, 30), | ||||
|         press=["ctrl+p"], | ||||
|     ) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Will McGugan
					Will McGugan