*/
int predict_text_width(i3String *text);
+/**
+ * Returns the visual type associated with the given screen.
+ *
+ */
+xcb_visualtype_t *get_visualtype(xcb_screen_t *screen);
+
/**
* Returns true if this version of i3 is a debug build (anything which is not a
* release version), based on the git version number.
--- /dev/null
+/*
+ * vim:ts=4:sw=4:expandtab
+ *
+ * i3 - an improved dynamic tiling window manager
+ * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
+ *
+ */
+#include "libi3.h"
+
+/*
+ * Returns the visual type associated with the given screen.
+ *
+ */
+xcb_visualtype_t *get_visualtype(xcb_screen_t *screen) {
+ xcb_depth_iterator_t depth_iter;
+ for (depth_iter = xcb_screen_allowed_depths_iterator(screen);
+ depth_iter.rem;
+ xcb_depth_next(&depth_iter)) {
+ xcb_visualtype_iterator_t visual_iter;
+ for (visual_iter = xcb_depth_visuals_iterator(depth_iter.data);
+ visual_iter.rem;
+ xcb_visualtype_next(&visual_iter)) {
+ if (screen->root_visual == visual_iter.data->visual_id)
+ return visual_iter.data;
+ }
+ }
+ return NULL;
+}