To: vim_dev@googlegroups.com
Subject: Patch 7.3.506
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------

Patch 7.3.506
Problem:    GTK gives an error when selecting a non-existent file.
Solution:   Add a handler to avoid the error. (Christian Brabandt)
Files:	    src/gui_gtk.c


*** ../vim-7.3.505/src/gui_gtk.c	2011-06-26 04:48:56.000000000 +0200
--- src/gui_gtk.c	2012-04-25 17:08:58.000000000 +0200
***************
*** 90,95 ****
--- 90,100 ----
  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,844 ****
--- 844,851 ----
      GtkWidget		*fc;
  #endif
      char_u		dirbuf[MAXPATHL];
+     guint		log_handler;
+     const gchar		*domain = "Gtk";
  
      title = CONVERT_TO_UTF8(title);
  
***************
*** 853,858 ****
--- 860,870 ----
      /* 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,921 ****
--- 928,934 ----
      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,1884 ****
--- 1895,1908 ----
       * 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 */
+ }
+ 
*** ../vim-7.3.505/src/version.c	2012-04-25 16:50:44.000000000 +0200
--- src/version.c	2012-04-25 17:08:28.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
  {   /* Add new patch number below this line */
+ /**/
+     506,
  /**/

-- 
Compilation process failed successfully.

 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
