| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -672,6 +672,10 @@ void wlr_seat_pointer_notify_axis(struct wlr_seat *wlr_seat, uint32_t time,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						grab->interface->axis(grab, time, orientation, value);
 | 
					 | 
					 | 
					 | 
						grab->interface->axis(grab, time, orientation, value);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					}
 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					bool wlr_seat_pointer_has_grab(struct wlr_seat *seat) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						return seat->pointer_state.grab->interface != &default_pointer_grab_impl;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					void wlr_seat_keyboard_send_key(struct wlr_seat *wlr_seat, uint32_t time,
 | 
					 | 
					 | 
					 | 
					void wlr_seat_keyboard_send_key(struct wlr_seat *wlr_seat, uint32_t time,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							uint32_t key, uint32_t state) {
 | 
					 | 
					 | 
					 | 
							uint32_t key, uint32_t state) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						struct wlr_seat_client *client = wlr_seat->keyboard_state.focused_client;
 | 
					 | 
					 | 
					 | 
						struct wlr_seat_client *client = wlr_seat->keyboard_state.focused_client;
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -869,6 +873,10 @@ void wlr_seat_keyboard_clear_focus(struct wlr_seat *seat) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						wlr_seat_keyboard_enter(seat, NULL);
 | 
					 | 
					 | 
					 | 
						wlr_seat_keyboard_enter(seat, NULL);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					}
 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					bool wlr_seat_keyboard_has_grab(struct wlr_seat *seat) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						return seat->keyboard_state.grab->interface != &default_keyboard_grab_impl;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					void wlr_seat_keyboard_notify_modifiers(struct wlr_seat *seat) {
 | 
					 | 
					 | 
					 | 
					void wlr_seat_keyboard_notify_modifiers(struct wlr_seat *seat) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						clock_gettime(CLOCK_MONOTONIC, &seat->last_event);
 | 
					 | 
					 | 
					 | 
						clock_gettime(CLOCK_MONOTONIC, &seat->last_event);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						struct wlr_seat_keyboard_grab *grab = seat->keyboard_state.grab;
 | 
					 | 
					 | 
					 | 
						struct wlr_seat_keyboard_grab *grab = seat->keyboard_state.grab;
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1129,3 +1137,7 @@ void wlr_seat_touch_send_motion(struct wlr_seat *seat, uint32_t time, int32_t to
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							wl_fixed_from_double(sx), wl_fixed_from_double(sy));
 | 
					 | 
					 | 
					 | 
							wl_fixed_from_double(sx), wl_fixed_from_double(sy));
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						wl_touch_send_frame(point->client->touch);
 | 
					 | 
					 | 
					 | 
						wl_touch_send_frame(point->client->touch);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					}
 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					bool wlr_seat_touch_has_grab(struct wlr_seat *seat) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						return seat->touch_state.grab->interface != &default_touch_grab_impl;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
					 | 
					 | 
					
 
 |