Fix various issues reported on github (#2280)
* Desktop: Fix use after free in slideshow view * Gui: long press toggles first letter case too * Desktop: remove debug logging
This commit is contained in:
		
							parent
							
								
									b7046b2179
								
							
						
					
					
						commit
						8d2143add5
					
				| @ -56,7 +56,7 @@ static bool desktop_view_slideshow_input(InputEvent* event, void* context) { | |||||||
|             instance->callback(DesktopSlideshowCompleted, instance->context); |             instance->callback(DesktopSlideshowCompleted, instance->context); | ||||||
|         } |         } | ||||||
|         update_view = true; |         update_view = true; | ||||||
|     } else if(event->key == InputKeyOk) { |     } else if(event->key == InputKeyOk && instance->timer) { | ||||||
|         if(event->type == InputTypePress) { |         if(event->type == InputTypePress) { | ||||||
|             furi_timer_start(instance->timer, DESKTOP_SLIDESHOW_POWEROFF_SHORT); |             furi_timer_start(instance->timer, DESKTOP_SLIDESHOW_POWEROFF_SHORT); | ||||||
|         } else if(event->type == InputTypeRelease) { |         } else if(event->type == InputTypeRelease) { | ||||||
|  | |||||||
| @ -138,7 +138,7 @@ static bool char_is_lowercase(char letter) { | |||||||
| static char char_to_uppercase(const char letter) { | static char char_to_uppercase(const char letter) { | ||||||
|     if(letter == '_') { |     if(letter == '_') { | ||||||
|         return 0x20; |         return 0x20; | ||||||
|     } else if(isalpha(letter)) { |     } else if(islower(letter)) { | ||||||
|         return (letter - 0x20); |         return (letter - 0x20); | ||||||
|     } else { |     } else { | ||||||
|         return letter; |         return letter; | ||||||
| @ -309,7 +309,9 @@ static void text_input_handle_ok(TextInput* text_input, TextInputModel* model, b | |||||||
|     char selected = get_selected_char(model); |     char selected = get_selected_char(model); | ||||||
|     size_t text_length = strlen(model->text_buffer); |     size_t text_length = strlen(model->text_buffer); | ||||||
| 
 | 
 | ||||||
|     if(shift) { |     bool toogle_case = text_length == 0; | ||||||
|  |     if(shift) toogle_case = !toogle_case; | ||||||
|  |     if(toogle_case) { | ||||||
|         selected = char_to_uppercase(selected); |         selected = char_to_uppercase(selected); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -329,9 +331,6 @@ static void text_input_handle_ok(TextInput* text_input, TextInputModel* model, b | |||||||
|             text_length = 0; |             text_length = 0; | ||||||
|         } |         } | ||||||
|         if(text_length < (model->text_buffer_size - 1)) { |         if(text_length < (model->text_buffer_size - 1)) { | ||||||
|             if(text_length == 0 && char_is_lowercase(selected)) { |  | ||||||
|                 selected = char_to_uppercase(selected); |  | ||||||
|             } |  | ||||||
|             model->text_buffer[text_length] = selected; |             model->text_buffer[text_length] = selected; | ||||||
|             model->text_buffer[text_length + 1] = 0; |             model->text_buffer[text_length + 1] = 0; | ||||||
|         } |         } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 あく
						あく