swayfx/include/swaybar/i3bar.h
Hristo Venev 7affe5c1bd 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.
2020-02-10 18:58:09 +01:00

35 lines
837 B
C

#ifndef _SWAYBAR_I3BAR_H
#define _SWAYBAR_I3BAR_H
#include "input.h"
#include "status_line.h"
struct i3bar_block {
struct wl_list link; // status_link::blocks
int ref_count;
char *full_text, *short_text, *align, *min_width_str;
bool urgent;
uint32_t color;
bool color_set;
int min_width;
char *name, *instance;
bool separator;
int separator_block_width;
bool markup;
// Airblader features
uint32_t background;
uint32_t border;
int border_top;
int border_bottom;
int border_left;
int border_right;
};
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, double x, double y, double rx, double ry,
double w, double h, int scale, uint32_t button);
#endif