labwc/src/dbg.c

103 lines
2.5 KiB
C
Raw Normal View History

#include "labwc.h"
2020-08-03 20:56:38 +01:00
#include "config/rcxml.h"
#include "config/keybind.h"
2020-08-20 21:13:04 +01:00
#include "common/log.h"
static int xwl_nr_parents(struct view *view)
{
struct wlr_xwayland_surface *s = view->xwayland_surface;
int i = 0;
if (!s) {
warn("(%s) no xwayland surface\n", __func__);
return -1;
}
while (s->parent) {
s = s->parent;
++i;
}
return i;
}
static void show_one_xdg_view(struct view *view)
{
fprintf(stderr, "XDG ");
switch (view->xdg_surface->role) {
case WLR_XDG_SURFACE_ROLE_NONE:
fprintf(stderr, "- ");
break;
case WLR_XDG_SURFACE_ROLE_TOPLEVEL:
fprintf(stderr, "0 ");
break;
case WLR_XDG_SURFACE_ROLE_POPUP:
fprintf(stderr, "? ");
break;
}
fprintf(stderr, " %p %s", (void *)view,
view->xdg_surface->toplevel->app_id);
fprintf(stderr, " {%d, %d, %d, %d}\n", view->xdg_surface->geometry.x,
view->xdg_surface->geometry.y,
view->xdg_surface->geometry.height,
view->xdg_surface->geometry.width);
}
static void show_one_xwl_view(struct view *view)
{
fprintf(stderr, "XWL ");
fprintf(stderr, "%d ", xwl_nr_parents(view));
fprintf(stderr, " %d ",
wl_list_length(&view->xwayland_surface->children));
if (view->mapped) {
fprintf(stderr, "Y");
} else {
fprintf(stderr, "-");
}
fprintf(stderr, " %p %s {%d,%d,%d,%d}\n", (void *)view,
view->xwayland_surface->class, view->xwayland_surface->x,
view->xwayland_surface->y, view->xwayland_surface->width,
view->xwayland_surface->height);
/*
* Other variables to consider printing:
*
* view->mapped,
* view->xwayland_surface->override_redirect,
* wlr_xwayland_or_surface_wants_focus(view->xwayland_surface));
* view->xwayland_surface->saved_width,
* view->xwayland_surface->saved_height);
* view->xwayland_surface->surface->sx,
* view->xwayland_surface->surface->sy);
*/
}
void dbg_show_one_view(struct view *view)
{
2020-09-07 19:47:11 +01:00
if (!view->surface)
return;
if (!view->mapped && !view->minimized)
return;
if (view->type == LAB_XDG_SHELL_VIEW)
show_one_xdg_view(view);
else if (view->type == LAB_XWAYLAND_VIEW)
show_one_xwl_view(view);
}
void dbg_show_views(struct server *server)
{
struct view *view;
fprintf(stderr, "---\n");
fprintf(stderr, "TYPE NR_PNT NR_CLD MAPPED VIEW-POINTER NAME\n");
wl_list_for_each_reverse (view, &server->views, link)
dbg_show_one_view(view);
}
void dbg_show_keybinds()
{
struct keybind *keybind;
wl_list_for_each_reverse (keybind, &rc.keybinds, link) {
printf("KEY=%s-", keybind->action);
for (size_t i = 0; i < keybind->keysyms_len; i++)
printf(" %d\n", keybind->keysyms[i]);
}
}