Add render_deco_height()
Patch status: rejected
Patch by oblique
To apply this patch, use:
curl http://cr.i3wm.org/patch/36/raw.patch | git am
b/src/con.c
| 15 |
@@ -1181,7 +1181,7 @@ void con_set_border_style(Con *con, int border_style, int border_width) {
|
| 16 |
con->current_border_width = border_width; |
| 17 |
bsr = con_border_style_rect(con); |
| 18 |
int deco_height = |
| 19 |
- (con->border_style == BS_NORMAL ? config.font.height + 5 : 0); |
| 20 |
+ (con->border_style == BS_NORMAL ? render_deco_height() : 0); |
| 21 |
|
| 22 |
con->rect.x -= bsr.x; |
| 23 |
con->rect.y -= bsr.y; |
b/src/floating.c
| 28 |
@@ -165,7 +165,7 @@ void floating_enable(Con *con, bool automatic) {
|
| 29 |
free(name); |
| 30 |
|
| 31 |
/* find the height for the decorations */ |
| 32 |
- int deco_height = config.font.height + 5; |
| 33 |
+ int deco_height = render_deco_height(); |
| 34 |
|
| 35 |
DLOG("Original rect: (%d, %d) with %d x %d\n", con->rect.x, con->rect.y, con->rect.width, con->rect.height);
|
| 36 |
DLOG("Geometry = (%d, %d) with %d x %d\n", con->geometry.x, con->geometry.y, con->geometry.width, con->geometry.height);
|
| 37 |
@@ -251,7 +251,7 @@ void floating_enable(Con *con, bool automatic) {
|
| 38 |
/* 5: Subtract the deco_height in order to make the floating window appear |
| 39 |
* at precisely the position it specified in its original geometry (which |
| 40 |
* is what applications might remember). */ |
| 41 |
- deco_height = (con->border_style == BS_NORMAL ? config.font.height + 5 : 0); |
| 42 |
+ deco_height = (con->border_style == BS_NORMAL ? render_deco_height() : 0); |
| 43 |
nc->rect.y -= deco_height; |
| 44 |
|
| 45 |
DLOG("Corrected y = %d (deco_height = %d)\n", nc->rect.y, deco_height);
|
b/src/render.c
| 50 |
@@ -17,6 +17,16 @@ |
| 51 |
static bool show_debug_borders = false; |
| 52 |
|
| 53 |
/* |
| 54 |
+ * Returns the height for the decorations |
| 55 |
+ */ |
| 56 |
+int render_deco_height() {
|
| 57 |
+ int deco_height = config.font.height + 4; |
| 58 |
+ if (config.font.height & 0x01) |
| 59 |
+ ++deco_height; |
| 60 |
+ return deco_height; |
| 61 |
+} |
| 62 |
+ |
| 63 |
+/* |
| 64 |
* Renders a container with layout L_OUTPUT. In this layout, all CT_DOCKAREAs |
| 65 |
* get the height of their content and the remaining CT_CON gets the rest. |
| 66 |
* |
| 67 |
@@ -203,9 +213,7 @@ void render_con(Con *con, bool render_fullscreen) {
|
| 68 |
} |
| 69 |
|
| 70 |
/* find the height for the decorations */ |
| 71 |
- int deco_height = config.font.height + 4; |
| 72 |
- if (config.font.height & 0x01) |
| 73 |
- ++deco_height; |
| 74 |
+ int deco_height = render_deco_height(); |
| 75 |
|
| 76 |
/* precalculate the sizes to be able to correct rounding errors */ |
| 77 |
int sizes[children]; |