diff --git a/include/labwc.h b/include/labwc.h index 3b46d941..5efa6392 100644 --- a/include/labwc.h +++ b/include/labwc.h @@ -43,6 +43,7 @@ #include #include "config/keybind.h" #include "config/rcxml.h" +#include "ssd.h" #define XCURSOR_DEFAULT "left_ptr" #define XCURSOR_SIZE 24 @@ -448,7 +449,7 @@ bool isfocusable(struct view *view); */ struct view *desktop_surface_and_view_at(struct server *server, double lx, double ly, struct wlr_surface **surface, double *sx, double *sy, - int *view_area); + enum ssd_part_type *view_area); struct view *desktop_view_at_cursor(struct server *server); diff --git a/include/ssd.h b/include/ssd.h index bffa6564..aeeedf0d 100644 --- a/include/ssd.h +++ b/include/ssd.h @@ -2,8 +2,6 @@ #ifndef __LABWC_SSD_H #define __LABWC_SSD_H -#include "labwc.h" - /* * Sequence these according to the order they should be processed for * press and hover events. Bear in mind that some of their respective @@ -31,6 +29,13 @@ enum ssd_part_type { LAB_SSD_END_MARKER }; +/* + * Defer including labwc.h because it is using enum ssd_part_type. + * This is an issue for headers like mousebind.h which only includes + * ssd.h but does not include labwc.h. + */ +#include "labwc.h" + struct ssd_part { struct wlr_box box; enum ssd_part_type type; diff --git a/src/cursor.c b/src/cursor.c index a7b72810..f0498d67 100644 --- a/src/cursor.c +++ b/src/cursor.c @@ -17,7 +17,7 @@ cursor_rebase(struct seat *seat, uint32_t time_msec) { double sx, sy; struct wlr_surface *surface; - int view_area = LAB_SSD_NONE; + enum ssd_part_type view_area = LAB_SSD_NONE; desktop_surface_and_view_at(seat->server, seat->cursor->x, seat->cursor->y, &surface, &sx, &sy, &view_area); @@ -201,7 +201,7 @@ process_cursor_motion(struct server *server, uint32_t time) double sx, sy; struct wlr_seat *wlr_seat = server->seat.seat; struct wlr_surface *surface = NULL; - int view_area = LAB_SSD_NONE; + enum ssd_part_type view_area = LAB_SSD_NONE; struct view *view = desktop_surface_and_view_at(server, server->seat.cursor->x, server->seat.cursor->y, &surface, &sx, &sy, &view_area); @@ -583,7 +583,7 @@ cursor_button(struct wl_listener *listener, void *data) double sx, sy; struct wlr_surface *surface; - int view_area = LAB_SSD_NONE; + enum ssd_part_type view_area = LAB_SSD_NONE; uint32_t resize_edges; /* bindings to the Frame context swallow mouse events if activated */ diff --git a/src/desktop.c b/src/desktop.c index d24ddd35..9d80da0f 100644 --- a/src/desktop.c +++ b/src/desktop.c @@ -343,7 +343,7 @@ layer_surface_popup_at(struct output *output, struct wl_list *layer, struct view * desktop_surface_and_view_at(struct server *server, double lx, double ly, struct wlr_surface **surface, double *sx, double *sy, - int *view_area) + enum ssd_part_type *view_area) { struct wlr_output *wlr_output = wlr_output_layout_output_at( server->output_layout, lx, ly); @@ -435,7 +435,7 @@ desktop_view_at_cursor(struct server *server) { double sx, sy; struct wlr_surface *surface; - int view_area = LAB_SSD_NONE; + enum ssd_part_type view_area = LAB_SSD_NONE; return desktop_surface_and_view_at(server, server->seat.cursor->x, server->seat.cursor->y,