diff --git a/glade/mainWindow.glade b/glade/mainWindow.glade
index a34e856..41d8b4d 100644
--- a/glade/mainWindow.glade
+++ b/glade/mainWindow.glade
@@ -132,6 +132,8 @@
True
10
10
+ gtk-clear
+ fg
True
@@ -157,6 +159,7 @@
True
10
10
+ gtk-clear
True
diff --git a/src/mainwindow.c b/src/mainwindow.c
index 8f348d7..afcb67a 100644
--- a/src/mainwindow.c
+++ b/src/mainwindow.c
@@ -236,6 +236,15 @@ static void mainWindow_connect_signals(struct mainWindow *mainWindow)
"clicked",
(GCallback) mainWindow_clearSearch,
mainWindow);
+
+ g_signal_connect(mainWindow->dateStart,
+ "icon-press",
+ (GCallback) mainWindow_dateIconPress,
+ mainWindow);
+ g_signal_connect(mainWindow->dateEnd,
+ "icon-press",
+ (GCallback) mainWindow_dateIconPress,
+ mainWindow);
}
/**
@@ -485,17 +494,30 @@ void mainWindow_clearSearch(GtkWidget *widget, gpointer user_data)
GDateTime *datetime;
gchar *temp;
- gtk_entry_set_text(GTK_ENTRY(mainWindow->searchEntry), "");
+ if (widget == mainWindow->buttonClearSearch)
+ widget = NULL;
- datetime = g_date_time_new_from_unix_local(mainWindow->time_earliest);
- temp = g_date_time_format(datetime, "%Y-%m-%d");
- gtk_entry_set_text(GTK_ENTRY(mainWindow->dateStart), temp);
- g_date_time_unref(datetime);
- g_free(temp);
+ if (!widget || widget == mainWindow->searchEntry)
+ gtk_entry_set_text(GTK_ENTRY(mainWindow->searchEntry), "");
- datetime = g_date_time_new_from_unix_local(mainWindow->time_latest);
- temp = g_date_time_format(datetime, "%Y-%m-%d");
- gtk_entry_set_text(GTK_ENTRY(mainWindow->dateEnd), temp);
- g_date_time_unref(datetime);
- g_free(temp);
+ if (!widget || widget == mainWindow->dateStart) {
+ datetime = g_date_time_new_from_unix_local(mainWindow->time_earliest);
+ temp = g_date_time_format(datetime, "%Y-%m-%d");
+ gtk_entry_set_text(GTK_ENTRY(mainWindow->dateStart), temp);
+ g_date_time_unref(datetime);
+ g_free(temp);
+ }
+
+ if (!widget || widget == mainWindow->dateEnd) {
+ datetime = g_date_time_new_from_unix_local(mainWindow->time_latest);
+ temp = g_date_time_format(datetime, "%Y-%m-%d");
+ gtk_entry_set_text(GTK_ENTRY(mainWindow->dateEnd), temp);
+ g_date_time_unref(datetime);
+ g_free(temp);
+ }
+}
+
+void mainWindow_dateIconPress(GtkWidget *widget, gint icon_pos, gint event, gpointer user_data)
+{
+ mainWindow_clearSearch(widget, user_data);
}
diff --git a/src/mainwindow.h b/src/mainwindow.h
index 7b60caa..ca2f64d 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -53,5 +53,6 @@ void mainWindow_calendarSelected(GtkWidget *widget, gpointer user_data);
void mainWindow_entrySelected(GtkWidget *widget, gpointer user_data);
void mainWindow_filterChanged(GtkWidget *widget, gpointer user_data);
void mainWindow_checkDate(GtkWidget *widget, gint event, gpointer user_data);
+void mainWindow_dateIconPress(GtkWidget *widget, gint icon_pos, gint event, gpointer user_data);
#endif /* MAINWINDOW_H */