aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authoremersion <contact@emersion.fr>2018-09-02 21:41:24 +0200
committerGitHub <noreply@github.com>2018-09-02 21:41:24 +0200
commite438342157272f6a807ea28ef1b554e01530ead8 (patch)
treefb510fe69ef12a9de9d299fa1543c32b49a16e8e /include
parent159edc6d13db42b15b28c7ea58cdf2371d29297d (diff)
parent6fb03817c9d2bd29697a91f92d680b0c6a2c5996 (diff)
Merge pull request #2560 from RyanDwyer/focus-on-window-activation
Implement focus_on_window_activation
Diffstat (limited to 'include')
-rw-r--r--include/sway/commands.h1
-rw-r--r--include/sway/config.h11
-rw-r--r--include/sway/tree/view.h6
3 files changed, 18 insertions, 0 deletions
diff --git a/include/sway/commands.h b/include/sway/commands.h
index 8e91c158..b0b5ed0f 100644
--- a/include/sway/commands.h
+++ b/include/sway/commands.h
@@ -117,6 +117,7 @@ sway_cmd cmd_floating_modifier;
sway_cmd cmd_floating_scroll;
sway_cmd cmd_focus;
sway_cmd cmd_focus_follows_mouse;
+sway_cmd cmd_focus_on_window_activation;
sway_cmd cmd_focus_wrapping;
sway_cmd cmd_font;
sway_cmd cmd_for_window;
diff --git a/include/sway/config.h b/include/sway/config.h
index 18d10faa..4ee8c3c2 100644
--- a/include/sway/config.h
+++ b/include/sway/config.h
@@ -58,6 +58,16 @@ struct sway_mouse_binding {
};
/**
+ * Focus on window activation.
+ */
+enum sway_fowa {
+ FOWA_SMART,
+ FOWA_URGENT,
+ FOWA_FOCUS,
+ FOWA_NONE,
+};
+
+/**
* A "mode" of keybindings created via the `mode` command.
*/
struct sway_mode {
@@ -340,6 +350,7 @@ struct sway_config {
size_t font_height;
bool pango_markup;
size_t urgent_timeout;
+ enum sway_fowa focus_on_window_activation;
// Flags
bool focus_follows_mouse;
diff --git a/include/sway/tree/view.h b/include/sway/tree/view.h
index f73ce571..382ab6b9 100644
--- a/include/sway/tree/view.h
+++ b/include/sway/tree/view.h
@@ -167,6 +167,7 @@ struct sway_xwayland_view {
struct wl_listener request_maximize;
struct wl_listener request_configure;
struct wl_listener request_fullscreen;
+ struct wl_listener request_activate;
struct wl_listener set_title;
struct wl_listener set_class;
struct wl_listener set_window_type;
@@ -259,6 +260,11 @@ void view_autoconfigure(struct sway_view *view);
void view_set_activated(struct sway_view *view, bool activated);
+/**
+ * Called when the view requests to be focused.
+ */
+void view_request_activate(struct sway_view *view);
+
void view_set_tiled(struct sway_view *view, bool tiled);
void view_close(struct sway_view *view);