sway

i3-compatible Wayland compositor
git clone https://git.awy.one/sway
Log | Files | Refs | README | LICENSE

commit 532598947d2e995983017846cff66aea1ab63e95
parent c29214f348cef5951eeece3b60383993eaaca305
Author: Drew DeVault <sir@cmpwn.com>
Date:   Wed, 19 Aug 2015 16:15:38 -0400

Merge pull request #90 from taiyu-len/master

floating mode_toggle
Diffstat:
Msway.5.txt | 3+++
Msway/commands.c | 11+++++++++++
Msway/handlers.c | 3+++
3 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/sway.5.txt b/sway.5.txt @@ -41,6 +41,9 @@ Commands **floating** toggle:: Toggles the "floating" status of the focused view. +**floating** mode_toggle:: + Toggles focus between floating view and tiled view. + **focus** <direction>:: Direction may be one of _up_, _down_, _left_, _right_, or _parent_. The directional focus commands will move the focus in that direction. The parent diff --git a/sway/commands.c b/sway/commands.c @@ -231,6 +231,17 @@ static bool cmd_floating(struct sway_config *config, int argc, char **argv) { return true; } set_focused_container(view); + } else if (strcasecmp(argv[0], "mode_toggle") == 0) { + if (get_focused_view(active_workspace)->is_floating) { + if (active_workspace->children->length > 0) { + set_focused_container(get_focused_view(active_workspace->children->items[0])); + } + } else { + if (active_workspace->floating->length > 0) { + swayc_t *floating = active_workspace->floating->items[active_workspace->floating->length-1]; + set_focused_container(get_focused_view(floating)); + } + } } return true; diff --git a/sway/handlers.c b/sway/handlers.c @@ -316,6 +316,9 @@ static bool handle_key(wlc_handle view, uint32_t time, const struct wlc_modifier } bool cmd_success = false; + sway_log(L_DEBUG, "modifier %x: state %d: key %d, sym: %d", + modifiers->mods, state, key, sym); + if ((modifiers->mods & config->floating_mod) && (dragging || resizing)) { reset_floating(get_focused_view(&root_container)); }