]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/aboutdlg.cpp
Made device to logical and vv conversion methods
[wxWidgets.git] / src / gtk / aboutdlg.cpp
index 5f83dc37fd9d28ac69eb4ba1326756c0d90a93ac..d8058f0336f5bbc8ae1fb6a9164188930aee0fa9 100644 (file)
@@ -82,12 +82,18 @@ private:
 // implementation
 // ============================================================================
 
+extern "C" void
+wxGtkAboutDialogOnClose(GtkAboutDialog *about)
+{
+    gtk_widget_destroy(GTK_WIDGET(about));
+}
+
 extern "C" void
 wxGtkAboutDialogOnLink(GtkAboutDialog * WXUNUSED(about),
                        const gchar *link,
                        gpointer WXUNUSED(data))
 {
-    wxLaunchDefaultBrowser(wxGTK_CONV_BACK(link));
+    wxLaunchDefaultBrowser(wxGTK_CONV_BACK_SYS(link));
 }
 
 void wxAboutBox(const wxAboutDialogInfo& info)
@@ -144,10 +150,23 @@ void wxAboutBox(const wxAboutDialogInfo& info)
         else // no translators explicitely specified
         {
             // maybe we have translator credits in the message catalog?
-            transCredits = _("translator-credits");
+            wxString translator = _("translator-credits");
+
+            // gtk_about_dialog_set_translator_credits() is smart enough to
+            // detect if "translator-credits" is untranslated and hide the
+            // translators tab in that case, however it will still show the
+            // "credits" button, (at least GTK 2.10.6) even if there are no
+            // credits informations at all, so we still need to do the check
+            // ourselves
+            if ( translator != wxT("translator-credits") ) // untranslated!
+                transCredits = translator;
         }
 
-        gtk_about_dialog_set_translator_credits(dlg, GtkStr(transCredits));
+        if ( !transCredits.empty() )
+            gtk_about_dialog_set_translator_credits(dlg, GtkStr(transCredits));
+
+        g_signal_connect(dlg, "response",
+                            G_CALLBACK(wxGtkAboutDialogOnClose), NULL);
 
         gtk_widget_show(GTK_WIDGET(dlg));
         return;