diff options
author | Joe Marcus Clarke <marcus@FreeBSD.org> | 2002-10-29 09:09:38 +0000 |
---|---|---|
committer | Joe Marcus Clarke <marcus@FreeBSD.org> | 2002-10-29 09:09:38 +0000 |
commit | a44e38a3d3a83f31cae24ff2e04c54018d7bec5b (patch) | |
tree | 2a7cd442613c76c671dbb04c7c0ef07e35efed80 /www/seamonkey2 | |
parent | I recommend you to upgrade to this new version (diff) |
* Add support for building the GTK 2 version of Mozilla (define WITH_GTK2
to do this). This feature will be used for the upcoming Galeon 1.3.0
port. [1]
* Allow users to disable Composer (define WITHOUT_COMPOSER to do this) [2]
Submitted by: David Magda <dmagda@magda.ca> [2]
Obtained from: Galeon 1.3.0 tarball (with some modification) [1]
Notes
Notes:
svn path=/head/; revision=69085
Diffstat (limited to 'www/seamonkey2')
-rw-r--r-- | www/seamonkey2/Makefile | 20 | ||||
-rw-r--r-- | www/seamonkey2/files/mozilla_12b_patch | 953 |
2 files changed, 971 insertions, 2 deletions
diff --git a/www/seamonkey2/Makefile b/www/seamonkey2/Makefile index 20bb805e60b1..967649fabbac 100644 --- a/www/seamonkey2/Makefile +++ b/www/seamonkey2/Makefile @@ -38,6 +38,12 @@ BROKEN= Mozilla-devel and Xft2 render the mozilla-fonts \ .endif .endif +.if defined(WITH_GTK2) +LIB_DEPENDS+= gtk-x11-2.0.0:${PORTSDIR}/x11-toolkits/gtk20 +.else +USE_GNOME= gtk12 +.endif + LATEST_LINK= mozilla-devel EXTRACT_AFTER_ARGS= | ${TAR} -xf - --exclude */CVS/* \ --exclude */macbuild/*\ @@ -49,7 +55,7 @@ USE_X_PREFIX= yes USE_PERL5= yes USE_GMAKE= yes USE_GNOMENG= yes -USE_GNOME= orbit gtk12 +USE_GNOME+= orbit USE_REINPLACE= yes GNU_CONFIGURE= yes CONFIGURE_ARGS= \ @@ -59,7 +65,6 @@ CONFIGURE_ARGS= \ --disable-cpp-rtti \ --enable-crypto \ --disable-debug \ - --enable-default-toolkit=gtk \ --enable-double-buffer \ --enable-dtd-debug \ --enable-jsd \ @@ -98,6 +103,17 @@ CONFIGURE_ARGS+= --enable-extensions=default,xmlterm .endif CONFIGURE_ENV= MOZ_INTERNAL_LIBART_LGPL=1 +.if defined(WITHOUT_COMPOSER) +CONFIGURE_ARGS+= --disable-composer +.endif + +.if defined(WITH_GTK2) +CONFIGURE_ARGS+= --enable-default-toolkit=gtk2 +EXTRA_PATCHES= ${FILESDIR}/mozilla_12b_patch +.else +CONFIGURE_ARGS+= --enable-default-toolkit=gtk +.endif + .if !defined(WITHOUT_XFT) CONFIGURE_ARGS+= --enable-xft .endif diff --git a/www/seamonkey2/files/mozilla_12b_patch b/www/seamonkey2/files/mozilla_12b_patch new file mode 100644 index 000000000000..7ab44168c025 --- /dev/null +++ b/www/seamonkey2/files/mozilla_12b_patch @@ -0,0 +1,953 @@ +Index: Makefile.in +=================================================================== +RCS file: /cvsroot/mozilla/Makefile.in,v +retrieving revision 1.197 +diff -u -r1.197 Makefile.in +--- Makefile.in 15 Oct 2002 23:34:32 -0000 1.197 ++++ Makefile.in 22 Oct 2002 17:14:59 -0000 +@@ -267,6 +267,10 @@ + tier_99_dirs += embedding/browser/gtk/tests + endif + ++ifdef MOZ_ENABLE_GTK2 ++tier_99_dirs += embedding/browser/gtk/tests ++endif ++ + endif # BUILD_MODULES == all + + STATIC_MAKEFILES := nsprpub directory/c-sdk +Index: embedding/browser/Makefile.in +=================================================================== +RCS file: /cvsroot/mozilla/embedding/browser/Makefile.in,v +retrieving revision 1.10 +diff -u -r1.10 Makefile.in +--- embedding/browser/Makefile.in 18 Dec 2001 09:10:33 -0000 1.10 ++++ embedding/browser/Makefile.in 22 Oct 2002 17:14:59 -0000 +@@ -31,6 +31,10 @@ + DIRS += gtk + endif + ++ifdef MOZ_ENABLE_GTK2 ++DIRS += gtk ++endif ++ + ifdef MOZ_ENABLE_PHOTON + DIRS += photon + endif +Index: embedding/browser/gtk/src/EmbedProgress.cpp +=================================================================== +RCS file: /cvsroot/mozilla/embedding/browser/gtk/src/EmbedProgress.cpp,v +retrieving revision 1.10 +diff -u -r1.10 EmbedProgress.cpp +--- embedding/browser/gtk/src/EmbedProgress.cpp 7 Sep 2002 17:09:12 -0000 1.10 ++++ embedding/browser/gtk/src/EmbedProgress.cpp 22 Oct 2002 17:14:59 -0000 +@@ -80,8 +80,8 @@ + } + gtk_signal_emit(GTK_OBJECT(mOwner->mOwningWidget), + moz_embed_signals[NET_STATE_ALL], +- (const char *)uriString, aStateFlags, aStatus); +- ++ (gpointer)(const char *)uriString, ++ (gint)aStateFlags, (gint)aStatus); + // and for stop, too + if ((aStateFlags & GTK_MOZ_EMBED_FLAG_IS_NETWORK) && + (aStateFlags & GTK_MOZ_EMBED_FLAG_STOP)) +Index: embedding/browser/gtk/src/EmbedWindow.cpp +=================================================================== +RCS file: /cvsroot/mozilla/embedding/browser/gtk/src/EmbedWindow.cpp,v +retrieving revision 1.26 +diff -u -r1.26 EmbedWindow.cpp +--- embedding/browser/gtk/src/EmbedWindow.cpp 7 Sep 2002 17:09:12 -0000 1.26 ++++ embedding/browser/gtk/src/EmbedWindow.cpp 22 Oct 2002 17:14:59 -0000 +@@ -226,9 +226,11 @@ + { + GtkWidget* parent = GTK_WIDGET(mOwner->mOwningWidget)->parent; + ++#ifdef MOZ_WIDGET_GTK + if (GTK_IS_CONTAINER(parent)) + gtk_container_focus(GTK_CONTAINER(parent), + GTK_DIR_TAB_FORWARD); ++#endif + return NS_OK; + } + +@@ -237,9 +239,11 @@ + { + GtkWidget* parent = GTK_WIDGET(mOwner->mOwningWidget)->parent; + ++#ifdef MOZ_WIDGET_GTK + if (GTK_IS_CONTAINER(parent)) + gtk_container_focus(GTK_CONTAINER(parent), + GTK_DIR_TAB_BACKWARD); ++#endif + return NS_OK; + } + +@@ -405,7 +409,9 @@ + 0, 0, + sTipWindow->allocation.width, sTipWindow->allocation.height); + ++#ifdef MOZ_WIDGET_GTK + gtk_widget_popup(sTipWindow, aXCoords + root_x, aYCoords + root_y); ++#endif /* MOZ_WIDGET_GTK */ + + nsMemory::Free( (void*)tipString ); + +Index: embedding/browser/gtk/src/Makefile.in +=================================================================== +RCS file: /cvsroot/mozilla/embedding/browser/gtk/src/Makefile.in,v +retrieving revision 1.36 +diff -u -r1.36 Makefile.in +--- embedding/browser/gtk/src/Makefile.in 23 Sep 2002 19:13:28 -0000 1.36 ++++ embedding/browser/gtk/src/Makefile.in 22 Oct 2002 17:14:59 -0000 +@@ -56,6 +56,11 @@ + EmbedWindowCreator.cpp \ + EmbedStream.cpp + ++ifdef MOZ_ENABLE_GTK2 ++CSRCS = \ ++ gtkmozembedmarshal.c ++endif ++ + ifdef BUILD_STATIC_LIBS + # Static build stuff + DEFINES += -D_BUILD_STATIC_BIN=1 +@@ -88,13 +93,21 @@ + gtkmozembed.h \ + gtkmozembed_internal.h + ++ifdef MOZ_ENABLE_GTK + EXTRA_DSO_LDOPTS = \ + $(MOZ_COMPONENT_LIBS) \ + $(XPCOM_GLUE_LIBS) \ + -lgtksuperwin \ + $(NULL) ++endif ++ ++ifdef MOZ_ENABLE_GTK2 ++EXTRA_DSO_LDOPTS = \ ++ $(MOZ_COMPONENT_LIBS) \ ++ $(NULL) ++endif + +-EXTRA_DSO_LDOPTS += $(MOZ_GTK_LDFLAGS) ++EXTRA_DSO_LDOPTS += $(MOZ_GTK_LDFLAGS) $(MOZ_GTK2_LIBS) + + include $(topsrcdir)/config/rules.mk + +@@ -109,7 +122,8 @@ + endif + endif + +-CXXFLAGS += $(MOZ_GTK_CFLAGS) ++CXXFLAGS += $(MOZ_GTK_CFLAGS) $(MOZ_GTK2_CFLAGS) ++CFLAGS += $(MOZ_GTK_CFLAGS) $(MOZ_GTK2_CFLAGS) + + ifdef BUILD_STATIC_LIBS + +Index: embedding/browser/gtk/src/gtkmozembed2.cpp +=================================================================== +RCS file: /cvsroot/mozilla/embedding/browser/gtk/src/gtkmozembed2.cpp,v +retrieving revision 1.23 +diff -u -r1.23 gtkmozembed2.cpp +--- embedding/browser/gtk/src/gtkmozembed2.cpp 12 Jan 2002 05:04:57 -0000 1.23 ++++ embedding/browser/gtk/src/gtkmozembed2.cpp 22 Oct 2002 17:14:59 -0000 +@@ -36,11 +36,37 @@ + #include <nsXPIDLString.h> + #include <nsReadableUtils.h> + ++#ifdef MOZ_WIDGET_GTK ++ + // so we can get callbacks from the mozarea + #include <gtkmozarea.h> + ++// so we get the right marshaler for gtk 1.2 ++#define gtkmozembed_VOID__INT_UINT \ ++ gtk_marshal_NONE__INT_INT ++#define gtkmozembed_VOID__POINTER_INT_INT \ ++ gtk_marshal_NONE__POINTER_INT_INT ++#define gtkmozembed_VOID__POINTER_INT_UINT \ ++ gtk_marshal_NONE__POINTER_INT_INT ++#define gtkmozembed_VOID__POINTER_INT_POINTER \ ++ gtk_marshal_NONE__POINTER_INT_POINTER ++ ++#endif /* MOZ_WIDGET_GTK */ ++ ++#ifdef MOZ_WIDGET_GTK2 ++ ++#define GET_OBJECT_CLASS_TYPE(x) G_OBJECT_CLASS_TYPE(x) ++ ++#include "gtkmozembedmarshal.h" ++ ++#endif /* MOZ_WIDGET_GTK2 */ ++ + class nsIDirectoryServiceProvider; + ++#ifdef MOZ_WIDGET_GTK ++ ++#define GET_OBJECT_CLASS_TYPE(x) (GTK_OBJECT_CLASS(x)->type) ++ + // Some "massaged" enum information for the GTK Type System + static GtkFlagValue gtk_moz_embed_progress_flags_values[] = { + { GTK_MOZ_EMBED_FLAG_START, +@@ -138,6 +164,7 @@ + { 0, + NULL, NULL } + }; ++#endif /* MOZ_WIDGET_GTK */ + + + // class and instance initialization +@@ -180,6 +207,7 @@ + GdkEventFocus *aGdkFocusEvent, + GtkMozEmbed *aEmbed); + ++#ifdef MOZ_WIDGET_GTK + // signal handlers for tracking the focus and and focus out events on + // the toplevel window. + +@@ -189,6 +217,7 @@ + static void + handle_toplevel_focus_out(GtkMozArea *aArea, + GtkMozEmbed *aEmbed); ++#endif /* MOZ_WIDGET_GTK */ + + // globals for this type of widget + +@@ -249,191 +278,193 @@ + moz_embed_signals[LINK_MESSAGE] = + gtk_signal_new ("link_message", + GTK_RUN_FIRST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedClass, link_message), + gtk_marshal_NONE__NONE, + GTK_TYPE_NONE, 0); + moz_embed_signals[JS_STATUS] = + gtk_signal_new ("js_status", + GTK_RUN_FIRST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedClass, js_status), + gtk_marshal_NONE__NONE, + GTK_TYPE_NONE, 0); + moz_embed_signals[LOCATION] = + gtk_signal_new ("location", + GTK_RUN_FIRST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedClass, location), + gtk_marshal_NONE__NONE, + GTK_TYPE_NONE, 0); + moz_embed_signals[TITLE] = + gtk_signal_new("title", + GTK_RUN_FIRST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedClass, title), + gtk_marshal_NONE__NONE, + GTK_TYPE_NONE, 0); + moz_embed_signals[PROGRESS] = + gtk_signal_new("progress", + GTK_RUN_FIRST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedClass, progress), + gtk_marshal_NONE__INT_INT, + GTK_TYPE_NONE, 2, GTK_TYPE_INT, GTK_TYPE_INT); + moz_embed_signals[PROGRESS_ALL] = + gtk_signal_new("progress_all", + GTK_RUN_FIRST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedClass, progress_all), +- gtk_marshal_NONE__POINTER_INT_INT, ++ gtkmozembed_VOID__POINTER_INT_INT, + GTK_TYPE_NONE, 3, GTK_TYPE_STRING, + GTK_TYPE_INT, GTK_TYPE_INT); + moz_embed_signals[NET_STATE] = + gtk_signal_new("net_state", + GTK_RUN_FIRST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedClass, net_state), +- gtk_marshal_NONE__INT_INT, ++ gtkmozembed_VOID__INT_UINT, + GTK_TYPE_NONE, 2, GTK_TYPE_INT, GTK_TYPE_UINT); + moz_embed_signals[NET_STATE_ALL] = + gtk_signal_new("net_state_all", + GTK_RUN_FIRST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedClass, net_state_all), +- gtk_marshal_NONE__POINTER_INT_INT, ++ gtkmozembed_VOID__POINTER_INT_UINT, + GTK_TYPE_NONE, 3, GTK_TYPE_STRING, + GTK_TYPE_INT, GTK_TYPE_UINT); + moz_embed_signals[NET_START] = + gtk_signal_new("net_start", + GTK_RUN_FIRST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedClass, net_start), + gtk_marshal_NONE__NONE, + GTK_TYPE_NONE, 0); + moz_embed_signals[NET_STOP] = + gtk_signal_new("net_stop", + GTK_RUN_FIRST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedClass, net_stop), + gtk_marshal_NONE__NONE, + GTK_TYPE_NONE, 0); + moz_embed_signals[NEW_WINDOW] = + gtk_signal_new("new_window", + GTK_RUN_FIRST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedClass, new_window), + gtk_marshal_NONE__POINTER_UINT, + GTK_TYPE_NONE, 2, GTK_TYPE_POINTER, GTK_TYPE_UINT); + moz_embed_signals[VISIBILITY] = + gtk_signal_new("visibility", + GTK_RUN_FIRST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedClass, visibility), + gtk_marshal_NONE__BOOL, + GTK_TYPE_NONE, 1, GTK_TYPE_BOOL); + moz_embed_signals[DESTROY_BROWSER] = + gtk_signal_new("destroy_browser", + GTK_RUN_FIRST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedClass, destroy_brsr), + gtk_marshal_NONE__NONE, + GTK_TYPE_NONE, 0); + moz_embed_signals[OPEN_URI] = + gtk_signal_new("open_uri", + GTK_RUN_LAST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedClass, open_uri), + gtk_marshal_BOOL__POINTER, + GTK_TYPE_BOOL, 1, GTK_TYPE_STRING); + moz_embed_signals[SIZE_TO] = + gtk_signal_new("size_to", + GTK_RUN_LAST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedClass, size_to), + gtk_marshal_NONE__INT_INT, + GTK_TYPE_NONE, 2, GTK_TYPE_INT, GTK_TYPE_INT); + moz_embed_signals[DOM_KEY_DOWN] = + gtk_signal_new("dom_key_down", + GTK_RUN_LAST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedClass, dom_key_down), + gtk_marshal_BOOL__POINTER, + GTK_TYPE_BOOL, 1, GTK_TYPE_POINTER); + moz_embed_signals[DOM_KEY_PRESS] = + gtk_signal_new("dom_key_press", + GTK_RUN_LAST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedClass, dom_key_press), + gtk_marshal_BOOL__POINTER, + GTK_TYPE_BOOL, 1, GTK_TYPE_POINTER); + moz_embed_signals[DOM_KEY_UP] = + gtk_signal_new("dom_key_up", + GTK_RUN_LAST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedClass, dom_key_up), + gtk_marshal_BOOL__POINTER, + GTK_TYPE_BOOL, 1, GTK_TYPE_POINTER); + moz_embed_signals[DOM_MOUSE_DOWN] = + gtk_signal_new("dom_mouse_down", + GTK_RUN_LAST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedClass, dom_mouse_down), + gtk_marshal_BOOL__POINTER, + GTK_TYPE_BOOL, 1, GTK_TYPE_POINTER); + moz_embed_signals[DOM_MOUSE_UP] = + gtk_signal_new("dom_mouse_up", + GTK_RUN_LAST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedClass, dom_mouse_up), + gtk_marshal_BOOL__POINTER, + GTK_TYPE_BOOL, 1, GTK_TYPE_POINTER); + moz_embed_signals[DOM_MOUSE_CLICK] = + gtk_signal_new("dom_mouse_click", + GTK_RUN_LAST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedClass, dom_mouse_click), + gtk_marshal_BOOL__POINTER, + GTK_TYPE_BOOL, 1, GTK_TYPE_POINTER); + moz_embed_signals[DOM_MOUSE_DBL_CLICK] = + gtk_signal_new("dom_mouse_dbl_click", + GTK_RUN_LAST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedClass, dom_mouse_dbl_click), + gtk_marshal_BOOL__POINTER, + GTK_TYPE_BOOL, 1, GTK_TYPE_POINTER); + moz_embed_signals[DOM_MOUSE_OVER] = + gtk_signal_new("dom_mouse_over", + GTK_RUN_LAST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedClass, dom_mouse_over), + gtk_marshal_BOOL__POINTER, + GTK_TYPE_BOOL, 1, GTK_TYPE_POINTER); + moz_embed_signals[DOM_MOUSE_OUT] = + gtk_signal_new("dom_mouse_out", + GTK_RUN_LAST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedClass, dom_mouse_out), + gtk_marshal_BOOL__POINTER, + GTK_TYPE_BOOL, 1, GTK_TYPE_POINTER); + moz_embed_signals[SECURITY_CHANGE] = + gtk_signal_new("security_change", + GTK_RUN_LAST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedClass, security_change), + gtk_marshal_NONE__POINTER_UINT, + GTK_TYPE_NONE, 2, GTK_TYPE_POINTER, GTK_TYPE_UINT); + moz_embed_signals[STATUS_CHANGE] = + gtk_signal_new("status_change", + GTK_RUN_LAST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedClass, status_change), +- gtk_marshal_NONE__POINTER_INT_POINTER, ++ gtkmozembed_VOID__POINTER_INT_POINTER, + GTK_TYPE_NONE, 3, + GTK_TYPE_POINTER, GTK_TYPE_INT, GTK_TYPE_POINTER); + ++#ifdef MOZ_WIDGET_GTK + gtk_object_class_add_signals(object_class, moz_embed_signals, + EMBED_LAST_SIGNAL); ++#endif /* MOZ_WIDGET_GTK */ + + } + +@@ -538,6 +569,7 @@ + embed, + GTK_OBJECT(child_widget)); + ++#ifdef MOZ_WIDGET_GTK + // connect to the toplevel focus out events for the child + GtkMozArea *mozarea = GTK_MOZAREA(child_widget); + gtk_signal_connect_while_alive(GTK_OBJECT(mozarea), +@@ -551,6 +583,7 @@ + GTK_SIGNAL_FUNC(handle_toplevel_focus_out), + embed, + GTK_OBJECT(mozarea)); ++#endif /* MOZ_WIDGET_GTK */ + } + + static void +@@ -663,6 +696,8 @@ + return FALSE; + } + ++#ifdef MOZ_WIDGET_GTK ++ + static void + handle_toplevel_focus_in (GtkMozArea *aArea, + GtkMozEmbed *aEmbed) +@@ -683,6 +718,8 @@ + embedPrivate->TopLevelFocusOut(); + } + ++#endif /* MOZ_WIDGET_GTK */ ++ + // Widget methods + + void +@@ -1011,6 +1048,8 @@ + return embedPrivate->mChromeMask; + } + ++#ifdef MOZ_WIDGET_GTK ++ + GtkType + gtk_moz_embed_progress_flags_get_type(void) + { +@@ -1059,6 +1098,8 @@ + return chrome_flags_type; + } + ++#endif /* MOZ_WIDGET_GTK */ ++ + void + gtk_moz_embed_get_nsIWebBrowser (GtkMozEmbed *embed, nsIWebBrowser **retval) + { +@@ -1183,14 +1224,16 @@ + moz_embed_single_signals[NEW_WINDOW_ORPHAN] = + gtk_signal_new("new_window_orphan", + GTK_RUN_FIRST, +- object_class->type, ++ GET_OBJECT_CLASS_TYPE(klass), + GTK_SIGNAL_OFFSET(GtkMozEmbedSingleClass, + new_window_orphan), + gtk_marshal_NONE__POINTER_UINT, + GTK_TYPE_NONE, 2, GTK_TYPE_POINTER, GTK_TYPE_UINT); + ++#ifdef MOZ_WIDGET_GTK + gtk_object_class_add_signals(object_class, moz_embed_single_signals, + SINGLE_LAST_SIGNAL); ++#endif /* MOZ_WIDGET_GTK */ + } + + static void +Index: embedding/browser/gtk/src/gtkmozembedmarshal.c +=================================================================== +RCS file: embedding/browser/gtk/src/gtkmozembedmarshal.c +diff -N embedding/browser/gtk/src/gtkmozembedmarshal.c +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ embedding/browser/gtk/src/gtkmozembedmarshal.c 22 Oct 2002 17:14:59 -0000 +@@ -0,0 +1,203 @@ ++ ++#include <glib-object.h> ++ ++ ++#ifdef G_ENABLE_DEBUG ++#define g_marshal_value_peek_boolean(v) g_value_get_boolean (v) ++#define g_marshal_value_peek_char(v) g_value_get_char (v) ++#define g_marshal_value_peek_uchar(v) g_value_get_uchar (v) ++#define g_marshal_value_peek_int(v) g_value_get_int (v) ++#define g_marshal_value_peek_uint(v) g_value_get_uint (v) ++#define g_marshal_value_peek_long(v) g_value_get_long (v) ++#define g_marshal_value_peek_ulong(v) g_value_get_ulong (v) ++#define g_marshal_value_peek_int64(v) g_value_get_int64 (v) ++#define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v) ++#define g_marshal_value_peek_enum(v) g_value_get_enum (v) ++#define g_marshal_value_peek_flags(v) g_value_get_flags (v) ++#define g_marshal_value_peek_float(v) g_value_get_float (v) ++#define g_marshal_value_peek_double(v) g_value_get_double (v) ++#define g_marshal_value_peek_string(v) (char*) g_value_get_string (v) ++#define g_marshal_value_peek_param(v) g_value_get_param (v) ++#define g_marshal_value_peek_boxed(v) g_value_get_boxed (v) ++#define g_marshal_value_peek_pointer(v) g_value_get_pointer (v) ++#define g_marshal_value_peek_object(v) g_value_get_object (v) ++#else /* !G_ENABLE_DEBUG */ ++/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API. ++ * Do not access GValues directly in your code. Instead, use the ++ * g_value_get_*() functions ++ */ ++#define g_marshal_value_peek_boolean(v) (v)->data[0].v_int ++#define g_marshal_value_peek_char(v) (v)->data[0].v_int ++#define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint ++#define g_marshal_value_peek_int(v) (v)->data[0].v_int ++#define g_marshal_value_peek_uint(v) (v)->data[0].v_uint ++#define g_marshal_value_peek_long(v) (v)->data[0].v_long ++#define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong ++#define g_marshal_value_peek_int64(v) (v)->data[0].v_int64 ++#define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64 ++#define g_marshal_value_peek_enum(v) (v)->data[0].v_int ++#define g_marshal_value_peek_flags(v) (v)->data[0].v_uint ++#define g_marshal_value_peek_float(v) (v)->data[0].v_float ++#define g_marshal_value_peek_double(v) (v)->data[0].v_double ++#define g_marshal_value_peek_string(v) (v)->data[0].v_pointer ++#define g_marshal_value_peek_param(v) (v)->data[0].v_pointer ++#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer ++#define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer ++#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer ++#endif /* !G_ENABLE_DEBUG */ ++ ++ ++/* NONE:POINTER,INT,INT (/dev/stdin:1) */ ++void ++gtkmozembed_VOID__POINTER_INT_INT (GClosure *closure, ++ GValue *return_value, ++ guint n_param_values, ++ const GValue *param_values, ++ gpointer invocation_hint, ++ gpointer marshal_data) ++{ ++ typedef void (*GMarshalFunc_VOID__POINTER_INT_INT) (gpointer data1, ++ gpointer arg_1, ++ gint arg_2, ++ gint arg_3, ++ gpointer data2); ++ register GMarshalFunc_VOID__POINTER_INT_INT callback; ++ register GCClosure *cc = (GCClosure*) closure; ++ register gpointer data1, data2; ++ ++ g_return_if_fail (n_param_values == 4); ++ ++ if (G_CCLOSURE_SWAP_DATA (closure)) ++ { ++ data1 = closure->data; ++ data2 = g_value_peek_pointer (param_values + 0); ++ } ++ else ++ { ++ data1 = g_value_peek_pointer (param_values + 0); ++ data2 = closure->data; ++ } ++ callback = (GMarshalFunc_VOID__POINTER_INT_INT) (marshal_data ? marshal_data : cc->callback); ++ ++ callback (data1, ++ g_marshal_value_peek_pointer (param_values + 1), ++ g_marshal_value_peek_int (param_values + 2), ++ g_marshal_value_peek_int (param_values + 3), ++ data2); ++} ++ ++/* NONE:INT,UINT (/dev/stdin:2) */ ++void ++gtkmozembed_VOID__INT_UINT (GClosure *closure, ++ GValue *return_value, ++ guint n_param_values, ++ const GValue *param_values, ++ gpointer invocation_hint, ++ gpointer marshal_data) ++{ ++ typedef void (*GMarshalFunc_VOID__INT_UINT) (gpointer data1, ++ gint arg_1, ++ guint arg_2, ++ gpointer data2); ++ register GMarshalFunc_VOID__INT_UINT callback; ++ register GCClosure *cc = (GCClosure*) closure; ++ register gpointer data1, data2; ++ ++ g_return_if_fail (n_param_values == 3); ++ ++ if (G_CCLOSURE_SWAP_DATA (closure)) ++ { ++ data1 = closure->data; ++ data2 = g_value_peek_pointer (param_values + 0); ++ } ++ else ++ { ++ data1 = g_value_peek_pointer (param_values + 0); ++ data2 = closure->data; ++ } ++ callback = (GMarshalFunc_VOID__INT_UINT) (marshal_data ? marshal_data : cc->callback); ++ ++ callback (data1, ++ g_marshal_value_peek_int (param_values + 1), ++ g_marshal_value_peek_uint (param_values + 2), ++ data2); ++} ++ ++/* NONE:POINTER,INT,UINT (/dev/stdin:3) */ ++void ++gtkmozembed_VOID__POINTER_INT_UINT (GClosure *closure, ++ GValue *return_value, ++ guint n_param_values, ++ const GValue *param_values, ++ gpointer invocation_hint, ++ gpointer marshal_data) ++{ ++ typedef void (*GMarshalFunc_VOID__POINTER_INT_UINT) (gpointer data1, ++ gpointer arg_1, ++ gint arg_2, ++ guint arg_3, ++ gpointer data2); ++ register GMarshalFunc_VOID__POINTER_INT_UINT callback; ++ register GCClosure *cc = (GCClosure*) closure; ++ register gpointer data1, data2; ++ ++ g_return_if_fail (n_param_values == 4); ++ ++ if (G_CCLOSURE_SWAP_DATA (closure)) ++ { ++ data1 = closure->data; ++ data2 = g_value_peek_pointer (param_values + 0); ++ } ++ else ++ { ++ data1 = g_value_peek_pointer (param_values + 0); ++ data2 = closure->data; ++ } ++ callback = (GMarshalFunc_VOID__POINTER_INT_UINT) (marshal_data ? marshal_data : cc->callback); ++ ++ callback (data1, ++ g_marshal_value_peek_pointer (param_values + 1), ++ g_marshal_value_peek_int (param_values + 2), ++ g_marshal_value_peek_uint (param_values + 3), ++ data2); ++} ++ ++/* NONE:POINTER,INT,POINTER (/dev/stdin:4) */ ++void ++gtkmozembed_VOID__POINTER_INT_POINTER (GClosure *closure, ++ GValue *return_value, ++ guint n_param_values, ++ const GValue *param_values, ++ gpointer invocation_hint, ++ gpointer marshal_data) ++{ ++ typedef void (*GMarshalFunc_VOID__POINTER_INT_POINTER) (gpointer data1, ++ gpointer arg_1, ++ gint arg_2, ++ gpointer arg_3, ++ gpointer data2); ++ register GMarshalFunc_VOID__POINTER_INT_POINTER callback; ++ register GCClosure *cc = (GCClosure*) closure; ++ register gpointer data1, data2; ++ ++ g_return_if_fail (n_param_values == 4); ++ ++ if (G_CCLOSURE_SWAP_DATA (closure)) ++ { ++ data1 = closure->data; ++ data2 = g_value_peek_pointer (param_values + 0); ++ } ++ else ++ { ++ data1 = g_value_peek_pointer (param_values + 0); ++ data2 = closure->data; ++ } ++ callback = (GMarshalFunc_VOID__POINTER_INT_POINTER) (marshal_data ? marshal_data : cc->callback); ++ ++ callback (data1, ++ g_marshal_value_peek_pointer (param_values + 1), ++ g_marshal_value_peek_int (param_values + 2), ++ g_marshal_value_peek_pointer (param_values + 3), ++ data2); ++} ++ +Index: embedding/browser/gtk/src/gtkmozembedmarshal.h +=================================================================== +RCS file: embedding/browser/gtk/src/gtkmozembedmarshal.h +diff -N embedding/browser/gtk/src/gtkmozembedmarshal.h +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ embedding/browser/gtk/src/gtkmozembedmarshal.h 22 Oct 2002 17:14:59 -0000 +@@ -0,0 +1,48 @@ ++ ++#ifndef __gtkmozembed_MARSHAL_H__ ++#define __gtkmozembed_MARSHAL_H__ ++ ++#include <glib-object.h> ++ ++G_BEGIN_DECLS ++ ++/* NONE:POINTER,INT,INT (/dev/stdin:1) */ ++extern void gtkmozembed_VOID__POINTER_INT_INT (GClosure *closure, ++ GValue *return_value, ++ guint n_param_values, ++ const GValue *param_values, ++ gpointer invocation_hint, ++ gpointer marshal_data); ++#define gtkmozembed_NONE__POINTER_INT_INT gtkmozembed_VOID__POINTER_INT_INT ++ ++/* NONE:INT,UINT (/dev/stdin:2) */ ++extern void gtkmozembed_VOID__INT_UINT (GClosure *closure, ++ GValue *return_value, ++ guint n_param_values, ++ const GValue *param_values, ++ gpointer invocation_hint, ++ gpointer marshal_data); ++#define gtkmozembed_NONE__INT_UINT gtkmozembed_VOID__INT_UINT ++ ++/* NONE:POINTER,INT,UINT (/dev/stdin:3) */ ++extern void gtkmozembed_VOID__POINTER_INT_UINT (GClosure *closure, ++ GValue *return_value, ++ guint n_param_values, ++ const GValue *param_values, ++ gpointer invocation_hint, ++ gpointer marshal_data); ++#define gtkmozembed_NONE__POINTER_INT_UINT gtkmozembed_VOID__POINTER_INT_UINT ++ ++/* NONE:POINTER,INT,POINTER (/dev/stdin:4) */ ++extern void gtkmozembed_VOID__POINTER_INT_POINTER (GClosure *closure, ++ GValue *return_value, ++ guint n_param_values, ++ const GValue *param_values, ++ gpointer invocation_hint, ++ gpointer marshal_data); ++#define gtkmozembed_NONE__POINTER_INT_POINTER gtkmozembed_VOID__POINTER_INT_POINTER ++ ++G_END_DECLS ++ ++#endif /* __gtkmozembed_MARSHAL_H__ */ ++ +Index: embedding/browser/gtk/src/types.txt +=================================================================== +RCS file: embedding/browser/gtk/src/types.txt +diff -N embedding/browser/gtk/src/types.txt +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ embedding/browser/gtk/src/types.txt 22 Oct 2002 17:14:59 -0000 +@@ -0,0 +1,4 @@ ++NONE:POINTER,INT,INT ++NONE:INT,UINT ++NONE:POINTER,INT,UINT ++NONE:POINTER,INT,POINTER +Index: embedding/browser/gtk/tests/TestGtkEmbed.cpp +=================================================================== +RCS file: /cvsroot/mozilla/embedding/browser/gtk/tests/TestGtkEmbed.cpp,v +retrieving revision 1.32 +diff -u -r1.32 TestGtkEmbed.cpp +--- embedding/browser/gtk/tests/TestGtkEmbed.cpp 24 Sep 2002 01:56:34 -0000 1.32 ++++ embedding/browser/gtk/tests/TestGtkEmbed.cpp 22 Oct 2002 17:14:59 -0000 +@@ -304,8 +304,19 @@ + FALSE, // fill + 0); // padding + // new horiz toolbar with buttons + icons ++#ifdef MOZ_WIDGET_GTK + browser->toolbar = gtk_toolbar_new(GTK_ORIENTATION_HORIZONTAL, + GTK_TOOLBAR_BOTH); ++#endif /* MOZ_WIDGET_GTK */ ++ ++#ifdef MOZ_WIDGET_GTK2 ++ browser->toolbar = gtk_toolbar_new(); ++ gtk_toolbar_set_orientation(GTK_TOOLBAR(browser->toolbar), ++ GTK_ORIENTATION_HORIZONTAL); ++ gtk_toolbar_set_style(GTK_TOOLBAR(browser->toolbar), ++ GTK_TOOLBAR_BOTH); ++#endif /* MOZ_WIDGET_GTK2 */ ++ + // add it to the hbox + gtk_box_pack_start(GTK_BOX(browser->toolbarHBox), browser->toolbar, + FALSE, // expand +Index: embedding/browser/gtk/src/gtkmozembed2.cpp +=================================================================== +RCS file: /cvsroot/mozilla/embedding/browser/gtk/src/gtkmozembed2.cpp,v +retrieving revision 1.23 +diff -u -r1.23 gtkmozembed2.cpp +--- embedding/browser/gtk/src/gtkmozembed2.cpp 12 Jan 2002 05:04:57 -0000 1.23 ++++ embedding/browser/gtk/src/gtkmozembed2.cpp 24 Oct 2002 21:39:07 -0000 +@@ -443,6 +443,8 @@ + EmbedPrivate *priv = new EmbedPrivate(); + embed->data = priv; + gtk_widget_set_name(GTK_WIDGET(embed), "gtkmozembed"); ++ ++ GTK_WIDGET_UNSET_FLAGS (GTK_WIDGET(embed), GTK_NO_WINDOW); + } + + GtkWidget * +Index: widget/src/gtk2/nsWindow.cpp +=================================================================== +RCS file: /cvsroot/mozilla/widget/src/gtk2/nsWindow.cpp,v +retrieving revision 1.38 +diff -u -r1.38 nsWindow.cpp +--- widget/src/gtk2/nsWindow.cpp 10 Aug 2002 18:21:22 -0000 1.38 ++++ widget/src/gtk2/nsWindow.cpp 26 Aug 2002 19:12:43 -0000 +@@ -145,7 +145,6 @@ + + /* initialization static functions */ + static nsresult initialize_prefs (void); +-static nsresult initialize_default_icon (void); + + // this is the last window that had a drag event happen on it. + nsWindow *nsWindow::mLastDragMotionWindow = NULL; +@@ -216,7 +215,6 @@ + + // It's OK if either of these fail, but it may not be one day. + initialize_prefs(); +- initialize_default_icon(); + } + + if (mLastDragMotionWindow == this) +@@ -1994,6 +1992,7 @@ + mIsTopLevel = PR_TRUE; + if (mWindowType == eWindowType_dialog) { + mShell = gtk_window_new(GTK_WINDOW_TOPLEVEL); ++ SetupWindowIcon(mShell); + gtk_window_set_type_hint(GTK_WINDOW(mShell), + GDK_WINDOW_TYPE_HINT_DIALOG); + gtk_window_set_transient_for(GTK_WINDOW(mShell), +@@ -2030,6 +2029,7 @@ + } + else { // must be eWindowType_toplevel + mShell = gtk_window_new(GTK_WINDOW_TOPLEVEL); ++ SetupWindowIcon(mShell); + // each toplevel window gets its own window group + mWindowGroup = gtk_window_group_new(); + // and add ourselves to the window group +@@ -3147,11 +3147,10 @@ + return NS_OK; + } + +-/* static */ + nsresult +-initialize_default_icon(void) ++nsWindow::SetupWindowIcon(GtkWidget *window) + { +- // Set up the default icon for all windows ++ // Set up the window icon + nsresult rv; + nsCOMPtr<nsIFile> chromeDir; + rv = NS_GetSpecialDirectory(NS_APP_CHROME_DIR, +@@ -3181,7 +3180,7 @@ + + GList *list = NULL; + list = g_list_append(list, defaultIcon); +- gtk_window_set_default_icon_list(list); ++ gtk_window_set_icon_list(GTK_WINDOW(window), list); + g_object_unref(G_OBJECT(defaultIcon)); + g_list_free(list); + +Index: widget/src/gtk2/nsWindow.h +=================================================================== +RCS file: /cvsroot/mozilla/widget/src/gtk2/nsWindow.h,v +retrieving revision 1.24 +diff -u -r1.24 nsWindow.h +--- widget/src/gtk2/nsWindow.h 10 Aug 2002 18:07:20 -0000 1.24 ++++ widget/src/gtk2/nsWindow.h 26 Aug 2002 19:12:45 -0000 +@@ -254,7 +254,8 @@ + private: + void GetToplevelWidget(GtkWidget **aWidget); + void *SetupPluginPort(void); +- ++ nsresult SetupWindowIcon(GtkWidget *window); ++ + GtkWidget *mShell; + MozContainer *mContainer; + MozDrawingarea *mDrawingarea; + +Index: build/unix/mozilla-gtkmozembed.pc.in +=================================================================== +RCS file: /cvsroot/mozilla/build/unix/mozilla-gtkmozembed.pc.in,v +retrieving revision 1.1 +diff -u -r1.1 mozilla-gtkmozembed.pc.in +--- build/unix/mozilla-gtkmozembed.pc.in 28 May 2002 20:20:40 -0000 1.1 ++++ build/unix/mozilla-gtkmozembed.pc.in 25 Oct 2002 09:30:19 -0000 +@@ -7,5 +7,5 @@ + Description: Mozilla Embedding Widget for Gtk+ + Version: %MOZILLA_VERSION% + Requires: mozilla-xpcom = %MOZILLA_VERSION% +-Libs: -L${libdir} -lgtkembedmoz -lgtksuperwin ++Libs: -L${libdir} -lgtkembedmoz + Cflags: -I${includedir}/gtkembedmoz +--- embedding/browser/gtk/tests/Makefile.in.orig Mon Sep 23 21:56:35 2002 ++++ embedding/browser/gtk/tests/Makefile.in Tue Oct 29 03:24:44 2002 +@@ -45,10 +45,18 @@ + CPPSRCS += TestGtkEmbedMDI.cpp + endif + ++ifdef MOZ_ENABLE_GTK + LIBS += \ + -lgtkembedmoz \ + -lgtksuperwin \ + $(NULL) ++endif ++ ++ifdef MOZ_ENABLE_GTK2 ++LIBS += \ ++ -lgtkembedmoz \ ++ $(NULL) ++endif + + include $(topsrcdir)/config/config.mk + +@@ -72,7 +80,7 @@ + + include $(topsrcdir)/config/rules.mk + +-CXXFLAGS += $(MOZ_GTK_CFLAGS) ++CXXFLAGS += $(MOZ_GTK_CFLAGS) $(MOZ_GTK2_CFLAGS) + + ifdef ENABLE_GNOME + CXXFLAGS += `gnome-config --cflags gnomeui` |