summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar emersion <contact@emersion.fr>2018-03-30 11:49:45 -0400
committerLibravatar GitHub <noreply@github.com>2018-03-30 11:49:45 -0400
commit1592543fd67c23467c81dfa51900bd798b9d8dfc (patch)
tree0f433cabde70591fbaf3e08352d2254222252804
parentMerge pull request #1657 from emersion/render-fixes (diff)
parentAdd default_orientation command (diff)
downloadsway-1592543fd67c23467c81dfa51900bd798b9d8dfc.tar.gz
sway-1592543fd67c23467c81dfa51900bd798b9d8dfc.tar.zst
sway-1592543fd67c23467c81dfa51900bd798b9d8dfc.zip
Merge pull request #1659 from swaywm/default-orientation
Add default_orientation command
-rw-r--r--include/sway/commands.h2
-rw-r--r--sway/commands.c1
-rw-r--r--sway/commands/default_orientation.c21
-rw-r--r--sway/meson.build1
-rw-r--r--sway/tree/layout.c5
5 files changed, 26 insertions, 4 deletions
diff --git a/include/sway/commands.h b/include/sway/commands.h
index 1291d5fb..66f097ea 100644
--- a/include/sway/commands.h
+++ b/include/sway/commands.h
@@ -95,6 +95,7 @@ sway_cmd cmd_commands;
95sway_cmd cmd_debuglog; 95sway_cmd cmd_debuglog;
96sway_cmd cmd_default_border; 96sway_cmd cmd_default_border;
97sway_cmd cmd_default_floating_border; 97sway_cmd cmd_default_floating_border;
98sway_cmd cmd_default_orientation;
98sway_cmd cmd_exec; 99sway_cmd cmd_exec;
99sway_cmd cmd_exec_always; 100sway_cmd cmd_exec_always;
100sway_cmd cmd_exit; 101sway_cmd cmd_exit;
@@ -125,7 +126,6 @@ sway_cmd cmd_move;
125sway_cmd cmd_new_float; 126sway_cmd cmd_new_float;
126sway_cmd cmd_new_window; 127sway_cmd cmd_new_window;
127sway_cmd cmd_no_focus; 128sway_cmd cmd_no_focus;
128sway_cmd cmd_orientation;
129sway_cmd cmd_output; 129sway_cmd cmd_output;
130sway_cmd cmd_permit; 130sway_cmd cmd_permit;
131sway_cmd cmd_reject; 131sway_cmd cmd_reject;
diff --git a/sway/commands.c b/sway/commands.c
index bcc777ed..eee7f254 100644
--- a/sway/commands.c
+++ b/sway/commands.c
@@ -149,6 +149,7 @@ static struct cmd_handler bar_colors_handlers[] = {
149 149
150/* Config-time only commands. Keep alphabetized */ 150/* Config-time only commands. Keep alphabetized */
151static struct cmd_handler config_handlers[] = { 151static struct cmd_handler config_handlers[] = {
152 { "default_orientation", cmd_default_orientation },
152 { "set", cmd_set }, 153 { "set", cmd_set },
153 { "swaybg_command", cmd_swaybg_command }, 154 { "swaybg_command", cmd_swaybg_command },
154}; 155};
diff --git a/sway/commands/default_orientation.c b/sway/commands/default_orientation.c
new file mode 100644
index 00000000..a5347ce2
--- /dev/null
+++ b/sway/commands/default_orientation.c
@@ -0,0 +1,21 @@
1#include <string.h>
2#include <strings.h>
3#include "sway/commands.h"
4
5struct cmd_results *cmd_default_orientation(int argc, char **argv) {
6 struct cmd_results *error = NULL;
7 if ((error = checkarg(argc, "default_orientation", EXPECTED_EQUAL_TO, 1))) {
8 return error;
9 }
10 if (strcasecmp(argv[0], "horizontal") == 0) {
11 config->default_orientation = L_HORIZ;
12 } else if (strcasecmp(argv[0], "vertical") == 0) {
13 config->default_orientation = L_VERT;
14 } else if (strcasecmp(argv[0], "auto") == 0) {
15 // Do nothing
16 } else {
17 return cmd_results_new(CMD_INVALID, "default_orientation",
18 "Expected 'orientation <horizontal|vertical|auto>'");
19 }
20 return cmd_results_new(CMD_SUCCESS, NULL, NULL);
21}
diff --git a/sway/meson.build b/sway/meson.build
index 1e7ee7ae..9c5e4a00 100644
--- a/sway/meson.build
+++ b/sway/meson.build
@@ -8,6 +8,7 @@ sway_sources = files(
8 'input/keyboard.c', 8 'input/keyboard.c',
9 'commands/bar.c', 9 'commands/bar.c',
10 'commands/bind.c', 10 'commands/bind.c',
11 'commands/default_orientation.c',
11 'commands/exit.c', 12 'commands/exit.c',
12 'commands/exec.c', 13 'commands/exec.c',
13 'commands/exec_always.c', 14 'commands/exec_always.c',
diff --git a/sway/tree/layout.c b/sway/tree/layout.c
index 97007888..73c4849b 100644
--- a/sway/tree/layout.c
+++ b/sway/tree/layout.c
@@ -160,12 +160,11 @@ void container_move_to(struct sway_container* container,
160 160
161enum sway_container_layout container_get_default_layout( 161enum sway_container_layout container_get_default_layout(
162 struct sway_container *output) { 162 struct sway_container *output) {
163 /* TODO WLR
164 if (config->default_layout != L_NONE) { 163 if (config->default_layout != L_NONE) {
165 //return config->default_layout; 164 return config->default_layout;
166 } else if (config->default_orientation != L_NONE) { 165 } else if (config->default_orientation != L_NONE) {
167 return config->default_orientation; 166 return config->default_orientation;
168 } else */if (output->width >= output->height) { 167 } else if (output->width >= output->height) {
169 return L_HORIZ; 168 return L_HORIZ;
170 } else { 169 } else {
171 return L_VERT; 170 return L_VERT;