summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Geddes <vgeddes@src.gnome.org>2007-06-14 17:44:56 +0000
committerVincent Geddes <vgeddes@src.gnome.org>2007-06-14 17:44:56 +0000
commitf764641c041626c33b97025e0b57c83f86bee308 (patch)
tree45ef037ffa43c7f798c5c3b5f9116c4dce376035
parent303d39727f99ec7371f42786616b297fd9edf496 (diff)
downloadglade-f764641c041626c33b97025e0b57c83f86bee308.tar.gz
Fix and improve URL launching on win32.
* gladeui/glade-utils.c, src/glade-project-window.c: Fix and improve URL launching on win32. svn path=/trunk/; revision=1352
-rw-r--r--ChangeLog3
-rw-r--r--gladeui/glade-utils.c38
-rw-r--r--src/glade-project-window.c20
3 files changed, 29 insertions, 32 deletions
diff --git a/ChangeLog b/ChangeLog
index c403663f..5dd8eb36 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -9,6 +9,9 @@
* gladeui/glade-app.c: Change GtkMessageType of _warning_ dialogs from
GTK_MESSAGE_INFO to GTK_MESSAGE_WARNING.
+ * gladeui/glade-utils.c, src/glade-project-window.c: Fix and improve URL
+ launching on win32.
+
2007-06-13 Juan Pablo Ugarte <juanpablougarte@gmail.com>
* gladeui/glade-widget-adaptor.c: added some extra checks in
diff --git a/gladeui/glade-utils.c b/gladeui/glade-utils.c
index 6a82d7ca..a9a80169 100644
--- a/gladeui/glade-utils.c
+++ b/gladeui/glade-utils.c
@@ -19,17 +19,8 @@
* Authors:
* Chema Celorio <chema@celorio.com>
*/
-#ifdef HAVE_CONFIG_H
+
#include <config.h>
-#endif
-
-#include <string.h>
-#include <gtk/gtktooltips.h>
-#include <gdk/gdkkeysyms.h>
-#include <gmodule.h>
-#include <glib/gi18n-lib.h>
-#include <glib/gstdio.h>
-#include <errno.h>
#include "glade.h"
#include "glade-project.h"
@@ -43,14 +34,18 @@
#include "glade-clipboard.h"
#include "glade-fixed.h"
+#include <string.h>
+#include <gtk/gtktooltips.h>
+#include <gdk/gdkkeysyms.h>
+#include <gmodule.h>
+#include <glib/gi18n-lib.h>
+#include <glib/gstdio.h>
+#include <errno.h>
+
#ifdef G_OS_WIN32
-long __stdcall
-ShellExecuteA (long hwnd,
- const char* lpOperation,
- const char* lpFile,
- const char* lpParameters,
- const char* lpDirectory,
- int nShowCmd);
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <shellapi.h>
#endif
#define GLADE_UTIL_SELECTION_NODE_SIZE 7
@@ -1681,16 +1676,15 @@ glade_util_object_is_loading (GObject *object)
}
#ifdef G_OS_WIN32
-#define SW_NORMAL 1
static gboolean
glade_util_url_show_win32 (const gchar *url)
{
- gint retval;
- /* win32 API call */
- retval = ShellExecuteA (NULL, "open", url, NULL, NULL, SW_NORMAL);
+ HINSTANCE h;
+
+ h = ShellExecuteA (NULL, "open", url, NULL, NULL, SW_SHOWNORMAL);
- if (retval <= 32)
+ if ((int)h <= 32)
return FALSE;
return TRUE;
diff --git a/src/glade-project-window.c b/src/glade-project-window.c
index 35a8e2b0..9a09de50 100644
--- a/src/glade-project-window.c
+++ b/src/glade-project-window.c
@@ -101,22 +101,22 @@ about_dialog_activate_link_func (GtkAboutDialog *dialog, const gchar *link, Glad
if (!retval)
{
- warning_dialog = gtk_message_dialog_new (GTK_WINDOW (gpw->priv->window),
- GTK_DIALOG_MODAL,
- GTK_MESSAGE_WARNING,
- GTK_BUTTONS_OK,
- _("Could not display the URL '%s'"),
- link);
+ warning_dialog = gtk_message_dialog_new (GTK_WINDOW (dialog),
+ GTK_DIALOG_MODAL,
+ GTK_MESSAGE_ERROR,
+ GTK_BUTTONS_OK,
+ _("Could not display the URL '%s'"),
+ link);
gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (warning_dialog),
- _("No suitable web browser executable could be found."));
+ _("No suitable web browser could be found."));
gtk_window_set_title (GTK_WINDOW (warning_dialog), "");
-
+
g_signal_connect_swapped (warning_dialog, "response",
G_CALLBACK (gtk_widget_destroy),
- dialog);
-
+ warning_dialog);
+
gtk_widget_show (warning_dialog);
}