text-input: Don't reject enable requests when unfocused
The prevoius implementation would always raise an error in the following sequence: -> enter -> leave <- enable The text-input type is not equipped to manage the validity of clents' requests, which should be handled in the compositor, as rootston does.
This commit is contained in:
		
							parent
							
								
									affc83ff82
								
							
						
					
					
						commit
						14c6ee894e
					
				| 
						 | 
					@ -175,11 +175,10 @@ static void text_input_commit(struct wl_client *client,
 | 
				
			||||||
	text_input->current_enabled = text_input->pending_enabled;
 | 
						text_input->current_enabled = text_input->pending_enabled;
 | 
				
			||||||
	text_input->current_serial++;
 | 
						text_input->current_serial++;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (text_input->current_enabled && text_input->focused_surface == NULL) {
 | 
						if (text_input->focused_surface == NULL) {
 | 
				
			||||||
		wl_resource_post_error(text_input->resource, 0, "Text input was not"
 | 
							wlr_log(WLR_DEBUG, "Text input commit received without focus\n");
 | 
				
			||||||
			"entered, and cannot be enabled\n");
 | 
					 | 
				
			||||||
		return;
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!old_enabled && text_input->current_enabled) {
 | 
						if (!old_enabled && text_input->current_enabled) {
 | 
				
			||||||
		wlr_signal_emit_safe(&text_input->events.enable, text_input);
 | 
							wlr_signal_emit_safe(&text_input->events.enable, text_input);
 | 
				
			||||||
	} else if (old_enabled && !text_input->current_enabled) {
 | 
						} else if (old_enabled && !text_input->current_enabled) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue