[smuxi/stable] Frontend-GNOME: handle ChatTreeView.FindChatIter() returning Zero



commit 0c059ee388a35b38b84b1d919fbd8ef74cdbe59a
Author: Mirco Bauer <meebey meebey net>
Date:   Sun Jun 11 14:38:35 2017 +0800

    Frontend-GNOME: handle ChatTreeView.FindChatIter() returning Zero
    
    FindChatIter() can return Gtk.TreeIter.Zero if it couldn't find the iter for the
    passed ChatView. Instead of ignoring this situation in
    ChatTreeView.set_CurrentChatView() and continuing with Gtk-CRITICAL messages
    this is now correctly handled with a warning message logged by Smuxi.

 src/Frontend-GNOME/Views/ChatTreeView.cs |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)
---
diff --git a/src/Frontend-GNOME/Views/ChatTreeView.cs b/src/Frontend-GNOME/Views/ChatTreeView.cs
index aad567a..e51b4d3 100644
--- a/src/Frontend-GNOME/Views/ChatTreeView.cs
+++ b/src/Frontend-GNOME/Views/ChatTreeView.cs
@@ -25,6 +25,9 @@ namespace Smuxi.Frontend.Gnome
 {
     public class ChatTreeView : Gtk.TreeView
     {
+#if LOG4NET
+        private static readonly log4net.ILog f_Logger = 
log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
+#endif
         public Gtk.TreeStore TreeStore { get; private set; }
         ThemeSettings ThemeSettings { get; set; }
         int f_CurrentChatNumber;
@@ -43,6 +46,15 @@ namespace Smuxi.Frontend.Gnome
                     TreeStore.GetIterFirst(out iter);
                 } else {
                     iter = FindChatIter(value);
+                    if (Gtk.TreeIter.Zero.Equals(iter)) {
+#if LOG4NET
+                        f_Logger.ErrorFormat(
+                            "set_CurrentChatView(): FindChatIter({0}) " +
+                            "returned Gtk.TreeIter.Zero, ignoring...", value
+                        );
+#endif
+                        return;
+                    }
                 }
                 var path = TreeStore.GetPath(iter);
                 // we have to ensure we can make the new selection


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