diff options
-rw-r--r-- | ISSUE_TEMPLATE.md | 9 | ||||
-rw-r--r-- | common/util.c | 37 | ||||
-rw-r--r-- | include/util.h | 9 | ||||
-rw-r--r-- | sway/desktop/render.c | 7 | ||||
-rw-r--r-- | sway/tree/view.c | 22 |
5 files changed, 19 insertions, 65 deletions
diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md index 21f0a36e..5f3bb6bb 100644 --- a/ISSUE_TEMPLATE.md +++ b/ISSUE_TEMPLATE.md | |||
@@ -1,4 +1,11 @@ | |||
1 | Please include the following four components in your bug report: sway version, debug log, configuration (if applicable), and an explanation of steps taken to reproduce the issue. | 1 | If you are using the nvidia proprietary driver for any reason, you have two choices: |
2 | |||
3 | 1. Uninstall it and use nouveau instead | ||
4 | 2. Use X11+i3 and close your browser tab | ||
5 | |||
6 | If `lsmod | grep nvidia | wc -l` shows anything other than zero, your bug report is not welcome here. | ||
7 | |||
8 | Otherwise, please include the following four components in your bug report: sway version, debug log, configuration (if applicable), and an explanation of steps taken to reproduce the issue. | ||
2 | 9 | ||
3 | Obtain your version like so: | 10 | Obtain your version like so: |
4 | 11 | ||
diff --git a/common/util.c b/common/util.c index 467aa4b5..78d46a2a 100644 --- a/common/util.c +++ b/common/util.c | |||
@@ -138,40 +138,3 @@ bool parse_boolean(const char *boolean, bool current) { | |||
138 | // All other values are false to match i3 | 138 | // All other values are false to match i3 |
139 | return false; | 139 | return false; |
140 | } | 140 | } |
141 | |||
142 | char* resolve_path(const char* path) { | ||
143 | struct stat sb; | ||
144 | ssize_t r; | ||
145 | int i; | ||
146 | char *current = NULL; | ||
147 | char *resolved = NULL; | ||
148 | |||
149 | if(!(current = strdup(path))) { | ||
150 | return NULL; | ||
151 | } | ||
152 | for (i = 0; i < 16; ++i) { | ||
153 | if (lstat(current, &sb) == -1) { | ||
154 | goto failed; | ||
155 | } | ||
156 | if((sb.st_mode & S_IFMT) != S_IFLNK) { | ||
157 | return current; | ||
158 | } | ||
159 | if (!(resolved = malloc(sb.st_size + 1))) { | ||
160 | goto failed; | ||
161 | } | ||
162 | r = readlink(current, resolved, sb.st_size); | ||
163 | if (r == -1 || r > sb.st_size) { | ||
164 | goto failed; | ||
165 | } | ||
166 | resolved[r] = '\0'; | ||
167 | free(current); | ||
168 | current = strdup(resolved); | ||
169 | free(resolved); | ||
170 | resolved = NULL; | ||
171 | } | ||
172 | |||
173 | failed: | ||
174 | free(resolved); | ||
175 | free(current); | ||
176 | return NULL; | ||
177 | } | ||
diff --git a/include/util.h b/include/util.h index c39c92b1..56ca2eb8 100644 --- a/include/util.h +++ b/include/util.h | |||
@@ -59,13 +59,4 @@ uint32_t parse_color(const char *color); | |||
59 | */ | 59 | */ |
60 | bool parse_boolean(const char *boolean, bool current); | 60 | bool parse_boolean(const char *boolean, bool current); |
61 | 61 | ||
62 | /** | ||
63 | * Given a path string, recurseively resolves any symlinks to their targets | ||
64 | * (which may be a file, directory) and returns the result. | ||
65 | * argument is returned. Caller must free the returned buffer. | ||
66 | * If an error occures, if the path does not exist or if the path corresponds | ||
67 | * to a dangling symlink, NULL is returned. | ||
68 | */ | ||
69 | char* resolve_path(const char* path); | ||
70 | |||
71 | #endif | 62 | #endif |
diff --git a/sway/desktop/render.c b/sway/desktop/render.c index c1fa0c8c..1a72f752 100644 --- a/sway/desktop/render.c +++ b/sway/desktop/render.c | |||
@@ -781,13 +781,6 @@ static void render_containers_stacked(struct sway_output *output, | |||
781 | 781 | ||
782 | static void render_containers(struct sway_output *output, | 782 | static void render_containers(struct sway_output *output, |
783 | pixman_region32_t *damage, struct parent_data *parent) { | 783 | pixman_region32_t *damage, struct parent_data *parent) { |
784 | if (parent->children->length == 1) { | ||
785 | struct sway_container *child = parent->children->items[0]; | ||
786 | if (child->view) { | ||
787 | render_containers_linear(output, damage, parent); | ||
788 | return; | ||
789 | } | ||
790 | } | ||
791 | switch (parent->layout) { | 784 | switch (parent->layout) { |
792 | case L_NONE: | 785 | case L_NONE: |
793 | case L_HORIZ: | 786 | case L_HORIZ: |
diff --git a/sway/tree/view.c b/sway/tree/view.c index cf67acbb..4bc9e0f3 100644 --- a/sway/tree/view.c +++ b/sway/tree/view.c | |||
@@ -242,23 +242,23 @@ void view_autoconfigure(struct sway_view *view) { | |||
242 | view->border_bottom = bottom_y != ws->y + ws->height; | 242 | view->border_bottom = bottom_y != ws->y + ws->height; |
243 | } | 243 | } |
244 | 244 | ||
245 | double x, y, width, height; | ||
246 | x = y = width = height = 0; | ||
247 | double y_offset = 0; | ||
248 | |||
245 | // In a tabbed or stacked container, the container's y is the top of the | 249 | // In a tabbed or stacked container, the container's y is the top of the |
246 | // title area. We have to offset the surface y by the height of the title, | 250 | // title area. We have to offset the surface y by the height of the title, |
247 | // bar, and disable any top border because we'll always have the title bar. | 251 | // bar, and disable any top border because we'll always have the title bar. |
248 | double y_offset = 0; | ||
249 | enum sway_container_layout layout = container_parent_layout(con); | 252 | enum sway_container_layout layout = container_parent_layout(con); |
250 | list_t *siblings = container_get_siblings(con); | 253 | if (layout == L_TABBED && !container_is_floating(con)) { |
251 | if (siblings->length > 1 && !container_is_floating(con)) { | 254 | y_offset = container_titlebar_height(); |
252 | if (layout == L_TABBED) { | 255 | view->border_top = false; |
253 | y_offset = container_titlebar_height(); | 256 | } else if (layout == L_STACKED && !container_is_floating(con)) { |
254 | view->border_top = false; | 257 | list_t *siblings = container_get_siblings(con); |
255 | } else if (layout == L_STACKED) { | 258 | y_offset = container_titlebar_height() * siblings->length; |
256 | y_offset = container_titlebar_height() * siblings->length; | 259 | view->border_top = false; |
257 | view->border_top = false; | ||
258 | } | ||
259 | } | 260 | } |
260 | 261 | ||
261 | double x = 0, y = 0, width = 0, height = 0; | ||
262 | switch (view->border) { | 262 | switch (view->border) { |
263 | case B_CSD: | 263 | case B_CSD: |
264 | case B_NONE: | 264 | case B_NONE: |