Re: [PATCH] New mozilla patch for current mozilla

Shawn <[email protected]>
Newsgroups gmane.comp.web.galeon.devel,gmane.comp.web.galeon.user
Message-ID <[email protected]>
I almost forgot, after make / make install, you have to do a make
install manually in mozilla/embedding/browser/gtk/src to get
libgtkembedmoz.so to install.

On 10/21, Shawn said something like:
> I've rolled my own gtk2mozilla_head_patch for mozilla cvs, as the old
> one does not work.
> 
> Assuming you have freetype 2.1.0 and all the gnome2 devel stuff (install
> gnome2 snapshots off of ximian if you have trouble) this should work.
> 
> Here's a meta-psuedo patch for the INSTALL on the web site:
> 
> 1. remove all old mozillas from your system. This prevents galeon2's
> configure script from picking up old mozilla tree info from pkg-config.
> 2. install freetype 2.1.0
> 3. patch mozilla (attached)
> 4. build / install mozilla according to the INSTALL on galeon's galeon2
> site, minus the old gtk2 patch
> 5. build / install galeon2 from CVS.
> 
> --
> Shawn Leas
> [email protected]
> 
> I went to the bank and asked to borrow a cup of money.  They
> said, "What for?"  I said, "I'm going to buy some sugar."
> 						-- Stephen Wright

> 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	21 Oct 2002 20:53:14 -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
> Index: embedding/browser/gtk//src/EmbedPrivate.cpp
> ===================================================================
> RCS file: /cvsroot/mozilla/embedding/browser/gtk/src/EmbedPrivate.cpp,v
> retrieving revision 1.29
> diff -u -r1.29 EmbedPrivate.cpp
> --- embedding/browser/gtk//src/EmbedPrivate.cpp	6 Aug 2002 06:20:29 -0000	1.29
> +++ embedding/browser/gtk//src/EmbedPrivate.cpp	21 Oct 2002 20:53:14 -0000
> @@ -253,6 +253,7 @@
>  void
>  EmbedPrivate::Hide(void)
>  {
> +  return; //Should we be doing this?
>    // Get the nsIWebBrowser object for our embedded window.
>    nsCOMPtr<nsIWebBrowser> webBrowser;
>    mWindow->GetWebBrowser(getter_AddRefs(webBrowser));
> 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	21 Oct 2002 20:53:14 -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	21 Oct 2002 20:53:15 -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	21 Oct 2002 20:53:15 -0000
> @@ -36,11 +36,32 @@
>  #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
> +
> +#include "gtkmozembedmarshal.h"
> +
> +#endif /* MOZ_WIDGET_GTK2 */
> +
>  class nsIDirectoryServiceProvider;
>  
> +#ifdef MOZ_WIDGET_GTK
>  // Some "massaged" enum information for the GTK Type System
>  static GtkFlagValue gtk_moz_embed_progress_flags_values[] = {
>    { GTK_MOZ_EMBED_FLAG_START,
> @@ -138,6 +159,7 @@
>    { 0,
>      NULL, NULL }
>  };
> +#endif /* MOZ_WIDGET_GTK */
>  
>  
>  // class and instance initialization
> @@ -180,6 +202,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 +212,7 @@
>  static void
>  handle_toplevel_focus_out(GtkMozArea    *aArea,
>  			  GtkMozEmbed   *aEmbed);
> +#endif /* MOZ_WIDGET_GTK */
>  
>  // globals for this type of widget
>  
> @@ -249,191 +273,193 @@
>    moz_embed_signals[LINK_MESSAGE] = 
>      gtk_signal_new ("link_message",
>  		    GTK_RUN_FIRST,
> -		    object_class->type,
> +		    GTK_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,
> +		    GTK_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,
> +		    GTK_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,
> +		   GTK_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,
> +		   GTK_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,
> +		   GTK_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,
> +		   GTK_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,
> +		   GTK_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,
> +		   GTK_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,
> +		   GTK_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,
> +		   GTK_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,
> +		   GTK_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,
> +		   GTK_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,
> +		   GTK_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,
> +		   GTK_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,
> +		   GTK_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,
> +		   GTK_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,
> +		   GTK_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,
> +		   GTK_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,
> +		   GTK_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,
> +		   GTK_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,
> +		   GTK_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,
> +		   GTK_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,
> +		   GTK_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,
> +		   GTK_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,
> +		   GTK_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 */
>  
>  }
>  
> @@ -443,6 +469,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 *
> @@ -538,6 +566,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 +580,7 @@
>  				 GTK_SIGNAL_FUNC(handle_toplevel_focus_out),
>  				 embed,
>  				 GTK_OBJECT(mozarea));
> +#endif /* MOZ_WIDGET_GTK */
>  }
>  
>  static void
> @@ -663,6 +693,8 @@
>    return FALSE;
>  }
>  
> +#ifdef MOZ_WIDGET_GTK
> +
>  static void
>  handle_toplevel_focus_in (GtkMozArea    *aArea,
>  			  GtkMozEmbed   *aEmbed)
> @@ -683,6 +715,8 @@
>    embedPrivate->TopLevelFocusOut();
>  }
>  
> +#endif /* MOZ_WIDGET_GTK */
> +
>  // Widget methods
>  
>  void
> @@ -1011,6 +1045,8 @@
>    return embedPrivate->mChromeMask;
>  }
>  
> +#ifdef MOZ_WIDGET_GTK
> +
>  GtkType
>  gtk_moz_embed_progress_flags_get_type(void)
>  {
> @@ -1059,6 +1095,8 @@
>    return chrome_flags_type;
>  }
>  
> +#endif /* MOZ_WIDGET_GTK */
> +
>  void
>  gtk_moz_embed_get_nsIWebBrowser  (GtkMozEmbed *embed, nsIWebBrowser **retval)
>  {
> @@ -1183,14 +1221,16 @@
>    moz_embed_single_signals[NEW_WINDOW_ORPHAN] =
>      gtk_signal_new("new_window_orphan",
>  		   GTK_RUN_FIRST,
> -		   object_class->type,
> +		   GTK_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: widget/src/gtk2/nsWindow.cpp
> ===================================================================
> RCS file: /cvsroot/mozilla/widget/src/gtk2/nsWindow.cpp,v
> retrieving revision 1.46
> diff -u -r1.46 nsWindow.cpp
> --- widget/src/gtk2/nsWindow.cpp	14 Oct 2002 08:43:35 -0000	1.46
> +++ widget/src/gtk2/nsWindow.cpp	21 Oct 2002 20:53:20 -0000
> @@ -420,7 +420,8 @@
>          gtk_widget_destroy(GTK_WIDGET(mContainer));
>          mContainer = nsnull;
>      }
> -    else if (mDrawingarea) {
> +    
> +    if (mDrawingarea) {
>          g_object_unref(mDrawingarea);
>          mDrawingarea = nsnull;
>      }
> --- /dev/null	Thu Apr 11 16:25:15 2002
> +++ embedding/browser/gtk/src/gtkmozembedmarshal.txt	Sat Jun 29 01:44:04 2002
> @@ -0,0 +1,4 @@
> +NONE:INT,UINT
> +NONE:POINTER,INT,INT
> +NONE:POINTER,INT,UINT
> +NONE:POINTER,INT,POINTER
> --- /dev/null	Thu Apr 11 16:25:15 2002
> +++ embedding/browser/gtk/src/gtkmozembedmarshal.c	Sat Jun 29 01:44:02 2002
> @@ -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:INT,UINT (/dev/stdin:1) */
> +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,INT (/dev/stdin:2) */
> +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: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);
> +}
> +
> --- /dev/null	Thu Apr 11 16:25:15 2002
> +++ embedding/browser/gtk/src/gtkmozembedmarshal.h	Wed Jun 26 21:06:15 2002
> @@ -0,0 +1,48 @@
> +
> +#ifndef __gtkmozembed_MARSHAL_H__
> +#define __gtkmozembed_MARSHAL_H__
> +
> +#include	<glib-object.h>
> +
> +G_BEGIN_DECLS
> +
> +/* NONE:INT,UINT (/dev/stdin:1) */
> +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,INT (/dev/stdin:2) */
> +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: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__ */
> +
> 

--
Shawn Leas
[email protected]

I went to a general store.  They  wouldn't  let  me  buy  anything
specifically.
						-- Stephen Wright


-------------------------------------------------------
This sf.net emial is sponsored by: Influence the future 
of  Java(TM) technology. Join the Java Community 
Process(SM) (JCP(SM)) program now. 
http://ad.doubleclick.net/clk;4699841;7576298;k?http://www.sun.com/javavote
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.