Просмотр исходного кода

dwm draws a small caret before the client title if it's a versatile client

Anselm R. Garbe 19 лет назад
Родитель
Сommit
1a25414ace
2 измененных файлов с 31 добавлено и 6 удалено
  1. 25 1
      draw.c
  2. 6 5
      dwm.1

+ 25 - 1
draw.c

@@ -6,6 +6,24 @@
 
 
 /* static */
 /* static */
 
 
+static void
+drawcaret(unsigned long col[ColLast]) {
+	int x;
+	XGCValues gcv;
+	XPoint pt[3];
+
+	gcv.foreground = col[ColFG];
+	XChangeGC(dpy, dc.gc, GCForeground, &gcv);
+	x = (dc.font.ascent + dc.font.descent) / 2;
+	pt[0].x = dc.x + 1;
+	pt[0].y = dc.y + 1 + x;
+	pt[1].x = 0;
+	pt[1].y = -x;
+	pt[2].x = x;
+	pt[2].y = 0;
+	XDrawLines(dpy, dc.drawable, dc.gc, pt, 3, CoordModePrevious);
+}
+
 static void
 static void
 drawsquare(Bool filled, Bool empty, unsigned long col[ColLast]) {
 drawsquare(Bool filled, Bool empty, unsigned long col[ColLast]) {
 	int x;
 	int x;
@@ -79,7 +97,13 @@ drawstatus(void) {
 	drawtext(stext, dc.norm);
 	drawtext(stext, dc.norm);
 	if((dc.w = dc.x - x) > bh) {
 	if((dc.w = dc.x - x) > bh) {
 		dc.x = x;
 		dc.x = x;
-		drawtext(sel ? sel->name : NULL, sel ? dc.sel : dc.norm);
+		if(sel) {
+			drawtext(sel->name, dc.sel);
+			if(sel->isversatile)
+				drawcaret(dc.sel);
+		}
+		else
+			drawtext(NULL, dc.norm);
 	}
 	}
 	XCopyArea(dpy, dc.drawable, barwin, dc.gc, 0, 0, sw, bh, 0, 0);
 	XCopyArea(dpy, dc.drawable, barwin, dc.gc, 0, 0, sw, bh, 0, 0);
 	XSync(dpy, False);
 	XSync(dpy, False);

+ 6 - 5
dwm.1

@@ -19,11 +19,12 @@ Windows are grouped by tags. Each window can be tagged with one or multiple
 tags. Selecting certain tags displays all windows with these tags.
 tags. Selecting certain tags displays all windows with these tags.
 .P
 .P
 dwm contains a small status bar which displays all available tags, the layout,
 dwm contains a small status bar which displays all available tags, the layout,
-the title of the focused window, and the text read from standard input. The
-selected tags are indicated with a different color. The tags of the focused
-window are indicated with a filled square in the top left corner.  The tags
-which are applied to one or more windows are indicated with an empty square in
-the top left corner.
+the title of the focused window, and the text read from standard input. If
+the focused window is in versatile state, a small caret is printed before
+its title. The selected tags are indicated with a different color. The tags
+of the focused window are indicated with a filled square in the top left
+corner.  The tags which are applied to one or more windows are indicated
+with an empty square in the top left corner.
 .P
 .P
 dwm draws a small border around windows to indicate the focus state.
 dwm draws a small border around windows to indicate the focus state.
 .SH OPTIONS
 .SH OPTIONS