]> git.mdlowis.com Git - proto/labwc.git/commitdiff
ssd: Add debug helpers
authorJohn Lindgren <john@jlindgren.net>
Sat, 26 Nov 2022 21:13:09 +0000 (16:13 -0500)
committerJohan Malm <johanmalm@users.noreply.github.com>
Sat, 26 Nov 2022 21:24:46 +0000 (21:24 +0000)
include/ssd.h
src/debug.c
src/ssd/ssd.c

index 111c993459a3b63e60e53cfac006726d09cebcf0..667803907d2a908abd68dfbfbfa33a6bccd7a844 100644 (file)
@@ -205,4 +205,9 @@ void ssd_extents_destroy(struct ssd *ssd);
 struct border ssd_thickness(struct view *view);
 struct wlr_box ssd_max_extents(struct view *view);
 
+/* SSD debug helpers */
+bool ssd_debug_is_root_node(const struct ssd *ssd, struct wlr_scene_node *node);
+const char *ssd_debug_get_node_name(const struct ssd *ssd,
+       struct wlr_scene_node *node);
+
 #endif /* __LABWC_SSD_H */
index 135390d4c70028e1585abea651ccd80f86f11477..8be927beb9cffca29b23e682022a75286a68637b 100644 (file)
@@ -4,6 +4,7 @@
 #include "common/scene-helpers.h"
 #include "labwc.h"
 #include "node.h"
+#include "ssd.h"
 #include "view.h"
 
 #define HEADER_CHARS "------------------------------"
@@ -59,26 +60,8 @@ get_view_part(struct view *view, struct wlr_scene_node *node)
        if (view && node == view->scene_node) {
                return "view->scene_node";
        }
-       if (!view || !view->ssd.tree) {
-               return NULL;
-       }
-       if (node == &view->ssd.tree->node) {
-               return "view->ssd";
-       }
-       if (node == &view->ssd.titlebar.active.tree->node) {
-               return "titlebar.active";
-       }
-       if (node == &view->ssd.titlebar.inactive.tree->node) {
-               return "titlebar.inactive";
-       }
-       if (node == &view->ssd.border.active.tree->node) {
-               return "border.active";
-       }
-       if (node == &view->ssd.border.inactive.tree->node) {
-               return "border.inactive";
-       }
-       if (node == &view->ssd.extents.tree->node) {
-               return "extents";
+       if (view) {
+               return ssd_debug_get_node_name(&view->ssd, node);
        }
        return NULL;
 }
@@ -175,8 +158,8 @@ dump_tree(struct server *server, struct wlr_scene_node *node,
        printf("%s %*c %4d  %4d  [%p]\n", type, padding, ' ', x, y, node);
 
        if ((IGNORE_MENU && node == &server->menu_tree->node)
-                       || (IGNORE_SSD && view && view->ssd.tree
-                       && node == &view->ssd.tree->node)) {
+                       || (IGNORE_SSD && view
+                       && ssd_debug_is_root_node(&view->ssd, node))) {
                printf("%*c%s\n", pos + 4 + INDENT_SIZE, ' ', "<skipping children>");
                return;
        }
index 7b87248fbbf27e41be1e313d3b9bd0abd700fba9..01dd66ccf84e9b5f1768b6fba7a85bd76b956062 100644 (file)
@@ -267,3 +267,39 @@ ssd_set_active(struct view *view, bool active)
        wlr_scene_node_set_enabled(&ssd->border.inactive.tree->node, !active);
        wlr_scene_node_set_enabled(&ssd->titlebar.inactive.tree->node, !active);
 }
+
+bool
+ssd_debug_is_root_node(const struct ssd *ssd, struct wlr_scene_node *node)
+{
+       if (!ssd->tree || !node) {
+               return false;
+       }
+       return node == &ssd->tree->node;
+}
+
+const char *
+ssd_debug_get_node_name(const struct ssd *ssd, struct wlr_scene_node *node)
+{
+       if (!ssd->tree || !node) {
+               return NULL;
+       }
+       if (node == &ssd->tree->node) {
+               return "view->ssd";
+       }
+       if (node == &ssd->titlebar.active.tree->node) {
+               return "titlebar.active";
+       }
+       if (node == &ssd->titlebar.inactive.tree->node) {
+               return "titlebar.inactive";
+       }
+       if (node == &ssd->border.active.tree->node) {
+               return "border.active";
+       }
+       if (node == &ssd->border.inactive.tree->node) {
+               return "border.inactive";
+       }
+       if (node == &ssd->extents.tree->node) {
+               return "extents";
+       }
+       return NULL;
+}