diff options
author | Bram Moolenaar <bram@vim.org> | 2012-04-25 17:10:16 +0200 |
---|---|---|
committer | Bram Moolenaar <bram@vim.org> | 2012-04-25 17:10:16 +0200 |
commit | 6124eb2f4f45b7bcb6aad6bc6c8c72aa1fc41e6c (patch) | |
tree | 89f7e7e5a634510363af5c98f8c4a92369c1141a | |
parent | 38ecc5db5a51ecf4292cbf0bc7f20e103b085ec3 (diff) | |
download | vim-6124eb2f4f45b7bcb6aad6bc6c8c72aa1fc41e6c.tar.gz |
Problem: GTK gives an error when selecting a non-existent file.
Solution: Add a handler to avoid the error. (Christian Brabandt)
-rw-r--r-- | src/gui_gtk.c | 24 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/gui_gtk.c b/src/gui_gtk.c index 50079b40..eecd87b7 100644 --- a/src/gui_gtk.c +++ b/src/gui_gtk.c @@ -90,6 +90,11 @@ typedef int GtkWidget; static void entry_activate_cb(GtkWidget *widget, gpointer data); static void entry_changed_cb(GtkWidget *entry, GtkWidget *dialog); static void find_replace_cb(GtkWidget *widget, gpointer data); +static void recent_func_log_func( + const gchar *log_domain, + GLogLevelFlags log_level, + const gchar *message, + gpointer user_data); #if defined(FEAT_TOOLBAR) /* @@ -839,6 +844,8 @@ gui_mch_browse(int saving UNUSED, GtkWidget *fc; #endif char_u dirbuf[MAXPATHL]; + guint log_handler; + const gchar *domain = "Gtk"; title = CONVERT_TO_UTF8(title); @@ -853,6 +860,11 @@ gui_mch_browse(int saving UNUSED, /* If our pointer is currently hidden, then we should show it. */ gui_mch_mousehide(FALSE); + /* Hack: The GTK file dialog warns when it can't access a new file, this + * makes it shut up. http://bugzilla.gnome.org/show_bug.cgi?id=664587 */ + log_handler = g_log_set_handler(domain, G_LOG_LEVEL_WARNING, + recent_func_log_func, NULL); + #ifdef USE_FILE_CHOOSER /* We create the dialog each time, so that the button text can be "Open" * or "Save" according to the action. */ @@ -916,6 +928,7 @@ gui_mch_browse(int saving UNUSED, gtk_widget_show(gui.filedlg); gtk_main(); #endif + g_log_remove_handler(domain, log_handler); CONVERT_TO_UTF8_FREE(title); if (gui.browse_fname == NULL) @@ -1882,3 +1895,14 @@ ex_helpfind(eap) * backwards compatibility anyway. */ do_cmdline_cmd((char_u *)"emenu ToolBar.FindHelp"); } + + static void +recent_func_log_func(const gchar *log_domain UNUSED, + GLogLevelFlags log_level UNUSED, + const gchar *message UNUSED, + gpointer user_data UNUSED) +{ + /* We just want to suppress the warnings. */ + /* http://bugzilla.gnome.org/show_bug.cgi?id=664587 */ +} + diff --git a/src/version.c b/src/version.c index 7aff2544..9f36e4cc 100644 --- a/src/version.c +++ b/src/version.c @@ -715,6 +715,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 506, +/**/ 505, /**/ 504, |