[gnote] Make non-unique title warning dialog non-modal



commit 4267bf29f68c5ecdc7eb6a72165638f91455a0b4
Author: Aurimas Černius <aurisc4 gmail com>
Date:   Wed Aug 14 22:24:19 2013 +0300

    Make non-unique title warning dialog non-modal
    
    Avoid lock-up, which sometimes happens when clicking out from title
    using mouse.
    Fixes Bug 705879.

 src/watchers.cpp |   20 +++-----------------
 src/watchers.hpp |    1 -
 2 files changed, 3 insertions(+), 18 deletions(-)
---
diff --git a/src/watchers.cpp b/src/watchers.cpp
index c3a31a8..fb67325 100644
--- a/src/watchers.cpp
+++ b/src/watchers.cpp
@@ -97,8 +97,6 @@ namespace gnote {
     // just hide on accelerator key, so we can't use delete
     // event.  This means the window will flash if closed
     // with a name clash.
-    get_window()->signal_unmap_event().connect(
-      sigc::mem_fun(*this, &NoteRenameWatcher::on_window_closed), false);
 
     // Clean up title line
     buffer->remove_all_tags (get_title_start(), get_title_end());
@@ -190,18 +188,6 @@ namespace gnote {
   }
 
 
-  bool NoteRenameWatcher::on_window_closed(GdkEventAny *)
-  {
-    if (!m_editing_title)
-      return false;
-    
-    if (!update_note_title ()) {
-      return true;
-    }
-    return false;
-  }
-
-
   std::string NoteRenameWatcher::get_unique_untitled()
   {
     int new_num = manager().get_notes().size();
@@ -255,12 +241,11 @@ namespace gnote {
                                      Gtk::BUTTONS_OK,
                                      _("Note title taken"),
                                      message);
-      m_title_taken_dialog->set_modal(true);
       m_title_taken_dialog->signal_response().connect(
         sigc::mem_fun(*this, &NoteRenameWatcher::on_dialog_response));
+      m_title_taken_dialog->present();
+      get_window()->editor()->set_editable(false);
     }
-
-    m_title_taken_dialog->present ();
   }
 
 
@@ -268,6 +253,7 @@ namespace gnote {
   {
     delete m_title_taken_dialog;
     m_title_taken_dialog = NULL;
+    get_window()->editor()->set_editable(true);
   }
 
 
diff --git a/src/watchers.hpp b/src/watchers.hpp
index 8a371c0..d96aaeb 100644
--- a/src/watchers.hpp
+++ b/src/watchers.hpp
@@ -73,7 +73,6 @@ namespace gnote {
     void on_delete_range(const Gtk::TextIter &,const Gtk::TextIter &);
     void update();
     void changed();
-    bool on_window_closed(GdkEventAny *);
     std::string get_unique_untitled();
     bool update_note_title();
     void show_name_clash_error(const std::string &);


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