From ddfc3c9a2181f9f460a9b70d449cb54166d2466b Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 16 Jan 2025 12:39:48 +0600 Subject: [PATCH] Changed status box shrink logic --- source/libublsettings-gtk3-status.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/source/libublsettings-gtk3-status.c b/source/libublsettings-gtk3-status.c index 19344ae..ad521d4 100644 --- a/source/libublsettings-gtk3-status.c +++ b/source/libublsettings-gtk3-status.c @@ -110,9 +110,22 @@ gboolean yon_ubl_status_hide_revealer(struct temp_statusbox *statusstruct){ gtk_revealer_set_reveal_child(GTK_REVEALER(statusstruct->revealer),0); } +gboolean yon_status_shrink_window(struct temp_statusbox *statusstruct){ + if (statusstruct->revealer){ + GtkWidget *window = gtk_widget_get_toplevel(statusstruct->revealer); + + int width, height; + gtk_window_get_size(GTK_WINDOW(window),&width,NULL); + gtk_window_resize(GTK_WINDOW(window),width,statusstruct->window_height); + return G_SOURCE_CONTINUE; + } else return G_SOURCE_REMOVE; +} + gboolean yon_ubl_status_destroy_status(struct temp_statusbox *statusstruct){ GtkWidget *window = gtk_widget_get_toplevel(statusstruct->revealer); + GtkWidget *revealer = statusstruct->revealer; gtk_widget_destroy(statusstruct->revealer); + statusstruct->revealer = NULL; int width, height; gtk_window_get_size(GTK_WINDOW(window),&width,NULL); gtk_window_resize(GTK_WINDOW(window),width,statusstruct->window_height); @@ -123,6 +136,7 @@ void _yon_ubl_status_box_timed_remove(struct temp_statusbox *statusstruct){ sleep(statusstruct->times); if (statusstruct->revealer){ g_idle_add((GSourceFunc)yon_ubl_status_hide_revealer,statusstruct); + g_idle_add((GSourceFunc)yon_status_shrink_window,statusstruct); sleep(1); g_idle_add((GSourceFunc)yon_ubl_status_destroy_status,statusstruct); }