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