feat: add Shade/Unshade/ToggleShade actions

This builds on the work of @Consolatis in #1018.

Co-authored-by: Consolatis <35009135+Consolatis@users.noreply.github.com>
Co-authored-by: Andrew J. Hesford <ajh@sideband.org>
This commit is contained in:
Consolatis 2023-08-08 03:39:35 +02:00 committed by Johan Malm
parent 722a802de0
commit e05bedb140
19 changed files with 218 additions and 47 deletions

View file

@ -68,6 +68,7 @@ void ssd_destroy(struct ssd *ssd);
void ssd_titlebar_hide(struct ssd *ssd);
void ssd_enable_keybind_inhibit_indicator(struct ssd *ssd, bool enable);
void ssd_enable_shade(struct ssd *ssd, bool enable);
struct ssd_hover_state *ssd_hover_state_new(void);
void ssd_update_button_hover(struct wlr_scene_node *node,

View file

@ -148,6 +148,7 @@ struct view {
bool ssd_enabled;
bool ssd_titlebar_hidden;
enum ssd_preference ssd_preference;
bool shaded;
bool minimized;
enum view_axis maximized;
bool fullscreen;
@ -394,6 +395,13 @@ bool view_compute_centered_position(struct view *view,
bool view_adjust_floating_geometry(struct view *view, struct wlr_box *geometry);
void view_store_natural_geometry(struct view *view);
/**
* view_effective_height - effective height of view, with respect to shaded state
* @view: view for which effective height is desired
* @use_pending: if false, report current height; otherwise, report pending height
*/
int view_effective_height(struct view *view, bool use_pending);
/**
* view_center - center view within some region
* @view: view to be centered
@ -463,6 +471,8 @@ void view_update_title(struct view *view);
void view_update_app_id(struct view *view);
void view_reload_ssd(struct view *view);
void view_set_shade(struct view *view, bool shaded);
struct view_size_hints view_get_size_hints(struct view *view);
void view_adjust_size(struct view *view, int *w, int *h);