feat: under-cursor window placement

With under-cursor placement, new top-level windows will be centered
under the cursor rather than centered on the active view.
This commit is contained in:
Andrew J. Hesford 2023-12-10 21:00:05 -05:00 committed by Johan Malm
parent ce3c5ab958
commit ef62d47ad1
8 changed files with 51 additions and 8 deletions

View file

@ -20,6 +20,11 @@ enum window_switcher_field_content {
LAB_FIELD_TITLE,
};
enum view_placement_policy {
LAB_PLACE_CENTER = 0,
LAB_PLACE_CURSOR
};
struct usable_area_override {
struct border margin;
char *output;
@ -40,6 +45,7 @@ struct rcxml {
int gap;
bool adaptive_sync;
bool reuse_output_mode;
enum view_placement_policy placement_policy;
/* focus */
bool focus_follow_mouse;

View file

@ -393,6 +393,13 @@ void view_store_natural_geometry(struct view *view);
* within; if NULL, view is centered within usable area of its output
*/
void view_center(struct view *view, const struct wlr_box *ref);
/**
* view_place_initial - apply initial placement strategy to view
* @view: view to be placed
*/
void view_place_initial(struct view *view);
void view_restore_to(struct view *view, struct wlr_box geometry);
void view_set_untiled(struct view *view);
void view_maximize(struct view *view, enum view_axis axis,