]> git.sur5r.net Git - i3/i3/commitdiff
Fix rendering of 1-px-border windows which require background filling
authorMichael Stapelberg <michael@stapelberg.de>
Sun, 8 Nov 2009 12:04:14 +0000 (13:04 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Sun, 8 Nov 2009 12:04:14 +0000 (13:04 +0100)
src/handlers.c
src/layout.c

index 8d1bd5ba94b47c6704ab985ab8ad6bcc37d27fa3..5b9ab8bc9f28eddf759a51664645f593b33f7d59 100644 (file)
@@ -753,8 +753,13 @@ int handle_expose_event(void *data, xcb_connection_t *conn, xcb_expose_event_t *
 
                 /* Draw a black background */
                 xcb_change_gc_single(conn, client->titlegc, XCB_GC_FOREGROUND, get_colorpixel(conn, "#000000"));
-                xcb_rectangle_t crect = {2, 0, client->rect.width - (2 + 2), client->rect.height - 2};
-                xcb_poly_fill_rectangle(conn, client->frame, client->titlegc, 1, &crect);
+                if (client->titlebar_position == TITLEBAR_OFF) {
+                        xcb_rectangle_t crect = {1, 0, client->rect.width - (1 + 1), client->rect.height - 1};
+                        xcb_poly_fill_rectangle(conn, client->frame, client->titlegc, 1, &crect);
+                } else {
+                        xcb_rectangle_t crect = {2, 0, client->rect.width - (2 + 2), client->rect.height - 2};
+                        xcb_poly_fill_rectangle(conn, client->frame, client->titlegc, 1, &crect);
+                }
         }
         xcb_flush(conn);
         return 1;
index f04b6de33392d62a233cc9c385aa61e21a128b3a..24cafb723519bea27afd40ac9207d928b9ae0f58 100644 (file)
@@ -174,9 +174,14 @@ void decorate_window(xcb_connection_t *conn, Client *client, xcb_drawable_t draw
                 /* Draw the inner background to have a black frame around clients (such as mplayer)
                    which cannot be resized exactly in our frames and therefore are centered */
                 xcb_change_gc_single(conn, client->titlegc, XCB_GC_FOREGROUND, get_colorpixel(conn, "#000000"));
-                xcb_rectangle_t crect = {2, decoration_height,
-                                         client->rect.width - (2 + 2), client->rect.height - 2 - decoration_height};
-                xcb_poly_fill_rectangle(conn, client->frame, client->titlegc, 1, &crect);
+                if (client->titlebar_position == TITLEBAR_OFF) {
+                        xcb_rectangle_t crect = {1, 1, client->rect.width - (1 + 1), client->rect.height - (1 + 1)};
+                        xcb_poly_fill_rectangle(conn, client->frame, client->titlegc, 1, &crect);
+                } else {
+                        xcb_rectangle_t crect = {2, decoration_height,
+                                                 client->rect.width - (2 + 2), client->rect.height - 2 - decoration_height};
+                        xcb_poly_fill_rectangle(conn, client->frame, client->titlegc, 1, &crect);
+                }
         }
 
         if (client->titlebar_position != TITLEBAR_OFF) {