diff --git a/common/log.c b/common/log.c index ef791becf..56c3834ab 100644 --- a/common/log.c +++ b/common/log.c @@ -12,9 +12,9 @@ #include #include -int colored = 1; -log_importance_t loglevel_default = L_ERROR; -log_importance_t v = L_SILENT; +static int colored = 1; +static log_importance_t loglevel_default = L_ERROR; +static log_importance_t v = L_SILENT; static const char *verbosity_colors[] = { [L_SILENT] = "", @@ -38,6 +38,10 @@ void set_log_level(log_importance_t verbosity) { v = verbosity; } +log_importance_t get_log_level(void) { + return v; +} + void reset_log_level(void) { v = loglevel_default; } diff --git a/include/log.h b/include/log.h index efacf90f9..ca8c1fe36 100644 --- a/include/log.h +++ b/include/log.h @@ -11,6 +11,7 @@ typedef enum { void init_log(log_importance_t verbosity); void set_log_level(log_importance_t verbosity); +log_importance_t get_log_level(void); void reset_log_level(void); // returns whether debug logging is on after switching. bool toggle_debug_logging(void); diff --git a/sway/commands.c b/sway/commands.c index 4009997b8..55f46f793 100644 --- a/sway/commands.c +++ b/sway/commands.c @@ -251,7 +251,7 @@ static struct cmd_results *cmd_bindsym(int argc, char **argv) { } else { free_sway_binding(binding); return cmd_results_new(CMD_FAILURE, "bindsym", - "Invalid bindsym command" + "Invalid bindsym command " "(expected more than 2 arguments, got %d)", argc); } } @@ -317,7 +317,7 @@ static struct cmd_results *cmd_bindcode(int argc, char **argv) { } else { free_sway_binding(binding); return cmd_results_new(CMD_FAILURE, "bindcode", - "Invalid bindcode command" + "Invalid bindcode command " "(expected more than 2 arguments, got %d)", argc); } } diff --git a/sway/container.c b/sway/container.c index 159750647..21538ab44 100644 --- a/sway/container.c +++ b/sway/container.c @@ -853,12 +853,12 @@ swayc_t *swayc_tabbed_stacked_parent(swayc_t *view) { if (!ASSERT_NONNULL(view)) { return NULL; } - do { + while (view->type != C_WORKSPACE && view->parent) { view = view->parent; if (view->layout == L_TABBED || view->layout == L_STACKED) { parent = view; } - } while (view && view->type != C_WORKSPACE); + } return parent; } diff --git a/sway/debug_log.c b/sway/debug_log.c index f804a5415..7c9884647 100644 --- a/sway/debug_log.c +++ b/sway/debug_log.c @@ -12,8 +12,6 @@ #include #include "workspace.h" -extern log_importance_t v; - /* XXX:DEBUG:XXX */ static void container_log(const swayc_t *c, int depth) { fprintf(stderr, "focus:%c", @@ -49,7 +47,7 @@ static void container_log(const swayc_t *c, int depth) { fprintf(stderr, "name:%.16s\n", c->name); } void layout_log(const swayc_t *c, int depth) { - if (L_DEBUG > v) return; + if (L_DEBUG > get_log_level()) return; int i, d; int e = c->children ? c->children->length : 0; container_log(c, depth); diff --git a/sway/handlers.c b/sway/handlers.c index b38f05a63..53dbeb87e 100644 --- a/sway/handlers.c +++ b/sway/handlers.c @@ -198,11 +198,12 @@ static bool handle_view_created(wlc_handle handle) { if (pid) { // using newview as a temp storage location here, // rather than adding yet another workspace var - if ((newview = workspace_for_pid(pid))) { + newview = workspace_for_pid(pid); + if (newview && newview != current_ws) { focused = newview; - newview = NULL; return_to_workspace = true; } + newview = NULL; } } @@ -234,8 +235,12 @@ static bool handle_view_created(wlc_handle handle) { switch (wlc_view_get_type(handle)) { // regular view created regularly case 0: - newview = new_view(focused, handle); - wlc_view_set_state(handle, WLC_BIT_MAXIMIZED, true); + if (parent) { + newview = new_floating_view(handle); + } else { + newview = new_view(focused, handle); + wlc_view_set_state(handle, WLC_BIT_MAXIMIZED, true); + } break; // Dmenu keeps viewfocus, but others with this flag don't, for now simulate diff --git a/swaylock/main.c b/swaylock/main.c index b5ce63ef4..a0a2f1cb5 100644 --- a/swaylock/main.c +++ b/swaylock/main.c @@ -11,6 +11,7 @@ #include #include #include +#include #include "client/window.h" #include "client/registry.h"