- char* name; /* Name of the output */
- bool active; /* If the output is active */
- bool primary; /* If it is the primary output */
- int ws; /* The number of the currently visible ws */
- rect rect; /* The rect (relative to the root-win) */
-
- xcb_window_t bar; /* The id of the bar of the output */
- xcb_pixmap_t buffer; /* An extra pixmap for double-buffering */
- xcb_gcontext_t bargc; /* The graphical context of the bar */
-
- struct ws_head *workspaces; /* The workspaces on this output */
- struct tc_head *trayclients; /* The tray clients on this output */
+ char* name; /* Name of the output */
+ bool active; /* If the output is active */
+ bool primary; /* If it is the primary output */
+ bool visible; /* If the bar is visible on this output */
+ int ws; /* The number of the currently visible ws */
+ rect rect; /* The rect (relative to the root window) */
+
+ /* Off-screen buffer for preliminary rendering. */
+ surface_t buffer;
+ /* The actual window on which we draw. */
+ surface_t bar;
+
+ struct ws_head* workspaces; /* The workspaces on this output */
+ struct tc_head* trayclients; /* The tray clients on this output */