aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorRyan Dwyer <ryandwyer1@gmail.com>2018-09-02 15:03:58 +1000
committerRyan Dwyer <ryandwyer1@gmail.com>2018-09-02 18:20:34 +1000
commitf057a0195ee79dfcaeddbcab026c06e310998c75 (patch)
tree5c09cc286ae3a6d852341a0ae4796d28bb6155b0 /include
parent159edc6d13db42b15b28c7ea58cdf2371d29297d (diff)
Implement focus_on_window_activation
Depends on https://github.com/swaywm/wlroots/pull/1223
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..45fa73c4 100644
--- a/include/sway/config.h
+++ b/include/sway/config.h
@@ -58,6 +58,16 @@ struct sway_mouse_binding {
};
/**
+ * Focus on window activation.
+ */
+enum 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 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);