mirror of
				https://github.com/swaywm/sway.git
				synced 2025-10-29 05:40:18 -04:00 
			
		
		
		
	swaybar: fix i3bar relative coordinates when scaling is used
24e8ba048a did not take scaling into account.
The hotspot size used pixel coordinates, the absolute coordinates were logical,
and the relative coordinates were completely wrong.
This commit makes all coordinates use logical values. If
`"float_event_coords":true` is sent in the handshake message, coordinates are
sent as floating-point values.
The "scale" field is an integer containing the scale value.This commit is contained in:
		
							parent
							
								
									fca32b6334
								
							
						
					
					
						commit
						7affe5c1bd
					
				
					 8 changed files with 51 additions and 38 deletions
				
			
		|  | @ -28,7 +28,7 @@ struct i3bar_block { | |||
| void i3bar_block_unref(struct i3bar_block *block); | ||||
| bool i3bar_handle_readable(struct status_line *status); | ||||
| enum hotspot_event_handling i3bar_block_send_click(struct status_line *status, | ||||
| 		struct i3bar_block *block, int x, int y, int rx, int ry, int w, int h, | ||||
| 		uint32_t button); | ||||
| 		struct i3bar_block *block, double x, double y, double rx, double ry, | ||||
| 		double w, double h, int scale, uint32_t button); | ||||
| 
 | ||||
| #endif | ||||
|  |  | |||
|  | @ -44,7 +44,7 @@ struct swaybar_hotspot { | |||
| 	struct wl_list link; // swaybar_output::hotspots
 | ||||
| 	int x, y, width, height; | ||||
| 	enum hotspot_event_handling (*callback)(struct swaybar_output *output, | ||||
| 		struct swaybar_hotspot *hotspot, int x, int y, uint32_t button, | ||||
| 		struct swaybar_hotspot *hotspot, double x, double y, uint32_t button, | ||||
| 		void *data); | ||||
| 	void (*destroy)(void *data); | ||||
| 	void *data; | ||||
|  |  | |||
|  | @ -28,6 +28,7 @@ struct status_line { | |||
| 	int cont_signal; | ||||
| 
 | ||||
| 	bool click_events; | ||||
| 	bool float_event_coords; | ||||
| 	bool clicked; | ||||
| 	char *buffer; | ||||
| 	size_t buffer_size; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Hristo Venev
						Hristo Venev