From f9180f9f0491865d8bd54ac3a3a43ecb5155c3ae Mon Sep 17 00:00:00 2001 From: AkriliksKotya Date: Thu, 25 Dec 2025 01:19:53 +0500 Subject: [PATCH] fix checking empty input, add scrolled window --- main.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/main.c b/main.c index 2b69960..304576d 100644 --- a/main.c +++ b/main.c @@ -5,6 +5,7 @@ typedef struct{ GtkApplication *app; GtkWidget *window; + GtkWidget *scrolled_window; GtkWidget *input; GtkWidget *box; GtkWidget *grid; @@ -63,11 +64,13 @@ void on_entry_activate(GtkEntry *entry, Appdata *data){ user_text = gtk_editable_get_text(GTK_EDITABLE(entry)); g_print("input: %s\n", user_text); // check empty input - if (strcmp(user_text, "") || strcmp(user_text, " ")){ + if (strcmp(user_text, "") == 0 || strcmp(user_text, " ") == 0){ snprintf(data->dir, sizeof(data->dir), "/"); + gtk_editable_set_text(GTK_EDITABLE(data->input), "/"); } else{ snprintf(data->dir, sizeof(data->dir), "%s", user_text); + gtk_editable_set_text(GTK_EDITABLE(data->input), ("%s", data->dir)); } remove_child(data); buttons(data->app,data,data->dir); @@ -113,6 +116,11 @@ static void buttons (GtkApplication *app, Appdata *data,char *directory){ gtk_grid_set_column_homogeneous(GTK_GRID (data->grid), TRUE); gtk_grid_set_row_homogeneous(GTK_GRID (data->grid), TRUE); gtk_button_set_label(GTK_BUTTON(btn),name); + GtkLabel *label = gtk_button_get_child(GTK_BUTTON(btn)); + gtk_label_set_wrap(GTK_LABEL(label),TRUE); + gtk_label_set_wrap_mode(GTK_LABEL(label),PANGO_WRAP_CHAR); + gtk_widget_set_hexpand(label, FALSE); + gtk_widget_set_vexpand(label, TRUE); gtk_grid_attach (GTK_GRID(data->grid), btn, j, i, 1,1); gtk_widget_set_halign(btn, GTK_ALIGN_CENTER); gtk_widget_set_valign(btn, GTK_ALIGN_CENTER); @@ -139,10 +147,15 @@ static void app_activate (GtkApplication *app, gpointer *user_data){ gtk_window_set_default_size (GTK_WINDOW (data->window), 600, 400); gtk_window_set_application(GTK_WINDOW(data->window),app); gtk_window_set_icon_name(GTK_WINDOW(data->window), "filemanager-icon"); + data->scrolled_window = gtk_scrolled_window_new(); + gtk_window_set_child (GTK_WINDOW (data->window), data->scrolled_window); + //v policy never; h policy auto + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (data->scrolled_window),GTK_POLICY_NEVER,GTK_POLICY_AUTOMATIC); } data->box = gtk_box_new(GTK_ORIENTATION_VERTICAL,10); gtk_widget_set_valign(data->box,GTK_ALIGN_START); - gtk_window_set_child(GTK_WINDOW(data->window),data->box); + // gtk_window_set_child(GTK_WINDOW(data->window),data->box); + gtk_scrolled_window_set_child(GTK_SCROLLED_WINDOW(data->scrolled_window), data->box); input_dir(data); buttons(app,data,data->dir); gtk_window_present(GTK_WINDOW(data->window));