diff options
| -rw-r--r-- | libdecor/src/libdecor.c | 3 | ||||
| -rw-r--r-- | libdecor/src/plugins/gtk/libdecor-gtk.c | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/libdecor/src/libdecor.c b/libdecor/src/libdecor.c index c4b5b1e99..9bd418fe2 100644 --- a/libdecor/src/libdecor.c +++ b/libdecor/src/libdecor.c @@ -300,6 +300,9 @@ libdecor_configuration_get_content_size(struct libdecor_configuration *configura if (frame_has_visible_client_side_decoration(frame) && plugin->priv->iface->frame_get_border_size) { int left, right, top, bottom; + + /* Update window state for correct border size calculation */ + frame->priv->window_state = configuration->window_state; if (!plugin->priv->iface->frame_get_border_size( plugin, frame, configuration, &left, &right, &top, &bottom)) return false; diff --git a/libdecor/src/plugins/gtk/libdecor-gtk.c b/libdecor/src/plugins/gtk/libdecor-gtk.c index 33d442c41..53cc81339 100644 --- a/libdecor/src/plugins/gtk/libdecor-gtk.c +++ b/libdecor/src/plugins/gtk/libdecor-gtk.c @@ -1728,6 +1728,9 @@ libdecor_plugin_gtk_frame_get_border_size(struct libdecor_plugin *plugin, if (bottom) *bottom = 0; if (top) { + /* Redraw decoration to ensure size will be up-to-date */ + draw_decoration((struct libdecor_frame_gtk *) frame); + GtkWidget *header = ((struct libdecor_frame_gtk *)frame)->header; enum decoration_type type = window_state_to_decoration_type(window_state); |
