[evolution/gnome-42] I#1847 - attachment-reminder: Existing keyword lost on editing cancel



commit ea233a6b2423929c4f3368bd0a08aa15d4127ef7
Author: Milan Crha <mcrha redhat com>
Date:   Tue Mar 29 18:47:26 2022 +0200

    I#1847 - attachment-reminder: Existing keyword lost on editing cancel
    
    Closes https://gitlab.gnome.org/GNOME/evolution/-/issues/1847

 src/modules/plugin-manager/evolution-plugin-manager.c | 11 +++++++++++
 src/plugins/attachment-reminder/attachment-reminder.c | 17 ++++++++++++++++-
 2 files changed, 27 insertions(+), 1 deletion(-)
---
diff --git a/src/modules/plugin-manager/evolution-plugin-manager.c 
b/src/modules/plugin-manager/evolution-plugin-manager.c
index 2aed637e02..5f774639ce 100644
--- a/src/modules/plugin-manager/evolution-plugin-manager.c
+++ b/src/modules/plugin-manager/evolution-plugin-manager.c
@@ -213,6 +213,17 @@ eppm_selection_changed (GtkTreeSelection *selection,
        GtkTreeModel *model;
        GtkTreeIter iter;
 
+       if (gtk_tree_selection_get_selected (selection, &model, &iter)) {
+               GtkWidget *cfg_widget = NULL;
+
+               gtk_tree_model_get (
+                       model, &iter,
+                       COL_PLUGIN_CFG_WIDGET, &cfg_widget, -1);
+
+               if (cfg_widget && cfg_widget == m->active_cfg_widget)
+                       return;
+       }
+
        g_signal_handler_block (notebook, switch_page_handler_id);
 
        if (m->active_cfg_widget && GTK_IS_NOTEBOOK (m->active_cfg_widget)) {
diff --git a/src/plugins/attachment-reminder/attachment-reminder.c 
b/src/plugins/attachment-reminder/attachment-reminder.c
index 129ee06d51..3a7e22e09c 100644
--- a/src/plugins/attachment-reminder/attachment-reminder.c
+++ b/src/plugins/attachment-reminder/attachment-reminder.c
@@ -369,7 +369,22 @@ static void
 cell_editing_canceled_cb (GtkCellRenderer *cell,
                           UIData *ui)
 {
-       gtk_button_clicked (GTK_BUTTON (ui->clue_remove));
+       GtkTreeSelection *selection;
+       GtkTreeModel *model;
+       GtkTreeIter iter;
+
+       selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (ui->treeview));
+
+       if (gtk_tree_selection_get_selected (selection, &model, &iter)) {
+               gchar *text = NULL;
+
+               gtk_tree_model_get (model, &iter, CLUE_KEYWORD_COLUMN, &text, -1);
+
+               if (!text || !*g_strstrip (text))
+                       gtk_button_clicked (GTK_BUTTON (ui->clue_remove));
+
+               g_free (text);
+       }
 }
 
 static void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]