mirror of
https://github.com/swaywm/sway.git
synced 2025-11-01 22:58:41 -04:00
Implement popup_during_fullscreen
This introduces a new view_impl function: is_transient_for. Similar to container_has_ancestor but works using the surface parents rather than the tree. This patch modifies view_is_visible, container_at and so on to allow transient views to function normally when they're in front of a fullscreen view.
This commit is contained in:
parent
6cb0e58c6d
commit
832ebc8966
16 changed files with 192 additions and 2 deletions
|
|
@ -154,6 +154,7 @@ sway_cmd cmd_new_window;
|
|||
sway_cmd cmd_no_focus;
|
||||
sway_cmd cmd_output;
|
||||
sway_cmd cmd_permit;
|
||||
sway_cmd cmd_popup_during_fullscreen;
|
||||
sway_cmd cmd_reject;
|
||||
sway_cmd cmd_reload;
|
||||
sway_cmd cmd_rename;
|
||||
|
|
|
|||
|
|
@ -256,6 +256,12 @@ enum edge_border_types {
|
|||
E_SMART_NO_GAPS, /**< hide both if one window and gaps to edge is zero */
|
||||
};
|
||||
|
||||
enum sway_popup_during_fullscreen {
|
||||
POPUP_SMART,
|
||||
POPUP_IGNORE,
|
||||
POPUP_LEAVE,
|
||||
};
|
||||
|
||||
enum command_context {
|
||||
CONTEXT_CONFIG = 1,
|
||||
CONTEXT_BINDING = 2,
|
||||
|
|
@ -355,6 +361,7 @@ struct sway_config {
|
|||
bool pango_markup;
|
||||
size_t urgent_timeout;
|
||||
enum sway_fowa focus_on_window_activation;
|
||||
enum sway_popup_during_fullscreen popup_during_fullscreen;
|
||||
|
||||
// Flags
|
||||
bool focus_follows_mouse;
|
||||
|
|
|
|||
|
|
@ -49,6 +49,8 @@ struct sway_view_impl {
|
|||
wlr_surface_iterator_func_t iterator, void *user_data);
|
||||
void (*for_each_popup)(struct sway_view *view,
|
||||
wlr_surface_iterator_func_t iterator, void *user_data);
|
||||
bool (*is_transient_for)(struct sway_view *child,
|
||||
struct sway_view *ancestor);
|
||||
void (*close)(struct sway_view *view);
|
||||
void (*close_popups)(struct sway_view *view);
|
||||
void (*destroy)(struct sway_view *view);
|
||||
|
|
@ -396,4 +398,6 @@ void view_remove_saved_buffer(struct sway_view *view);
|
|||
|
||||
void view_save_buffer(struct sway_view *view);
|
||||
|
||||
bool view_is_transient_for(struct sway_view *child, struct sway_view *ancestor);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue