Re: [PATCH] New mozilla patch for 20021024_2045

Tommi Komulainen <[email protected]>
Newsgroups gmane.comp.web.galeon.devel,gmane.comp.web.galeon.user
Message-ID <[email protected]>
On Fri, 2002-10-25 at 05:01, Shawn wrote:
> I've rolled my own gtk2mozilla_head_patch for mozilla cvs, as the old
> one does not work.

Heh, so have I, though my reason was to get blizzard's gtkmozembed patch
in use.  It shouldn't be much different from the earlier, but you never
know...  Seems to work though :)

My patch consists of patches from the following mozilla bugzilla bugs. 
Some patches needed little editing to fix the paths in them so that all
can be applied with 'patch -p0' but most of them are verbatim from
bugzilla.

Bug 121253 - need to port gtkmozembed to gtk2
Bug 144212 - [Patch] Crashes when destroying gtk2 mozembed
Bug 156093 - [patch] gtk2 mozembed fails to display tooltips with
non-ascii chars
Bug 162507 - Default icon should not be set for embedding applications
Bug 165558 - building with --disable-logging and GTK2 default widget
fails to compile


Please find attached yet another gtk2mozilla_head_patch that combines
the patches from the above bugs into one big patch for your convenience.

Though, it's easier to maintain the patches when they're separated. 
Should anyone be interested, the individual patches can be found at 
http://tko.ods.org/gtk2mozilla-patches.tar.gz .


-- 
Tommi Komulainen                                 [email protected]
GPG 1024D/68388EE6    6FD6 DD79 EB38 BF6F 3533  09C0 04A8 9871 6838 8EE6
gtk2mozilla_head_patch (text/x-patch, 33.6 KB)
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/Makefile.in
===================================================================
RCS file: /cvsroot/mozilla/embedding/browser/gtk/tests/Makefile.in,v
retrieving revision 1.22
diff -u -r1.22 Makefile.in
--- embedding/browser/gtk/tests/Makefile.in	24 Sep 2002 01:56:35 -0000	1.22
+++ embedding/browser/gtk/tests/Makefile.in	22 Oct 2002 17:14:59 -0000
@@ -72,7 +72,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`
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/tests/Makefile.in
===================================================================
RCS file: /cvsroot/mozilla/embedding/browser/gtk/tests/Makefile.in,v
retrieving revision 1.22
diff -u -p -r1.22 Makefile.in
--- embedding/browser/gtk/tests/Makefile.in	24 Sep 2002 01:56:35 -0000	1.22
+++ embedding/browser/gtk/tests/Makefile.in	24 Oct 2002 19:09:08 -0000
@@ -45,10 +45,16 @@ ifdef ENABLE_GNOME
 CPPSRCS	       += TestGtkEmbedMDI.cpp
 endif
 
+ifdef MOZ_ENABLE_GTK
 LIBS		+= \
 		-lgtkembedmoz \
 		-lgtksuperwin \
 		$(NULL)
+endif
+
+ifdef MOZ_ENABLE_GTK2
+LIBS		+= -lgtkembedmoz
+endif
 
 include $(topsrcdir)/config/config.mk
 
--- embedding/browser/gtk/src/gtkmozembed2.cpp.old	Mon May 13 00:55:00 2002
+++ embedding/browser/gtk/src/gtkmozembed2.cpp	Mon May 13 00:56:08 2002
@@ -474,6 +474,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 *
--- embedding/browser/gtk/src/EmbedWindow.cpp	Sun Jul  7 12:33:00 2002
+++ embedding/browser/gtk/src/EmbedWindow.cpp	Sun Jul  7 12:23:01 2002
@@ -345,9 +349,8 @@
 EmbedWindow::OnShowTooltip(PRInt32 aXCoords, PRInt32 aYCoords,
 			   const PRUnichar *aTipText)
 {
-  
   nsAutoString tipText ( aTipText );
-  const char* tipString = ToNewCString(tipText);
+  const char* tipString = ToNewUTF8String(tipText);
 
   if (sTipWindow)
     gtk_widget_destroy(sTipWindow);
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;

--- widget/src/gtk2/nsCommonWidget.h.orig	2002-10-11 05:13:38.000000000 +0000
+++ widget/src/gtk2/nsCommonWidget.h	2002-10-11 05:15:17.000000000 +0000
@@ -52,10 +52,14 @@
 
 extern PRLogModuleInfo *gWidgetLog;
 
-#endif /* MOZ_LOGGING */
-
 #define LOG(args) PR_LOG(gWidgetLog, 4, args)
 
+#else
+
+#define LOG(args)
+
+#endif /* MOZ_LOGGING */
+
 class nsCommonWidget : public nsBaseWidget {
 public:
     nsCommonWidget();
signature.asc (application/pgp-signature, 189 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.0 (GNU/Linux)

iD8DBQA9uOJkBKiYcWg4juYRAq95AJ9HhZLGlU4OdYX8VoZDr/bmDudWuQCdFO8v
yKD3fCqyRfrFSXtR+lo060w=
=2qEb
-----END PGP SIGNATURE-----
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.