[76969] trunk/dports/gnome/galeon
jeremyhu at macports.org
jeremyhu at macports.org
Tue Mar 15 13:43:17 PDT 2011
Revision: 76969
http://trac.macports.org/changeset/76969
Author: jeremyhu at macports.org
Date: 2011-03-15 13:43:17 -0700 (Tue, 15 Mar 2011)
Log Message:
-----------
galeon: Pull in additional fixes from Fedora since upstream seems dead.
Modified Paths:
--------------
trunk/dports/gnome/galeon/Portfile
trunk/dports/gnome/galeon/files/galeon
trunk/dports/gnome/galeon/files/patch-mozilla-MozRegisterComponents.cpp.diff
Added Paths:
-----------
trunk/dports/gnome/galeon/files/0001-Use-existing-network-status-icons-for-the-online-off.patch
trunk/dports/gnome/galeon/files/0001-Workaround-embed-missing-crash.patch
trunk/dports/gnome/galeon/files/0001-Workaround-tab-label-related-crashes.patch
trunk/dports/gnome/galeon/files/galeon-2.0.7-bug418439.patch
trunk/dports/gnome/galeon/files/galeon-2.0.7-dfltfont.patch
trunk/dports/gnome/galeon/files/galeon-2.0.7-dockcrash.patch
trunk/dports/gnome/galeon/files/galeon-2.0.7-fix-str-fmt.patch
trunk/dports/gnome/galeon/files/galeon-2.0.7-gtkprint.patch
trunk/dports/gnome/galeon/files/galeon-2.0.7-jsconsole.patch
trunk/dports/gnome/galeon/files/galeon-2.0.7-libX11.patch
trunk/dports/gnome/galeon/files/galeon-2.0.7-libxul-embedding.patch
trunk/dports/gnome/galeon/files/galeon-2.0.7-macports-cflags.patch
trunk/dports/gnome/galeon/files/galeon-2.0.7-moz191.patch
trunk/dports/gnome/galeon/files/galeon-2.0.7-moz192.patch
trunk/dports/gnome/galeon/files/galeon-2.0.7-nojavaconsole.patch
trunk/dports/gnome/galeon/files/galeon-2.0.7-plugins.patch
trunk/dports/gnome/galeon/files/galeon-2.0.7-spinnericon.patch
trunk/dports/gnome/galeon/files/galeon-2.0.7-warnings.patch
Removed Paths:
-------------
trunk/dports/gnome/galeon/files/patch-configure.diff
trunk/dports/gnome/galeon/files/patch-mozilla-EphyXULAppInfo.cpp.diff
trunk/dports/gnome/galeon/files/patch-mozilla-EventContext.cpp.diff
trunk/dports/gnome/galeon/files/patch-mozilla-ProgressListener.cpp.diff
trunk/dports/gnome/galeon/files/patch-mozilla-ProtocolService.cpp.diff
Modified: trunk/dports/gnome/galeon/Portfile
===================================================================
--- trunk/dports/gnome/galeon/Portfile 2011-03-15 19:25:12 UTC (rev 76968)
+++ trunk/dports/gnome/galeon/Portfile 2011-03-15 20:43:17 UTC (rev 76969)
@@ -5,7 +5,7 @@
name galeon
version 2.0.7
-revision 1
+revision 2
description A GNOME web browser.
long_description Galeon is a GNOME Web browser based on gecko (the \
mozilla rendering engine). It's fast, it has a \
@@ -29,15 +29,35 @@
port:gnome-desktop \
port:xulrunner
+# path:lib/pkgconfig/libxul.pc:xulrunner
+
supported_archs i386 ppc
-patchfiles patch-configure.diff \
- patch-mozilla-EventContext.cpp.diff \
- patch-mozilla-ProgressListener.cpp.diff \
- patch-mozilla-MozRegisterComponents.cpp.diff \
- patch-mozilla-EphyXULAppInfo.cpp.diff \
- patch-mozilla-ProtocolService.cpp.diff
+patchfiles galeon-2.0.7-plugins.patch \
+ galeon-2.0.7-gtkprint.patch \
+ galeon-2.0.7-dfltfont.patch \
+ galeon-2.0.7-warnings.patch \
+ galeon-2.0.7-moz191.patch \
+ galeon-2.0.7-jsconsole.patch \
+ galeon-2.0.7-fix-str-fmt.patch \
+ galeon-2.0.7-dockcrash.patch \
+ galeon-2.0.7-moz192.patch \
+ galeon-2.0.7-nojavaconsole.patch \
+ galeon-2.0.7-spinnericon.patch \
+ galeon-2.0.7-libX11.patch \
+ galeon-2.0.7-bug418439.patch \
+ 0001-Workaround-embed-missing-crash.patch \
+ 0001-Workaround-tab-label-related-crashes.patch \
+ 0001-Use-existing-network-status-icons-for-the-online-off.patch \
+ galeon-2.0.7-libxul-embedding.patch \
+ galeon-2.0.7-macports-cflags.patch \
+ patch-mozilla-MozRegisterComponents.cpp.diff
+patch.pre_args -p1
+
+use_autoreconf yes
+autoreconf.args -fvi
+
pre-configure {
set component_cflags "[ exec ${prefix}/bin/pkg-config --cflags libxul-embedding ]"
if { ![ file exists ${prefix}/lib/pkgconfig/mozilla-nspr.pc ] } {
Added: trunk/dports/gnome/galeon/files/0001-Use-existing-network-status-icons-for-the-online-off.patch
===================================================================
--- trunk/dports/gnome/galeon/files/0001-Use-existing-network-status-icons-for-the-online-off.patch (rev 0)
+++ trunk/dports/gnome/galeon/files/0001-Use-existing-network-status-icons-for-the-online-off.patch 2011-03-15 20:43:17 UTC (rev 76969)
@@ -0,0 +1,27 @@
+From 4fcf7ccb3988259bf6b8d80934235899041133ad Mon Sep 17 00:00:00 2001
+From: Yanko Kaneti <yaneti at declera.com>
+Date: Wed, 15 Sep 2010 19:17:45 +0300
+Subject: [PATCH] Use existing network status icons for the online/offline indicator
+
+---
+ utils/pixbuf-cache.h | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/utils/pixbuf-cache.h b/utils/pixbuf-cache.h
+index b2e5649..0d18e0b 100644
+--- a/utils/pixbuf-cache.h
++++ b/utils/pixbuf-cache.h
+@@ -45,8 +45,8 @@ void gul_pixbuf_cache_register_stocks (void);
+ #define STOCK_SPINNER_REST "gnome-spinner-rest"
+ #define STOCK_SELECT_ALL "stock_select-all"
+ #define STOCK_EDIT_BOOKMARK "stock_edit-bookmark"
+-#define STOCK_CONNECT "stock_connect"
+-#define STOCK_DISCONNECT "stock_disconnect"
++#define STOCK_CONNECT "network-idle"
++#define STOCK_DISCONNECT "network-offline"
+ #define STOCK_LOCK_BROKEN "stock_lock-broken"
+
+ G_END_DECLS
+--
+1.7.2.3
+
Added: trunk/dports/gnome/galeon/files/0001-Workaround-embed-missing-crash.patch
===================================================================
--- trunk/dports/gnome/galeon/files/0001-Workaround-embed-missing-crash.patch (rev 0)
+++ trunk/dports/gnome/galeon/files/0001-Workaround-embed-missing-crash.patch 2011-03-15 20:43:17 UTC (rev 76969)
@@ -0,0 +1,26 @@
+From 5b44e519e258e84b7aa7301f6425fb2dffa60456 Mon Sep 17 00:00:00 2001
+From: Yanko Kaneti <yaneti at declera.com>
+Date: Wed, 15 Sep 2010 18:58:23 +0300
+Subject: [PATCH] Workaround embed missing crash
+
+Its not a fix but a bandaid.
+---
+ src/galeon-window.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/src/galeon-window.c b/src/galeon-window.c
+index 57a5b74..1349446 100644
+--- a/src/galeon-window.c
++++ b/src/galeon-window.c
+@@ -2790,7 +2790,7 @@ sync_tab_location (GaleonTab *tab, GParamSpec *pspec, GaleonWindow *window)
+ "label", block_images_str, NULL);
+
+ embed = galeon_tab_get_embed (tab);
+- can_view_source = galeon_embed_can_view_source (embed);
++ can_view_source = embed ? galeon_embed_can_view_source (embed) : FALSE;
+ g_object_set(G_OBJECT(ACTION_ITEM(VIEW_SOURCE_ACTION)),
+ "sensitive", can_view_source, NULL);
+
+--
+1.7.2.3
+
Added: trunk/dports/gnome/galeon/files/0001-Workaround-tab-label-related-crashes.patch
===================================================================
--- trunk/dports/gnome/galeon/files/0001-Workaround-tab-label-related-crashes.patch (rev 0)
+++ trunk/dports/gnome/galeon/files/0001-Workaround-tab-label-related-crashes.patch 2011-03-15 20:43:17 UTC (rev 76969)
@@ -0,0 +1,27 @@
+From a620eb30751fa921f1d8d00f0511e267e998859a Mon Sep 17 00:00:00 2001
+From: Yanko Kaneti <yaneti at declera.com>
+Date: Wed, 15 Sep 2010 15:47:20 +0300
+Subject: [PATCH] Workaround tab label related crashes.
+
+Try to workaround tab label related crashes with recent xulrunners.
+Its not a fix but a bandaid.
+---
+ src/galeon-tab-menu.c | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/src/galeon-tab-menu.c b/src/galeon-tab-menu.c
+index 05d9eaa..f6640d2 100644
+--- a/src/galeon-tab-menu.c
++++ b/src/galeon-tab-menu.c
+@@ -71,6 +71,8 @@ update_title_cb (GaleonEmbed* embed, GtkAction *action)
+ {
+ GaleonTab *tab = g_object_get_data (G_OBJECT (action), "GaleonTab");
+
++ g_return_if_fail (GALEON_IS_TAB (tab));
++
+ const char *title = galeon_tab_get_title(tab);
+ gchar *title_s = gul_string_shorten(title,
+ MENU_ITEM_MAX_LENGTH);
+--
+1.7.2.3
+
Modified: trunk/dports/gnome/galeon/files/galeon
===================================================================
--- trunk/dports/gnome/galeon/files/galeon 2011-03-15 19:25:12 UTC (rev 76968)
+++ trunk/dports/gnome/galeon/files/galeon 2011-03-15 20:43:17 UTC (rev 76969)
@@ -1,23 +1,19 @@
#!/bin/sh
dist_bin=`dirname $0`
-dp_prefix=/opt/local
-dp_mozilla=mozilla-1.7.12
+dp_prefix=`dirname $dist_bin`
-MOZILLA_HOME=$dp_prefix/lib/$dp_mozilla
+if [ -d "$dp_prefix/lib/xulrunner-devel" ] ; then
+ MOZILLA_HOME="$dp_prefix/lib/xulrunner-devel"
+else
+ MOZILLA_HOME="$dp_prefix/lib/xulrunner"
+fi
if [ -z "$MOZ_PLUGIN_PATH" ]; then
- MOZ_PLUGIN_PATH=$dp_prefix/lib/$dp_mozilla/plugins
+ MOZ_PLUGIN_PATH=$dp_prefix/lib/nsplugins
export MOZ_PLUGIN_PATH
fi
-if [ -n "$LD_LIBRARY_PATH" ]; then
- LD_LIBRARY_PATH=$MOZILLA_HOME:$LD_LIBRARY_PATH
-else
- LD_LIBRARY_PATH=$MOZILLA_HOME
-fi
-export DYLD_FALLBACK_LIBRARY_PATH=$DYLD_FALLBACK_LIBRARY_PATH:$dp_prefix/lib/$dp_mozilla/
-
MOZILLA_FIVE_HOME=$MOZILLA_HOME
export MOZILLA_FIVE_HOME
Added: trunk/dports/gnome/galeon/files/galeon-2.0.7-bug418439.patch
===================================================================
--- trunk/dports/gnome/galeon/files/galeon-2.0.7-bug418439.patch (rev 0)
+++ trunk/dports/gnome/galeon/files/galeon-2.0.7-bug418439.patch 2011-03-15 20:43:17 UTC (rev 76969)
@@ -0,0 +1,20 @@
+diff --git a/mozilla/EventContext.cpp b/mozilla/EventContext.cpp
+index a2a0556..7b22394 100644
+--- a/mozilla/EventContext.cpp
++++ b/mozilla/EventContext.cpp
+@@ -492,12 +492,12 @@ nsresult EventContext::GetCSSBackground (nsIDOMNode *node, nsAString& url)
+ nsCOMPtr<nsIDOMCSSStyleDeclaration> decl;
+ rv = viewCSS->GetComputedStyle (element, NS_LITERAL_STRING(""),
+ getter_AddRefs (decl));
+- if (NS_FAILED (rv)) return rv;
++ if (NS_FAILED (rv) || !decl) return rv;
+
+ nsCOMPtr<nsIDOMCSSValue> CSSValue;
+- decl->GetPropertyCSSValue (NS_LITERAL_STRING ("background-image"),
++ rv = decl->GetPropertyCSSValue (NS_LITERAL_STRING ("background-image"),
+ getter_AddRefs (CSSValue));
+- if (!CSSValue) return NS_ERROR_FAILURE;
++ if (NS_FAILED (rv) || !CSSValue) return rv;
+
+ nsCOMPtr<nsIDOMCSSPrimitiveValue> primitiveValue =
+ do_QueryInterface (CSSValue);
Added: trunk/dports/gnome/galeon/files/galeon-2.0.7-dfltfont.patch
===================================================================
--- trunk/dports/gnome/galeon/files/galeon-2.0.7-dfltfont.patch (rev 0)
+++ trunk/dports/gnome/galeon/files/galeon-2.0.7-dfltfont.patch 2011-03-15 20:43:17 UTC (rev 76969)
@@ -0,0 +1,1293 @@
+--- galeon-2.0.7.orig/src/galeon-prefs-dialog.c 2008-07-04 18:30:50.000000000 +0200
++++ galeon-2.0.7/src/galeon-prefs-dialog.c 2008-10-07 00:42:30.000000000 +0200
+@@ -95,6 +95,8 @@
+
+ gboolean fonts_ignore_updates;
+ char *fonts_encoding;
++ GtkWidget *fonts_default_serif;
++ GtkWidget *fonts_default_sans;
+ GtkWidget *fonts_serif;
+ GtkWidget *fonts_sans;
+ GtkWidget *fonts_cursive;
+@@ -784,6 +786,23 @@
+ }
+
+ static void
++fonts_load_default (GaleonPrefsDialog *self)
++{
++ GaleonPrefsDialogPrivate *p = self->priv;
++ char gconf_key[256];
++ const gchar* value;
++
++ fonts_make_gconf_key (gconf_key, sizeof(gconf_key),
++ "default", p->fonts_encoding);
++ value = eel_gconf_get_string (gconf_key);
++ if (value && strcmp(value, "sans-serif") == 0) {
++ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(p->fonts_default_sans), TRUE);
++ } else {
++ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(p->fonts_default_serif), TRUE);
++ }
++}
++
++static void
+ fonts_update_widgets (GaleonPrefsDialog *self)
+ {
+ GaleonPrefsDialogPrivate *p = self->priv;
+@@ -793,6 +812,8 @@
+
+ p->fonts_ignore_updates = TRUE;
+
++ fonts_load_default (self);
++
+ fonts_load_font (self, "serif", p->fonts_serif);
+ fonts_load_font (self, "sans-serif", p->fonts_sans);
+ fonts_load_font (self, "cursive", p->fonts_cursive);
+@@ -865,6 +886,43 @@
+ }
+
+ static void
++on_fonts_radio_changed(GtkRadioButton *button, GaleonPrefsDialog *self)
++{
++ GaleonPrefsDialogPrivate *p = self->priv;
++ gboolean active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button));
++ const char* value;
++ char gconf_key[256];
++
++ if (p->fonts_ignore_updates) return;
++
++ if (active) {
++ const gchar* name = gtk_widget_get_name(GTK_WIDGET(button));
++ if (strcmp(name, "fonts_proportional_sans") == 0)
++ value = "sans-serif";
++ else
++ value = "serif";
++
++ fonts_make_gconf_key(gconf_key, sizeof(gconf_key),
++ "default", p->fonts_encoding);
++ eel_gconf_set_string(gconf_key, value);
++ }
++}
++
++static void
++fonts_connect_radio (GaleonPrefsDialog *self, GladeXML *gxml,
++ const char* widget_name, GtkWidget **widget)
++{
++ g_return_if_fail(GLADE_IS_XML(gxml));
++ g_return_if_fail(widget_name != NULL);
++
++ *widget = glade_xml_get_widget(gxml, widget_name);
++ g_return_if_fail(GTK_IS_RADIO_BUTTON(*widget));
++
++ g_signal_connect(G_OBJECT(*widget), "clicked",
++ G_CALLBACK(on_fonts_radio_changed), self);
++}
++
++static void
+ fonts_connect_combo (GaleonPrefsDialog *self, GladeXML *gxml,
+ const char *type,
+ const char *widget_name, GtkWidget **widget)
+@@ -1000,10 +1058,15 @@
+ "fonts_encoding_label",
+ NULL);
+
+- gul_glade_gconf_connect_radio (gxml, CONF_RENDERING_DEFAULT_FONT,
+- "fonts_proportional_serif", "0",
+- "fonts_proportional_sans", "1",
+- NULL);
++ // gul_glade_gconf_connect_radio (gxml, CONF_RENDERING_DEFAULT_FONT,
++ // "fonts_proportional_serif", "0",
++ // "fonts_proportional_sans", "1",
++ // NULL);
++
++ fonts_connect_radio (self, gxml, "fonts_proportional_serif",
++ &p->fonts_default_serif);
++ fonts_connect_radio (self, gxml, "fonts_proportional_sans",
++ &p->fonts_default_sans);
+
+ fonts_connect_combo (self, gxml, "serif", "fonts_serif",
+ &p->fonts_serif);
+--- galeon-2.0.7.orig/mozilla/mozilla-notifiers.cpp 2008-07-18 06:41:08.000000000 +0200
++++ galeon-2.0.7/mozilla/mozilla-notifiers.cpp 2008-10-07 01:08:44.000000000 +0200
+@@ -409,7 +409,16 @@
+ key,
+ (GConfClientNotifyFunc)generic_mozilla_int_notifier,
+ info);
+- font_infos = g_list_append (font_infos, info);
++ font_infos = g_list_append (font_infos, info);
++
++ /* default font notifier */
++ sprintf (key, "%s_default_%s", CONF_RENDERING_FONT, language);
++ info = g_strconcat ("font.default", ".", language, NULL);
++ add_notification_and_notify (client,
++ key,
++ (GConfClientNotifyFunc)generic_mozilla_string_notifier,
++ info);
++ font_infos = g_list_append (font_infos, info);
+ }
+ }
+
+--- galeon-2.0.7.orig/ui/prefs-dialog.glade 2008-07-04 18:30:59.000000000 +0200
++++ galeon-2.0.7/ui/prefs-dialog.glade 2008-10-07 00:59:21.000000000 +0200
+@@ -1006,96 +1091,6 @@
+ <property name="spacing">6</property>
+
+ <child>
+- <widget class="GtkHBox" id="hbox54">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">6</property>
+-
+- <child>
+- <widget class="GtkLabel" id="fonts_proportional_label">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes">Default:</property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkHBox" id="hbox11">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">12</property>
+-
+- <child>
+- <widget class="GtkRadioButton" id="fonts_proportional_serif">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="label" translatable="yes">_Serif</property>
+- <property name="use_underline">True</property>
+- <property name="relief">GTK_RELIEF_NORMAL</property>
+- <property name="focus_on_click">True</property>
+- <property name="active">False</property>
+- <property name="inconsistent">False</property>
+- <property name="draw_indicator">True</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkRadioButton" id="fonts_proportional_sans">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="label" translatable="yes">S_ans serif</property>
+- <property name="use_underline">True</property>
+- <property name="relief">GTK_RELIEF_NORMAL</property>
+- <property name="focus_on_click">True</property>
+- <property name="active">False</property>
+- <property name="inconsistent">False</property>
+- <property name="draw_indicator">True</property>
+- <property name="group">fonts_proportional_serif</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+-
+- <child>
+- <placeholder/>
+- </child>
+-
+- <child>
+ <widget class="GtkHBox" id="hbox55">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+@@ -1171,250 +1176,493 @@
+ </child>
+
+ <child>
+- <widget class="GtkTable" id="table5">
++ <widget class="GtkVBox" id="vbox58">
+ <property name="visible">True</property>
+- <property name="n_rows">8</property>
+- <property name="n_columns">5</property>
+ <property name="homogeneous">False</property>
+- <property name="row_spacing">6</property>
+- <property name="column_spacing">6</property>
++ <property name="spacing">0</property>
+
+ <child>
+- <widget class="GtkLabel" id="label19">
++ <widget class="GtkHBox" id="hbox54">
+ <property name="visible">True</property>
+- <property name="label" translatable="yes">Se_rif:</property>
+- <property name="use_underline">True</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- <property name="mnemonic_widget">fonts_serif</property>
+- </widget>
+- <packing>
+- <property name="left_attach">0</property>
+- <property name="right_attach">1</property>
+- <property name="top_attach">0</property>
+- <property name="bottom_attach">1</property>
+- <property name="x_options">fill</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
++ <property name="homogeneous">False</property>
++ <property name="spacing">6</property>
+
+- <child>
+- <widget class="GtkLabel" id="label20">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes">Sa_ns serif:</property>
+- <property name="use_underline">True</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- <property name="mnemonic_widget">fonts_sans</property>
+- </widget>
+- <packing>
+- <property name="left_attach">0</property>
+- <property name="right_attach">1</property>
+- <property name="top_attach">1</property>
+- <property name="bottom_attach">2</property>
+- <property name="x_options">fill</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
++ <child>
++ <widget class="GtkLabel" id="fonts_proportional_label">
++ <property name="visible">True</property>
++ <property name="label" translatable="yes">Default:</property>
++ <property name="use_underline">False</property>
++ <property name="use_markup">False</property>
++ <property name="justify">GTK_JUSTIFY_LEFT</property>
++ <property name="wrap">False</property>
++ <property name="selectable">False</property>
++ <property name="xalign">0</property>
++ <property name="yalign">0.5</property>
++ <property name="xpad">0</property>
++ <property name="ypad">0</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
++ </widget>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
+
+- <child>
+- <widget class="GtkLabel" id="label21">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes">_Monospace:</property>
+- <property name="use_underline">True</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- <property name="mnemonic_widget">fonts_monospace</property>
+- </widget>
+- <packing>
+- <property name="left_attach">0</property>
+- <property name="right_attach">1</property>
+- <property name="top_attach">5</property>
+- <property name="bottom_attach">6</property>
+- <property name="x_options">fill</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
++ <child>
++ <widget class="GtkHBox" id="hbox11">
++ <property name="visible">True</property>
++ <property name="homogeneous">False</property>
++ <property name="spacing">12</property>
+
+- <child>
+- <widget class="GtkLabel" id="label25">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes">Cursi_ve:</property>
+- <property name="use_underline">True</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- <property name="mnemonic_widget">fonts_cursive</property>
+- </widget>
+- <packing>
+- <property name="left_attach">0</property>
+- <property name="right_attach">1</property>
+- <property name="top_attach">2</property>
+- <property name="bottom_attach">3</property>
+- <property name="x_options">fill</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
++ <child>
++ <widget class="GtkRadioButton" id="fonts_proportional_serif">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="label" translatable="yes">_Serif</property>
++ <property name="use_underline">True</property>
++ <property name="relief">GTK_RELIEF_NORMAL</property>
++ <property name="focus_on_click">True</property>
++ <property name="active">False</property>
++ <property name="inconsistent">False</property>
++ <property name="draw_indicator">True</property>
++ </widget>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
+
+- <child>
+- <widget class="GtkLabel" id="label26">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes">_Fantasy:</property>
+- <property name="use_underline">True</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- <property name="mnemonic_widget">fonts_fantasy</property>
++ <child>
++ <widget class="GtkRadioButton" id="fonts_proportional_sans">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="label" translatable="yes">S_ans serif</property>
++ <property name="use_underline">True</property>
++ <property name="relief">GTK_RELIEF_NORMAL</property>
++ <property name="focus_on_click">True</property>
++ <property name="active">False</property>
++ <property name="inconsistent">False</property>
++ <property name="draw_indicator">True</property>
++ <property name="group">fonts_proportional_serif</property>
++ </widget>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++ </widget>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
++ </packing>
++ </child>
+ </widget>
+ <packing>
+- <property name="left_attach">0</property>
+- <property name="right_attach">1</property>
+- <property name="top_attach">3</property>
+- <property name="bottom_attach">4</property>
+- <property name="x_options">fill</property>
+- <property name="y_options"></property>
++ <property name="padding">0</property>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+- <widget class="GtkHBox" id="hbox9">
++ <widget class="GtkTable" id="table5">
+ <property name="visible">True</property>
++ <property name="n_rows">8</property>
++ <property name="n_columns">5</property>
+ <property name="homogeneous">False</property>
+- <property name="spacing">6</property>
++ <property name="row_spacing">6</property>
++ <property name="column_spacing">6</property>
++
++ <child>
++ <widget class="GtkLabel" id="label19">
++ <property name="visible">True</property>
++ <property name="label" translatable="yes">Se_rif:</property>
++ <property name="use_underline">True</property>
++ <property name="use_markup">False</property>
++ <property name="justify">GTK_JUSTIFY_LEFT</property>
++ <property name="wrap">False</property>
++ <property name="selectable">False</property>
++ <property name="xalign">0</property>
++ <property name="yalign">0.5</property>
++ <property name="xpad">0</property>
++ <property name="ypad">0</property>
++ <property name="mnemonic_widget">fonts_serif</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
++ </widget>
++ <packing>
++ <property name="left_attach">0</property>
++ <property name="right_attach">1</property>
++ <property name="top_attach">0</property>
++ <property name="bottom_attach">1</property>
++ <property name="x_options">fill</property>
++ <property name="y_options"></property>
++ </packing>
++ </child>
++
++ <child>
++ <widget class="GtkLabel" id="label20">
++ <property name="visible">True</property>
++ <property name="label" translatable="yes">Sa_ns serif:</property>
++ <property name="use_underline">True</property>
++ <property name="use_markup">False</property>
++ <property name="justify">GTK_JUSTIFY_LEFT</property>
++ <property name="wrap">False</property>
++ <property name="selectable">False</property>
++ <property name="xalign">0</property>
++ <property name="yalign">0.5</property>
++ <property name="xpad">0</property>
++ <property name="ypad">0</property>
++ <property name="mnemonic_widget">fonts_sans</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
++ </widget>
++ <packing>
++ <property name="left_attach">0</property>
++ <property name="right_attach">1</property>
++ <property name="top_attach">1</property>
++ <property name="bottom_attach">2</property>
++ <property name="x_options">fill</property>
++ <property name="y_options"></property>
++ </packing>
++ </child>
++
++ <child>
++ <widget class="GtkLabel" id="label21">
++ <property name="visible">True</property>
++ <property name="label" translatable="yes">_Monospace:</property>
++ <property name="use_underline">True</property>
++ <property name="use_markup">False</property>
++ <property name="justify">GTK_JUSTIFY_LEFT</property>
++ <property name="wrap">False</property>
++ <property name="selectable">False</property>
++ <property name="xalign">0</property>
++ <property name="yalign">0.5</property>
++ <property name="xpad">0</property>
++ <property name="ypad">0</property>
++ <property name="mnemonic_widget">fonts_monospace</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
++ </widget>
++ <packing>
++ <property name="left_attach">0</property>
++ <property name="right_attach">1</property>
++ <property name="top_attach">5</property>
++ <property name="bottom_attach">6</property>
++ <property name="x_options">fill</property>
++ <property name="y_options"></property>
++ </packing>
++ </child>
++
++ <child>
++ <widget class="GtkLabel" id="label25">
++ <property name="visible">True</property>
++ <property name="label" translatable="yes">Cursi_ve:</property>
++ <property name="use_underline">True</property>
++ <property name="use_markup">False</property>
++ <property name="justify">GTK_JUSTIFY_LEFT</property>
++ <property name="wrap">False</property>
++ <property name="selectable">False</property>
++ <property name="xalign">0</property>
++ <property name="yalign">0.5</property>
++ <property name="xpad">0</property>
++ <property name="ypad">0</property>
++ <property name="mnemonic_widget">fonts_cursive</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
++ </widget>
++ <packing>
++ <property name="left_attach">0</property>
++ <property name="right_attach">1</property>
++ <property name="top_attach">2</property>
++ <property name="bottom_attach">3</property>
++ <property name="x_options">fill</property>
++ <property name="y_options"></property>
++ </packing>
++ </child>
++
++ <child>
++ <widget class="GtkLabel" id="label26">
++ <property name="visible">True</property>
++ <property name="label" translatable="yes">_Fantasy:</property>
++ <property name="use_underline">True</property>
++ <property name="use_markup">False</property>
++ <property name="justify">GTK_JUSTIFY_LEFT</property>
++ <property name="wrap">False</property>
++ <property name="selectable">False</property>
++ <property name="xalign">0</property>
++ <property name="yalign">0.5</property>
++ <property name="xpad">0</property>
++ <property name="ypad">0</property>
++ <property name="mnemonic_widget">fonts_fantasy</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
++ </widget>
++ <packing>
++ <property name="left_attach">0</property>
++ <property name="right_attach">1</property>
++ <property name="top_attach">3</property>
++ <property name="bottom_attach">4</property>
++ <property name="x_options">fill</property>
++ <property name="y_options"></property>
++ </packing>
++ </child>
++
++ <child>
++ <widget class="GtkHBox" id="hbox9">
++ <property name="visible">True</property>
++ <property name="homogeneous">False</property>
++ <property name="spacing">6</property>
++
++ <child>
++ <widget class="GtkSpinButton" id="fonts_monospace_size">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="climb_rate">1</property>
++ <property name="digits">0</property>
++ <property name="numeric">False</property>
++ <property name="update_policy">GTK_UPDATE_ALWAYS</property>
++ <property name="snap_to_ticks">False</property>
++ <property name="wrap">False</property>
++ <property name="adjustment">16 8 72 1 10 10</property>
++ </widget>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
++ </packing>
++ </child>
++
++ <child>
++ <widget class="GtkLabel" id="label32">
++ <property name="visible">True</property>
++ <property name="label" translatable="yes">points</property>
++ <property name="use_underline">False</property>
++ <property name="use_markup">False</property>
++ <property name="justify">GTK_JUSTIFY_LEFT</property>
++ <property name="wrap">False</property>
++ <property name="selectable">False</property>
++ <property name="xalign">0.5</property>
++ <property name="yalign">0.5</property>
++ <property name="xpad">0</property>
++ <property name="ypad">0</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
++ </widget>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++ </widget>
++ <packing>
++ <property name="left_attach">4</property>
++ <property name="right_attach">5</property>
++ <property name="top_attach">5</property>
++ <property name="bottom_attach">6</property>
++ <property name="x_options">fill</property>
++ <property name="y_options">fill</property>
++ </packing>
++ </child>
++
++ <child>
++ <widget class="GtkLabel" id="label31">
++ <property name="visible">True</property>
++ <property name="label" translatable="yes">Si_ze:</property>
++ <property name="use_underline">True</property>
++ <property name="use_markup">False</property>
++ <property name="justify">GTK_JUSTIFY_LEFT</property>
++ <property name="wrap">False</property>
++ <property name="selectable">False</property>
++ <property name="xalign">0.5</property>
++ <property name="yalign">0.5</property>
++ <property name="xpad">0</property>
++ <property name="ypad">0</property>
++ <property name="mnemonic_widget">notebook</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
++ </widget>
++ <packing>
++ <property name="left_attach">3</property>
++ <property name="right_attach">4</property>
++ <property name="top_attach">5</property>
++ <property name="bottom_attach">6</property>
++ <property name="x_options">fill</property>
++ <property name="y_options"></property>
++ </packing>
++ </child>
++
++ <child>
++ <widget class="GtkHBox" id="hbox14">
++ <property name="visible">True</property>
++ <property name="homogeneous">False</property>
++ <property name="spacing">6</property>
++
++ <child>
++ <widget class="GtkSpinButton" id="fonts_minimum_size">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="climb_rate">1</property>
++ <property name="digits">0</property>
++ <property name="numeric">False</property>
++ <property name="update_policy">GTK_UPDATE_ALWAYS</property>
++ <property name="snap_to_ticks">False</property>
++ <property name="wrap">False</property>
++ <property name="adjustment">16 4 48 1 10 10</property>
++ </widget>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
++ </packing>
++ </child>
++
++ <child>
++ <widget class="GtkLabel" id="label39">
++ <property name="visible">True</property>
++ <property name="label" translatable="yes">points</property>
++ <property name="use_underline">False</property>
++ <property name="use_markup">False</property>
++ <property name="justify">GTK_JUSTIFY_LEFT</property>
++ <property name="wrap">False</property>
++ <property name="selectable">False</property>
++ <property name="xalign">0.5</property>
++ <property name="yalign">0.5</property>
++ <property name="xpad">0</property>
++ <property name="ypad">0</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
++ </widget>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++ </widget>
++ <packing>
++ <property name="left_attach">4</property>
++ <property name="right_attach">5</property>
++ <property name="top_attach">7</property>
++ <property name="bottom_attach">8</property>
++ <property name="x_options">fill</property>
++ </packing>
++ </child>
+
+ <child>
+- <widget class="GtkSpinButton" id="fonts_monospace_size">
++ <widget class="GtkLabel" id="label41">
+ <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="climb_rate">1</property>
+- <property name="digits">0</property>
+- <property name="numeric">False</property>
+- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+- <property name="snap_to_ticks">False</property>
++ <property name="label" translatable="yes"></property>
++ <property name="use_underline">False</property>
++ <property name="use_markup">False</property>
++ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+- <property name="adjustment">16 8 72 1 10 10</property>
++ <property name="selectable">False</property>
++ <property name="xalign">0</property>
++ <property name="yalign">0.5</property>
++ <property name="xpad">0</property>
++ <property name="ypad">0</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
+ </widget>
+ <packing>
+- <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
++ <property name="left_attach">0</property>
++ <property name="right_attach">2</property>
++ <property name="top_attach">4</property>
++ <property name="bottom_attach">5</property>
++ <property name="x_options">fill</property>
++ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+- <widget class="GtkLabel" id="label32">
++ <widget class="GtkLabel" id="label42">
+ <property name="visible">True</property>
+- <property name="label" translatable="yes">points</property>
++ <property name="label" translatable="yes"></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+- <property name="xalign">0.5</property>
++ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
+ </widget>
+ <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
++ <property name="left_attach">0</property>
++ <property name="right_attach">1</property>
++ <property name="top_attach">6</property>
++ <property name="bottom_attach">7</property>
++ <property name="x_options">fill</property>
++ <property name="y_options"></property>
+ </packing>
+ </child>
+- </widget>
+- <packing>
+- <property name="left_attach">4</property>
+- <property name="right_attach">5</property>
+- <property name="top_attach">5</property>
+- <property name="bottom_attach">6</property>
+- <property name="x_options">fill</property>
+- <property name="y_options">fill</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkLabel" id="label31">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes">Si_ze:</property>
+- <property name="use_underline">True</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0.5</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- <property name="mnemonic_widget">notebook</property>
+- </widget>
+- <packing>
+- <property name="left_attach">3</property>
+- <property name="right_attach">4</property>
+- <property name="top_attach">5</property>
+- <property name="bottom_attach">6</property>
+- <property name="x_options">fill</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkHBox" id="hbox14">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">6</property>
+
+ <child>
+- <widget class="GtkSpinButton" id="fonts_minimum_size">
++ <widget class="GtkLabel" id="label38">
+ <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="climb_rate">1</property>
+- <property name="digits">0</property>
+- <property name="numeric">False</property>
+- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+- <property name="snap_to_ticks">False</property>
++ <property name="label" translatable="yes">Minimum siz_e:</property>
++ <property name="use_underline">True</property>
++ <property name="use_markup">False</property>
++ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+- <property name="adjustment">16 4 48 1 10 10</property>
++ <property name="selectable">False</property>
++ <property name="xalign">1</property>
++ <property name="yalign">0.5</property>
++ <property name="xpad">0</property>
++ <property name="ypad">0</property>
++ <property name="mnemonic_widget">notebook</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
+ </widget>
+ <packing>
+- <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
++ <property name="left_attach">2</property>
++ <property name="right_attach">4</property>
++ <property name="top_attach">7</property>
++ <property name="bottom_attach">8</property>
++ <property name="x_options">fill</property>
++ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+- <widget class="GtkLabel" id="label39">
++ <widget class="GtkLabel" id="label29">
+ <property name="visible">True</property>
+- <property name="label" translatable="yes">points</property>
+- <property name="use_underline">False</property>
++ <property name="label" translatable="yes">S_ize:</property>
++ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+@@ -1423,244 +1671,166 @@
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
++ <property name="mnemonic_widget">notebook</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
+ </widget>
+ <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
++ <property name="left_attach">3</property>
++ <property name="right_attach">4</property>
++ <property name="top_attach">0</property>
++ <property name="bottom_attach">1</property>
++ <property name="x_options">fill</property>
++ <property name="y_options"></property>
+ </packing>
+ </child>
+- </widget>
+- <packing>
+- <property name="left_attach">4</property>
+- <property name="right_attach">5</property>
+- <property name="top_attach">7</property>
+- <property name="bottom_attach">8</property>
+- <property name="x_options">fill</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkLabel" id="label41">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes"></property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="left_attach">0</property>
+- <property name="right_attach">2</property>
+- <property name="top_attach">4</property>
+- <property name="bottom_attach">5</property>
+- <property name="x_options">fill</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkLabel" id="label42">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes"></property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="left_attach">0</property>
+- <property name="right_attach">1</property>
+- <property name="top_attach">6</property>
+- <property name="bottom_attach">7</property>
+- <property name="x_options">fill</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+
+- <child>
+- <widget class="GtkLabel" id="label38">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes">Minimum siz_e:</property>
+- <property name="use_underline">True</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">1</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- <property name="mnemonic_widget">notebook</property>
+- </widget>
+- <packing>
+- <property name="left_attach">2</property>
+- <property name="right_attach">4</property>
+- <property name="top_attach">7</property>
+- <property name="bottom_attach">8</property>
+- <property name="x_options">fill</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
++ <child>
++ <widget class="GtkHBox" id="hbox8">
++ <property name="visible">True</property>
++ <property name="homogeneous">False</property>
++ <property name="spacing">6</property>
+
+- <child>
+- <widget class="GtkLabel" id="label29">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes">S_ize:</property>
+- <property name="use_underline">True</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0.5</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- <property name="mnemonic_widget">notebook</property>
+- </widget>
+- <packing>
+- <property name="left_attach">3</property>
+- <property name="right_attach">4</property>
+- <property name="top_attach">0</property>
+- <property name="bottom_attach">1</property>
+- <property name="x_options">fill</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
++ <child>
++ <widget class="GtkSpinButton" id="fonts_proportional_size">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="climb_rate">1</property>
++ <property name="digits">0</property>
++ <property name="numeric">False</property>
++ <property name="update_policy">GTK_UPDATE_ALWAYS</property>
++ <property name="snap_to_ticks">False</property>
++ <property name="wrap">False</property>
++ <property name="adjustment">16 8 72 1 10 10</property>
++ </widget>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
++ </packing>
++ </child>
+
+- <child>
+- <widget class="GtkHBox" id="hbox8">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">6</property>
++ <child>
++ <widget class="GtkLabel" id="label30">
++ <property name="visible">True</property>
++ <property name="label" translatable="yes">points</property>
++ <property name="use_underline">False</property>
++ <property name="use_markup">False</property>
++ <property name="justify">GTK_JUSTIFY_LEFT</property>
++ <property name="wrap">False</property>
++ <property name="selectable">False</property>
++ <property name="xalign">0.5</property>
++ <property name="yalign">0.5</property>
++ <property name="xpad">0</property>
++ <property name="ypad">0</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
++ </widget>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++ </widget>
++ <packing>
++ <property name="left_attach">4</property>
++ <property name="right_attach">5</property>
++ <property name="top_attach">0</property>
++ <property name="bottom_attach">1</property>
++ <property name="x_options">fill</property>
++ <property name="y_options">fill</property>
++ </packing>
++ </child>
+
+ <child>
+- <widget class="GtkSpinButton" id="fonts_proportional_size">
++ <widget class="GtkComboBox" id="fonts_serif">
+ <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="climb_rate">1</property>
+- <property name="digits">0</property>
+- <property name="numeric">False</property>
+- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+- <property name="snap_to_ticks">False</property>
+- <property name="wrap">False</property>
+- <property name="adjustment">16 8 72 1 10 10</property>
++ <property name="items" translatable="yes">DYNAMIC</property>
++ <property name="add_tearoffs">False</property>
++ <property name="focus_on_click">True</property>
+ </widget>
+ <packing>
+- <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
++ <property name="left_attach">1</property>
++ <property name="right_attach">3</property>
++ <property name="top_attach">0</property>
++ <property name="bottom_attach">1</property>
++ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+- <widget class="GtkLabel" id="label30">
++ <widget class="GtkComboBox" id="fonts_sans">
+ <property name="visible">True</property>
+- <property name="label" translatable="yes">points</property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0.5</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
++ <property name="items" translatable="yes">DYNAMIC</property>
++ <property name="add_tearoffs">False</property>
++ <property name="focus_on_click">True</property>
+ </widget>
+ <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
++ <property name="left_attach">1</property>
++ <property name="right_attach">3</property>
++ <property name="top_attach">1</property>
++ <property name="bottom_attach">2</property>
++ <property name="y_options"></property>
+ </packing>
+ </child>
+- </widget>
+- <packing>
+- <property name="left_attach">4</property>
+- <property name="right_attach">5</property>
+- <property name="top_attach">0</property>
+- <property name="bottom_attach">1</property>
+- <property name="x_options">fill</property>
+- <property name="y_options">fill</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkComboBox" id="fonts_serif">
+- <property name="visible">True</property>
+- <property name="items" translatable="yes">DYNAMIC</property>
+- </widget>
+- <packing>
+- <property name="left_attach">1</property>
+- <property name="right_attach">3</property>
+- <property name="top_attach">0</property>
+- <property name="bottom_attach">1</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkComboBox" id="fonts_sans">
+- <property name="visible">True</property>
+- <property name="items" translatable="yes">DYNAMIC</property>
+- </widget>
+- <packing>
+- <property name="left_attach">1</property>
+- <property name="right_attach">3</property>
+- <property name="top_attach">1</property>
+- <property name="bottom_attach">2</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+
+- <child>
+- <widget class="GtkComboBox" id="fonts_cursive">
+- <property name="visible">True</property>
+- <property name="items" translatable="yes">DYNAMIC</property>
+- </widget>
+- <packing>
+- <property name="left_attach">1</property>
+- <property name="right_attach">3</property>
+- <property name="top_attach">2</property>
+- <property name="bottom_attach">3</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
++ <child>
++ <widget class="GtkComboBox" id="fonts_cursive">
++ <property name="visible">True</property>
++ <property name="items" translatable="yes">DYNAMIC</property>
++ <property name="add_tearoffs">False</property>
++ <property name="focus_on_click">True</property>
++ </widget>
++ <packing>
++ <property name="left_attach">1</property>
++ <property name="right_attach">3</property>
++ <property name="top_attach">2</property>
++ <property name="bottom_attach">3</property>
++ <property name="y_options"></property>
++ </packing>
++ </child>
+
+- <child>
+- <widget class="GtkComboBox" id="fonts_fantasy">
+- <property name="visible">True</property>
+- <property name="items" translatable="yes">DYNAMIC</property>
+- </widget>
+- <packing>
+- <property name="left_attach">1</property>
+- <property name="right_attach">3</property>
+- <property name="top_attach">3</property>
+- <property name="bottom_attach">4</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
++ <child>
++ <widget class="GtkComboBox" id="fonts_fantasy">
++ <property name="visible">True</property>
++ <property name="items" translatable="yes">DYNAMIC</property>
++ <property name="add_tearoffs">False</property>
++ <property name="focus_on_click">True</property>
++ </widget>
++ <packing>
++ <property name="left_attach">1</property>
++ <property name="right_attach">3</property>
++ <property name="top_attach">3</property>
++ <property name="bottom_attach">4</property>
++ <property name="y_options"></property>
++ </packing>
++ </child>
+
+- <child>
+- <widget class="GtkComboBox" id="fonts_monospace">
+- <property name="visible">True</property>
+- <property name="items" translatable="yes">DYNAMIC</property>
++ <child>
++ <widget class="GtkComboBox" id="fonts_monospace">
++ <property name="visible">True</property>
++ <property name="items" translatable="yes">DYNAMIC</property>
++ <property name="add_tearoffs">False</property>
++ <property name="focus_on_click">True</property>
++ </widget>
++ <packing>
++ <property name="left_attach">1</property>
++ <property name="right_attach">3</property>
++ <property name="top_attach">5</property>
++ <property name="bottom_attach">6</property>
++ <property name="y_options"></property>
++ </packing>
++ </child>
+ </widget>
+ <packing>
+- <property name="left_attach">1</property>
+- <property name="right_attach">3</property>
+- <property name="top_attach">5</property>
+- <property name="bottom_attach">6</property>
+- <property name="y_options"></property>
++ <property name="padding">0</property>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
Added: trunk/dports/gnome/galeon/files/galeon-2.0.7-dockcrash.patch
===================================================================
--- trunk/dports/gnome/galeon/files/galeon-2.0.7-dockcrash.patch (rev 0)
+++ trunk/dports/gnome/galeon/files/galeon-2.0.7-dockcrash.patch 2011-03-15 20:43:17 UTC (rev 76969)
@@ -0,0 +1,13 @@
+diff -ur galeon-2.0.7/libegg/dock/egg-dock-box.c galeon-2.0.7.dockcrash/libegg/dock/egg-dock-box.c
+--- galeon-2.0.7/libegg/dock/egg-dock-box.c 2008-07-04 19:30:51.000000000 +0300
++++ galeon-2.0.7.dockcrash/libegg/dock/egg-dock-box.c 2009-09-24 13:20:02.000000000 +0300
+@@ -425,9 +425,6 @@
+
+ box = GTK_BOX (EGG_DOCK_ITEM (object)->child);
+
+- if (other_data) g_print("has somesort of value\n");
+- if (G_VALUE_HOLDS(other_data, G_TYPE_FLAGS)) g_print("is a flag\n");
+-
+ /* see if we can dock the item in our box */
+ switch (EGG_DOCK_ITEM (object)->orientation) {
+ case GTK_ORIENTATION_HORIZONTAL:
Added: trunk/dports/gnome/galeon/files/galeon-2.0.7-fix-str-fmt.patch
===================================================================
--- trunk/dports/gnome/galeon/files/galeon-2.0.7-fix-str-fmt.patch (rev 0)
+++ trunk/dports/gnome/galeon/files/galeon-2.0.7-fix-str-fmt.patch 2011-03-15 20:43:17 UTC (rev 76969)
@@ -0,0 +1,58 @@
+--- ./libegg/egg-recent-model.c.str 2008-12-24 10:23:19.000000000 +0100
++++ ./libegg/egg-recent-model.c 2008-12-24 10:23:43.000000000 +0100
+@@ -735,7 +735,7 @@
+ error = NULL;
+ if (!g_markup_parse_context_parse (ctx, content, strlen (content),
+ &error)) {
+- g_warning (error->message);
++ g_warning ("%s", error->message);
+ g_error_free (error);
+ error = NULL;
+ goto out;
+--- ./mozilla/GtkNSSSecurityWarningDialogs.cpp.str 2008-12-24 10:27:16.000000000 +0100
++++ ./mozilla/GtkNSSSecurityWarningDialogs.cpp 2008-12-24 10:27:53.000000000 +0100
+@@ -255,12 +255,12 @@
+ GtkDialogFlags flags = parent ? (GtkDialogFlags)0 : GTK_DIALOG_MODAL;
+ #if GTK_CHECK_VERSION(2,6,0)
+ GtkWidget *dialog = gtk_message_dialog_new (GTK_WINDOW (parent), flags,
+- aType, aButtons, aPrimary);
++ aType, aButtons, "%s", aPrimary);
+
+ if (aSecondary)
+ {
+ gtk_message_dialog_format_secondary_markup
+- (GTK_MESSAGE_DIALOG (dialog), aSecondary);
++ (GTK_MESSAGE_DIALOG (dialog), "%s", aSecondary);
+ }
+
+ #else
+--- ./utils/gul-download.c.str 2008-12-24 10:24:19.000000000 +0100
++++ ./utils/gul-download.c 2008-12-24 10:25:00.000000000 +0100
+@@ -287,7 +287,7 @@
+
+ text = g_strdup_printf (_("Failed to execute download "
+ "command."));
+- g_warning (text);
++ g_warning ("%s", text);
+ g_free (text);
+ }
+ }
+@@ -349,7 +349,7 @@
+ "\thttp://gtm.sourceforge.net"));
+ /* dialog = gnome_error_dialog (text); */
+ /* gnome_dialog_run_and_close (GNOME_DIALOG (dialog)); */
+- g_warning(text);
++ g_warning("%s",text);
+ g_free (text);
+ }
+
+--- ./utils/gul-gui.c.str 2008-12-24 10:25:13.000000000 +0100
++++ ./utils/gul-gui.c 2008-12-24 10:25:41.000000000 +0100
+@@ -793,6 +793,7 @@
+ GTK_RESPONSE_OK,
+ NULL);
+ hig_alert_set_secondary_printf (HIG_ALERT (dialog),
++ "%s",
+ error->message);
+ g_signal_connect (G_OBJECT (dialog), "response",
+ G_CALLBACK (gtk_widget_destroy),
Added: trunk/dports/gnome/galeon/files/galeon-2.0.7-gtkprint.patch
===================================================================
--- trunk/dports/gnome/galeon/files/galeon-2.0.7-gtkprint.patch (rev 0)
+++ trunk/dports/gnome/galeon/files/galeon-2.0.7-gtkprint.patch 2011-03-15 20:43:17 UTC (rev 76969)
@@ -0,0 +1,4560 @@
+diff -urN galeon-2.0.7.orig/configure.in galeon-2.0.7/configure.in
+--- galeon-2.0.7.orig/configure.in 2008-09-27 04:15:11.000000000 +0200
++++ galeon-2.0.7/configure.in 2009-02-15 09:39:07.000000000 +0100
+@@ -28,7 +28,7 @@
+ GCONF_REQUIRED=2.3.2
+ GLIB_REQUIRED=2.4.0
+ GNOME_VFS_REQUIRED=2.0.0
+-GTK_REQUIRED=2.4.0
++GTK_REQUIRED=2.12.0
+ ORBIT_REQUIRED=2.0.0
+ SCROLLKEEPER_REQUIRED=0.1.4
+
+@@ -129,6 +129,7 @@
+
+ PKG_CHECK_MODULES(GALEON_DEPENDENCY, \
+ gtk+-2.0 >= $GTK_REQUIRED \
++ gtk+-unix-print-2.0 >= $GTK_REQUIRED \
+ libxml-2.0 >= $LIBXML_REQUIRED \
+ libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \
+ libbonoboui-2.0 >= $LIBBONOBOUI_REQUIRED \
+@@ -707,22 +708,44 @@
+ [result=no])
+ AC_MSG_RESULT([$result])
+
+-dnl Printer enumeration was changed in gecko 1.9
+-dnl https://bugzilla.mozilla.org/show_bug.cgi?id=341313
+-AC_MSG_CHECKING([for nsIPrintOptions::AvailablePrinters])
++AC_MSG_CHECKING([for nsIPrintSettings::SetOutputFormat])
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+- [[#define MOZILLA_INTERNAL_API
+- #include <nsIPrintOptions.h>]],
+- [[nsIPrintOptions *p;
+- nsISimpleEnumerator *s;
+- p->AvailablePrinters(&s);]]
++ [[#include <nsIPrintSettings.h>]],
++ [[nsIPrintSettings *ps;
++ PRInt16 out;
++ ps->SetOutputFormat(out);]]
++ )],
++ [AC_DEFINE([HAVE_NSIPRINTSETTINGS_SETOUTPUTFORMAT], [1],
++ [Define if nsIPrintSettings::SetOutputFormat exists]) result=yes],
++ [result=no])
++AC_MSG_RESULT([$result])
++
++AC_MSG_CHECKING([for nsIPrintSettings::SetPaperSize])
++AC_COMPILE_IFELSE(
++ [AC_LANG_PROGRAM(
++ [[#include <nsIPrintSettings.h>]],
++ [[nsIPrintSettings *ps;
++ PRInt16 size;
++ ps->SetPaperSize(size);]]
+ )],
+- [AC_DEFINE([HAVE_NSIPRINTOPTIONS_AVAILABLEPRINTERS], [1],
+- [Define if nsIPrintOptions::AvailablePrinters exists]) result=yes],
++ [AC_DEFINE([HAVE_NSIPRINTSETTINGS_SETPAPERSIZE], [1],
++ [Define if nsIPrintSettings::SetPaperSize exists]) result=yes],
+ [result=no])
+ AC_MSG_RESULT([$result])
+
++AC_MSG_CHECKING([for nsIPrintSettings::SetPaperName])
++AC_COMPILE_IFELSE(
++ [AC_LANG_PROGRAM(
++ [[#include <nsIPrintSettings.h>]],
++ [[nsIPrintSettings *ps;
++ PRUnichar *s;
++ ps->SetPaperName(s);]]
++ )],
++ [AC_DEFINE([HAVE_NSIPRINTSETTINGS_SETPAPERNAME], [1],
++ [Define if nsIPrintSettings::SetPaperName exists]) result=yes],
++ [result=no])
++AC_MSG_RESULT([$result])
+ dnl GetMessage -> GetMessageMoz
+ AC_MSG_CHECKING([for nsIConsoleMessage::GetMessageMoz])
+ AC_COMPILE_IFELSE(
+diff -urN galeon-2.0.7.orig/embed/galeon-embed.c galeon-2.0.7/embed/galeon-embed.c
+--- galeon-2.0.7.orig/embed/galeon-embed.c 2008-07-04 18:30:58.000000000 +0200
++++ galeon-2.0.7/embed/galeon-embed.c 2009-02-15 09:39:07.000000000 +0100
+@@ -702,11 +702,10 @@
+ }
+
+ gboolean
+-galeon_embed_print (GaleonEmbed *embed,
+- EmbedPrintInfo *info)
++galeon_embed_print (GaleonEmbed *embed)
+ {
+ GaleonEmbedClass *klass = GALEON_EMBED_GET_CLASS (embed);
+- return klass->print (embed, info);
++ return klass->print (embed);
+ }
+
+ void
+diff -urN galeon-2.0.7.orig/embed/galeon-embed.h galeon-2.0.7/embed/galeon-embed.h
+--- galeon-2.0.7.orig/embed/galeon-embed.h 2008-07-04 18:30:58.000000000 +0200
++++ galeon-2.0.7/embed/galeon-embed.h 2009-02-15 09:39:07.000000000 +0100
+@@ -353,8 +353,7 @@
+ EmbedSecurityLevel *level,
+ char **description);
+
+- gboolean (* print) (GaleonEmbed *embed,
+- EmbedPrintInfo *info);
++ gboolean (* print) (GaleonEmbed *embed);
+ void (* print_preview_close) (GaleonEmbed *embed);
+ int (* print_preview_num_pages) (GaleonEmbed *embed);
+
+@@ -513,8 +512,7 @@
+ gboolean galeon_embed_has_modified_forms (GaleonEmbed *embed);
+ /* Printing */
+
+-gboolean galeon_embed_print (GaleonEmbed *embed,
+- EmbedPrintInfo *info);
++gboolean galeon_embed_print (GaleonEmbed *embed);
+
+ void galeon_embed_print_preview_close (GaleonEmbed *embed);
+
+diff -urN galeon-2.0.7.orig/embed/galeon-embed-shell.c galeon-2.0.7/embed/galeon-embed-shell.c
+--- galeon-2.0.7.orig/embed/galeon-embed-shell.c 2008-09-03 05:27:06.000000000 +0200
++++ galeon-2.0.7/embed/galeon-embed-shell.c 2009-02-15 09:39:07.000000000 +0100
+@@ -21,8 +21,13 @@
+ #include "galeon-embed-shell.h"
+ #include "galeon-marshal.h"
+
++#include "galeon-config.h"
++
+ #include <string.h>
+
++#define PAGE_SETUP_FILENAME GALEON_DIR "/page-setup-gtk.ini"
++#define PRINT_SETTINGS_FILENAME GALEON_DIR "/print-settings.ini"
++
+ enum
+ {
+ NEW_WINDOW,
+@@ -40,6 +45,8 @@
+ GlobalHistory *global_history;
+ DownloaderView *downloader_view;
+ GaleonJSConsole *js_console;
++ GtkPageSetup *page_setup;
++ GtkPrintSettings *print_settings;
+ };
+
+ static void
+@@ -281,14 +288,6 @@
+ klass->remove_passwords (shell, passwords, type);
+ }
+
+-GList *
+-galeon_embed_shell_get_printer_info(GaleonEmbedShell *shell,
+- gint *defaultPrinter)
+-{
+- GaleonEmbedShellClass *klass = GALEON_EMBED_SHELL_GET_CLASS (shell);
+- return klass->get_printer_info (shell, defaultPrinter);
+-}
+-
+ static GlobalHistory *
+ impl_get_global_history (GaleonEmbedShell *shell)
+ {
+@@ -344,6 +343,121 @@
+ g_list_free (permissions);
+ }
+
++GtkPageSetup *
++galeon_embed_shell_get_page_setup (GaleonEmbedShell *shell)
++{
++ GaleonEmbedShellPrivate *priv;
++
++ g_return_val_if_fail (GALEON_IS_EMBED_SHELL (shell), NULL);
++ priv = shell->priv;
++
++ if (priv->page_setup == NULL)
++ {
++ GError *error = NULL;
++ char *path;
++
++ path = g_build_filename (g_get_home_dir (), PAGE_SETUP_FILENAME, NULL);
++ priv->page_setup = gtk_page_setup_new_from_file (path, &error);
++ g_free (path);
++ if (error)
++ {
++ g_error_free (error);
++ }
++
++ /* If that still didn't work, create a new, empty one */
++ if (priv->page_setup == NULL)
++ {
++ priv->page_setup = gtk_page_setup_new ();
++ }
++ }
++
++ return priv->page_setup;
++}
++
++void
++galeon_embed_shell_set_page_setup (GaleonEmbedShell *shell,
++ GtkPageSetup *page_setup)
++{
++ GaleonEmbedShellPrivate *priv;
++ char *path;
++
++ g_return_if_fail (GALEON_IS_EMBED_SHELL (shell));
++ priv = shell->priv;
++
++ if (page_setup != NULL)
++ {
++ g_object_ref (page_setup);
++ }
++ else
++ {
++ page_setup = gtk_page_setup_new ();
++ }
++
++ if (priv->page_setup != NULL)
++ {
++ g_object_unref (priv->page_setup);
++ }
++
++ priv->page_setup = page_setup;
++
++ path = g_build_filename (g_get_home_dir (), PAGE_SETUP_FILENAME, NULL);
++ gtk_page_setup_to_file (page_setup, path, NULL);
++ g_free (path);
++}
++
++GtkPrintSettings *
++galeon_embed_shell_get_print_settings (GaleonEmbedShell *shell)
++{
++ GaleonEmbedShellPrivate *priv;
++
++ g_return_val_if_fail (GALEON_IS_EMBED_SHELL (shell), NULL);
++ priv = shell->priv;
++
++ if (priv->print_settings == NULL)
++ {
++ GError *error = NULL;
++ char *path;
++
++ path = g_build_filename (g_get_home_dir (), PRINT_SETTINGS_FILENAME, NULL);
++ priv->print_settings = gtk_print_settings_new_from_file (path, &error);
++ g_free (path);
++
++ if (priv->print_settings == NULL)
++ {
++ priv->print_settings = gtk_print_settings_new ();
++ }
++ }
++
++ return priv->print_settings;
++}
++
++void
++galeon_embed_shell_set_print_settings (GaleonEmbedShell *shell,
++ GtkPrintSettings *settings)
++{
++ GaleonEmbedShellPrivate *priv;
++ char *path;
++
++ g_return_if_fail (GALEON_IS_EMBED_SHELL (shell));
++ priv = shell->priv;
++
++ if (settings != NULL)
++ {
++ g_object_ref (settings);
++ }
++
++ if (priv->print_settings != NULL)
++ {
++ g_object_unref (priv->print_settings);
++ }
++
++ priv->print_settings = settings ? settings : gtk_print_settings_new ();
++
++ path = g_build_filename (g_get_home_dir (), PRINT_SETTINGS_FILENAME, NULL);
++ gtk_print_settings_to_file (settings, path, NULL);
++ g_free (path);
++}
++
+ void
+ galeon_embed_shell_free_cookies (GaleonEmbedShell *shell,
+ GList *cookies)
+diff -urN galeon-2.0.7.orig/embed/galeon-embed-shell.h galeon-2.0.7/embed/galeon-embed-shell.h
+--- galeon-2.0.7.orig/embed/galeon-embed-shell.h 2008-09-03 05:24:28.000000000 +0200
++++ galeon-2.0.7/embed/galeon-embed-shell.h 2009-02-15 09:39:07.000000000 +0100
+@@ -27,7 +27,7 @@
+ #include "galeon-encodings.h"
+
+ #include <glib-object.h>
+-#include <glib.h>
++#include <gtk/gtk.h>
+
+ G_BEGIN_DECLS
+
+@@ -168,8 +168,7 @@
+ void (* remove_passwords) (GaleonEmbedShell *shell,
+ GList *passwords,
+ PasswordType type);
+- GList * (* get_printer_info) (GaleonEmbedShell *shell,
+- gint *defaultPrinter);
++ GtkPageSetup * (* get_page_setup) (GaleonEmbedShell *shell);
+ };
+
+ GType galeon_embed_shell_get_type (void);
+@@ -245,10 +244,13 @@
+ GList *passwords,
+ PasswordType type);
+
+-/* Printers */
+-GList * galeon_embed_shell_get_printer_info (GaleonEmbedShell *shell,
+- gint *defaultPrinter);
+-
++/* Print */
++GtkPageSetup* galeon_embed_shell_get_page_setup (GaleonEmbedShell *shell);
++void galeon_embed_shell_set_page_setup (GaleonEmbedShell *shell,
++ GtkPageSetup *page_setup);
++GtkPrintSettings* galeon_embed_shell_get_print_settings (GaleonEmbedShell *shell);
++void galeon_embed_shell_set_print_settings (GaleonEmbedShell *shell,
++ GtkPrintSettings *settings);
+
+ /* accumulator for the new_window signals */
+ gboolean _galeon_embed_new_window_signal_accumulator (GSignalInvocationHint *ihint,
+diff -urN galeon-2.0.7.orig/embed/Makefile.am galeon-2.0.7/embed/Makefile.am
+--- galeon-2.0.7.orig/embed/Makefile.am 2008-07-04 18:30:58.000000000 +0200
++++ galeon-2.0.7/embed/Makefile.am 2009-02-15 09:39:07.000000000 +0100
+@@ -45,8 +45,6 @@
+ galeon-embed-find.h \
+ galeon-encodings.h \
+ galeon-encodings.c \
+- print-dialog.c \
+- print-dialog.h \
+ galeon-embed-prefs.h \
+ galeon-embed-helper-list.c \
+ galeon-embed-helper-list.h \
+diff -urN galeon-2.0.7.orig/galeon.schemas.in galeon-2.0.7/galeon.schemas.in
+--- galeon-2.0.7.orig/galeon.schemas.in 2008-07-04 18:30:59.000000000 +0200
++++ galeon-2.0.7/galeon.schemas.in 2009-02-15 09:39:07.000000000 +0100
+@@ -856,135 +856,75 @@
+ <long>Group history by hosts.</long>
+ </locale>
+ </schema>
+- <schema>
+- <key>/schemas/apps/galeon/Print/top_margin</key>
+- <applyto>/apps/galeon/Print/top_margin</applyto>
+- <owner>galeon</owner>
+- <type>float</type>
+- <default>0.5</default>
+- <locale name="C">
+- <short>Printing top margin</short>
+- <long>Printing top margin (in inches).</long>
+- </locale>
+- </schema>
+- <schema>
+- <key>/schemas/apps/galeon/Print/bottom_margin</key>
+- <applyto>/apps/galeon/Print/bottom_margin</applyto>
+- <owner>galeon</owner>
+- <type>float</type>
+- <default>0.5</default>
+- <locale name="C">
+- <short>Printing bottom margin</short>
+- <long>Printing bottom margin (in inches).</long>
+- </locale>
+- </schema>
+- <schema>
+- <key>/schemas/apps/galeon/Print/left_margin</key>
+- <applyto>/apps/galeon/Print/left_margin</applyto>
+- <owner>galeon</owner>
+- <type>float</type>
+- <default>0.5</default>
+- <locale name="C">
+- <short>Printing left margin</short>
+- <long>Printing left margin (in inches).</long>
+- </locale>
+- </schema>
+- <schema>
+- <key>/schemas/apps/galeon/Print/right_margin</key>
+- <applyto>/apps/galeon/Print/right_margin</applyto>
+- <owner>galeon</owner>
+- <type>float</type>
+- <default>0.5</default>
++ <schema>
++ <key>/schemas/apps/galeon/Print/print_page_title</key>
++ <applyto>/apps/galeon/Print/print_page_title</applyto>
++ <owner>epiphany</owner>
++ <type>bool</type>
++ <default>true</default>
+ <locale name="C">
+- <short>Printing right margin</short>
+- <long>Printing right margin (in inches).</long>
++ <short>Whether to print the page title in the header</short>
+ </locale>
+ </schema>
+ <schema>
+- <key>/schemas/apps/galeon/Print/page_title_toggle</key>
+- <applyto>/apps/galeon/Print/page_title_toggle</applyto>
+- <owner>galeon</owner>
++ <key>/schemas/apps/galeon/Print/print_page_url</key>
++ <applyto>/apps/galeon/Print/print_page_url</applyto>
++ <owner>epiphany</owner>
+ <type>bool</type>
+ <default>true</default>
+ <locale name="C">
+- <short>Whether to print the page title in the header.</short>
+- <long>Whether to print the page title in the header.</long>
++ <short>Whether to print the page address in the header</short>
+ </locale>
+ </schema>
+ <schema>
+- <key>/schemas/apps/galeon/Print/page_url_toggle</key>
+- <applyto>/apps/galeon/Print/page_url_toggle</applyto>
+- <owner>galeon</owner>
++ <key>/schemas/apps/galeon/Print/print_date</key>
++ <applyto>/apps/galeon/Print/print_date</applyto>
++ <owner>epiphany</owner>
+ <type>bool</type>
+ <default>true</default>
+ <locale name="C">
+- <short>Whether to print the page URL in the header</short>
+- <long>Whether to print the page URL in the header</long>
++ <short>Whether to print the date in the footer</short>
+ </locale>
+ </schema>
+ <schema>
+- <key>/schemas/apps/galeon/Print/date_toggle</key>
+- <applyto>/apps/galeon/Print/date_toggle</applyto>
+- <owner>galeon</owner>
++ <key>/schemas/apps/galeon/Print/print_background_colors</key>
++ <applyto>/apps/galeon/Print/print_background_colors</applyto>
++ <owner>epiphany</owner>
+ <type>bool</type>
+- <default>true</default>
++ <default>false</default>
+ <locale name="C">
+- <short>Whether to print the date in the footer.</short>
+- <long>Whether to print the date in the footer.</long>
++ <short>Whether to print the background color</short>
+ </locale>
+ </schema>
+- <schema>
+- <key>/schemas/apps/galeon/Print/page_numbers_toggle</key>
+- <applyto>/apps/galeon/Print/page_numbers_toggle</applyto>
+- <owner>galeon</owner>
++ <schema>
++ <key>/schemas/apps/galeon/Print/print_background_images</key>
++ <applyto>/apps/galeon/Print/print_background_images</applyto>
++ <owner>epiphany</owner>
+ <type>bool</type>
+ <default>true</default>
+ <locale name="C">
+- <short>Whether to print the page numbers (x of total) in the footer.</short>
+- <long>Whether to print the page numbers (x of total) in the footer.</long>
++ <short>Whether to print the background images</short>
+ </locale>
+ </schema>
+ <schema>
+- <key>/schemas/apps/galeon/Print/printer</key>
+- <applyto>/apps/galeon/Print/printer</applyto>
+- <owner>galeon</owner>
+- <type>string</type>
+- <default>lpr</default>
++ <key>/schemas/apps/galeon/Print/print_page_numbers</key>
++ <applyto>/apps/galeon/Print/print_page_numbers</applyto>
++ <owner>epiphany</owner>
++ <type>bool</type>
++ <default>true</default>
+ <locale name="C">
+- <short>Printer name</short>
+- <long>Printer name.</long>
++ <short>Whether to print the page numbers (x of total) in the footer</short>
+ </locale>
+ </schema>
+ <schema>
+- <key>/schemas/apps/galeon/Print/file</key>
+- <applyto>/apps/galeon/Print/file</applyto>
+- <owner>galeon</owner>
++ <key>/schemas/apps/galeon/Print/print_frames</key>
++ <applyto>/apps/galeon/Print/print_frames</applyto>
++ <owner>epiphany</owner>
+ <type>string</type>
++ <default>normal</default>
+ <locale name="C">
+- <short>Filename to print to</short>
+- <long>Filename to print to.</long>
+- </locale>
+- </schema>
+- <schema>
+- <key>/schemas/apps/galeon/Print/printon</key>
+- <applyto>/apps/galeon/Print/printon</applyto>
+- <owner>galeon</owner>
+- <type>int</type>
+- <default>0</default>
+- <locale name="C">
+- <short>Print range</short>
+- <long>Print range: 0 (all pages), 1 (specific range).</long>
+- </locale>
+- </schema>
+- <schema>
+- <key>/schemas/apps/galeon/Print/paper</key>
+- <applyto>/apps/galeon/Print/paper</applyto>
+- <owner>galeon</owner>
+- <type>int</type>
+- <default>0</default>
+- <locale name="C">
+- <short>Paper type</short>
+- <long>Paper type: 0 (Letter), 1 (Legal), 2 (Executive), 3 (A4).</long>
++ <short>How to print frames</short>
++ <long>How to print pages containing frames. Allowed values are "normal", "separately" and "selected".</long>
+ </locale>
+ </schema>
+ <schema>
+diff -urN galeon-2.0.7.orig/mozilla/GaleonUtils.cpp galeon-2.0.7/mozilla/GaleonUtils.cpp
+--- galeon-2.0.7.orig/mozilla/GaleonUtils.cpp 2008-07-04 18:30:58.000000000 +0200
++++ galeon-2.0.7/mozilla/GaleonUtils.cpp 2009-02-15 09:39:07.000000000 +0100
+@@ -224,96 +224,3 @@
+
+ return NS_OK;
+ }
+-
+-nsresult
+-GaleonUtils::EmbedPrintInfoToPrintSettings(const EmbedPrintInfo *info,
+- nsIPrintSettings **aPrintSettings)
+-{
+- nsresult rv = NS_OK;
+-
+- nsCOMPtr<nsIPrintSettingsService> pss =
+- do_GetService("@mozilla.org/gfx/printsettings-service;1", &rv);
+- NS_ENSURE_SUCCESS(rv, rv);
+-
+- nsCOMPtr<nsIPrintSettings> options;
+- rv = pss->GetNewPrintSettings(getter_AddRefs(options));
+- NS_ENSURE_SUCCESS(rv, rv);
+-
+- GulString printerName (info->name);
+- rv = pss->InitPrintSettingsFromPrinter (printerName.get(), options);
+- NS_ENSURE_SUCCESS(rv, rv);
+-
+- // Name field isn't inited. How dumb can we get?
+- rv = options->SetPrinterName (printerName.get());
+- NS_ENSURE_SUCCESS(rv, rv);
+-
+- const static int frame_types[] = {
+- nsIPrintSettings::kFramesAsIs,
+- nsIPrintSettings::kSelectedFrame,
+- nsIPrintSettings::kEachFrameSep
+- };
+-
+- switch (info->pages)
+- {
+- case 0:
+- break;
+- case 1:
+- options->SetPrintRange (nsIPrintSettings::kRangeSpecifiedPageRange);
+- options->SetStartPageRange (info->from_page);
+- options->SetEndPageRange (info->to_page);
+- break;
+- case 2:
+- options->SetPrintRange (nsIPrintSettings::kRangeSelection);
+- break;
+- }
+-
+- options->SetMarginTop (info->top_margin);
+- options->SetMarginBottom (info->bottom_margin);
+- options->SetMarginLeft (info->left_margin);
+- options->SetMarginRight (info->right_margin);
+-
+- options->SetHeaderStrLeft(GulString(info->header_left_string).get());
+-
+- options->SetHeaderStrCenter(GulString(info->header_center_string).get());
+-
+- options->SetHeaderStrRight(GulString(info->header_right_string).get());
+-
+- options->SetFooterStrLeft(GulString(info->footer_left_string).get());
+-
+- options->SetFooterStrCenter(GulString(info->footer_center_string).get());
+-
+- options->SetFooterStrRight(GulString(info->footer_right_string).get());
+-
+- options->SetToFileName (GulString(info->file).get());
+-
+- options->SetPrintCommand (GulString(info->command).get());
+-
+- /**
+- * Work around a mozilla bug where paper size & orientation are ignored
+- * and the specified file is created (containing invalid postscript)
+- * in print preview mode if we set "print to file" to true.
+- * See epiphany bug #119818.
+- */
+- if (info->preview)
+- {
+- options->SetPrintToFile (PR_FALSE);
+- }
+- else
+- {
+- options->SetPrintToFile (info->print_to_file);
+- }
+-
+- /* native paper size formats. Our dialog does not support custom yet */
+- options->SetPaperSizeType (nsIPrintSettings::kPaperSizeNativeData);
+-
+- gchar *paperName = (gchar *)g_ptr_array_index(info->paper_array, info->paper);
+- options->SetPaperName (GulString (paperName).get());
+-
+- options->SetPrintInColor (info->print_color);
+- options->SetOrientation (info->orientation);
+- options->SetPrintFrameType (frame_types[info->frame_type]);
+-
+- NS_ADDREF(*aPrintSettings = options);
+-
+- return NS_OK;
+-}
+diff -urN galeon-2.0.7.orig/mozilla/GaleonWrapper.cpp galeon-2.0.7/mozilla/GaleonWrapper.cpp
+--- galeon-2.0.7.orig/mozilla/GaleonWrapper.cpp 2008-09-05 04:31:01.000000000 +0200
++++ galeon-2.0.7/mozilla/GaleonWrapper.cpp 2009-02-15 09:39:07.000000000 +0100
+@@ -20,8 +20,11 @@
+ #include "config.h"
+ #endif
+
++struct JSContext;
++
+ #include <nscore.h>
+ #include <nsServiceManagerUtils.h>
++#include <nsIJSContextStack.h>
+
+ #include "galeon-embed.h"
+ #include "galeon-debug.h"
+@@ -92,6 +95,8 @@
+ #include <nsICacheService.h>
+ #include <nsICacheSession.h>
+ #include <nsIDOMLocation.h>
++#include <nsIPrintSettings.h>
++#include <nsIPrintSettingsService.h>
+ #include <nsTime.h>
+ #include <nsITransportSecurityInfo.h>
+ #include <nsIConsoleService.h>
+@@ -224,26 +229,31 @@
+ return ourDocShell->GetContentViewer(aViewer);
+ }
+
+-nsresult GaleonWrapper::Print (nsIPrintSettings *options, PRBool preview, GtkWindow *parent)
++nsresult GaleonWrapper::Print ()
+ {
+- nsresult rv;
+-
+- g_return_val_if_fail (mWebBrowser, NS_ERROR_FAILURE);
++ NS_ENSURE_TRUE (mWebBrowser, NS_ERROR_FAILURE);
+
+ nsCOMPtr<nsIWebBrowserPrint> print(do_GetInterface(mWebBrowser));
+ NS_ENSURE_TRUE (print, NS_ERROR_FAILURE);
+
+- if (!preview)
+- {
+- GPrintListener *listener = new GPrintListener(print, options, parent);
+- rv = print->Print (options, listener);
+- }
+- else
+- {
+- rv = print->PrintPreview(options, nsnull, nsnull);
+- }
++ nsCOMPtr<nsIPrintSettingsService> printSettingsService
++ (do_GetService("@mozilla.org/gfx/printsettings-service;1"));
++ NS_ENSURE_STATE (printSettingsService);
+
+- return rv;
++ nsCOMPtr<nsIPrintSettings> settings;
++ printSettingsService->GetNewPrintSettings (getter_AddRefs (settings));
++ NS_ENSURE_STATE (settings);
++
++ settings->SetTitle (nsnull);
++ settings->SetDocURL (nsnull);
++
++ nsresult rv;
++ nsCOMPtr<nsIJSContextStack> mStack = do_GetService ("@mozilla.org/js/xpc/ContextStack;1", &rv);
++ NS_ENSURE_SUCCESS (rv, rv);
++
++ mStack->Push (nsnull);
++
++ return print->Print (settings, nsnull);
+ }
+
+ nsresult GaleonWrapper::PrintPreviewClose (void)
+diff -urN galeon-2.0.7.orig/mozilla/GaleonWrapper.h galeon-2.0.7/mozilla/GaleonWrapper.h
+--- galeon-2.0.7.orig/mozilla/GaleonWrapper.h 2008-09-05 04:25:39.000000000 +0200
++++ galeon-2.0.7/mozilla/GaleonWrapper.h 2009-02-15 09:39:07.000000000 +0100
+@@ -105,7 +105,7 @@
+ nsresult SetZoom (float aTextZoom);
+ nsresult GetZoom (float *aTextZoom);
+
+- nsresult Print (nsIPrintSettings *options, PRBool preview, GtkWindow *parent);
++ nsresult Print ();
+ nsresult GetPrintSettings (nsIPrintSettings * *options);
+ nsresult PrintPreviewClose (void);
+ nsresult PrintPreviewNumPages (int *numPages);
+diff -urN galeon-2.0.7.orig/mozilla/GeckoPrintService.cpp galeon-2.0.7/mozilla/GeckoPrintService.cpp
+--- galeon-2.0.7.orig/mozilla/GeckoPrintService.cpp 1970-01-01 01:00:00.000000000 +0100
++++ galeon-2.0.7/mozilla/GeckoPrintService.cpp 2009-02-15 09:39:07.000000000 +0100
+@@ -0,0 +1,567 @@
++/*
++ * Copyright © 2006, 2007 Christian Persch
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License as published by
++ * the Free Software Foundation; either version 2.1, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++ *
++ * $Id$
++ */
++
++#include "mozilla-config.h"
++#include "config.h"
++
++#include "src/galeon-shell.h"
++#include "utils/eel-gconf-extensions.h"
++#include "utils/gul-gui.h"
++
++#include <glib.h>
++#include <glib/gi18n.h>
++#include <gtk/gtkcheckbutton.h>
++#include <gtk/gtkdialog.h>
++#include <gtk/gtklabel.h>
++#include <gtk/gtkmessagedialog.h>
++#include <gtk/gtkprintunixdialog.h>
++#include <gtk/gtkstock.h>
++#include <gtk/gtkwindow.h>
++#include <glade/glade-xml.h>
++
++#include <nsStringAPI.h>
++
++#include <nsCOMPtr.h>
++#include <nsIDOMWindow.h>
++#include <nsIDOMWindowInternal.h>
++
++#include "GeckoPrintSession.h"
++#include "GeckoPrintService.h"
++#include "GaleonUtils.h"
++
++/* Some printing keys */
++
++#define CONF_PRINT_BG_COLORS "/apps/galeon/Print/print_background_colors"
++#define CONF_PRINT_BG_IMAGES "/apps/galeon/Print/print_background_images"
++#define CONF_PRINT_COLOR "/apps/galeon/Print/print_color"
++#define CONF_PRINT_DATE "/apps/galeon/Print/print_date"
++#define CONF_PRINT_PAGE_NUMBERS "/apps/galeon/Print/print_page_numbers"
++#define CONF_PRINT_PAGE_TITLE "/apps/galeon/Print/print_page_title"
++#define CONF_PRINT_PAGE_URL "/apps/galeon/Print/print_page_url"
++
++#define LITERAL(s) reinterpret_cast<const nsAString::char_type*>(NS_L(s))
++
++/* From nsIDeviceContext.h */
++#define NS_ERROR_GFX_PRINTER_BASE (1) /* adjustable :-) */
++#define NS_ERROR_GFX_PRINTER_ACCESS_DENIED \
++ NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_GFX,NS_ERROR_GFX_PRINTER_BASE+5)
++#define NS_ERROR_GFX_PRINTER_NAME_NOT_FOUND \
++ NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_GFX,NS_ERROR_GFX_PRINTER_BASE+4)
++
++NS_IMPL_ISUPPORTS1 (GeckoPrintService,
++ nsIPrintingPromptService)
++
++GeckoPrintService::GeckoPrintService()
++{
++}
++
++GeckoPrintService::~GeckoPrintService()
++{
++}
++
++/* nsIPrintingPromptService implementation */
++
++/* void showPrintDialog (in nsIDOMWindow parent,
++ in nsIWebBrowserPrint webBrowserPrint,
++ in nsIPrintSettings printSettings); */
++NS_IMETHODIMP
++GeckoPrintService::ShowPrintDialog (nsIDOMWindow *aParent,
++ nsIWebBrowserPrint *aWebBrowserPrint,
++ nsIPrintSettings *aSettings)
++{
++ GaleonEmbedShell *shell;
++
++ GeckoPrintSession *session = GeckoPrintSession::FromSettings (aSettings);
++ NS_ENSURE_TRUE (session, NS_ERROR_INVALID_POINTER);
++
++ shell = galeon_shell_get_embed_shell (galeon_shell);
++
++ nsresult rv;
++ PRBool haveSelection = PR_FALSE;
++ rv = aSettings->GetPrintOptions(nsIPrintSettings::kEnableSelectionRB, &haveSelection);
++ NS_ENSURE_SUCCESS (rv, rv);
++
++ PRInt16 frameUI = nsIPrintSettings::kFrameEnableAll;
++ rv = aSettings->GetHowToEnableFrameUI (&frameUI);
++ NS_ENSURE_SUCCESS (rv, rv);
++
++ GtkWindow *parent = GTK_WINDOW (GaleonUtils::FindGtkParent (aParent));
++ NS_ENSURE_TRUE(parent, NS_ERROR_INVALID_POINTER);
++
++ GtkWidget *custom_tab = NULL,
++ *frame_box = NULL,
++ *print_frames_normal = NULL,
++ *print_frames_selected = NULL,
++ *print_frames_separately = NULL;
++ GError *gerror = NULL;
++ guint builder_ret;
++
++ GtkBuilder *builder = gtk_builder_new ();
++ builder_ret = gtk_builder_add_from_file (builder, SHARE_DIR "/print-tab.xml", &gerror);
++ if (builder_ret) {
++ /* Build the custom tab */
++ custom_tab = GTK_WIDGET (gtk_builder_get_object (builder, "custom_tab_container"));
++
++ gul_gui_connect_checkbutton_to_gconf (GTK_WIDGET (gtk_builder_get_object (builder, "print_bg_colors_checkbutton")),
++ CONF_PRINT_BG_COLORS);
++ gul_gui_connect_checkbutton_to_gconf (GTK_WIDGET (gtk_builder_get_object (builder, "print_bg_images_checkbutton")),
++ CONF_PRINT_BG_IMAGES);
++ gul_gui_connect_checkbutton_to_gconf (GTK_WIDGET (gtk_builder_get_object (builder, "print_date_checkbutton")),
++ CONF_PRINT_DATE);
++ gul_gui_connect_checkbutton_to_gconf (GTK_WIDGET (gtk_builder_get_object (builder, "print_page_numbers_checkbutton")),
++ CONF_PRINT_PAGE_NUMBERS);
++ gul_gui_connect_checkbutton_to_gconf (GTK_WIDGET (gtk_builder_get_object (builder, "print_page_title_checkbutton")),
++ CONF_PRINT_PAGE_TITLE);
++ gul_gui_connect_checkbutton_to_gconf (GTK_WIDGET (gtk_builder_get_object (builder, "print_page_url_checkbutton")),
++ CONF_PRINT_PAGE_URL);
++
++ frame_box = GTK_WIDGET (gtk_builder_get_object (builder, "frame_box"));
++ print_frames_normal = GTK_WIDGET (gtk_builder_get_object (builder, "print_frames_normal"));
++ print_frames_selected = GTK_WIDGET (gtk_builder_get_object (builder, "print_frames_selected"));
++ print_frames_separately = GTK_WIDGET (gtk_builder_get_object (builder, "print_frames_separately"));
++
++ /* FIXME: store/load from pref */
++ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (print_frames_normal), TRUE);
++
++ if (frameUI == nsIPrintSettings::kFrameEnableAll) {
++ /* Allow all frame options */
++ gtk_widget_set_sensitive (frame_box, TRUE);
++ } else if (frameUI == nsIPrintSettings::kFrameEnableAsIsAndEach) {
++ /* Allow all except "selected frame" */
++ gtk_widget_set_sensitive (frame_box, TRUE);
++ gtk_widget_set_sensitive (print_frames_selected, FALSE);
++ /* Preselect this one, since the default above only prints _one page_ ! */
++ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (print_frames_separately), TRUE);
++ }
++ }
++
++ /* FIXME: this sucks! find some way to do all of this async! */
++ GtkWidget *dialog = gtk_print_unix_dialog_new (NULL /* FIXME title */,
++ GTK_WINDOW (parent));
++ GtkPrintUnixDialog *print_dialog = GTK_PRINT_UNIX_DIALOG (dialog);
++
++ GtkPrintCapabilities capabilities =
++ GtkPrintCapabilities (GTK_PRINT_CAPABILITY_PAGE_SET |
++ GTK_PRINT_CAPABILITY_COPIES |
++ GTK_PRINT_CAPABILITY_COLLATE |
++ GTK_PRINT_CAPABILITY_REVERSE |
++ GTK_PRINT_CAPABILITY_SCALE |
++ GTK_PRINT_CAPABILITY_GENERATE_PS);
++#ifdef HAVE_GECKO_1_9
++ capabilities = GtkPrintCapabilities (capabilities | GTK_PRINT_CAPABILITY_GENERATE_PDF);
++#endif
++ gtk_print_unix_dialog_set_manual_capabilities (print_dialog, capabilities);
++
++ gtk_print_unix_dialog_set_page_setup (print_dialog,
++ galeon_embed_shell_get_page_setup (shell));
++ gtk_print_unix_dialog_set_settings (print_dialog,
++ galeon_embed_shell_get_print_settings (shell));
++
++ PRInt16 printFrames = nsIPrintSettings::kNoFrames;
++ if (builder_ret) {
++ g_object_ref_sink (custom_tab);
++ gtk_print_unix_dialog_add_custom_tab (print_dialog, custom_tab,
++ gtk_label_new (_("Options"))); /* FIXME better name! */
++
++ g_object_unref (custom_tab);
++ g_object_unref (builder);
++
++ if (frameUI != nsIPrintSettings::kFrameEnableNone) {
++ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (print_frames_normal))) {
++ printFrames = nsIPrintSettings::kFramesAsIs;
++ } else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (print_frames_selected))) {
++ printFrames = nsIPrintSettings::kSelectedFrame;
++ } if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (print_frames_separately))) {
++ printFrames = nsIPrintSettings::kEachFrameSep;
++ }
++ }
++ }
++
++ int response = gtk_dialog_run (GTK_DIALOG (dialog));
++ gtk_widget_hide (dialog);
++
++ GtkPrinter *printer = gtk_print_unix_dialog_get_selected_printer (print_dialog);
++
++ if (response != GTK_RESPONSE_OK || !printer) {
++ gtk_widget_destroy (dialog);
++
++ return NS_ERROR_ABORT;
++ }
++
++ GtkPageSetup *pageSetup = gtk_print_unix_dialog_get_page_setup (print_dialog); /* no reference owned */
++ galeon_embed_shell_set_page_setup (shell, pageSetup);
++
++ GtkPrintSettings *settings = gtk_print_unix_dialog_get_settings (print_dialog);
++ galeon_embed_shell_set_print_settings (shell, settings);
++
++ /* We copy the setup and settings so we can modify them to unset
++ * options handled by gecko.
++ */
++ GtkPageSetup *pageSetupCopy = gtk_page_setup_copy (pageSetup);
++ pageSetup = pageSetupCopy;
++
++ GtkPrintSettings *settingsCopy = gtk_print_settings_copy (settings);
++ g_object_unref (settings);
++ settings = settingsCopy;
++
++ rv = session->SetSettings (aSettings, settings, pageSetup, printer);
++
++ /* Now translate the settings to nsIPrintSettings */
++ if (NS_SUCCEEDED (rv)) {
++ nsCString sourceFile;
++ session->GetSourceFile (sourceFile);
++ if (!sourceFile.IsEmpty ()) {
++ rv = TranslateSettings (settings, pageSetup, printer, sourceFile, printFrames, PR_TRUE, aSettings);
++ } else {
++ rv = NS_ERROR_FAILURE;
++ }
++ }
++
++ gtk_widget_destroy (dialog);
++
++ g_object_unref (settings);
++ g_object_unref (pageSetup);
++
++ return rv;
++}
++
++/* void showProgress (in nsIDOMWindow parent,
++ in nsIWebBrowserPrint webBrowserPrint,
++ in nsIPrintSettings printSettings,
++ in nsIObserver openDialogObserver,
++ in boolean isForPrinting,
++ out nsIWebProgressListener webProgressListener,
++ out nsIPrintProgressParams printProgressParams,
++ out boolean notifyOnOpen); */
++NS_IMETHODIMP
++GeckoPrintService::ShowProgress (nsIDOMWindow *aParent,
++ nsIWebBrowserPrint *aWebBrowserPrint,
++ nsIPrintSettings *aPrintSettings,
++ nsIObserver *aOpenDialogObserver,
++ PRBool aIsForPrinting,
++ nsIWebProgressListener **_webProgressListener,
++ nsIPrintProgressParams **_printProgressParams,
++ PRBool *_notifyOnOpen)
++{
++ /* Print preview */
++ if (!aIsForPrinting) {
++ return NS_OK;
++ }
++
++ nsresult rv;
++ nsCOMPtr<nsIDOMWindowInternal> domWin (do_QueryInterface (aParent, &rv));
++ NS_ENSURE_SUCCESS (rv, rv);
++
++ nsCOMPtr<nsIPrintSession> session;
++ rv = aPrintSettings->GetPrintSession (getter_AddRefs (session));
++ NS_ENSURE_TRUE (NS_SUCCEEDED (rv) && session, nsnull);
++
++ nsCOMPtr<nsIPrintProgress> progress (do_QueryInterface (session, &rv));
++ NS_ENSURE_SUCCESS (rv, rv);
++
++ /* Our print session implements those interfaces */
++ rv = CallQueryInterface (session, _webProgressListener);
++ rv |= CallQueryInterface (session, _printProgressParams);
++ NS_ENSURE_SUCCESS (rv, rv);
++
++ /* Setting this to PR_FALSE will make gecko immediately start printing
++ * when we return from this function.
++ * If we set this to PR_TRUE, we need to call aOpenDialogObserver::Observe
++ * (topic, subject and data don't matter) when we're ready for printing.
++ */
++ *_notifyOnOpen = PR_FALSE;
++
++ return progress->OpenProgressDialog (domWin, nsnull, nsnull, aOpenDialogObserver, _notifyOnOpen);
++}
++
++/* void showPageSetup (in nsIDOMWindow parent,
++ in nsIPrintSettings printSettings,
++ in nsIObserver aObs); */
++NS_IMETHODIMP GeckoPrintService::ShowPageSetup (nsIDOMWindow *aParent,
++ nsIPrintSettings *aPrintSettings,
++ nsIObserver *aObserver)
++{
++ /* This function is never called from gecko code */
++ return NS_ERROR_NOT_IMPLEMENTED;
++}
++
++/* void showPrinterProperties (in nsIDOMWindow parent,
++ in wstring printerName,
++ in nsIPrintSettings printSettings); */
++NS_IMETHODIMP
++GeckoPrintService::ShowPrinterProperties (nsIDOMWindow *aParent,
++ const PRUnichar *aPrinterName,
++ nsIPrintSettings *aPrintSettings)
++{
++ return NS_ERROR_NOT_IMPLEMENTED;
++}
++
++/* Private methods */
++
++nsresult
++GeckoPrintService::PrintUnattended (nsIDOMWindow *aParent,
++ nsIPrintSettings *aPrintSettings)
++{
++ return NS_ERROR_NOT_IMPLEMENTED;
++}
++
++/* Static methods */
++
++/* static */ nsresult
++GeckoPrintService::TranslateSettings (GtkPrintSettings *aGtkSettings,
++ GtkPageSetup *aPageSetup,
++ GtkPrinter *aPrinter,
++ const nsACString &aSourceFile,
++ PRInt16 aPrintFrames,
++ PRBool aIsForPrinting,
++ nsIPrintSettings *aSettings)
++{
++ NS_ENSURE_ARG (aGtkSettings);
++ NS_ENSURE_ARG (aPageSetup);
++
++ GtkPrintCapabilities capabilities = GtkPrintCapabilities (0);
++ if (aIsForPrinting) {
++ NS_ENSURE_TRUE (aPrinter, NS_ERROR_FAILURE);
++
++ capabilities = gtk_printer_get_capabilities (aPrinter);
++ }
++
++ /* Initialisation */
++ aSettings->SetIsInitializedFromPrinter (PR_FALSE); /* FIXME: PR_TRUE? */
++ aSettings->SetIsInitializedFromPrefs (PR_FALSE); /* FIXME: PR_TRUE? */
++ aSettings->SetPrintSilent (PR_FALSE);
++ aSettings->SetShowPrintProgress (PR_TRUE);
++
++ /* We always print PS to a file and then hand that off to gtk-print */
++ aSettings->SetPrinterName (LITERAL ("PostScript/default"));
++
++ if (aIsForPrinting) {
++ aSettings->SetPrintToFile (PR_TRUE);
++
++ nsString sourceFile;
++ NS_CStringToUTF16 (aSourceFile,
++ NS_CSTRING_ENCODING_NATIVE_FILESYSTEM,
++ sourceFile);
++
++ aSettings->SetToFileName (sourceFile.get ());
++ } else {
++ /* Otherwise mozilla will create the file nevertheless and
++ * fail since we haven't set a name!
++ */
++ aSettings->SetPrintToFile (PR_FALSE);
++ }
++
++ /* This is the time between printing each page, in ms.
++ * It 'gives the user more time to press cancel' !
++ * We don't want any of this nonsense, so set this to a low value,
++ * just enough to update the print dialogue.
++ */
++ aSettings->SetPrintPageDelay (50);
++
++ if (aIsForPrinting) {
++#ifdef HAVE_NSIPRINTSETTINGS_SETOUTPUTFORMAT
++ NS_ENSURE_TRUE (aPrinter, NS_ERROR_FAILURE);
++
++ const char *format = gtk_print_settings_get (aGtkSettings, GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT);
++ if (!format)
++ format = "ps";
++
++ if (strcmp (format, "pdf") == 0 &&
++ gtk_printer_accepts_pdf (aPrinter)) {
++ aSettings->SetOutputFormat (nsIPrintSettings::kOutputFormatPDF);
++ } else if (strcmp (format, "ps") == 0 &&
++ gtk_printer_accepts_ps (aPrinter)) {
++ aSettings->SetOutputFormat (nsIPrintSettings::kOutputFormatPS);
++ } else {
++ g_warning ("Output format '%s' specified, but printer '%s' does not support it!",
++ format, gtk_printer_get_name (aPrinter));
++ return NS_ERROR_FAILURE;
++ }
++#endif
++
++ int n_copies = gtk_print_settings_get_n_copies (aGtkSettings);
++ if (n_copies <= 0)
++ return NS_ERROR_FAILURE;
++ if (capabilities & GTK_PRINT_CAPABILITY_COPIES) {
++ aSettings->SetNumCopies (1);
++ } else {
++ /* We have to copy them ourself */
++ aSettings->SetNumCopies (n_copies);
++ gtk_print_settings_set_n_copies (aGtkSettings, 1);
++ }
++
++ gboolean reverse = gtk_print_settings_get_reverse (aGtkSettings);
++ if (capabilities & GTK_PRINT_CAPABILITY_REVERSE) {
++ aSettings->SetPrintReversed (PR_FALSE);
++ } else {
++ aSettings->SetPrintReversed (reverse);
++ gtk_print_settings_set_reverse (aGtkSettings, FALSE);
++ }
++
++ GtkPageSet pageSet = gtk_print_settings_get_page_set (aGtkSettings);
++ aSettings->SetPrintOptions (nsIPrintSettings::kPrintEvenPages,
++ pageSet != GTK_PAGE_SET_ODD);
++ aSettings->SetPrintOptions (nsIPrintSettings::kPrintEvenPages,
++ pageSet != GTK_PAGE_SET_EVEN);
++
++ GtkPrintPages printPages = gtk_print_settings_get_print_pages (aGtkSettings);
++ switch (printPages) {
++ case GTK_PRINT_PAGES_RANGES: {
++ int numRanges = 0;
++ GtkPageRange *pageRanges = gtk_print_settings_get_page_ranges (aGtkSettings, &numRanges);
++ if (numRanges > 0) {
++ /* FIXME: We can only support one range, ignore more ranges or raise error? */
++ aSettings->SetPrintRange (nsIPrintSettings::kRangeSpecifiedPageRange);
++ /* Gecko page numbers start at 1, while gtk page numbers start at 0 */
++ aSettings->SetStartPageRange (pageRanges[0].start + 1);
++ aSettings->SetEndPageRange (pageRanges[0].end + 1);
++
++ g_free (pageRanges);
++ break;
++ }
++ /* Fall-through to PAGES_ALL */
++ }
++ case GTK_PRINT_PAGES_CURRENT:
++ /* not supported, fall through */
++ case GTK_PRINT_PAGES_ALL:
++ aSettings->SetPrintRange (nsIPrintSettings::kRangeAllPages);
++ break;
++ /* FIXME: we need some custom ranges here, "Selection" and "Focused Frame" */
++ }
++ } else {
++ aSettings->SetPrintOptions (nsIPrintSettings::kPrintEvenPages, PR_TRUE);
++ aSettings->SetPrintOptions (nsIPrintSettings::kPrintEvenPages, PR_TRUE);
++ aSettings->SetPrintReversed (PR_FALSE);
++ aSettings->SetPrintRange (nsIPrintSettings::kRangeAllPages);
++ }
++
++ /* And clear those in the settings, so the printer doesn't try to apply them too */
++ gtk_print_settings_set_print_pages (aGtkSettings, GTK_PRINT_PAGES_ALL);
++ gtk_print_settings_set_page_ranges (aGtkSettings, NULL, 0);
++ gtk_print_settings_set_page_set (aGtkSettings, GTK_PAGE_SET_ALL);
++
++ /* We must use the page setup here instead of the print settings, see gtk bug #485685 */
++ switch (gtk_page_setup_get_orientation (aPageSetup)) {
++ case GTK_PAGE_ORIENTATION_PORTRAIT:
++ case GTK_PAGE_ORIENTATION_REVERSE_PORTRAIT: /* not supported */
++ aSettings->SetOrientation (nsIPrintSettings::kPortraitOrientation);
++ break;
++ case GTK_PAGE_ORIENTATION_LANDSCAPE:
++ case GTK_PAGE_ORIENTATION_REVERSE_LANDSCAPE: /* not supported */
++ aSettings->SetOrientation (nsIPrintSettings::kLandscapeOrientation);
++ break;
++ }
++
++ aSettings->SetPrintInColor (gtk_print_settings_get_use_color (aGtkSettings));
++
++ aSettings->SetPaperSizeUnit(nsIPrintSettings::kPaperSizeMillimeters);
++
++#ifdef HAVE_NSIPRINTSETTINGS_SETPAPERSIZE
++ aSettings->SetPaperSize (nsIPrintSettings::kPaperSizeDefined);
++#endif
++
++ GtkPaperSize *paperSize = gtk_page_setup_get_paper_size (aPageSetup);
++ if (!paperSize) {
++ return NS_ERROR_FAILURE;
++ }
++
++ aSettings->SetPaperSizeType (nsIPrintSettings::kPaperSizeDefined);
++ aSettings->SetPaperWidth (gtk_paper_size_get_width (paperSize, GTK_UNIT_MM));
++ aSettings->SetPaperHeight (gtk_paper_size_get_height (paperSize, GTK_UNIT_MM));
++
++#ifdef HAVE_NSIPRINTSETTINGS_SETPAPERNAME
++ aSettings->SetPaperName (NS_ConvertUTF8toUTF16 (gtk_paper_size_get_name (paperSize)).get ());
++#else
++{
++ /* Mozilla bug https://bugzilla.mozilla.org/show_bug.cgi?id=307404
++ * means that we cannot actually use any paper sizes except mozilla's
++ * builtin list, and we must refer to them *by name*!
++ */
++ static const struct {
++ const char gtkPaperName[13];
++ const char mozPaperName[10];
++ } paperTable [] = {
++ { GTK_PAPER_NAME_A5, "A5" },
++ { GTK_PAPER_NAME_A4, "A4" },
++ { GTK_PAPER_NAME_A3, "A3" },
++ { GTK_PAPER_NAME_LETTER, "Letter" },
++ { GTK_PAPER_NAME_LEGAL, "Legal" },
++ { GTK_PAPER_NAME_EXECUTIVE, "Executive" },
++ };
++
++ const char *paperName = gtk_paper_size_get_name (paperSize);
++
++ PRUint32 i;
++ for (i = 0; i < G_N_ELEMENTS (paperTable); i++) {
++ if (g_ascii_strcasecmp (paperTable[i].gtkPaperName, paperName) == 0) {
++ paperName = paperTable[i].mozPaperName;
++ break;
++ }
++ }
++ if (i == G_N_ELEMENTS (paperTable)) {
++ /* Not in table, fall back to A4 */
++ g_warning ("Unknown paper name '%s', falling back to A4", gtk_paper_size_get_name (paperSize));
++ paperName = paperTable[1].mozPaperName;
++ }
++
++ aSettings->SetPaperName (NS_ConvertUTF8toUTF16 (paperName).get ());
++}
++#endif /* !HAVE_NSIPRINTSETTINGS_SETPAPERNAME */
++
++ /* Sucky mozilla wants margins in inch! */
++ aSettings->SetMarginTop (gtk_page_setup_get_top_margin (aPageSetup, GTK_UNIT_INCH));
++ aSettings->SetMarginBottom (gtk_page_setup_get_bottom_margin (aPageSetup, GTK_UNIT_INCH));
++ aSettings->SetMarginLeft (gtk_page_setup_get_left_margin (aPageSetup, GTK_UNIT_INCH));
++ aSettings->SetMarginRight (gtk_page_setup_get_right_margin (aPageSetup, GTK_UNIT_INCH));
++
++ aSettings->SetHeaderStrLeft (eel_gconf_get_boolean (CONF_PRINT_PAGE_TITLE) ? LITERAL ("&T") : LITERAL (""));
++ aSettings->SetHeaderStrCenter (LITERAL (""));
++ aSettings->SetHeaderStrRight (eel_gconf_get_boolean (CONF_PRINT_PAGE_URL) ? LITERAL ("&U") : LITERAL (""));
++ aSettings->SetFooterStrLeft (eel_gconf_get_boolean (CONF_PRINT_PAGE_NUMBERS) ? LITERAL ("&PT") : LITERAL (""));
++ aSettings->SetFooterStrCenter (LITERAL (""));
++ aSettings->SetFooterStrRight (eel_gconf_get_boolean (CONF_PRINT_DATE) ? LITERAL ("&D") : LITERAL (""));
++
++ aSettings->SetPrintFrameType (aPrintFrames);
++ aSettings->SetPrintFrameTypeUsage (nsIPrintSettings::kUseSettingWhenPossible);
++
++ /* FIXME: only if GTK_PRINT_CAPABILITY_SCALE is not set? */
++ aSettings->SetScaling (gtk_print_settings_get_scale (aGtkSettings) / 100.0);
++ gtk_print_settings_set_scale (aGtkSettings, 1.0);
++
++ aSettings->SetShrinkToFit (PR_FALSE); /* FIXME setting */
++
++ aSettings->SetPrintBGColors (eel_gconf_get_boolean (CONF_PRINT_BG_COLORS) != FALSE);
++ aSettings->SetPrintBGImages (eel_gconf_get_boolean (CONF_PRINT_BG_IMAGES) != FALSE);
++
++ /* aSettings->SetPlexName (LITERAL ("default")); */
++ /* aSettings->SetColorspace (LITERAL ("default")); */
++ /* aSettings->SetResolutionName (LITERAL ("default")); */
++ /* aSettings->SetDownloadFonts (PR_TRUE); */
++
++ /* Unset those setting that we can handle, so they don't get applied
++ * again for the print job.
++ */
++ /* gtk_print_settings_set_collate (aGtkSettings, FALSE); not yet */
++ /* FIXME: Unset the orientation for the print job? */
++ /* gtk_page_setup_set_orientation (aPageSetup, GTK_PAGE_ORIENTATION_PORTRAIT); */
++ /* FIXME: unset output format -> "ps" ? */
++
++ return NS_OK;
++}
+diff -urN galeon-2.0.7.orig/mozilla/GeckoPrintService.h galeon-2.0.7/mozilla/GeckoPrintService.h
+--- galeon-2.0.7.orig/mozilla/GeckoPrintService.h 1970-01-01 01:00:00.000000000 +0100
++++ galeon-2.0.7/mozilla/GeckoPrintService.h 2009-02-15 09:39:07.000000000 +0100
+@@ -0,0 +1,54 @@
++/*
++ * Copyright © 2006 Christian Persch
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License as published by
++ * the Free Software Foundation; either version 2.1, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++ *
++ * $Id$
++ */
++
++#ifndef GECKO_PRINT_SERVICE_H
++#define GECKO_PRINT_SERVICE_H
++
++#include <gtk/gtkpagesetup.h>
++#include <gtk/gtkprintsettings.h>
++#include <gtk/gtkprinter.h>
++
++#include <nsIPrintingPromptService.h>
++
++class nsIPrintSettings;
++
++/* 6a71ff30-7f4d-4d91-b71a-d5c9764b34be */
++#define GECKO_PRINT_SERVICE_IID \
++{ 0x6a71ff30, 0x7f4d, 0x4d91, \
++ { 0xb7, 0x1a, 0xd5, 0xc9, 0x76, 0x4b, 0x34, 0xbe } }
++
++#define GECKO_PRINT_SERVICE_CLASSNAME "Gecko Print Service"
++
++class GeckoPrintService : public nsIPrintingPromptService
++{
++public:
++ NS_DECL_ISUPPORTS
++ NS_DECL_NSIPRINTINGPROMPTSERVICE
++
++ GeckoPrintService();
++ virtual ~GeckoPrintService();
++
++ static nsresult TranslateSettings (GtkPrintSettings*, GtkPageSetup *, GtkPrinter *, const nsACString&, PRInt16, PRBool, nsIPrintSettings*);
++
++private:
++ nsresult PrintUnattended (nsIDOMWindow *, nsIPrintSettings *);
++};
++
++#endif /* GECKO_PRINT_SERVICE_H */
+diff -urN galeon-2.0.7.orig/mozilla/GeckoPrintSession.cpp galeon-2.0.7/mozilla/GeckoPrintSession.cpp
+--- galeon-2.0.7.orig/mozilla/GeckoPrintSession.cpp 1970-01-01 01:00:00.000000000 +0100
++++ galeon-2.0.7/mozilla/GeckoPrintSession.cpp 2009-02-15 09:39:07.000000000 +0100
+@@ -0,0 +1,620 @@
++/*
++ * Copyright © 2006 Christian Persch
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License as published by
++ * the Free Software Foundation; either version 2.1, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++ *
++ * $Id$
++ */
++
++#include "mozilla-config.h"
++#include "config.h"
++
++#include <unistd.h>
++
++#include <glib/gi18n.h>
++#include <gtk/gtk.h>
++
++#include <nsStringAPI.h>
++
++#include <nsIDOMWindow.h>
++#include <nsIDOMWindowInternal.h>
++#include <nsIPrintSettings.h>
++
++#include "GeckoPrintSession.h"
++#include "GaleonUtils.h"
++
++#define MAX_STRING_LENGTH 512
++
++GeckoPrintSession::GeckoPrintSession ()
++: mSettings(NULL)
++, mPageSetup(NULL)
++, mPrinter(NULL)
++, mJob(NULL)
++, mProgressDialog(NULL)
++, mTitleLabel(NULL)
++, mProgressBar(NULL)
++, mStartPrintIdleID(0)
++, mSourceFileIsTemp(PR_FALSE)
++, mDone(PR_FALSE)
++, mCancelled(PR_FALSE)
++{
++ /* FIXME: connect to "prepare-close" ? */
++}
++
++GeckoPrintSession::~GeckoPrintSession ()
++{
++ NS_ASSERTION (mStartPrintIdleID == 0, "Impossible");
++
++ if (!mDone && !mCancelled) {
++ Cancel ();
++ }
++ DestroyJob ();
++
++ if (mSettings) {
++ g_object_unref (mSettings);
++ }
++ if (mPageSetup) {
++ g_object_unref (mPageSetup);
++ }
++ if (mPrinter) {
++ g_object_unref (mPrinter);
++ }
++ if (mProgressDialog) {
++ gtk_widget_destroy (mProgressDialog);
++ }
++ if (mSourceFileIsTemp) {
++ unlink (mSourceFile.get ());
++ }
++}
++
++void
++GeckoPrintSession::GetSourceFile (nsACString &aSource)
++{
++ aSource.Assign (mSourceFile);
++}
++
++nsresult
++GeckoPrintSession::SetSettings (nsIPrintSettings *aPrintSettings,
++ GtkPrintSettings *aSettings,
++ GtkPageSetup *aPageSetup,
++ GtkPrinter *aPrinter)
++{
++ NS_ASSERTION (!mPrintSettings && !mSettings && !mPageSetup && !mPrinter, "Already have settings!");
++
++ NS_ENSURE_ARG (aPrintSettings);
++ NS_ENSURE_ARG (aSettings);
++
++ mPrintSettings = aPrintSettings;
++ mSettings = (GtkPrintSettings *) g_object_ref (aSettings);
++
++ NS_ENSURE_ARG (aPageSetup);
++ NS_ENSURE_ARG (aPrinter);
++
++ mPageSetup = (GtkPageSetup *) g_object_ref (aPageSetup);
++ mPrinter = (GtkPrinter *) g_object_ref (aPrinter);
++
++#if 0
++ /* Compute the source file name */
++ if (gtk_print_settings_get_print_to_file (mSettings)) {
++ /* FIXME: support gnome-VFS uris here! */
++ const char *fileURI = gtk_print_settings_get (aSettings, "export-uri");
++ NS_ENSURE_TRUE (fileURI, NS_ERROR_FAILURE);
++
++ char *fileName = g_filename_from_uri (fileURI, NULL, NULL);
++ NS_ENSURE_TRUE (fileURI, NS_ERROR_FAILURE);
++
++ mSourceFile.Assign (fileName);
++ g_free (fileName);
++ } else
++#endif
++ {
++ char *tmpl, *tmpName;
++
++ tmpl = g_strdup ("print-XXXXXX.ps");
++
++ tmpName = g_build_filename (g_get_tmp_dir (), tmpl, (const char *) NULL);
++ g_free (tmpl);
++
++ NS_ENSURE_TRUE (tmpName, NS_ERROR_FAILURE);
++ mSourceFile.Assign (tmpName);
++ g_free (tmpName);
++
++ mSourceFileIsTemp = PR_TRUE;
++ }
++
++ return NS_OK;
++}
++
++/* static methods */
++
++/* static */ GeckoPrintSession *
++GeckoPrintSession::FromSettings (nsIPrintSettings *aSettings)
++{
++ nsresult rv;
++ nsCOMPtr<nsIPrintSession> session;
++ rv = aSettings->GetPrintSession (getter_AddRefs (session));
++ NS_ENSURE_TRUE (NS_SUCCEEDED (rv) && session, nsnull);
++
++ /* this is ok since the caller holds a ref to the settings which hold a ref to the session */
++ nsIPrintSession *sessionPtr = session.get();
++ return static_cast<GeckoPrintSession*>(sessionPtr);
++}
++
++/* static functions */
++
++static void
++ReleaseSession (GeckoPrintSession *aSession)
++{
++ NS_RELEASE (aSession);
++}
++
++static gboolean
++ProgressDeleteCallback (GtkDialog *aDialog)
++{
++ gtk_dialog_response (aDialog, GTK_RESPONSE_DELETE_EVENT);
++ return TRUE;
++}
++
++static void
++ProgressResponseCallback (GtkDialog *aDialog,
++ int aResponse,
++ GeckoPrintSession *aSession)
++{
++ aSession->Cancel ();
++}
++
++static gboolean
++StartPrintIdleCallback (GeckoPrintSession *aSession)
++{
++ aSession->StartPrinting ();
++
++ return FALSE;
++}
++
++static void
++JobStatusChangedCallback (GtkPrintJob *aJob,
++ GeckoPrintSession *aSession)
++{
++ aSession->JobStatusChanged ();
++}
++
++static void
++JobCompletedCallback (GtkPrintJob *aJob,
++ GeckoPrintSession *aSession,
++ GError *aError)
++{
++ aSession->JobDone ();
++
++ if (aError) {
++ aSession->JobError (aError->message);
++ }
++}
++
++/* Private methods */
++
++void
++GeckoPrintSession::SetProgress (PRInt32 aCurrent,
++ PRInt32 aMaximum)
++{
++ NS_ENSURE_TRUE (mProgressDialog, );
++
++ if (mCancelled) return;
++
++ /* Mozilla is weird */
++ if (aCurrent > aMaximum || (aCurrent == 100 && aMaximum == 100)) return;
++
++ double fraction = 0.0;
++ if (aMaximum > 0 && aCurrent >= 0) {
++ char *text = g_strdup_printf (_("Page %d of %d"), aCurrent, aMaximum);
++ gtk_progress_bar_set_text (GTK_PROGRESS_BAR (mProgressBar), text);
++ g_free (text);
++
++ fraction = (double) aCurrent / (double) aMaximum;
++ }
++
++ gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (mProgressBar), CLAMP (fraction, 0.0, 1.0));
++}
++
++void
++GeckoPrintSession::SetProgressText (const char *aText)
++{
++ NS_ENSURE_TRUE (mProgressDialog, );
++
++ gtk_progress_bar_set_text (GTK_PROGRESS_BAR (mProgressBar), aText);
++}
++
++void
++GeckoPrintSession::Cancel ()
++{
++ SetProcessCanceledByUser (PR_TRUE);
++
++ if (mProgressDialog) {
++ gtk_dialog_set_response_sensitive (GTK_DIALOG (mProgressDialog),
++ GTK_RESPONSE_CANCEL, FALSE);
++
++ SetProgress (0, 0);
++ SetProgressText (_("Cancelling print")); /* FIXME text! */
++ }
++
++ if (mJob) {
++ /* FIXME: There's no way to cancel mJob! Bug #339323 */
++ }
++}
++
++void
++GeckoPrintSession::StartPrinting ()
++{
++ mStartPrintIdleID = 0;
++
++ GError *error = NULL;
++
++#if 0
++ /* FIXME: this could also be a print job to a file which was
++ * printed to a temp file and now needs to be uploaded to its
++ * final location with gnome-vfs.
++ */
++ if (gtk_print_settings_get_print_to_file (mSettings)) return;
++#endif
++
++ NS_ENSURE_TRUE (mSettings && mPageSetup && mPrinter, );
++
++ mJob = gtk_print_job_new (mTitle.get (),
++ mPrinter,
++ mSettings,
++ mPageSetup);
++ if (!gtk_print_job_set_source_file (mJob, mSourceFile.get (), &error)) {
++ /* FIXME: error dialogue! */
++ g_warning ("Couldn't set print job source: %s", error->message);
++ g_error_free (error);
++
++ g_object_unref (mJob);
++ mJob = NULL;
++
++ return;
++ }
++
++ g_signal_connect (mJob, "status-changed",
++ G_CALLBACK (JobStatusChangedCallback), this);
++
++ /* Keep us alive until the job is done! */
++ NS_ADDREF_THIS ();
++ gtk_print_job_send (mJob,
++ (GtkPrintJobCompleteFunc) JobCompletedCallback,
++ this,
++ (GDestroyNotify) ReleaseSession);
++}
++
++void
++GeckoPrintSession::JobStatusChanged ()
++{
++ NS_ENSURE_TRUE (mProgressDialog, );
++
++ /* FIXME: are any other status codes relevant info for the user? */
++ if (gtk_print_job_get_status (mJob) == GTK_PRINT_STATUS_SENDING_DATA) {
++ gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (mProgressBar), 0.75);
++ /* FIXME text! */
++ SetProgressText (_("Spooling..."));
++ }
++}
++
++void
++GeckoPrintSession::JobError (const char *aErrorMessage)
++{
++ /* FIXME better text */
++ GtkWidget *dialog = gtk_message_dialog_new (NULL,
++ GtkDialogFlags (0),
++ GTK_MESSAGE_ERROR,
++ GTK_BUTTONS_OK,
++ _("Print error"));
++ gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
++ "%s", aErrorMessage);
++ g_signal_connect (dialog, "response",
++ G_CALLBACK (gtk_widget_destroy), NULL);
++
++ gtk_widget_show (dialog);
++}
++
++void
++GeckoPrintSession::JobDone ()
++{
++ NS_ENSURE_TRUE (mProgressDialog, );
++
++ mDone = PR_TRUE;
++
++ gtk_widget_hide (mProgressDialog);
++
++ DestroyJob ();
++}
++
++void
++GeckoPrintSession::DestroyJob ()
++{
++ if (!mJob) return;
++
++ g_signal_handlers_disconnect_by_func (mJob, (void*) JobStatusChangedCallback, this);
++ g_object_unref (mJob);
++ mJob = NULL;
++}
++
++void
++GeckoPrintSession::LaunchJobOnIdle ()
++{
++ NS_ASSERTION (!mStartPrintIdleID, "Already started printing!");
++
++ /* Don't send the job to the printer if the user cancelled the print */
++ if (mCancelled) return;
++
++ /* Keep us alive until the idle handler runs! */
++ NS_ADDREF_THIS ();
++ mStartPrintIdleID = g_idle_add_full (G_PRIORITY_DEFAULT_IDLE,
++ (GSourceFunc) StartPrintIdleCallback,
++ this,
++ (GDestroyNotify) ReleaseSession);
++}
++
++/* XPCOM interfaces */
++
++NS_IMPL_THREADSAFE_ISUPPORTS5 (GeckoPrintSession,
++ nsIPrintSession,
++ nsIWebProgressListener,
++ nsIPrintProgress,
++ nsIPrintProgressParams,
++ nsISupportsWeakReference)
++
++/* nsIPrintSession implementation */
++
++/* nsIWebProgressListener implementation */
++
++/* void onStateChange (in nsIWebProgress aWebProgress, in nsIRequest aRequest, in unsigned long aStateFlags, in nsresult aStatus); */
++NS_IMETHODIMP
++GeckoPrintSession::OnStateChange (nsIWebProgress *aWebProgress,
++ nsIRequest *aRequest,
++ PRUint32 aStateFlags,
++ nsresult aStatus)
++{
++ if (NS_SUCCEEDED (aStatus) &&
++ aStateFlags & nsIWebProgressListener::STATE_IS_DOCUMENT) {
++ if (aStateFlags & nsIWebProgressListener::STATE_START) {
++ /* Printing starts now */
++ SetProgress (0, 0);
++ } else if ((aStateFlags & nsIWebProgressListener::STATE_STOP)) {
++ /* Printing done, upload to printer */
++ LaunchJobOnIdle ();
++ }
++ }
++
++ return NS_OK;
++}
++
++/* void onProgressChange (in nsIWebProgress aWebProgress, in nsIRequest aRequest, in long aCurSelfProgress, in long aMaxSelfProgress, in long aCurTotalProgress, in long aMaxTotalProgress); */
++NS_IMETHODIMP
++GeckoPrintSession::OnProgressChange (nsIWebProgress *aWebProgress,
++ nsIRequest *aRequest,
++ PRInt32 aCurSelfProgress,
++ PRInt32 aMaxSelfProgress,
++ PRInt32 aCurTotalProgress,
++ PRInt32 aMaxTotalProgress)
++{
++ SetProgress (aCurTotalProgress, aMaxTotalProgress);
++
++ return NS_OK;
++}
++
++/* void onLocationChange (in nsIWebProgress aWebProgress, in nsIRequest aRequest, in nsIURI aLocation); */
++NS_IMETHODIMP
++GeckoPrintSession::OnLocationChange (nsIWebProgress *aWebProgress,
++ nsIRequest *aRequest,
++ nsIURI *aLocation)
++{
++ NS_ASSERTION (0, "OnLocationChange reached!");
++ return NS_OK;
++}
++
++/* void onStatusChange (in nsIWebProgress aWebProgress, in nsIRequest aRequest, in nsresult aStatus, in wstring aMessage); */
++NS_IMETHODIMP
++GeckoPrintSession::OnStatusChange (nsIWebProgress *aWebProgress,
++ nsIRequest *aRequest,
++ nsresult aStatus,
++ const PRUnichar *aMessage)
++{
++ NS_ASSERTION (0, "OnStatusChange reached!");
++ return NS_OK;
++}
++
++/* void onSecurityChange (in nsIWebProgress aWebProgress, in nsIRequest aRequest, in unsigned long aState); */
++NS_IMETHODIMP
++GeckoPrintSession::OnSecurityChange (nsIWebProgress *aWebProgress,
++ nsIRequest *aRequest,
++ PRUint32 aState)
++{
++ NS_ASSERTION (0, "OnSecurityChange reached!");
++ return NS_OK;
++}
++
++/* nsIPrintProgress implementation */
++
++/* void openProgressDialog (in nsIDOMWindowInternal parent, in string dialogURL, in nsISupports parameters, in nsIObserver openDialogObserver, out boolean notifyOnOpen); */
++NS_IMETHODIMP
++GeckoPrintSession::OpenProgressDialog (nsIDOMWindowInternal *aParent,
++ const char *aDialogURL,
++ nsISupports *aParameters,
++ nsIObserver *aOpenDialogObserver,
++ PRBool *_notifyOnOpen)
++{
++ NS_ENSURE_STATE (!mProgressDialog);
++
++ nsCOMPtr<nsIDOMWindow> domWindow (do_QueryInterface (aParent));
++ GtkWidget *parent = GaleonUtils::FindGtkParent (domWindow);
++
++ GtkWidget *vbox, *hbox, *image;
++
++ mProgressDialog = gtk_dialog_new ();
++ GtkDialog *dialog = GTK_DIALOG (mProgressDialog);
++
++ gtk_dialog_add_button (dialog, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
++
++ g_signal_connect (dialog, "delete-event",
++ G_CALLBACK (ProgressDeleteCallback), NULL);
++ g_signal_connect (dialog, "response",
++ G_CALLBACK (ProgressResponseCallback), this);
++
++ /* FIXME do we need transient? initially on top should suffice */
++ gtk_window_set_transient_for (GTK_WINDOW (dialog),
++ GTK_WINDOW (parent));
++
++ gtk_dialog_set_has_separator (dialog, FALSE);
++ gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE);
++ gtk_container_set_border_width (GTK_CONTAINER (dialog), 5);
++ gtk_box_set_spacing (GTK_BOX (dialog->vbox), 14); /* 2 * 5 + 14 = 24 */
++ gtk_box_set_spacing (GTK_BOX (dialog->action_area), 5);
++
++ hbox = gtk_hbox_new (FALSE, 12);
++ gtk_container_set_border_width (GTK_CONTAINER (hbox), 5);
++ gtk_container_add (GTK_CONTAINER (dialog->vbox), hbox);
++
++ image = gtk_image_new_from_stock (GTK_STOCK_PRINT, GTK_ICON_SIZE_DIALOG);
++ gtk_misc_set_alignment (GTK_MISC (image), 0.5, 0.0);
++ gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0);
++
++ vbox = gtk_vbox_new (FALSE, 12);
++ gtk_box_pack_start (GTK_BOX (hbox), vbox, TRUE, TRUE, 0);
++
++ mTitleLabel = gtk_label_new (NULL);
++ gtk_label_set_line_wrap (GTK_LABEL (mTitleLabel), TRUE);
++ gtk_misc_set_alignment (GTK_MISC (mTitleLabel), 0.0, 0.0);
++ gtk_box_pack_start (GTK_BOX (vbox), mTitleLabel, FALSE, FALSE, 0);
++
++ mProgressBar = gtk_progress_bar_new ();
++ gtk_box_pack_start (GTK_BOX (vbox), mProgressBar, FALSE, FALSE, 0);
++
++ gtk_widget_show_all (hbox);
++ gtk_window_present (GTK_WINDOW (dialog));
++
++ *_notifyOnOpen = PR_FALSE;
++
++ return NS_OK;
++}
++
++/* void closeProgressDialog (in boolean forceClose); */
++NS_IMETHODIMP
++GeckoPrintSession::CloseProgressDialog (PRBool forceClose)
++{
++ return NS_OK;
++}
++
++/* void registerListener (in nsIWebProgressListener listener); */
++NS_IMETHODIMP
++GeckoPrintSession::RegisterListener (nsIWebProgressListener *listener)
++{
++ return NS_OK;
++}
++
++/* void unregisterListener (in nsIWebProgressListener listener); */
++NS_IMETHODIMP
++GeckoPrintSession::UnregisterListener (nsIWebProgressListener *listener)
++{
++ return NS_OK;
++}
++
++/* void doneIniting (); */
++NS_IMETHODIMP
++GeckoPrintSession::DoneIniting()
++{
++ return NS_OK;
++}
++
++/* nsIPrompt getPrompter (); */
++NS_IMETHODIMP
++GeckoPrintSession::GetPrompter (nsIPrompt **_retval)
++{
++ g_return_val_if_reached (NS_ERROR_NOT_IMPLEMENTED);
++ return NS_ERROR_NOT_IMPLEMENTED;
++}
++
++/* attribute boolean processCanceledByUser; */
++NS_IMETHODIMP
++GeckoPrintSession::GetProcessCanceledByUser (PRBool *aProcessCanceledByUser)
++{
++ *aProcessCanceledByUser = mCancelled;
++ return NS_OK;
++}
++
++NS_IMETHODIMP
++GeckoPrintSession::SetProcessCanceledByUser (PRBool aProcessCanceledByUser)
++{
++ mCancelled = aProcessCanceledByUser;
++ if (mPrintSettings) {
++ mPrintSettings->SetIsCancelled (aProcessCanceledByUser);
++ }
++
++ return NS_OK;
++}
++
++/* nsIPrintProgressParams implementation */
++
++/* attribute wstring docTitle; */
++NS_IMETHODIMP
++GeckoPrintSession::GetDocTitle (PRUnichar * *aDocTitle)
++{
++ g_return_val_if_reached (NS_ERROR_NOT_IMPLEMENTED);
++ return NS_ERROR_NOT_IMPLEMENTED;
++}
++
++NS_IMETHODIMP
++GeckoPrintSession::SetDocTitle (const PRUnichar * aDocTitle)
++{
++ NS_ENSURE_STATE (mProgressDialog);
++
++ char *converted;
++ if (aDocTitle == nsnull) return NULL;
++
++ /* This depends on the assumption that
++ * typeof(PRUnichar) == typeof (gunichar2) == uint16,
++ * which should be pretty safe.
++ */
++ glong n_read = 0, n_written = 0;
++ converted = g_utf16_to_utf8 ((gunichar2*) aDocTitle, MAX_STRING_LENGTH,
++ &n_read, &n_written, NULL);
++ /* FIXME loop from the end while !g_unichar_isspace (char)? */
++ if (!converted)
++ return NULL;
++
++ g_strdelimit (converted, "\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037", ' ');
++
++ if (converted) {
++ mTitle.Assign (converted);
++
++ char *title = g_strdup_printf (_("Printing “%s”"), converted);
++ gtk_window_set_title (GTK_WINDOW (mProgressDialog), title);
++ gtk_label_set_text (GTK_LABEL (mTitleLabel), title);
++ g_free (converted);
++ g_free (title);
++ }
++ return NS_OK;
++}
++
++/* attribute wstring docURL; */
++NS_IMETHODIMP
++GeckoPrintSession::GetDocURL (PRUnichar * *aDocURL)
++{
++ g_return_val_if_reached (NS_ERROR_NOT_IMPLEMENTED);
++ return NS_ERROR_NOT_IMPLEMENTED;
++}
++
++NS_IMETHODIMP
++GeckoPrintSession::SetDocURL (const PRUnichar * aDocURL)
++{
++ return NS_OK;
++}
+diff -urN galeon-2.0.7.orig/mozilla/GeckoPrintSession.h galeon-2.0.7/mozilla/GeckoPrintSession.h
+--- galeon-2.0.7.orig/mozilla/GeckoPrintSession.h 1970-01-01 01:00:00.000000000 +0100
++++ galeon-2.0.7/mozilla/GeckoPrintSession.h 2009-02-15 09:39:07.000000000 +0100
+@@ -0,0 +1,94 @@
++/*
++ * Copyright © 2006 Christian Persch
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU Lesser General Public License as published by
++ * the Free Software Foundation; either version 2.1, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
++ *
++ * $Id$
++ */
++
++#ifndef GECKO_PRINT_SESSION_H
++#define GECKO_PRINT_SESSION_H
++
++#include <nsCOMPtr.h>
++#include <nsIPrintSession.h>
++#include <nsIWebProgressListener.h>
++#include <nsIPrintProgress.h>
++#include <nsIPrintProgressParams.h>
++#include <nsWeakReference.h>
++
++#include <gtk/gtkwidget.h>
++#include <gtk/gtkprintjob.h>
++#include <gtk/gtkprinter.h>
++#include <gtk/gtkprintjob.h>
++
++class nsIPrintSettings;
++class nsIDOMWindow;
++
++/* 0940c973-97e7-476f-a612-4ed9473a0b36 */
++#define GECKO_PRINT_SESSION_IID \
++{ 0x0940c973, 0x97e7, 0x476f, \
++ { 0xa6, 0x12, 0x4e, 0xd9, 0x47, 0x3a, 0x0b, 0x36 } }
++
++#define GECKO_PRINT_SESSION_CLASSNAME "Gecko Print Session"
++
++class GeckoPrintSession : public nsIPrintSession,
++ public nsIPrintProgress,
++ public nsIPrintProgressParams,
++ public nsSupportsWeakReference
++{
++ public:
++ GeckoPrintSession();
++ virtual ~GeckoPrintSession();
++
++ NS_DECL_ISUPPORTS
++ NS_DECL_NSIPRINTSESSION
++ NS_DECL_NSIWEBPROGRESSLISTENER
++ NS_DECL_NSIPRINTPROGRESS
++ NS_DECL_NSIPRINTPROGRESSPARAMS
++
++ nsresult SetSettings (nsIPrintSettings *, GtkPrintSettings*, GtkPageSetup*, GtkPrinter*);
++ void GetSourceFile (nsACString&);
++
++ static GeckoPrintSession *FromSettings (nsIPrintSettings *);
++
++ void Cancel ();
++ void StartPrinting ();
++ void JobStatusChanged ();
++ void JobDone ();
++ void JobError (const char *);
++
++ private:
++ nsCOMPtr<nsIPrintSettings> mPrintSettings;
++ GtkPrintSettings *mSettings;
++ GtkPageSetup *mPageSetup;
++ GtkPrinter *mPrinter;
++ GtkPrintJob *mJob;
++ GtkWidget *mProgressDialog;
++ GtkWidget *mTitleLabel;
++ GtkWidget *mProgressBar;
++ nsCString mSourceFile;
++ nsCString mTitle;
++ guint mStartPrintIdleID;
++ PRPackedBool mSourceFileIsTemp;
++ PRPackedBool mDone;
++ PRPackedBool mCancelled;
++
++ void SetProgress (PRInt32, PRInt32);
++ void SetProgressText (const char *);
++ void LaunchJobOnIdle ();
++ void DestroyJob ();
++};
++
++#endif /* GECKO_PRINT_SESSION_H */
+diff -urN galeon-2.0.7.orig/mozilla/Makefile.am galeon-2.0.7/mozilla/Makefile.am
+--- galeon-2.0.7.orig/mozilla/Makefile.am 2008-09-03 05:13:36.000000000 +0200
++++ galeon-2.0.7/mozilla/Makefile.am 2009-02-15 09:39:07.000000000 +0100
+@@ -127,8 +127,10 @@
+ MozillaPrivate.h \
+ MozRegisterComponents.cpp \
+ MozRegisterComponents.h \
+- PrintingPromptService.cpp \
+- PrintingPromptService.h \
++ GeckoPrintService.cpp \
++ GeckoPrintService.h \
++ GeckoPrintSession.cpp \
++ GeckoPrintSession.h \
+ PrintProgressListener.cpp \
+ PrintProgressListener.h \
+ JSConsoleListener.cpp \
+diff -urN galeon-2.0.7.orig/mozilla/mozilla-embed.cpp galeon-2.0.7/mozilla/mozilla-embed.cpp
+--- galeon-2.0.7.orig/mozilla/mozilla-embed.cpp 2008-09-05 04:29:53.000000000 +0200
++++ galeon-2.0.7/mozilla/mozilla-embed.cpp 2009-02-15 09:39:07.000000000 +0100
+@@ -22,6 +22,8 @@
+
+ #include <nscore.h>
+ #include <nsServiceManagerUtils.h>
++#include <nsIPrintSettingsService.h>
++#include <nsIPrintSettings.h>
+
+ #define MOZILLA_CLIENT
+ #include "gtkmozembed.h"
+@@ -995,33 +997,12 @@
+ }
+
+ static gboolean
+-impl_print (GaleonEmbed *embed,
+- EmbedPrintInfo *info)
++impl_print (GaleonEmbed *embed)
+ {
+ GaleonWrapper *wrapper = MOZILLA_EMBED(embed)->priv->wrapper;
+- nsresult result;
+-
+- nsCOMPtr<nsIPrintSettings> options;
+- result = GaleonUtils::EmbedPrintInfoToPrintSettings(info,
+- getter_AddRefs(options));
+- if (NS_FAILED (result)) return FALSE;
+-
+- char *string;
+-
+- string = gtk_moz_embed_get_title (GTK_MOZ_EMBED (embed));
+- options->SetTitle (GulString (string).get());
+- g_free (string);
+
+- string = mozilla_embed_get_real_location (MOZILLA_EMBED (embed));
+- options->SetDocURL(GulString (string).get());
+- g_free (string);
+-
+- options->SetPrintSilent (PR_TRUE);
+-
+- result = wrapper->Print(options, info->preview,
+- GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (embed))));
+-
+- options->SetPrintSilent (PR_FALSE);
++ nsresult result;
++ result = wrapper->Print();
+
+ return NS_SUCCEEDED (result) ? TRUE : FALSE;
+ }
+diff -urN galeon-2.0.7.orig/mozilla/mozilla-embed-shell.cpp galeon-2.0.7/mozilla/mozilla-embed-shell.cpp
+--- galeon-2.0.7.orig/mozilla/mozilla-embed-shell.cpp 2008-09-03 06:58:17.000000000 +0200
++++ galeon-2.0.7/mozilla/mozilla-embed-shell.cpp 2009-02-15 09:39:07.000000000 +0100
+@@ -1040,14 +1040,6 @@
+ #endif
+ }
+
+-static GList *
+-impl_get_printer_info(GaleonEmbedShell *shell,
+- gint *defaultPrinterIndex)
+-{
+- return MozillaPrivate::GetPrinterList (defaultPrinterIndex);
+-}
+-
+-
+ static void
+ mozilla_embed_shell_class_init (MozillaEmbedShellClass *klass)
+ {
+@@ -1073,7 +1065,6 @@
+ shell_class->remove_cookies = impl_remove_cookies;
+ shell_class->list_passwords = impl_list_passwords;
+ shell_class->remove_passwords = impl_remove_passwords;
+- shell_class->get_printer_info = impl_get_printer_info;
+
+ g_type_class_add_private (klass, sizeof (MozillaEmbedShellPrivate));
+ }
+diff -urN galeon-2.0.7.orig/mozilla/MozillaPrivate.cpp galeon-2.0.7/mozilla/MozillaPrivate.cpp
+--- galeon-2.0.7.orig/mozilla/MozillaPrivate.cpp 2008-09-05 04:34:37.000000000 +0200
++++ galeon-2.0.7/mozilla/MozillaPrivate.cpp 2009-02-15 09:39:07.000000000 +0100
+@@ -32,7 +32,6 @@
+ #include <nsIHTMLDocument.h>
+ #endif
+
+-#include <nsIPrintOptions.h>
+ #include <nsIDocument.h>
+ #include <nsIPresShell.h>
+ #include <nsIStyleSheet.h>
+@@ -62,96 +61,6 @@
+
+ #include "GaleonUtils.h"
+
+-GList *
+-MozillaPrivate::GetPrinterList (gint* defaultPrinterIndex)
+-{
+- GList *printerList = NULL;
+- nsresult rv = NS_OK;
+-
+- *defaultPrinterIndex = -1;
+-
+- nsCOMPtr<nsIPrintSettingsService> pss =
+- do_GetService("@mozilla.org/gfx/printsettings-service;1", &rv);
+- NS_ENSURE_SUCCESS(rv, NULL);
+-
+- nsCOMPtr<nsIPrintOptions> po = do_QueryInterface(pss, &rv);
+- NS_ENSURE_SUCCESS(rv, NULL);
+-
+- PRUnichar *uDefaultPrinter;
+- rv = pss->GetDefaultPrinterName(&uDefaultPrinter);
+- nsAutoString defaultPrinter(uDefaultPrinter);
+- NS_Free(uDefaultPrinter);
+- NS_ENSURE_SUCCESS(rv, NULL);
+-
+-#ifdef HAVE_NSIPRINTOPTIONS_AVAILABLEPRINTERS
+- nsCOMPtr<nsISimpleEnumerator> printers;
+- rv = po->AvailablePrinters(getter_AddRefs(printers));
+- NS_ENSURE_SUCCESS(rv, NULL);
+-#else
+- nsCOMPtr<nsIPrinterEnumerator> pe = do_QueryInterface(pss, &rv);
+- NS_ENSURE_SUCCESS(rv, NULL);
+-
+- nsCOMPtr<nsIStringEnumerator> printers;
+- rv = pe->GetPrinterNameList(getter_AddRefs(printers));
+- NS_ENSURE_SUCCESS(rv, NULL);
+-#endif
+-
+- PRBool more = PR_FALSE;
+- gint index = 0;
+-
+-#ifdef HAVE_NSIPRINTOPTIONS_AVAILABLEPRINTERS
+- for (printers->HasMoreElements(&more), index = 0;
+- more == PR_TRUE;
+- printers->HasMoreElements(&more), index++)
+- {
+- nsCOMPtr<nsISupports> i;
+- rv = printers->GetNext(getter_AddRefs(i));
+- NS_ENSURE_SUCCESS(rv, NULL);
+-
+- nsCOMPtr<nsISupportsString> printer = do_QueryInterface(i, &rv);
+- NS_ENSURE_SUCCESS(rv, NULL);
+-
+- nsAutoString name;
+- rv = printer->GetData(name);
+- NS_ENSURE_SUCCESS(rv, NULL);
+-#else
+- for (printers->HasMore(&more), index = 0;
+- more == PR_TRUE;
+- printers->HasMore(&more), index++)
+- {
+- nsAutoString name;
+- rv = printers->GetNext(name);
+-#endif
+-
+- if (defaultPrinter.Equals(name)) *defaultPrinterIndex = index;
+-
+- nsCOMPtr<nsIPrintSettings> ps;
+- rv = pss->GetNewPrintSettings(getter_AddRefs(ps));
+- NS_ENSURE_SUCCESS(rv, NULL);
+-
+- rv = pss->InitPrintSettingsFromPrinter(name.get(), ps);
+- NS_ENSURE_SUCCESS(rv, NULL);
+-
+- // Name field isn't inited. How dumb can we get?
+- rv = ps->SetPrinterName(name.get());
+- NS_ENSURE_SUCCESS(rv, NULL);
+-
+- EmbedPrintInfo *info;
+- GaleonUtils::PrintSettingsToEmbedPrintInfo(ps, &info);
+- printerList = g_list_append(printerList, info);
+-
+-#if HAVE_NSIPRINTOPTIONS_AVAILABLEPRINTERS
+- rv = printers->HasMoreElements(&more);
+-#else
+- rv = printers->HasMore(&more);
+-#endif
+- NS_ENSURE_SUCCESS(rv, NULL);
+- }
+-
+- return printerList;
+-}
+-
+-
+ nsresult
+ MozillaPrivate::LoadOverrideStyleSheet (nsIDocShell *aDocShell, nsIURI *aUri,
+ nsIStyleSheet**aStyleSheet)
+diff -urN galeon-2.0.7.orig/mozilla/MozRegisterComponents.cpp galeon-2.0.7/mozilla/MozRegisterComponents.cpp
+--- galeon-2.0.7.orig/mozilla/MozRegisterComponents.cpp 2008-09-03 05:08:44.000000000 +0200
++++ galeon-2.0.7/mozilla/MozRegisterComponents.cpp 2009-02-15 09:39:07.000000000 +0100
+@@ -25,7 +25,8 @@
+ #include "FilePicker.h"
+ #include "GlobalHistory.h"
+ #include "MyportalProtocolHandler.h"
+-#include "PrintingPromptService.h"
++#include "GeckoPrintService.h"
++#include "GeckoPrintSession.h"
+ #include "ProgressListener.h"
+ #include "SideBarProxy.h"
+ #include "EphyPromptService.h"
+@@ -69,7 +70,8 @@
+ NS_GENERIC_FACTORY_CONSTRUCTOR(GFilePicker)
+ NS_GENERIC_FACTORY_CONSTRUCTOR(GContentHandler)
+ NS_GENERIC_FACTORY_CONSTRUCTOR(MozGlobalHistory)
+-NS_GENERIC_FACTORY_CONSTRUCTOR(GPrintingPromptService)
++NS_GENERIC_FACTORY_CONSTRUCTOR(GeckoPrintService)
++NS_GENERIC_FACTORY_CONSTRUCTOR(GeckoPrintSession)
+ NS_GENERIC_FACTORY_CONSTRUCTOR(GSidebarProxy)
+ NS_DECL_CLASSINFO(GSidebarProxy)
+ NS_GENERIC_FACTORY_CONSTRUCTOR(GCookiePromptService)
+@@ -161,11 +163,17 @@
+ MozGlobalHistoryConstructor
+ },
+ {
+- G_PRINTINGPROMPTSERVICE_CLASSNAME,
+- G_PRINTINGPROMPTSERVICE_CID,
+- G_PRINTINGPROMPTSERVICE_CONTRACTID,
+- GPrintingPromptServiceConstructor
+- },
++ GECKO_PRINT_SERVICE_CLASSNAME,
++ GECKO_PRINT_SERVICE_IID,
++ "@mozilla.org/embedcomp/printingprompt-service;1",
++ GeckoPrintServiceConstructor
++ },
++ {
++ GECKO_PRINT_SESSION_CLASSNAME,
++ GECKO_PRINT_SESSION_IID,
++ "@mozilla.org/gfx/printsession;1",
++ GeckoPrintSessionConstructor
++ },
+ {
+ G_SIDEBAR_CLASSNAME,
+ G_SIDEBAR_CID,
+diff -urN galeon-2.0.7.orig/src/window-commands.c galeon-2.0.7/src/window-commands.c
+--- galeon-2.0.7.orig/src/window-commands.c 2008-07-04 18:30:50.000000000 +0200
++++ galeon-2.0.7/src/window-commands.c 2009-02-15 09:39:07.000000000 +0100
+@@ -21,7 +21,6 @@
+ #include "galeon-shell.h"
+ #include "galeon-config.h"
+ #include "window-commands.h"
+-#include "print-dialog.h"
+ #include "bookmarks-add-dialog.h"
+ #include "bookmarks-editor.h"
+ #include "eel-gconf-extensions.h"
+@@ -66,14 +65,6 @@
+ RESPONSE_ADD_TOOLBAR
+ };
+
+-
+-static void
+-print_dialog_preview_cb (PrintDialog *dialog,
+- GaleonWindow *window)
+-{
+- galeon_window_set_chrome (window, EMBED_CHROME_PPVIEWTOOLBARON);
+-}
+-
+ void
+ window_cmd_file_print (GtkAction *action,
+ GaleonWindow *window)
+@@ -83,15 +74,8 @@
+
+ embed = galeon_window_get_active_embed (window);
+ g_return_if_fail (embed != NULL);
+-
+- dialog = print_dialog_new_with_parent (GTK_WIDGET(window),
+- embed, NULL);
+- g_signal_connect (G_OBJECT(dialog),
+- "preview",
+- G_CALLBACK (print_dialog_preview_cb),
+- window);
+- galeon_dialog_set_modal (dialog, TRUE);
+- galeon_dialog_show (dialog);
++
++ galeon_embed_print (embed);
+ }
+
+ void
+diff -urN galeon-2.0.7.orig/ui/Makefile.am galeon-2.0.7/ui/Makefile.am
+--- galeon-2.0.7.orig/ui/Makefile.am 2008-07-04 18:30:59.000000000 +0200
++++ galeon-2.0.7/ui/Makefile.am 2009-02-15 09:39:07.000000000 +0100
+@@ -1,5 +1,5 @@
+ ui_DATA = prefs-dialog.glade \
+- print.glade \
++ print-tab.xml \
+ bookmarks-editor.glade \
+ bookmarks-editor-small.glade \
+ bookmarks.glade \
+diff -urN galeon-2.0.7.orig/ui/print.glade galeon-2.0.7/ui/print.glade
+--- galeon-2.0.7.orig/ui/print.glade 2008-07-04 18:30:59.000000000 +0200
++++ galeon-2.0.7/ui/print.glade 2009-02-15 09:39:07.000000000 +0100
+@@ -1,1746 +0,0 @@
+-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
+-
+-<glade-interface>
+-<requires lib="gnome"/>
+-
+-<widget class="GtkDialog" id="print_dialog">
+- <property name="border_width">7</property>
+- <property name="visible">True</property>
+- <property name="title" translatable="yes">Print</property>
+- <property name="type">GTK_WINDOW_TOPLEVEL</property>
+- <property name="window_position">GTK_WIN_POS_NONE</property>
+- <property name="modal">False</property>
+- <property name="resizable">False</property>
+- <property name="destroy_with_parent">False</property>
+- <property name="role">galeon-print-dialog</property>
+- <property name="decorated">True</property>
+- <property name="skip_taskbar_hint">False</property>
+- <property name="skip_pager_hint">False</property>
+- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+- <property name="has_separator">False</property>
+-
+- <child internal-child="vbox">
+- <widget class="GtkVBox" id="dialog-vbox8">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">6</property>
+-
+- <child internal-child="action_area">
+- <widget class="GtkHButtonBox" id="dialog-action_area8">
+- <property name="visible">True</property>
+- <property name="layout_style">GTK_BUTTONBOX_END</property>
+-
+- <child>
+- <widget class="GtkButton" id="preview_button">
+- <property name="visible">True</property>
+- <property name="can_default">True</property>
+- <property name="can_focus">True</property>
+- <property name="label">gtk-print-preview</property>
+- <property name="use_stock">True</property>
+- <property name="relief">GTK_RELIEF_NORMAL</property>
+- <property name="focus_on_click">True</property>
+- <property name="response_id">50</property>
+- <signal name="clicked" handler="print_preview_button_cb"/>
+- </widget>
+- </child>
+-
+- <child>
+- <widget class="GtkButton" id="cancel_button">
+- <property name="visible">True</property>
+- <property name="can_default">True</property>
+- <property name="can_focus">True</property>
+- <property name="label">gtk-cancel</property>
+- <property name="use_stock">True</property>
+- <property name="relief">GTK_RELIEF_NORMAL</property>
+- <property name="focus_on_click">True</property>
+- <property name="response_id">-6</property>
+- <signal name="clicked" handler="print_cancel_button_cb"/>
+- </widget>
+- </child>
+-
+- <child>
+- <widget class="GtkButton" id="print_button">
+- <property name="visible">True</property>
+- <property name="can_default">True</property>
+- <property name="has_default">True</property>
+- <property name="can_focus">True</property>
+- <property name="label">gtk-print</property>
+- <property name="use_stock">True</property>
+- <property name="relief">GTK_RELIEF_NORMAL</property>
+- <property name="focus_on_click">True</property>
+- <property name="response_id">-5</property>
+- <signal name="clicked" handler="print_ok_button_cb"/>
+- </widget>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- <property name="pack_type">GTK_PACK_END</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkNotebook" id="print_notebook">
+- <property name="border_width">5</property>
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="show_tabs">True</property>
+- <property name="show_border">True</property>
+- <property name="tab_pos">GTK_POS_TOP</property>
+- <property name="scrollable">False</property>
+- <property name="enable_popup">False</property>
+-
+- <child>
+- <widget class="GtkVBox" id="vbox127">
+- <property name="border_width">12</property>
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">18</property>
+-
+- <child>
+- <widget class="GtkVBox" id="vbox128">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">6</property>
+-
+- <child>
+- <widget class="GtkLabel" id="label251">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes"><b>Printer</b></property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">True</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkHBox" id="hbox70">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">0</property>
+-
+- <child>
+- <widget class="GtkLabel" id="label252">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes"> </property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0.5</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkTable" id="table47">
+- <property name="visible">True</property>
+- <property name="n_rows">3</property>
+- <property name="n_columns">2</property>
+- <property name="homogeneous">False</property>
+- <property name="row_spacing">6</property>
+- <property name="column_spacing">12</property>
+-
+- <child>
+- <widget class="GnomeFileEntry" id="print_gnome_file_entry">
+- <property name="visible">True</property>
+- <property name="max_saved">10</property>
+- <property name="browse_dialog_title" translatable="yes">Choose a file to print to</property>
+- <property name="directory_entry">False</property>
+- <property name="modal">True</property>
+- <property name="use_filechooser">True</property>
+- <property name="filechooser-action">1</property>
+-
+- <child internal-child="entry">
+- <widget class="GtkEntry" id="file_entry">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="editable">True</property>
+- <property name="visibility">True</property>
+- <property name="max_length">0</property>
+- <property name="text" translatable="yes"></property>
+- <property name="has_frame">True</property>
+- <property name="invisible_char" translatable="yes">*</property>
+- <property name="activates_default">False</property>
+- </widget>
+- </child>
+- </widget>
+- <packing>
+- <property name="left_attach">1</property>
+- <property name="right_attach">2</property>
+- <property name="top_attach">2</property>
+- <property name="bottom_attach">3</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkCheckButton" id="print_to_file_checkbox">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="label" translatable="yes">Print to _file:</property>
+- <property name="use_underline">True</property>
+- <property name="relief">GTK_RELIEF_NORMAL</property>
+- <property name="focus_on_click">True</property>
+- <property name="active">False</property>
+- <property name="inconsistent">False</property>
+- <property name="draw_indicator">True</property>
+- <signal name="toggled" handler="print_to_file_toggled_cb" last_modification_time="Sat, 10 Jul 2004 05:06:56 GMT"/>
+- </widget>
+- <packing>
+- <property name="left_attach">0</property>
+- <property name="right_attach">1</property>
+- <property name="top_attach">2</property>
+- <property name="bottom_attach">3</property>
+- <property name="x_options">fill</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkLabel" id="command_label">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes">Co_mmand:</property>
+- <property name="use_underline">True</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- <property name="mnemonic_widget">printer_entry</property>
+- </widget>
+- <packing>
+- <property name="left_attach">0</property>
+- <property name="right_attach">1</property>
+- <property name="top_attach">1</property>
+- <property name="bottom_attach">2</property>
+- <property name="x_options">fill</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkEntry" id="printer_entry">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="editable">True</property>
+- <property name="visibility">True</property>
+- <property name="max_length">0</property>
+- <property name="text" translatable="yes">lpr</property>
+- <property name="has_frame">True</property>
+- <property name="invisible_char" translatable="yes">*</property>
+- <property name="activates_default">False</property>
+- </widget>
+- <packing>
+- <property name="left_attach">1</property>
+- <property name="right_attach">2</property>
+- <property name="top_attach">1</property>
+- <property name="bottom_attach">2</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkLabel" id="printer_label">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes">Print_er:</property>
+- <property name="use_underline">True</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="left_attach">0</property>
+- <property name="right_attach">1</property>
+- <property name="top_attach">0</property>
+- <property name="bottom_attach">1</property>
+- <property name="x_options">fill</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkComboBox" id="printer_name_combobox">
+- <property name="visible">True</property>
+- <property name="items" translatable="yes">DYNAMIC</property>
+- <signal name="changed" handler="print_printer_combo_cb" last_modification_time="Mon, 05 Jul 2004 18:49:50 GMT"/>
+- </widget>
+- <packing>
+- <property name="left_attach">1</property>
+- <property name="right_attach">2</property>
+- <property name="top_attach">0</property>
+- <property name="bottom_attach">1</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkVBox" id="vbox145">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">6</property>
+-
+- <child>
+- <widget class="GtkLabel" id="label279">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes"><b>Paper</b></property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">True</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkHBox" id="hbox86">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">0</property>
+-
+- <child>
+- <widget class="GtkLabel" id="label278">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes"> </property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0.5</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkTable" id="table50">
+- <property name="visible">True</property>
+- <property name="n_rows">3</property>
+- <property name="n_columns">2</property>
+- <property name="homogeneous">False</property>
+- <property name="row_spacing">6</property>
+- <property name="column_spacing">12</property>
+-
+- <child>
+- <widget class="GtkLabel" id="size_label">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes">Si_ze:</property>
+- <property name="use_underline">True</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="left_attach">0</property>
+- <property name="right_attach">1</property>
+- <property name="top_attach">0</property>
+- <property name="bottom_attach">1</property>
+- <property name="x_options">fill</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkLabel" id="orientation_label">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes">Orientation:</property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="left_attach">0</property>
+- <property name="right_attach">1</property>
+- <property name="top_attach">1</property>
+- <property name="bottom_attach">2</property>
+- <property name="x_options">fill</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkComboBox" id="paper_combobox">
+- <property name="visible">True</property>
+- <property name="items" translatable="yes">DYNAMIC</property>
+- </widget>
+- <packing>
+- <property name="left_attach">1</property>
+- <property name="right_attach">2</property>
+- <property name="top_attach">0</property>
+- <property name="bottom_attach">1</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkRadioButton" id="orient_p_radiobutton">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="label" translatable="yes">P_ortrait</property>
+- <property name="use_underline">True</property>
+- <property name="relief">GTK_RELIEF_NORMAL</property>
+- <property name="focus_on_click">True</property>
+- <property name="active">False</property>
+- <property name="inconsistent">False</property>
+- <property name="draw_indicator">True</property>
+- </widget>
+- <packing>
+- <property name="left_attach">1</property>
+- <property name="right_attach">2</property>
+- <property name="top_attach">1</property>
+- <property name="bottom_attach">2</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkRadioButton" id="orient_l_radiobutton">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="label" translatable="yes">Lan_dscape</property>
+- <property name="use_underline">True</property>
+- <property name="relief">GTK_RELIEF_NORMAL</property>
+- <property name="focus_on_click">True</property>
+- <property name="active">False</property>
+- <property name="inconsistent">False</property>
+- <property name="draw_indicator">True</property>
+- <property name="group">orient_p_radiobutton</property>
+- </widget>
+- <packing>
+- <property name="left_attach">1</property>
+- <property name="right_attach">2</property>
+- <property name="top_attach">2</property>
+- <property name="bottom_attach">3</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkVBox" id="vbox129">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">6</property>
+-
+- <child>
+- <widget class="GtkLabel" id="label253">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes"><b>Pages range</b></property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">True</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkHBox" id="hbox71">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">0</property>
+-
+- <child>
+- <widget class="GtkLabel" id="label254">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes"> </property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0.5</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkTable" id="table49">
+- <property name="visible">True</property>
+- <property name="n_rows">3</property>
+- <property name="n_columns">2</property>
+- <property name="homogeneous">False</property>
+- <property name="row_spacing">6</property>
+- <property name="column_spacing">12</property>
+-
+- <child>
+- <widget class="GtkRadioButton" id="all_pages_radiobutton">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="label" translatable="yes">_All pages</property>
+- <property name="use_underline">True</property>
+- <property name="relief">GTK_RELIEF_NORMAL</property>
+- <property name="focus_on_click">True</property>
+- <property name="active">False</property>
+- <property name="inconsistent">False</property>
+- <property name="draw_indicator">True</property>
+- </widget>
+- <packing>
+- <property name="left_attach">0</property>
+- <property name="right_attach">1</property>
+- <property name="top_attach">0</property>
+- <property name="bottom_attach">1</property>
+- <property name="x_options">fill</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkRadioButton" id="pages_radiobutton">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="label" translatable="yes">Pa_ges</property>
+- <property name="use_underline">True</property>
+- <property name="relief">GTK_RELIEF_NORMAL</property>
+- <property name="focus_on_click">True</property>
+- <property name="active">False</property>
+- <property name="inconsistent">False</property>
+- <property name="draw_indicator">True</property>
+- <property name="group">all_pages_radiobutton</property>
+- </widget>
+- <packing>
+- <property name="left_attach">0</property>
+- <property name="right_attach">1</property>
+- <property name="top_attach">2</property>
+- <property name="bottom_attach">3</property>
+- <property name="x_options">fill</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkHBox" id="hbox49">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">5</property>
+-
+- <child>
+- <widget class="GtkLabel" id="label241">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes">from:</property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_CENTER</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0.5</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkSpinButton" id="from_spinbutton">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="climb_rate">1</property>
+- <property name="digits">0</property>
+- <property name="numeric">False</property>
+- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+- <property name="snap_to_ticks">False</property>
+- <property name="wrap">False</property>
+- <property name="adjustment">1 0 100 1 10 10</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkLabel" id="label242">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes">to:</property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_CENTER</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0.5</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkSpinButton" id="to_spinbutton">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="climb_rate">1</property>
+- <property name="digits">0</property>
+- <property name="numeric">False</property>
+- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+- <property name="snap_to_ticks">False</property>
+- <property name="wrap">False</property>
+- <property name="adjustment">1 0 100 1 10 10</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="left_attach">1</property>
+- <property name="right_attach">2</property>
+- <property name="top_attach">2</property>
+- <property name="bottom_attach">3</property>
+- <property name="y_options">fill</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkRadioButton" id="selection_radiobutton">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="label" translatable="yes">_Selection</property>
+- <property name="use_underline">True</property>
+- <property name="relief">GTK_RELIEF_NORMAL</property>
+- <property name="focus_on_click">True</property>
+- <property name="active">False</property>
+- <property name="inconsistent">False</property>
+- <property name="draw_indicator">True</property>
+- <property name="group">all_pages_radiobutton</property>
+- </widget>
+- <packing>
+- <property name="left_attach">0</property>
+- <property name="right_attach">1</property>
+- <property name="top_attach">1</property>
+- <property name="bottom_attach">2</property>
+- <property name="x_options">fill</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="tab_expand">False</property>
+- <property name="tab_fill">True</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkLabel" id="label249">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes">General</property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0.5</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="type">tab</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkVBox" id="vbox144">
+- <property name="border_width">12</property>
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">18</property>
+-
+- <child>
+- <widget class="GtkHBox" id="hbox84">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">18</property>
+-
+- <child>
+- <widget class="GtkVBox" id="vbox137">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">6</property>
+-
+- <child>
+- <widget class="GtkLabel" id="label261">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes"><b>Margins (inches)</b></property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">True</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkHBox" id="hbox78">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">0</property>
+-
+- <child>
+- <widget class="GtkLabel" id="label271">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes"> </property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0.5</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkTable" id="table48">
+- <property name="visible">True</property>
+- <property name="n_rows">4</property>
+- <property name="n_columns">2</property>
+- <property name="homogeneous">False</property>
+- <property name="row_spacing">6</property>
+- <property name="column_spacing">12</property>
+-
+- <child>
+- <widget class="GtkLabel" id="label238">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes">_Bottom:</property>
+- <property name="use_underline">True</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_CENTER</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- <property name="mnemonic_widget">bottom_spinbutton</property>
+- </widget>
+- <packing>
+- <property name="left_attach">0</property>
+- <property name="right_attach">1</property>
+- <property name="top_attach">1</property>
+- <property name="bottom_attach">2</property>
+- <property name="x_options">fill</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkLabel" id="label239">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes">_Left:</property>
+- <property name="use_underline">True</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_CENTER</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- <property name="mnemonic_widget">left_spinbutton</property>
+- </widget>
+- <packing>
+- <property name="left_attach">0</property>
+- <property name="right_attach">1</property>
+- <property name="top_attach">2</property>
+- <property name="bottom_attach">3</property>
+- <property name="x_options">fill</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkLabel" id="label240">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes">_Right:</property>
+- <property name="use_underline">True</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_CENTER</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- <property name="mnemonic_widget">right_spinbutton</property>
+- </widget>
+- <packing>
+- <property name="left_attach">0</property>
+- <property name="right_attach">1</property>
+- <property name="top_attach">3</property>
+- <property name="bottom_attach">4</property>
+- <property name="x_options">fill</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkLabel" id="label237">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes">_Top:</property>
+- <property name="use_underline">True</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_CENTER</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- <property name="mnemonic_widget">top_spinbutton</property>
+- </widget>
+- <packing>
+- <property name="left_attach">0</property>
+- <property name="right_attach">1</property>
+- <property name="top_attach">0</property>
+- <property name="bottom_attach">1</property>
+- <property name="x_options">fill</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkSpinButton" id="bottom_spinbutton">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="climb_rate">0.1</property>
+- <property name="digits">1</property>
+- <property name="numeric">True</property>
+- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+- <property name="snap_to_ticks">False</property>
+- <property name="wrap">False</property>
+- <property name="adjustment">0.6 0 100 0.1 10 10</property>
+- </widget>
+- <packing>
+- <property name="left_attach">1</property>
+- <property name="right_attach">2</property>
+- <property name="top_attach">1</property>
+- <property name="bottom_attach">2</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkSpinButton" id="left_spinbutton">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="climb_rate">0.1</property>
+- <property name="digits">1</property>
+- <property name="numeric">True</property>
+- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+- <property name="snap_to_ticks">False</property>
+- <property name="wrap">False</property>
+- <property name="adjustment">0.5 0 100 0.1 10 10</property>
+- </widget>
+- <packing>
+- <property name="left_attach">1</property>
+- <property name="right_attach">2</property>
+- <property name="top_attach">2</property>
+- <property name="bottom_attach">3</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkSpinButton" id="top_spinbutton">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="climb_rate">0.1</property>
+- <property name="digits">1</property>
+- <property name="numeric">True</property>
+- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+- <property name="snap_to_ticks">False</property>
+- <property name="wrap">False</property>
+- <property name="adjustment">0.3 0 100 0.1 10 10</property>
+- </widget>
+- <packing>
+- <property name="left_attach">1</property>
+- <property name="right_attach">2</property>
+- <property name="top_attach">0</property>
+- <property name="bottom_attach">1</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkSpinButton" id="right_spinbutton">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="climb_rate">0.1</property>
+- <property name="digits">1</property>
+- <property name="numeric">True</property>
+- <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+- <property name="snap_to_ticks">False</property>
+- <property name="wrap">False</property>
+- <property name="adjustment">0.5 0 100 0.1 10 10</property>
+- </widget>
+- <packing>
+- <property name="left_attach">1</property>
+- <property name="right_attach">2</property>
+- <property name="top_attach">3</property>
+- <property name="bottom_attach">4</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkVBox" id="vbox141">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">6</property>
+-
+- <child>
+- <widget class="GtkLabel" id="label272">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes"><b>Colors</b></property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">True</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkHBox" id="hbox80">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">0</property>
+-
+- <child>
+- <widget class="GtkLabel" id="label273">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes"> </property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0.5</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkVBox" id="vbox142">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">6</property>
+-
+- <child>
+- <widget class="GtkRadioButton" id="print_color_radiobutton">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="label" translatable="yes">C_olor</property>
+- <property name="use_underline">True</property>
+- <property name="relief">GTK_RELIEF_NORMAL</property>
+- <property name="focus_on_click">True</property>
+- <property name="active">False</property>
+- <property name="inconsistent">False</property>
+- <property name="draw_indicator">True</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkRadioButton" id="print_grayscale_radiobutton">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="label" translatable="yes">_Grayscale</property>
+- <property name="use_underline">True</property>
+- <property name="relief">GTK_RELIEF_NORMAL</property>
+- <property name="focus_on_click">True</property>
+- <property name="active">False</property>
+- <property name="inconsistent">False</property>
+- <property name="draw_indicator">True</property>
+- <property name="group">print_color_radiobutton</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkImage" id="image2">
+- <property name="visible">True</property>
+- <property name="stock">gtk-select-color</property>
+- <property name="icon_size">6</property>
+- <property name="xalign">0.5</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkHBox" id="hbox85">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">0</property>
+-
+- <child>
+- <widget class="GtkVBox" id="vbox140">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">6</property>
+-
+- <child>
+- <widget class="GtkLabel" id="label269">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes"><b>Footers</b></property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">True</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkHBox" id="hbox77">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">0</property>
+-
+- <child>
+- <widget class="GtkLabel" id="label270">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes"> </property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0.5</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkVBox" id="vbox125">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">6</property>
+-
+- <child>
+- <widget class="GtkCheckButton" id="print_page_numbers_checkbutton">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="label" translatable="yes">Page nu_mbers</property>
+- <property name="use_underline">True</property>
+- <property name="relief">GTK_RELIEF_NORMAL</property>
+- <property name="focus_on_click">True</property>
+- <property name="active">False</property>
+- <property name="inconsistent">False</property>
+- <property name="draw_indicator">True</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkCheckButton" id="print_date_checkbutton">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="label" translatable="yes">_Date</property>
+- <property name="use_underline">True</property>
+- <property name="relief">GTK_RELIEF_NORMAL</property>
+- <property name="focus_on_click">True</property>
+- <property name="active">False</property>
+- <property name="inconsistent">False</property>
+- <property name="draw_indicator">True</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkVBox" id="vbox138">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">6</property>
+-
+- <child>
+- <widget class="GtkLabel" id="label267">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes"><b>Headers</b></property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">True</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkHBox" id="hbox76">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">0</property>
+-
+- <child>
+- <widget class="GtkLabel" id="label268">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes"> </property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0.5</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkVBox" id="vbox124">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">6</property>
+-
+- <child>
+- <widget class="GtkCheckButton" id="print_page_title_checkbutton">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="label" translatable="yes">P_age Title</property>
+- <property name="use_underline">True</property>
+- <property name="relief">GTK_RELIEF_NORMAL</property>
+- <property name="focus_on_click">True</property>
+- <property name="active">False</property>
+- <property name="inconsistent">False</property>
+- <property name="draw_indicator">True</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkCheckButton" id="print_page_url_checkbutton">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="label" translatable="yes">Page _URL</property>
+- <property name="use_underline">True</property>
+- <property name="relief">GTK_RELIEF_NORMAL</property>
+- <property name="focus_on_click">True</property>
+- <property name="active">False</property>
+- <property name="inconsistent">False</property>
+- <property name="draw_indicator">True</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="tab_expand">False</property>
+- <property name="tab_fill">True</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkLabel" id="label276">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes">Appearance</property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0.5</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="type">tab</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+- </widget>
+- </child>
+-</widget>
+-
+-<widget class="GtkDialog" id="print_progress_dialog">
+- <property name="border_width">7</property>
+- <property name="title" translatable="yes">Printing...</property>
+- <property name="type">GTK_WINDOW_TOPLEVEL</property>
+- <property name="window_position">GTK_WIN_POS_NONE</property>
+- <property name="modal">True</property>
+- <property name="resizable">True</property>
+- <property name="destroy_with_parent">True</property>
+- <property name="decorated">True</property>
+- <property name="skip_taskbar_hint">False</property>
+- <property name="skip_pager_hint">False</property>
+- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+- <property name="has_separator">False</property>
+-
+- <child internal-child="vbox">
+- <widget class="GtkVBox" id="dialog-vbox1">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">12</property>
+-
+- <child internal-child="action_area">
+- <widget class="GtkHButtonBox" id="dialog-action_area1">
+- <property name="layout_style">GTK_BUTTONBOX_END</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- <property name="pack_type">GTK_PACK_END</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkHBox" id="hbox1">
+- <property name="border_width">5</property>
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">12</property>
+-
+- <child>
+- <widget class="GtkImage" id="image1">
+- <property name="visible">True</property>
+- <property name="stock">gtk-print</property>
+- <property name="icon_size">6</property>
+- <property name="xalign">0.5</property>
+- <property name="yalign">0</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkVBox" id="vbox1">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">12</property>
+-
+- <child>
+- <widget class="GtkLabel" id="label1">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes"><span weight="bold" size="larger">Printing...</span></property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">True</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkTable" id="table1">
+- <property name="visible">True</property>
+- <property name="n_rows">2</property>
+- <property name="n_columns">2</property>
+- <property name="homogeneous">False</property>
+- <property name="row_spacing">6</property>
+- <property name="column_spacing">12</property>
+-
+- <child>
+- <widget class="GtkLabel" id="label2">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes"><b>Document:</b></property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">True</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="left_attach">0</property>
+- <property name="right_attach">1</property>
+- <property name="top_attach">0</property>
+- <property name="bottom_attach">1</property>
+- <property name="x_options">fill</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkLabel" id="destination_label">
+- <property name="visible">True</property>
+- <property name="label" translatable="yes">DYNAMIC</property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">True</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">False</property>
+- <property name="selectable">False</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="left_attach">0</property>
+- <property name="right_attach">1</property>
+- <property name="top_attach">1</property>
+- <property name="bottom_attach">2</property>
+- <property name="x_options">fill</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkLabel" id="document">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="label" translatable="yes">DYNAMIC</property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">True</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">True</property>
+- <property name="selectable">True</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="left_attach">1</property>
+- <property name="right_attach">2</property>
+- <property name="top_attach">0</property>
+- <property name="bottom_attach">1</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkLabel" id="destination">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="label" translatable="yes">DYNAMIC</property>
+- <property name="use_underline">False</property>
+- <property name="use_markup">False</property>
+- <property name="justify">GTK_JUSTIFY_LEFT</property>
+- <property name="wrap">True</property>
+- <property name="selectable">True</property>
+- <property name="xalign">0</property>
+- <property name="yalign">0.5</property>
+- <property name="xpad">0</property>
+- <property name="ypad">0</property>
+- </widget>
+- <packing>
+- <property name="left_attach">1</property>
+- <property name="right_attach">2</property>
+- <property name="top_attach">1</property>
+- <property name="bottom_attach">2</property>
+- <property name="y_options"></property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkProgressBar" id="progressbar">
+- <property name="visible">True</property>
+- <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
+- <property name="fraction">0</property>
+- <property name="pulse_step">0.1</property>
+- <property name="text" translatable="yes"></property>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+-
+- <child>
+- <widget class="GtkHBox" id="hbox2">
+- <property name="visible">True</property>
+- <property name="homogeneous">False</property>
+- <property name="spacing">0</property>
+-
+- <child>
+- <placeholder/>
+- </child>
+- </widget>
+- <packing>
+- <property name="padding">0</property>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- </packing>
+- </child>
+- </widget>
+- </child>
+-</widget>
+-
+-</glade-interface>
+diff -urN galeon-2.0.7.orig/ui/print-tab.xml galeon-2.0.7/ui/print-tab.xml
+--- galeon-2.0.7.orig/ui/print-tab.xml 1970-01-01 01:00:00.000000000 +0100
++++ galeon-2.0.7/ui/print-tab.xml 2009-02-15 09:39:07.000000000 +0100
+@@ -0,0 +1,431 @@
++<?xml version="1.0"?>
++<!--*- mode: xml -*-->
++<interface>
++ <object class="GtkVBox" id="custom_tab_container">
++ <property name="border_width">12</property>
++ <property name="visible">True</property>
++ <property name="homogeneous">False</property>
++ <property name="spacing">18</property>
++ <child>
++ <object class="GtkVBox" id="frame_box">
++ <property name="visible">True</property>
++ <property name="sensitive">False</property>
++ <property name="homogeneous">False</property>
++ <property name="spacing">6</property>
++ <child>
++ <object class="GtkLabel" id="label273">
++ <property name="visible">True</property>
++ <property name="label" translatable="yes"><b>Frames</b></property>
++ <property name="use_underline">False</property>
++ <property name="use_markup">True</property>
++ <property name="justify">GTK_JUSTIFY_LEFT</property>
++ <property name="wrap">False</property>
++ <property name="selectable">False</property>
++ <property name="xalign">0</property>
++ <property name="yalign">0.5</property>
++ <property name="xpad">0</property>
++ <property name="ypad">0</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
++ </object>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkAlignment" id="alignment5">
++ <property name="visible">True</property>
++ <property name="xalign">0.5</property>
++ <property name="yalign">0.5</property>
++ <property name="xscale">1</property>
++ <property name="yscale">1</property>
++ <property name="top_padding">0</property>
++ <property name="bottom_padding">0</property>
++ <property name="left_padding">12</property>
++ <property name="right_padding">0</property>
++ <child>
++ <object class="GtkVBox" id="vbox144">
++ <property name="visible">True</property>
++ <property name="homogeneous">False</property>
++ <property name="spacing">6</property>
++ <child>
++ <object class="GtkRadioButton" id="print_frames_normal">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="label" translatable="yes">As laid out on the _screen</property>
++ <property name="use_underline">True</property>
++ <property name="relief">GTK_RELIEF_NORMAL</property>
++ <property name="focus_on_click">True</property>
++ <property name="active">False</property>
++ <property name="inconsistent">False</property>
++ <property name="draw_indicator">True</property>
++ </object>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkRadioButton" id="print_frames_selected">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="label" translatable="yes">O_nly the selected frame</property>
++ <property name="use_underline">True</property>
++ <property name="relief">GTK_RELIEF_NORMAL</property>
++ <property name="focus_on_click">True</property>
++ <property name="active">False</property>
++ <property name="inconsistent">False</property>
++ <property name="draw_indicator">True</property>
++ <property name="group">print_frames_normal</property>
++ </object>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkRadioButton" id="print_frames_separately">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="label" translatable="yes">_Each frame separately</property>
++ <property name="use_underline">True</property>
++ <property name="relief">GTK_RELIEF_NORMAL</property>
++ <property name="focus_on_click">True</property>
++ <property name="active">False</property>
++ <property name="inconsistent">False</property>
++ <property name="draw_indicator">True</property>
++ <property name="group">print_frames_normal</property>
++ </object>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++ </object>
++ </child>
++ </object>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
++ </packing>
++ </child>
++ </object>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkVBox" id="vbox141">
++ <property name="visible">True</property>
++ <property name="homogeneous">False</property>
++ <property name="spacing">6</property>
++ <child>
++ <object class="GtkLabel" id="label272">
++ <property name="visible">True</property>
++ <property name="label" translatable="yes"><b>Background</b></property>
++ <property name="use_underline">False</property>
++ <property name="use_markup">True</property>
++ <property name="justify">GTK_JUSTIFY_LEFT</property>
++ <property name="wrap">False</property>
++ <property name="selectable">False</property>
++ <property name="xalign">0</property>
++ <property name="yalign">0.5</property>
++ <property name="xpad">0</property>
++ <property name="ypad">0</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
++ </object>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkAlignment" id="alignment4">
++ <property name="visible">True</property>
++ <property name="xalign">0.5</property>
++ <property name="yalign">0.5</property>
++ <property name="xscale">1</property>
++ <property name="yscale">1</property>
++ <property name="top_padding">0</property>
++ <property name="bottom_padding">0</property>
++ <property name="left_padding">12</property>
++ <property name="right_padding">0</property>
++ <child>
++ <object class="GtkVBox" id="vbox142">
++ <property name="visible">True</property>
++ <property name="homogeneous">False</property>
++ <property name="spacing">6</property>
++ <child>
++ <object class="GtkCheckButton" id="print_bg_colors_checkbutton">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="label" translatable="yes">Print background c_olors</property>
++ <property name="use_underline">True</property>
++ <property name="relief">GTK_RELIEF_NORMAL</property>
++ <property name="focus_on_click">True</property>
++ <property name="active">False</property>
++ <property name="inconsistent">False</property>
++ <property name="draw_indicator">True</property>
++ </object>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkCheckButton" id="print_bg_images_checkbutton">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="label" translatable="yes">Print background i_mages</property>
++ <property name="use_underline">True</property>
++ <property name="relief">GTK_RELIEF_NORMAL</property>
++ <property name="focus_on_click">True</property>
++ <property name="active">False</property>
++ <property name="inconsistent">False</property>
++ <property name="draw_indicator">True</property>
++ </object>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++ </object>
++ </child>
++ </object>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
++ </packing>
++ </child>
++ </object>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkHBox" id="hbox1">
++ <property name="visible">True</property>
++ <property name="homogeneous">False</property>
++ <property name="spacing">18</property>
++ <child>
++ <object class="GtkVBox" id="vbox140">
++ <property name="visible">True</property>
++ <property name="homogeneous">False</property>
++ <property name="spacing">6</property>
++ <child>
++ <object class="GtkLabel" id="label269">
++ <property name="visible">True</property>
++ <property name="label" translatable="yes"><b>Footers</b></property>
++ <property name="use_underline">False</property>
++ <property name="use_markup">True</property>
++ <property name="justify">GTK_JUSTIFY_LEFT</property>
++ <property name="wrap">False</property>
++ <property name="selectable">False</property>
++ <property name="xalign">0</property>
++ <property name="yalign">0.5</property>
++ <property name="xpad">0</property>
++ <property name="ypad">0</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
++ </object>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkAlignment" id="alignment2">
++ <property name="visible">True</property>
++ <property name="xalign">0.5</property>
++ <property name="yalign">0.5</property>
++ <property name="xscale">1</property>
++ <property name="yscale">1</property>
++ <property name="top_padding">0</property>
++ <property name="bottom_padding">0</property>
++ <property name="left_padding">12</property>
++ <property name="right_padding">0</property>
++ <child>
++ <object class="GtkVBox" id="vbox125">
++ <property name="visible">True</property>
++ <property name="homogeneous">False</property>
++ <property name="spacing">6</property>
++ <child>
++ <object class="GtkCheckButton" id="print_page_numbers_checkbutton">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="label" translatable="yes">Page _numbers</property>
++ <property name="use_underline">True</property>
++ <property name="relief">GTK_RELIEF_NORMAL</property>
++ <property name="focus_on_click">True</property>
++ <property name="active">False</property>
++ <property name="inconsistent">False</property>
++ <property name="draw_indicator">True</property>
++ </object>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkCheckButton" id="print_date_checkbutton">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="label" translatable="yes">_Date</property>
++ <property name="use_underline">True</property>
++ <property name="relief">GTK_RELIEF_NORMAL</property>
++ <property name="focus_on_click">True</property>
++ <property name="active">False</property>
++ <property name="inconsistent">False</property>
++ <property name="draw_indicator">True</property>
++ </object>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++ </object>
++ </child>
++ </object>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++ </object>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkVBox" id="vbox138">
++ <property name="visible">True</property>
++ <property name="homogeneous">False</property>
++ <property name="spacing">6</property>
++ <child>
++ <object class="GtkLabel" id="label267">
++ <property name="visible">True</property>
++ <property name="label" translatable="yes"><b>Headers</b></property>
++ <property name="use_underline">False</property>
++ <property name="use_markup">True</property>
++ <property name="justify">GTK_JUSTIFY_LEFT</property>
++ <property name="wrap">False</property>
++ <property name="selectable">False</property>
++ <property name="xalign">0</property>
++ <property name="yalign">0.5</property>
++ <property name="xpad">0</property>
++ <property name="ypad">0</property>
++ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
++ <property name="width_chars">-1</property>
++ <property name="single_line_mode">False</property>
++ <property name="angle">0</property>
++ </object>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkAlignment" id="alignment3">
++ <property name="visible">True</property>
++ <property name="xalign">0.5</property>
++ <property name="yalign">0.5</property>
++ <property name="xscale">1</property>
++ <property name="yscale">1</property>
++ <property name="top_padding">0</property>
++ <property name="bottom_padding">0</property>
++ <property name="left_padding">12</property>
++ <property name="right_padding">0</property>
++ <child>
++ <object class="GtkVBox" id="vbox124">
++ <property name="visible">True</property>
++ <property name="homogeneous">False</property>
++ <property name="spacing">6</property>
++ <child>
++ <object class="GtkCheckButton" id="print_page_title_checkbutton">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="label" translatable="yes">P_age title</property>
++ <property name="use_underline">True</property>
++ <property name="relief">GTK_RELIEF_NORMAL</property>
++ <property name="focus_on_click">True</property>
++ <property name="active">False</property>
++ <property name="inconsistent">False</property>
++ <property name="draw_indicator">True</property>
++ </object>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkCheckButton" id="print_page_url_checkbutton">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="label" translatable="yes">_Page address</property>
++ <property name="use_underline">True</property>
++ <property name="relief">GTK_RELIEF_NORMAL</property>
++ <property name="focus_on_click">True</property>
++ <property name="active">False</property>
++ <property name="inconsistent">False</property>
++ <property name="draw_indicator">True</property>
++ </object>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++ </object>
++ </child>
++ </object>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
++ </packing>
++ </child>
++ </object>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++ </object>
++ <packing>
++ <property name="padding">0</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ </packing>
++ </child>
++ </object>
++</interface>
+diff -urN galeon-2.0.7.orig/utils/gul-gui.c galeon-2.0.7/utils/gul-gui.c
+--- galeon-2.0.7.orig/utils/gul-gui.c 2008-07-04 18:30:58.000000000 +0200
++++ galeon-2.0.7/utils/gul-gui.c 2009-02-15 09:39:07.000000000 +0100
+@@ -801,3 +801,21 @@
+ g_error_free (error);
+ }
+ }
++
++static void
++checkbutton_toggled_cb (GtkToggleButton *button,
++ const char *pref)
++{
++ eel_gconf_set_boolean (pref, gtk_toggle_button_get_active (button));
++}
++
++
++void
++gul_gui_connect_checkbutton_to_gconf (GtkWidget *widget,
++ const char *pref)
++{
++ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget),
++ eel_gconf_get_boolean (pref));
++ g_signal_connect (widget, "toggled",
++ G_CALLBACK (checkbutton_toggled_cb), (gpointer) pref);
++}
+diff -urN galeon-2.0.7.orig/utils/gul-gui.h galeon-2.0.7/utils/gul-gui.h
+--- galeon-2.0.7.orig/utils/gul-gui.h 2008-07-04 18:30:58.000000000 +0200
++++ galeon-2.0.7/utils/gul-gui.h 2009-02-15 09:39:07.000000000 +0100
+@@ -102,6 +102,8 @@
+ void gul_gui_help (GtkWindow* parent,
+ const char *file,
+ const char *link_id);
++void gul_gui_connect_checkbutton_to_gconf (GtkWidget *widget,
++ const char *pref);
+ G_END_DECLS
+
+ #endif
Added: trunk/dports/gnome/galeon/files/galeon-2.0.7-jsconsole.patch
===================================================================
--- trunk/dports/gnome/galeon/files/galeon-2.0.7-jsconsole.patch (rev 0)
+++ trunk/dports/gnome/galeon/files/galeon-2.0.7-jsconsole.patch 2011-03-15 20:43:17 UTC (rev 76969)
@@ -0,0 +1,50 @@
+--- galeon-2.0.7/mozilla/mozilla-embed-shell.cpp~ 2008-09-03 06:58:17.000000000 +0200
++++ galeon-2.0.7/mozilla/mozilla-embed-shell.cpp 2009-04-30 12:38:33.164540313 +0200
+@@ -409,8 +409,6 @@
+ ret = mozilla_register_components ();
+ if (ret == FALSE) return FALSE;
+
+- mozilla_init_js_console ();
+-
+ mozilla_init_cookie_observer();
+
+ return TRUE;
+--- galeon-2.0.7/ui/galeon-egg-ui.xml~ 2008-07-04 18:30:59.000000000 +0200
++++ galeon-2.0.7/ui/galeon-egg-ui.xml 2009-05-09 00:34:28.645768357 +0200
+@@ -77,7 +77,6 @@
+ <menuitem name="WebAllowJava" action="WebAllowJavaAction" />
+ <menuitem name="WebAllowJS" action="WebAllowJSAction" />
+ <separator name="WSep4" />
+- <menuitem name="WebJavaConsole" action="WebJavaConsoleAction" />
+ <menuitem name="WebJSConsole" action="WebJSConsoleAction" />
+ </menu>
+ <menu name="Go" action="GoMenuAction">
+--- galeon-2.0.7/src/galeon-window.c~ 2008-07-04 18:30:50.000000000 +0200
++++ galeon-2.0.7/src/galeon-window.c 2009-05-09 00:33:50.173017926 +0200
+@@ -190,7 +190,6 @@
+ #define WEB_POPUPS_ALWAYS_ACTION "WebPopupsAlwaysAction"
+ #define WEB_ALLOW_JAVA_ACTION "WebAllowJavaAction"
+ #define WEB_ALLOW_JS_ACTION "WebAllowJSAction"
+-#define WEB_JAVA_CONSOLE_ACTION "WebJavaConsoleAction"
+
+ #define VIEW_SOURCE_ACTION "FilePageSourceAction"
+ #define FILE_PRINT_ACTION "FilePrintAction"
+@@ -379,8 +378,6 @@
+ { "ViewImagesAllowSiteAction", NULL, N_("_Allow Images From This Site"), NULL,
+ N_("Block Images from this site from loading"), G_CALLBACK(window_cmd_set_permission) },
+
+- { WEB_JAVA_CONSOLE_ACTION, NULL, N_("Java _Console"), NULL,
+- N_("Show Java console window"), G_CALLBACK(window_cmd_show_java_console) },
+ { "WebJSConsoleAction", NULL, N_("J_avaScript Console"), NULL,
+ N_("Show JavaScript console window"), G_CALLBACK(window_cmd_show_js_console) },
+
+@@ -1156,9 +1153,6 @@
+ java_enabled = eel_gconf_get_boolean(CONF_FILTERING_JAVA_ENABLED);
+
+ gtk_toggle_action_set_active(TOGGLE_ITEM(WEB_ALLOW_JAVA_ACTION), java_enabled);
+-
+- g_object_set (ACTION_ITEM(WEB_JAVA_CONSOLE_ACTION),
+- "sensitive", java_enabled, NULL);
+ }
+
+ static void
Added: trunk/dports/gnome/galeon/files/galeon-2.0.7-libX11.patch
===================================================================
--- trunk/dports/gnome/galeon/files/galeon-2.0.7-libX11.patch (rev 0)
+++ trunk/dports/gnome/galeon/files/galeon-2.0.7-libX11.patch 2011-03-15 20:43:17 UTC (rev 76969)
@@ -0,0 +1,11 @@
+diff -ur galeon-2.0.7/configure.in galeon-2.0.7.libx11/configure.in
+--- galeon-2.0.7/configure.in 2010-02-13 19:19:41.000000000 +0200
++++ galeon-2.0.7.libx11/configure.in 2010-02-13 19:22:13.000000000 +0200
+@@ -128,6 +128,7 @@
+ AC_MSG_RESULT([$result])
+
+ PKG_CHECK_MODULES(GALEON_DEPENDENCY, \
++ x11 \
+ gtk+-2.0 >= $GTK_REQUIRED \
+ gtk+-unix-print-2.0 >= $GTK_REQUIRED \
+ libxml-2.0 >= $LIBXML_REQUIRED \
Added: trunk/dports/gnome/galeon/files/galeon-2.0.7-libxul-embedding.patch
===================================================================
--- trunk/dports/gnome/galeon/files/galeon-2.0.7-libxul-embedding.patch (rev 0)
+++ trunk/dports/gnome/galeon/files/galeon-2.0.7-libxul-embedding.patch 2011-03-15 20:43:17 UTC (rev 76969)
@@ -0,0 +1,32 @@
+--- galeon-2.0.7/configure.in.orig 2011-03-15 11:18:29.000000000 -0700
++++ galeon-2.0.7/configure.in 2011-03-15 11:21:14.000000000 -0700
+@@ -221,10 +221,10 @@ dnl #########################
+ AC_MSG_CHECKING([which mozilla engine to use])
+
+ AC_ARG_WITH([mozilla],
+- AC_HELP_STRING([--with-mozilla@<:@=libxul-embedding-unstable|seamonkey|firefox|xulrunner|thunderbird@:>@],
++ AC_HELP_STRING([--with-mozilla@<:@=libxul-embedding|libxul-embedding-unstable|seamonkey|firefox|xulrunner|thunderbird@:>@],
+ [Which gecko engine to use (default: autodetect)]))
+
+-GECKOS="libxul-embedding-unstable firefox mozilla-firefox seamonkey xulrunner thunderbird mozilla-thunderbird"
++GECKOS="libxul-embedding libxul-embedding-unstable firefox mozilla-firefox seamonkey xulrunner thunderbird mozilla-thunderbird"
+ gecko=$with_mozilla
+ autodetect=
+
+@@ -248,6 +248,7 @@ fi
+ AC_MSG_RESULT([$gecko$autodetect])
+
+ case "$gecko" in
++libxul-embedding) min_version=1.9 flavour=toolkit ;;
+ libxul-embedding-unstable) min_version=1.9 flavour=toolkit ;;
+ seamonkey) min_version=2.0 flavour=toolkit ;;
+ *firefox) min_version=2.0 flavour=toolkit ;;
+@@ -258,7 +259,7 @@ esac
+ MOZILLA=$gecko
+ AC_SUBST([MOZILLA])
+
+-if test $MOZILLA = libxul-embedding-unstable; then
++if test $MOZILLA = libxul-embedding-unstable || test $MOZILLA = libxul-embedding ; then
+ MOZILLA_XPCOM=$MOZILLA
+ MOZILLA_GTKMOZEMBED=$MOZILLA
+ else
Added: trunk/dports/gnome/galeon/files/galeon-2.0.7-macports-cflags.patch
===================================================================
--- trunk/dports/gnome/galeon/files/galeon-2.0.7-macports-cflags.patch (rev 0)
+++ trunk/dports/gnome/galeon/files/galeon-2.0.7-macports-cflags.patch 2011-03-15 20:43:17 UTC (rev 76969)
@@ -0,0 +1,21 @@
+--- galeon-2.0.7/configure.in.orig 2011-03-15 13:30:23.000000000 -0700
++++ galeon-2.0.7/configure.in 2011-03-15 13:30:57.000000000 -0700
+@@ -367,12 +367,12 @@ _SAVE_CXXFLAGS=$CXXFLAGS
+ _SAVE_CPPFLAGS=$CPPFLAGS
+ _SAVE_LDFLAGS=$LDFLAGS
+
+-#CPPFLAGS="-I$MOZILLA_INCLUDE_ROOT $MOZILLA_COMPONENT_CFLAGS $GALEON_DEPENDENCY_CFLAGS"
+-#CXXFLAGS="$_SAVE_CXXFLAGS $AM_CXXFLAGS -I$MOZILLA_INCLUDE_ROOT $MOZILLA_COMPONENT_CFLAGS"
+-#LDFLAGS="$_SAVE_LDFLAGS $AM_LDFLAGS $MOZILLA_COMPONENT_LIBS"
+-CPPFLAGS="-I$MOZILLA_INCLUDE_ROOT `$PKG_CONFIG --cflags-only-I $MOZILLA_XPCOM` $GALEON_DEPENDENCY_CFLAGS"
+-CXXFLAGS="$_SAVE_CXXFLAGS $AM_CXXFLAGS -I$MOZILLA_INCLUDE_ROOT `pkg-config --cflags $MOZILLA_XPCOM`"
+-LDFLAGS="$_SAVE_LDFLAGS $AM_LDFLAGS `pkg-config --libs $MOZILLA_XPCOM`"
++CPPFLAGS="-I$MOZILLA_INCLUDE_ROOT $MOZILLA_COMPONENT_CFLAGS $GALEON_DEPENDENCY_CFLAGS"
++CXXFLAGS="$_SAVE_CXXFLAGS $AM_CXXFLAGS -I$MOZILLA_INCLUDE_ROOT $MOZILLA_COMPONENT_CFLAGS"
++LDFLAGS="$_SAVE_LDFLAGS $AM_LDFLAGS $MOZILLA_COMPONENT_LIBS"
++#CPPFLAGS="-I$MOZILLA_INCLUDE_ROOT `$PKG_CONFIG --cflags-only-I $MOZILLA_XPCOM` $GALEON_DEPENDENCY_CFLAGS"
++#CXXFLAGS="$_SAVE_CXXFLAGS $AM_CXXFLAGS -I$MOZILLA_INCLUDE_ROOT `pkg-config --cflags $MOZILLA_XPCOM`"
++#LDFLAGS="$_SAVE_LDFLAGS $AM_LDFLAGS `pkg-config --libs $MOZILLA_XPCOM`"
+
+
+ TEST_MOZILLA_INCLUDE_DIRS="widget mimetype docshell history dom necko string layout gfx content js exthandler pipnss uriloader caps xpconnect nkcache fastfind gtkembedmoz chrome"
Added: trunk/dports/gnome/galeon/files/galeon-2.0.7-moz191.patch
===================================================================
--- trunk/dports/gnome/galeon/files/galeon-2.0.7-moz191.patch (rev 0)
+++ trunk/dports/gnome/galeon/files/galeon-2.0.7-moz191.patch 2011-03-15 20:43:17 UTC (rev 76969)
@@ -0,0 +1,52 @@
+diff -ur galeon-2.0.7.umg/mozilla/EventContext.cpp galeon-2.0.7/mozilla/EventContext.cpp
+--- galeon-2.0.7.umg/mozilla/EventContext.cpp 2008-07-18 07:41:08.000000000 +0300
++++ galeon-2.0.7/mozilla/EventContext.cpp 2009-01-06 23:17:32.000000000 +0200
+@@ -35,6 +35,7 @@
+ #include <nsIDOMXULDocument.h>
+ #include <nsIURI.h>
+ #include <nsIDOMNSEvent.h>
++#include <nsIDOMNSElement.h>
+ #include <nsIDOMNSHTMLElement.h>
+ #include <nsIDOMCharacterData.h>
+ #include <nsIDOMHTMLButtonElement.h>
+@@ -518,20 +519,21 @@
+ nsresult EventContext::GetTargetCoords (nsIDOMEventTarget *aTarget, PRInt32 *aX, PRInt32 *aY)
+ {
+ /* Calculate the node coordinates relative to the widget origin */
+- nsCOMPtr<nsIDOMNSHTMLElement> elem = do_QueryInterface(aTarget);
++ nsCOMPtr<nsIDOMNSHTMLElement> nsHTMLElem (do_QueryInterface(aTarget));
+
+ PRInt32 x = 0, y = 0;
+- while (elem)
++ while (nsHTMLElem)
+ {
+ PRInt32 val;
+- elem->GetOffsetTop(&val); y += val;
+- elem->GetScrollTop(&val); y -= val;
+- elem->GetOffsetLeft(&val); x += val;
+- elem->GetScrollLeft(&val); x -= val;
++ nsCOMPtr<nsIDOMNSElement> nsElem (do_QueryInterface(nsHTMLElem));
++ nsHTMLElem->GetOffsetTop(&val); y += val;
++ nsElem->GetScrollTop(&val); y -= val;
++ nsHTMLElem->GetOffsetLeft(&val); x += val;
++ nsElem->GetScrollLeft(&val); x -= val;
+
+ nsCOMPtr<nsIDOMElement> parent;
+- elem->GetOffsetParent(getter_AddRefs(parent));
+- elem = do_QueryInterface(parent);
++ nsHTMLElem->GetOffsetParent (getter_AddRefs (parent));
++ nsHTMLElem = do_QueryInterface(parent);
+ }
+ *aX = x;
+ *aY = y;
+diff -ur galeon-2.0.7/mozilla/GeckoPrintSession.h galeon-2.0.7.xpcomint/mozilla/GeckoPrintSession.h
+--- galeon-2.0.7/mozilla/GeckoPrintSession.h 2009-03-14 14:34:07.000000000 +0200
++++ galeon-2.0.7.xpcomint/mozilla/GeckoPrintSession.h 2009-03-14 14:32:23.000000000 +0200
+@@ -22,6 +22,7 @@
+ #define GECKO_PRINT_SESSION_H
+
+ #include <nsCOMPtr.h>
++#include <nsXPCOMCIDInternal.h>
+ #include <nsIPrintSession.h>
+ #include <nsIWebProgressListener.h>
+ #include <nsIPrintProgress.h>
Added: trunk/dports/gnome/galeon/files/galeon-2.0.7-moz192.patch
===================================================================
--- trunk/dports/gnome/galeon/files/galeon-2.0.7-moz192.patch (rev 0)
+++ trunk/dports/gnome/galeon/files/galeon-2.0.7-moz192.patch 2011-03-15 20:43:17 UTC (rev 76969)
@@ -0,0 +1,34 @@
+diff --git a/mozilla/EphyXULAppInfo.cpp b/mozilla/EphyXULAppInfo.cpp
+index 1319431..299cbbf 100644
+--- a/mozilla/EphyXULAppInfo.cpp
++++ b/mozilla/EphyXULAppInfo.cpp
+@@ -128,3 +128,12 @@ EphyXULAppInfo::GetXPCOMABI(nsACString & aXPCOMABI)
+ aXPCOMABI.Assign (EPHY_HOST_CPU "-gcc3");
+ return NS_OK;
+ }
++
++/* readonly attribute AUTF8String WidgetToolkit; */
++NS_IMETHODIMP
++EphyXULAppInfo::GetWidgetToolkit(nsACString & aWidgetToolkit)
++{
++ aWidgetToolkit.Assign ("gtk");
++ return NS_OK;
++}
++
+diff --git a/mozilla/ExternalProtocolService.cpp b/mozilla/ExternalProtocolService.cpp
+index 4554998..85ba677 100644
+--- a/mozilla/ExternalProtocolService.cpp
++++ b/mozilla/ExternalProtocolService.cpp
+@@ -185,3 +185,12 @@ NS_IMETHODIMP GExternalProtocolService::GetProtocolHandlerInfo(const nsACString
+ return NS_ERROR_NOT_IMPLEMENTED;
+ }
+ #endif
++
++NS_IMETHODIMP GExternalProtocolService::GetProtocolHandlerInfoFromOS(const nsACString & aProtocolScheme, PRBool*, nsIHandlerInfo**)
++{
++ return NS_ERROR_NOT_IMPLEMENTED;
++}
++NS_IMETHODIMP GExternalProtocolService::SetProtocolHandlerDefaults(nsIHandlerInfo*, int)
++{
++ return NS_ERROR_NOT_IMPLEMENTED;
++}
Added: trunk/dports/gnome/galeon/files/galeon-2.0.7-nojavaconsole.patch
===================================================================
--- trunk/dports/gnome/galeon/files/galeon-2.0.7-nojavaconsole.patch (rev 0)
+++ trunk/dports/gnome/galeon/files/galeon-2.0.7-nojavaconsole.patch 2011-03-15 20:43:17 UTC (rev 76969)
@@ -0,0 +1,44 @@
+diff -ur galeon-2.0.7.nojsconsole/mozilla/mozilla-embed-shell.cpp galeon-2.0.7.nojavaconsole/mozilla/mozilla-embed-shell.cpp
+--- galeon-2.0.7.nojsconsole/mozilla/mozilla-embed-shell.cpp 2009-11-20 12:48:12.000000000 +0200
++++ galeon-2.0.7.nojavaconsole/mozilla/mozilla-embed-shell.cpp 2009-11-20 12:49:51.000000000 +0200
+@@ -62,7 +62,6 @@
+ #include <nsCOMPtr.h>
+ #include <nsNetCID.h>
+ #include <nsIIOService.h>
+-#include <nsIJVMManager.h>
+ #include <nsIFontEnumerator.h>
+ #include <nsISupportsPrimitives.h>
+ #include <nsIPermissionManager.h>
+@@ -118,8 +117,6 @@
+ MozillaEncodings *encodings;
+ };
+
+-static NS_DEFINE_CID(kJVMManagerCID, NS_JVMMANAGER_CID);
+-
+ G_DEFINE_TYPE (MozillaEmbedShell, mozilla_embed_shell, GALEON_TYPE_EMBED_SHELL);
+
+ static gboolean
+@@ -514,11 +511,6 @@
+ static void
+ impl_show_java_console (GaleonEmbedShell *shell)
+ {
+- nsCOMPtr<nsIJVMManager> JVMManager = do_GetService (kJVMManagerCID);
+- if (JVMManager)
+- {
+- JVMManager->ShowJavaConsole ();
+- }
+ }
+
+ static GaleonEncodings *
+diff -ur galeon-2.0.7.nojsconsole/ui/galeon-egg-ui.xml galeon-2.0.7.nojavaconsole/ui/galeon-egg-ui.xml
+--- galeon-2.0.7.nojsconsole/ui/galeon-egg-ui.xml 2009-11-20 12:48:12.000000000 +0200
++++ galeon-2.0.7.nojavaconsole/ui/galeon-egg-ui.xml 2009-11-20 12:49:59.000000000 +0200
+@@ -76,8 +76,6 @@
+ <separator name="WSep3" />
+ <menuitem name="WebAllowJava" action="WebAllowJavaAction" />
+ <menuitem name="WebAllowJS" action="WebAllowJSAction" />
+- <separator name="WSep4" />
+- <menuitem name="WebJSConsole" action="WebJSConsoleAction" />
+ </menu>
+ <menu name="Go" action="GoMenuAction">
+ <menuitem name="GoBack" action="GoBack" />
Added: trunk/dports/gnome/galeon/files/galeon-2.0.7-plugins.patch
===================================================================
--- trunk/dports/gnome/galeon/files/galeon-2.0.7-plugins.patch (rev 0)
+++ trunk/dports/gnome/galeon/files/galeon-2.0.7-plugins.patch 2011-03-15 20:43:17 UTC (rev 76969)
@@ -0,0 +1,52 @@
+--- galeon-2.0.7/mozilla/Makefile.am.orig
++++ galeon-2.0.7/mozilla/Makefile.am
+@@ -60,6 +60,7 @@
+ $(GALEON_DEPENDENCY_CFLAGS) \
+ -DLIB_DIR=\"$(pkglibdir)\" \
+ -DSHARE_DIR=\"$(pkgdatadir)\" \
++ -DTOP_LIB_DIR=\"$(libdir)\" \
+ -D_GNU_SOURCE=1 \
+ -include mozilla-config.h
+
+--- galeon-2.0.7/mozilla/mozilla-embed-shell.cpp~ 2008-09-03 06:58:17.000000000 +0200
++++ galeon-2.0.7/mozilla/mozilla-embed-shell.cpp 2009-10-13 08:41:18.127313055 +0200
+@@ -230,6 +230,17 @@
+ #endif
+ }
+
++static int
++mozilla_setup_wrapped_plugin (void)
++{
++ char *p_viewer = "/usr/bin/mozilla-plugin-config";
++
++ if (g_file_test(p_viewer, G_FILE_TEST_EXISTS) == FALSE)
++ return FALSE;
++
++ return TRUE;
++}
++
+ static void
+ mozilla_init_plugin_path ()
+ {
+@@ -248,13 +259,20 @@
+ g_string_append (new_path, "/.mozilla/plugins");
+
+ /* Add /usr/lib/mozilla/plugins (bug 149812) */
+- g_string_append (new_path, ":/usr/lib/mozilla/plugins");
++ if (mozilla_setup_wrapped_plugin()) {
++ g_string_append (new_path, ":" TOP_LIB_DIR "/mozilla/plugins-wrapped");
++ } else {
++ g_string_append (new_path, ":" TOP_LIB_DIR "/mozilla/plugins");
++ }
+
+ #ifdef GALEON_MOZILLA_HOME
+ /* Add the current mozilla build's plugins dir */
+ g_string_append (new_path, ":" GALEON_MOZILLA_HOME "/plugins");
+ #endif
+
++ /* Work-around Flash Player crash */
++ g_setenv ("XLIB_SKIP_ARGB_VISUALS", "1", FALSE);
++
+ g_setenv ("MOZ_PLUGIN_PATH", new_path->str, TRUE);
+
+ g_string_free (new_path, TRUE);
Added: trunk/dports/gnome/galeon/files/galeon-2.0.7-spinnericon.patch
===================================================================
--- trunk/dports/gnome/galeon/files/galeon-2.0.7-spinnericon.patch (rev 0)
+++ trunk/dports/gnome/galeon/files/galeon-2.0.7-spinnericon.patch 2011-03-15 20:43:17 UTC (rev 76969)
@@ -0,0 +1,35 @@
+ When gnome-spinner-rest theme icon can't be found don't complain
+ and use the main galeon window icon which is slightly less inappropriate
+ than an empty lookin space on the toolbar.
+
+---
+ src/galeon-spinner.c | 6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/galeon-spinner.c b/src/galeon-spinner.c
+index 519caad..860641a 100644
+--- a/src/galeon-spinner.c
++++ b/src/galeon-spinner.c
+@@ -199,7 +199,8 @@ select_spinner_image (GaleonSpinner *spinner)
+ GList *element;
+
+ if (spinner->details->timer_task == 0) {
+- return g_object_ref (spinner->details->quiescent_pixbuf);
++ return (spinner->details->quiescent_pixbuf != NULL) ?
++ g_object_ref (spinner->details->quiescent_pixbuf) : NULL;
+ }
+
+ if (spinner->details->image_list == NULL) {
+@@ -594,8 +595,7 @@ galeon_spinner_load_images (GaleonSpinner *spinner)
+ wanted_size, 0, NULL);
+
+ if (pixbuf == NULL) {
+- g_warning ("Spinner rest icon not found");
+- return;
++ pixbuf = gdk_pixbuf_new_from_file (DATADIR "/pixmaps/galeon.png", NULL);
+ }
+
+ spinner->details->quiescent_pixbuf =
+--
+1.6.5.2
+
Added: trunk/dports/gnome/galeon/files/galeon-2.0.7-warnings.patch
===================================================================
--- trunk/dports/gnome/galeon/files/galeon-2.0.7-warnings.patch (rev 0)
+++ trunk/dports/gnome/galeon/files/galeon-2.0.7-warnings.patch 2011-03-15 20:43:17 UTC (rev 76969)
@@ -0,0 +1,513 @@
+diff -ur galeon-2.0.7.orig/bookmarks/bookmarks-context-menu.c galeon-2.0.7/bookmarks/bookmarks-context-menu.c
+--- galeon-2.0.7.orig/bookmarks/bookmarks-context-menu.c 2008-10-07 10:22:44.000000000 +0200
++++ galeon-2.0.7/bookmarks/bookmarks-context-menu.c 2008-10-07 10:23:42.000000000 +0200
+@@ -236,7 +236,7 @@
+
+ p->menu = gtk_menu_new ();
+ g_object_ref (p->menu);
+- gtk_object_sink (GTK_OBJECT (p->menu));
++ g_object_ref_sink (p->menu);
+
+ if (GB_IS_SITE (p->bm))
+ {
+diff -ur galeon-2.0.7.orig/bookmarks/bookmarks-editor.c galeon-2.0.7/bookmarks/bookmarks-editor.c
+--- galeon-2.0.7.orig/bookmarks/bookmarks-editor.c 2008-10-07 10:22:44.000000000 +0200
++++ galeon-2.0.7/bookmarks/bookmarks-editor.c 2008-10-07 10:23:42.000000000 +0200
+@@ -524,7 +524,7 @@
+
+ gtk_widget_show (GTK_WIDGET (p->left_tree_view));
+ g_object_ref (p->left_tree_view);
+- gtk_object_sink (GTK_OBJECT (p->left_tree_view));
++ g_object_ref_sink (p->left_tree_view);
+
+ p->right_tree_view = gb_tree_view_new ();
+ if (p->location_source)
+@@ -540,7 +540,7 @@
+
+ gtk_widget_show (GTK_WIDGET (p->right_tree_view));
+ g_object_ref (p->right_tree_view);
+- gtk_object_sink (GTK_OBJECT (p->right_tree_view));
++ g_object_ref_sink (p->right_tree_view);
+
+ gb_tree_view_set_autoexpand_roots (p->right_tree_view, FALSE);
+ }
+diff -ur galeon-2.0.7.orig/bookmarks/bookmarks-gtk-menu-item.c galeon-2.0.7/bookmarks/bookmarks-gtk-menu-item.c
+--- galeon-2.0.7.orig/bookmarks/bookmarks-gtk-menu-item.c 2008-10-07 10:22:44.000000000 +0200
++++ galeon-2.0.7/bookmarks/bookmarks-gtk-menu-item.c 2008-10-07 10:23:42.000000000 +0200
+@@ -82,7 +82,6 @@
+ GB_GTK_MENU_ITEM_LAST_SIGNAL
+ };
+ static gint GbGtkMenuItemSignals[GB_GTK_MENU_ITEM_LAST_SIGNAL];
+-static GtkTooltips *_gb_gtk_menu_item_tooltips = NULL;
+
+ /**
+ * GtkMenu object
+@@ -115,14 +114,6 @@
+ GbGtkMenuItemPrivate *p = GB_GTK_MENU_ITEM_GET_PRIVATE (m);
+ m->priv = p;
+
+- if (!_gb_gtk_menu_item_tooltips)
+- {
+- _gb_gtk_menu_item_tooltips = gtk_tooltips_new ();
+- g_object_add_weak_pointer (G_OBJECT (_gb_gtk_menu_item_tooltips),
+- (gpointer)&_gb_gtk_menu_item_tooltips);
+- }
+- g_object_ref (_gb_gtk_menu_item_tooltips);
+- gtk_object_sink (GTK_OBJECT(_gb_gtk_menu_item_tooltips));
+ }
+
+ static void
+@@ -153,8 +144,6 @@
+
+ g_object_unref (G_OBJECT (p->bookmark));
+
+- g_object_unref (_gb_gtk_menu_item_tooltips);
+-
+ G_OBJECT_CLASS (gb_gtk_menu_item_parent_class)->finalize (o);
+ }
+
+@@ -228,9 +217,7 @@
+ char *tooltip;
+
+ tooltip = g_strjoinv("\n\n", parts);
+- gtk_tooltips_set_tip (_gb_gtk_menu_item_tooltips,
+- GTK_WIDGET(bmi),
+- tooltip, NULL);
++ gtk_widget_set_tooltip_text (GTK_WIDGET(bmi), tooltip);
+ g_free (tooltip);
+ }
+ }
+diff -ur galeon-2.0.7.orig/bookmarks/bookmarks-gtk-toolbar.c galeon-2.0.7/bookmarks/bookmarks-gtk-toolbar.c
+--- galeon-2.0.7.orig/bookmarks/bookmarks-gtk-toolbar.c 2008-10-07 10:22:44.000000000 +0200
++++ galeon-2.0.7/bookmarks/bookmarks-gtk-toolbar.c 2008-10-07 10:23:42.000000000 +0200
+@@ -247,7 +247,7 @@
+ * feedback */
+ toolbar->priv->drag_item = gtk_tool_button_new (NULL, "m");
+ g_object_ref (G_OBJECT (toolbar->priv->drag_item));
+- gtk_object_sink (GTK_OBJECT (toolbar->priv->drag_item));
++ g_object_ref_sink (toolbar->priv->drag_item);
+ }
+
+ gdk_drag_status (context, context->suggested_action, time);
+diff -ur galeon-2.0.7.orig/bookmarks/bookmarks-gtk-toolbar-set.c galeon-2.0.7/bookmarks/bookmarks-gtk-toolbar-set.c
+--- galeon-2.0.7.orig/bookmarks/bookmarks-gtk-toolbar-set.c 2008-10-07 10:22:44.000000000 +0200
++++ galeon-2.0.7/bookmarks/bookmarks-gtk-toolbar-set.c 2008-10-07 10:23:42.000000000 +0200
+@@ -228,7 +228,7 @@
+
+ gtk_widget_show (GTK_WIDGET (tb));
+ g_hash_table_insert (p->folder_to_toolbar, g_object_ref (f), g_object_ref (tb));
+- gtk_object_sink (GTK_OBJECT (tb));
++ g_object_ref_sink (tb);
+
+ if (p->add_func)
+ {
+diff -ur galeon-2.0.7.orig/bookmarks/bookmarks-icon-provider.c galeon-2.0.7/bookmarks/bookmarks-icon-provider.c
+--- galeon-2.0.7.orig/bookmarks/bookmarks-icon-provider.c 2008-10-07 10:22:44.000000000 +0200
++++ galeon-2.0.7/bookmarks/bookmarks-icon-provider.c 2008-10-07 10:23:42.000000000 +0200
+@@ -209,7 +209,7 @@
+ GtkWidget *dummy = gtk_toolbar_new ();
+
+ g_object_ref (dummy);
+- gtk_object_sink (GTK_OBJECT (dummy));
++ g_object_ref_sink (dummy);
+
+ if (p->folder_pixbuf_data)
+ {
+diff -ur galeon-2.0.7.orig/configure.in galeon-2.0.7/configure.in
+--- galeon-2.0.7.orig/configure.in 2008-10-07 10:22:45.000000000 +0200
++++ galeon-2.0.7/configure.in 2008-10-07 10:23:42.000000000 +0200
+@@ -367,9 +367,9 @@
+ #CPPFLAGS="-I$MOZILLA_INCLUDE_ROOT $MOZILLA_COMPONENT_CFLAGS $GALEON_DEPENDENCY_CFLAGS"
+ #CXXFLAGS="$_SAVE_CXXFLAGS $AM_CXXFLAGS -I$MOZILLA_INCLUDE_ROOT $MOZILLA_COMPONENT_CFLAGS"
+ #LDFLAGS="$_SAVE_LDFLAGS $AM_LDFLAGS $MOZILLA_COMPONENT_LIBS"
+-CPPFLAGS="-I$MOZILLA_INCLUDE_ROOT `$PKG_CONFIG --cflags-only-I $MOZILLA-xpcom` $GALEON_DEPENDENCY_CFLAGS"
+-CXXFLAGS="$_SAVE_CXXFLAGS $AM_CXXFLAGS -I$MOZILLA_INCLUDE_ROOT `pkg-config --cflags $MOZILLA-xpcom`"
+-LDFLAGS="$_SAVE_LDFLAGS $AM_LDFLAGS `pkg-config --libs $MOZILLA-xpcom`"
++CPPFLAGS="-I$MOZILLA_INCLUDE_ROOT `$PKG_CONFIG --cflags-only-I $MOZILLA_XPCOM` $GALEON_DEPENDENCY_CFLAGS"
++CXXFLAGS="$_SAVE_CXXFLAGS $AM_CXXFLAGS -I$MOZILLA_INCLUDE_ROOT `pkg-config --cflags $MOZILLA_XPCOM`"
++LDFLAGS="$_SAVE_LDFLAGS $AM_LDFLAGS `pkg-config --libs $MOZILLA_XPCOM`"
+
+
+ TEST_MOZILLA_INCLUDE_DIRS="widget mimetype docshell history dom necko string layout gfx content js exthandler pipnss uriloader caps xpconnect nkcache fastfind gtkembedmoz chrome"
+diff -ur galeon-2.0.7.orig/embed/galeon-embed-shell.c galeon-2.0.7/embed/galeon-embed-shell.c
+--- galeon-2.0.7.orig/embed/galeon-embed-shell.c 2008-10-07 10:22:45.000000000 +0200
++++ galeon-2.0.7/embed/galeon-embed-shell.c 2008-10-07 10:23:42.000000000 +0200
+@@ -321,7 +321,7 @@
+ {
+ shell->priv->js_console = GALEON_JS_CONSOLE (galeon_js_console_new ());
+ g_object_ref (shell->priv->js_console);
+- gtk_object_sink (GTK_OBJECT (shell->priv->js_console));
++ g_object_ref_sink (shell->priv->js_console);
+ }
+
+ return shell->priv->js_console;
+diff -ur galeon-2.0.7.orig/libegg/dock/egg-dock-item.c galeon-2.0.7/libegg/dock/egg-dock-item.c
+--- galeon-2.0.7.orig/libegg/dock/egg-dock-item.c 2008-10-07 10:22:44.000000000 +0200
++++ galeon-2.0.7/libegg/dock/egg-dock-item.c 2008-10-07 10:23:42.000000000 +0200
+@@ -1154,7 +1154,7 @@
+ {
+ GEnumClass *enum_class = G_ENUM_CLASS (g_type_class_ref (EGG_TYPE_DOCK_PLACEMENT));
+ GEnumValue *enum_value = g_enum_get_value (enum_class, position);
+- gchar *name = enum_value ? enum_value->value_name : NULL;
++ const gchar *name = enum_value ? enum_value->value_name : NULL;
+
+ g_warning (("Unsupported docking strategy %s in dock object of type %s"),
+ name, G_OBJECT_TYPE_NAME (object));
+@@ -1485,13 +1485,13 @@
+ NULL, item);
+ g_object_set (item->_priv->tab_label, "item", NULL, NULL);
+ }
+- gtk_widget_unref (item->_priv->tab_label);
++ g_object_unref (item->_priv->tab_label);
+ item->_priv->tab_label = NULL;
+ }
+
+ if (tablabel) {
+- gtk_widget_ref (tablabel);
+- gtk_object_sink (GTK_OBJECT (tablabel));
++ g_object_ref (tablabel);
++ g_object_ref_sink (tablabel);
+ item->_priv->tab_label = tablabel;
+ if (EGG_IS_DOCK_TABLABEL (tablabel)) {
+ g_object_set (tablabel, "item", item, NULL);
+@@ -1564,7 +1564,7 @@
+ "host", item,
+ NULL));
+ g_object_ref (item->_priv->ph);
+- gtk_object_sink (GTK_OBJECT (item->_priv->ph));
++ g_object_ref_sink (item->_priv->ph);
+ }
+
+ egg_dock_object_freeze (EGG_DOCK_OBJECT (item));
+@@ -1627,7 +1627,7 @@
+ if (reference && EGG_DOCK_OBJECT_ATTACHED (reference)) {
+ if (EGG_IS_DOCK_PLACEHOLDER (reference)) {
+ g_object_ref (reference);
+- gtk_object_sink (GTK_OBJECT (reference));
++ g_object_ref_sink (reference);
+ item->_priv->ph = EGG_DOCK_PLACEHOLDER (reference);
+ }
+ else {
+@@ -1637,7 +1637,7 @@
+ "host", reference,
+ NULL));
+ g_object_ref (item->_priv->ph);
+- gtk_object_sink (GTK_OBJECT (item->_priv->ph));
++ g_object_ref_sink (item->_priv->ph);
+ }
+ }
+ }
+diff -ur galeon-2.0.7.orig/libegg/dock/egg-dock-master.c galeon-2.0.7/libegg/dock/egg-dock-master.c
+--- galeon-2.0.7.orig/libegg/dock/egg-dock-master.c 2008-10-07 10:22:44.000000000 +0200
++++ galeon-2.0.7/libegg/dock/egg-dock-master.c 2008-10-07 10:23:42.000000000 +0200
+@@ -736,7 +736,7 @@
+ }
+ else {
+ g_object_ref (object);
+- gtk_object_sink (GTK_OBJECT (object));
++ g_object_ref_sink (object);
+ g_hash_table_insert (master->dock_objects, g_strdup (object->name), object);
+ }
+ }
+diff -ur galeon-2.0.7.orig/libegg/dock/egg-dock-object.c galeon-2.0.7/libegg/dock/egg-dock-object.c
+--- galeon-2.0.7.orig/libegg/dock/egg-dock-object.c 2008-10-07 10:22:44.000000000 +0200
++++ galeon-2.0.7/libegg/dock/egg-dock-object.c 2008-10-07 10:23:42.000000000 +0200
+@@ -28,6 +28,7 @@
+ #include <egg-macros.h>
+ #include <stdlib.h>
+ #include <string.h>
++#include <gtk/gtkobject.h>
+
+ #include "egg-dock-object.h"
+ #include "egg-dock-master.h"
+@@ -388,7 +389,7 @@
+ g_object_unref (child);
+ }
+ /* sink the widget, so any automatic floating widget is destroyed */
+- gtk_object_sink (GTK_OBJECT (object));
++ g_object_ref_sink (object);
+ /* don't reenter */
+ object->reduce_pending = FALSE;
+ egg_dock_object_thaw (object);
+diff -ur galeon-2.0.7.orig/libegg/egg-editable-toolbar.c galeon-2.0.7/libegg/egg-editable-toolbar.c
+--- galeon-2.0.7.orig/libegg/egg-editable-toolbar.c 2008-10-07 10:22:44.000000000 +0200
++++ galeon-2.0.7/libegg/egg-editable-toolbar.c 2008-10-07 10:23:42.000000000 +0200
+@@ -476,7 +476,7 @@
+ create_item_from_action (etoolbar, id, type,
+ data_is_separator (id), NULL);
+ g_object_ref (etoolbar->priv->dragged_item);
+- gtk_object_sink (GTK_OBJECT (etoolbar->priv->dragged_item));
++ g_object_ref_sink (etoolbar->priv->dragged_item);
+ }
+ else
+ {
+@@ -1278,7 +1278,7 @@
+ toolbar->priv->fixed_toolbar = gtk_toolbar_new ();
+ gtk_toolbar_set_show_arrow (GTK_TOOLBAR (toolbar->priv->fixed_toolbar), FALSE);
+ g_object_ref (toolbar->priv->fixed_toolbar);
+- gtk_object_sink (GTK_OBJECT (toolbar->priv->fixed_toolbar));
++ g_object_ref_sink (toolbar->priv->fixed_toolbar);
+ }
+
+ if (toolbar->priv->fixed)
+@@ -1293,7 +1293,7 @@
+ if (fixed)
+ {
+ g_object_ref (fixed);
+- gtk_object_sink (GTK_OBJECT (fixed));
++ g_object_ref_sink (fixed);
+
+ gtk_toolbar_insert (GTK_TOOLBAR (toolbar->priv->fixed_toolbar), fixed, 0);
+ }
+diff -ur galeon-2.0.7.orig/mozilla/EphyPromptService.cpp galeon-2.0.7/mozilla/EphyPromptService.cpp
+--- galeon-2.0.7.orig/mozilla/EphyPromptService.cpp 2008-10-07 10:22:45.000000000 +0200
++++ galeon-2.0.7/mozilla/EphyPromptService.cpp 2008-10-07 10:23:42.000000000 +0200
+@@ -146,7 +146,7 @@
+
+ mDialog = GTK_DIALOG (gtk_dialog_new ());
+ g_object_ref (mDialog);
+- gtk_object_sink (GTK_OBJECT (mDialog));
++ g_object_ref_sink (mDialog);
+
+ char *title = NULL;
+ if (aTitle)
+diff -ur galeon-2.0.7.orig/mozilla/HeaderSniffer.cpp galeon-2.0.7/mozilla/HeaderSniffer.cpp
+--- galeon-2.0.7.orig/mozilla/HeaderSniffer.cpp 2008-10-07 10:22:45.000000000 +0200
++++ galeon-2.0.7/mozilla/HeaderSniffer.cpp 2008-10-07 10:23:42.000000000 +0200
+@@ -586,11 +586,12 @@
+
+ if (mDocument && (flags & EMBED_PERSIST_SAVE_CONTENT))
+ {
+- GtkWidget *toggle;
+-
+ /* Reset the flags to turn off content, the user toggles
+ * if they want to turn it on */
+- (gint&)flags &= ~EMBED_PERSIST_SAVE_CONTENT;
++ GtkWidget *toggle;
++ int f = flags & ~EMBED_PERSIST_SAVE_CONTENT;
++ flags = (EmbedPersistFlags) f;
++
+ galeon_embed_persist_set_flags (mEmbedPersist, flags);
+
+ toggle = gtk_check_button_new_with_mnemonic (_("Save _with content"));
+diff -ur galeon-2.0.7.orig/mozilla/mozilla-embed-shell.cpp galeon-2.0.7/mozilla/mozilla-embed-shell.cpp
+--- galeon-2.0.7.orig/mozilla/mozilla-embed-shell.cpp 2008-10-07 10:22:45.000000000 +0200
++++ galeon-2.0.7/mozilla/mozilla-embed-shell.cpp 2008-10-07 10:23:42.000000000 +0200
+@@ -21,9 +21,21 @@
+ #endif
+
+ #include <nscore.h>
++
++/* Some versions of nscore.h appears to #define nscore_h___, while
++ * gtkmozembed.h looks for nscore_h__ to see if stuff needs
++ * redefining (what were they thinking?!). Define explicitly, then
++ * curse. */
++#ifndef nscore_h__
++#define nscore_h__
++#endif
++
+ #include <nsComponentManagerUtils.h>
+ #include <nsServiceManagerUtils.h>
+
++#define HAVE_VISIBILITY_HIDDEN_ATTRIBUTE 1
++#define HAVE_VISIBILITY_ATTRIBUTE 1
++
+ #ifdef XPCOM_GLUE
+ #include <nsXPCOMGlue.h>
+ #include <gtkmozembed_glue.cpp>
+diff -ur galeon-2.0.7.orig/mozilla/mozilla-notifiers.cpp galeon-2.0.7/mozilla/mozilla-notifiers.cpp
+--- galeon-2.0.7.orig/mozilla/mozilla-notifiers.cpp 2008-10-07 10:22:45.000000000 +0200
++++ galeon-2.0.7/mozilla/mozilla-notifiers.cpp 2008-10-07 10:23:42.000000000 +0200
+@@ -131,7 +131,7 @@
+
+ static const struct
+ {
+- char *gconf_key;
++ const char *gconf_key;
+ guint pref_type;
+ const char *mozilla_key;
+ }
+@@ -369,7 +369,7 @@
+ for (i = 0; i < num_font_languages; i++)
+ {
+ int k;
+- char *types [] = { "serif", "sans-serif", "cursive", "fantasy", "monospace" };
++ const char *types [] = { "serif", "sans-serif", "cursive", "fantasy", "monospace" };
+ char key[255];
+ char *info;
+ const char* language = font_languages[i].key;
+@@ -614,7 +614,7 @@
+ g_slist_free(language_list);
+ }
+
+-static char *autodetect_charset_prefs[] =
++static const char *autodetect_charset_prefs[] =
+ {
+ "",
+ "zh_parallel_state_machine",
+diff -ur galeon-2.0.7.orig/mozilla/ProgressListener.h galeon-2.0.7/mozilla/ProgressListener.h
+--- galeon-2.0.7.orig/mozilla/ProgressListener.h 2008-10-07 10:22:45.000000000 +0200
++++ galeon-2.0.7/mozilla/ProgressListener.h 2008-10-07 10:23:42.000000000 +0200
+@@ -60,7 +60,7 @@
+ #define G_PROGRESSDIALOG_CLASSNAME "Galeon's Download Progress Dialog"
+ #define G_PROGRESSDIALOG_CONTRACTID "@mozilla.org/progressdialog;1"
+
+-class GProgressListener :
++class NS_COM_GLUE GProgressListener :
+ public nsITransfer,
+ public nsSupportsWeakReference
+ {
+diff -ur galeon-2.0.7.orig/utils/galeon-sidebar.c galeon-2.0.7/utils/galeon-sidebar.c
+--- galeon-2.0.7.orig/utils/galeon-sidebar.c 2008-10-07 10:22:45.000000000 +0200
++++ galeon-2.0.7/utils/galeon-sidebar.c 2008-10-07 10:23:42.000000000 +0200
+@@ -304,7 +304,7 @@
+
+ sidebar->priv->title_menu = gtk_menu_new ();
+ g_object_ref (sidebar->priv->title_menu);
+- gtk_object_sink (GTK_OBJECT (sidebar->priv->title_menu));
++ g_object_ref_sink (sidebar->priv->title_menu);
+ gtk_widget_show (sidebar->priv->title_button);
+ gtk_widget_show (sidebar->priv->title_menu);
+
+diff -ur galeon-2.0.7.orig/utils/gul-download.c galeon-2.0.7/utils/gul-download.c
+--- galeon-2.0.7.orig/utils/gul-download.c 2008-10-07 10:22:45.000000000 +0200
++++ galeon-2.0.7/utils/gul-download.c 2008-10-07 10:23:42.000000000 +0200
+@@ -65,7 +65,12 @@
+ gchar *dirName, *utf8DirName, *prefDir = NULL;
+ gsize bytesRead, bytesWritten;
+ gint retVal;
+- GtkWidget *fileSel = gtk_file_selection_new(_("Choose destination folder"));
++ GtkWidget *fileSel =
++ gtk_file_chooser_dialog_new(_("Choose destination folder"),
++ NULL,
++ GTK_FILE_CHOOSER_ACTION_SAVE,
++ NULL,
++ NULL);
+
+ /* Dirname must end in a '/' for the file selection to treat
+ * it as a directory. When we have a UI to set the value, we
+@@ -96,10 +101,9 @@
+ return;
+ }
+
+- gtk_file_selection_set_filename(GTK_FILE_SELECTION(fileSel),
+- dirName);
+- gtk_widget_set_sensitive(GTK_FILE_SELECTION(fileSel)
+- ->file_list, FALSE);
++ gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(fileSel),
++ dirName);
++ gtk_widget_set_sensitive(fileSel, FALSE);
+
+ retVal = gtk_dialog_run(GTK_DIALOG(fileSel));
+
+@@ -109,7 +113,7 @@
+ * which is what we need.
+ */
+ gul_download_save_url_with_dir(url,
+- gtk_file_selection_get_filename(GTK_FILE_SELECTION(fileSel)));
++ gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(fileSel)));
+ }
+ gtk_widget_hide(fileSel);
+ gtk_widget_destroy(fileSel);
+diff -ur galeon-2.0.7.orig/utils/gul-notebook.c galeon-2.0.7/utils/gul-notebook.c
+--- galeon-2.0.7.orig/utils/gul-notebook.c 2008-10-07 10:22:45.000000000 +0200
++++ galeon-2.0.7/utils/gul-notebook.c 2008-10-07 10:23:42.000000000 +0200
+@@ -77,7 +77,6 @@
+ /* Local variables */
+ static GdkCursor *cursor = NULL;
+ static GList *notebooks = NULL;
+-static GtkTooltips *_gul_notebook_tooltips = NULL;
+
+
+ /* Local functions */
+@@ -662,15 +661,6 @@
+ static void
+ gul_notebook_init (GulNotebook *notebook)
+ {
+- if (!_gul_notebook_tooltips)
+- {
+- _gul_notebook_tooltips = gtk_tooltips_new ();
+- g_object_add_weak_pointer (G_OBJECT (_gul_notebook_tooltips),
+- (gpointer)&_gul_notebook_tooltips);
+- }
+- g_object_ref (_gul_notebook_tooltips);
+- gtk_object_sink (GTK_OBJECT (_gul_notebook_tooltips));
+-
+ notebook->priv = g_new (GulNotebookPrivate, 1);
+
+ notebook->priv->drag_in_progress = FALSE;
+@@ -706,8 +696,6 @@
+
+ g_free (notebook->priv);
+
+- g_object_unref (_gul_notebook_tooltips);
+-
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+ }
+
+@@ -794,7 +782,7 @@
+ rcstyle = gtk_rc_style_new ();
+ rcstyle->xthickness = rcstyle->ythickness = 0;
+ gtk_widget_modify_style (close_button, rcstyle);
+- gtk_rc_style_unref (rcstyle),
++ g_object_unref (rcstyle),
+
+ image = gtk_image_new_from_stock (GTK_STOCK_CLOSE,
+ GTK_ICON_SIZE_MENU);
+@@ -802,8 +790,7 @@
+ gtk_widget_set_size_request (close_button, size.width, size.height);
+ gtk_container_add (GTK_CONTAINER (close_button), image);
+
+- gtk_tooltips_set_tip (_gul_notebook_tooltips, close_button,
+- _("Close this tab"), NULL);
++ gtk_widget_set_tooltip_text (close_button, _("Close this tab"));
+
+ /* setup label, need eventbox for tooltips and left-padding to get
+ * comfortable space between the label and icon/tab border */
+@@ -997,7 +984,7 @@
+ /* remove the tool tip for this ebox */
+ label = gtk_notebook_get_tab_label (GTK_NOTEBOOK (nb), child);
+ ebox = GTK_WIDGET (g_object_get_data (G_OBJECT (label), "label-ebox"));
+- gtk_tooltips_set_tip (_gul_notebook_tooltips, ebox, NULL, NULL);
++ gtk_widget_set_tooltip_text (ebox, NULL);
+
+ /* If we don't clear the icon then for some reason it gets reset back
+ * to an empty icon. This means that although gul_notebook_move_page() has
+@@ -1052,7 +1039,7 @@
+
+ gtk_label_set_label (GTK_LABEL (label), title);
+ gtk_notebook_set_menu_label_text (GTK_NOTEBOOK (nb), child, short_title);
+- gtk_tooltips_set_tip (_gul_notebook_tooltips, ebox, title, NULL);
++ gtk_widget_set_tooltip_text (ebox, title);
+
+ g_free (short_title);
+ }
+diff -ur galeon-2.0.7.orig/utils/gul-toolbutton.c galeon-2.0.7/utils/gul-toolbutton.c
+--- galeon-2.0.7.orig/utils/gul-toolbutton.c 2008-10-07 10:22:45.000000000 +0200
++++ galeon-2.0.7/utils/gul-toolbutton.c 2008-10-07 10:23:42.000000000 +0200
+@@ -227,7 +227,7 @@
+
+ p->menu = gtk_menu_new ();
+ g_object_ref (p->menu);
+- gtk_object_sink (GTK_OBJECT (p->menu));
++ g_object_ref_sink (p->menu);
+
+ hbox = gtk_hbox_new (FALSE, 0);
+ gtk_widget_show (hbox);
+--- galeon-2.0.7/mozilla/ProgressListener.cpp.orig 2009-02-15 14:35:27.000000000 +0100
++++ galeon-2.0.7/mozilla/ProgressListener.cpp 2009-02-15 14:30:20.000000000 +0100
+@@ -587,12 +587,12 @@
+ GulCString helperId(helperDesc);
+
+ // Format <usertime>:<helperapp id>
+- char *colon = strchr (helperId.get(), ':');
++ const char *colon = strchr (helperId.get(), ':');
+ g_return_val_if_fail (colon, NS_ERROR_FAILURE);
+
+ const char *helperappid = colon+1;
+
+- guint32 usertime = strtoul (helperId.get(), &colon, 0);
++ guint32 usertime = strtoul (helperId.get(), (char**)&colon, 0);
+
+ GnomeVFSMimeApplication *helper =
+ #ifdef HAVE_NEW_GNOME_VFS_MIME_API
Deleted: trunk/dports/gnome/galeon/files/patch-configure.diff
===================================================================
--- trunk/dports/gnome/galeon/files/patch-configure.diff 2011-03-15 19:25:12 UTC (rev 76968)
+++ trunk/dports/gnome/galeon/files/patch-configure.diff 2011-03-15 20:43:17 UTC (rev 76969)
@@ -1,79 +0,0 @@
---- configure.orig 2008-09-26 20:16:12.000000000 -0700
-+++ configure 2010-12-09 16:19:27.000000000 -0800
-@@ -1599,7 +1599,7 @@
- --with-useragent-vendorsub[=User-Agent vendorSub]
- User-Agent header vendorSub part (default: release
- version)
-- --with-mozilla[=libxul-embedding-unstable|seamonkey|firefox|xulrunner|thunderbird]
-+ --with-mozilla[=libxul-embedding|libxul-embedding-unstable|seamonkey|firefox|xulrunner|thunderbird]
- Which gecko engine to use (default: autodetect)
- --with-gconf-source=sourceaddress Config database for installing schema files.
- --with-gconf-schema-file-dir=dir Directory for installing schema files.
-@@ -23380,7 +23380,7 @@
- fi
-
-
--GECKOS="libxul-embedding-unstable firefox mozilla-firefox seamonkey xulrunner thunderbird mozilla-thunderbird"
-+GECKOS="libxul-embedding libxul-embedding-unstable firefox mozilla-firefox seamonkey xulrunner thunderbird mozilla-thunderbird"
- gecko=$with_mozilla
- autodetect=
-
-@@ -23408,6 +23408,7 @@
- echo "${ECHO_T}$gecko$autodetect" >&6; }
-
- case "$gecko" in
-+libxul-embedding) min_version=1.9 flavour=toolkit ;;
- libxul-embedding-unstable) min_version=1.9 flavour=toolkit ;;
- seamonkey) min_version=2.0 flavour=toolkit ;;
- *firefox) min_version=2.0 flavour=toolkit ;;
-@@ -23418,7 +23419,10 @@
- MOZILLA=$gecko
-
-
--if test $MOZILLA = libxul-embedding-unstable; then
-+if test $MOZILLA = libxul-embedding; then
-+ MOZILLA_XPCOM=$MOZILLA
-+ MOZILLA_GTKMOZEMBED=$MOZILLA
-+elif test $MOZILLA = libxul-embedding-unstable; then
- MOZILLA_XPCOM=$MOZILLA
- MOZILLA_GTKMOZEMBED=$MOZILLA
- else
-@@ -23534,7 +23538,9 @@
- fi
-
- MOZILLA_INCLUDE_ROOT="`$PKG_CONFIG --variable=includedir $MOZILLA_XPCOM`"
--if test $MOZILLA = libxul-embedding-unstable; then
-+if test $MOZILLA = libxul-embedding; then
-+ MOZILLA_INCLUDE_ROOT="$MOZILLA_INCLUDE_ROOT/`$PKG_CONFIG --variable=includetype $MOZILLA_XPCOM`"
-+elif test $MOZILLA = libxul-embedding-unstable; then
- MOZILLA_INCLUDE_ROOT="$MOZILLA_INCLUDE_ROOT/`$PKG_CONFIG --variable=includetype $MOZILLA_XPCOM`"
- fi
-
-@@ -23790,12 +23796,12 @@
- _SAVE_CPPFLAGS=$CPPFLAGS
- _SAVE_LDFLAGS=$LDFLAGS
-
--#CPPFLAGS="-I$MOZILLA_INCLUDE_ROOT $MOZILLA_COMPONENT_CFLAGS $GALEON_DEPENDENCY_CFLAGS"
--#CXXFLAGS="$_SAVE_CXXFLAGS $AM_CXXFLAGS -I$MOZILLA_INCLUDE_ROOT $MOZILLA_COMPONENT_CFLAGS"
--#LDFLAGS="$_SAVE_LDFLAGS $AM_LDFLAGS $MOZILLA_COMPONENT_LIBS"
--CPPFLAGS="-I$MOZILLA_INCLUDE_ROOT `$PKG_CONFIG --cflags-only-I $MOZILLA-xpcom` $GALEON_DEPENDENCY_CFLAGS"
--CXXFLAGS="$_SAVE_CXXFLAGS $AM_CXXFLAGS -I$MOZILLA_INCLUDE_ROOT `pkg-config --cflags $MOZILLA-xpcom`"
--LDFLAGS="$_SAVE_LDFLAGS $AM_LDFLAGS `pkg-config --libs $MOZILLA-xpcom`"
-+CPPFLAGS="-I$MOZILLA_INCLUDE_ROOT $MOZILLA_COMPONENT_CFLAGS $GALEON_DEPENDENCY_CFLAGS"
-+CXXFLAGS="$_SAVE_CXXFLAGS $AM_CXXFLAGS -I$MOZILLA_INCLUDE_ROOT $MOZILLA_COMPONENT_CFLAGS"
-+LDFLAGS="$_SAVE_LDFLAGS $AM_LDFLAGS $MOZILLA_COMPONENT_LIBS"
-+#CPPFLAGS="-I$MOZILLA_INCLUDE_ROOT `$PKG_CONFIG --cflags-only-I $MOZILLA-xpcom` $GALEON_DEPENDENCY_CFLAGS"
-+#CXXFLAGS="$_SAVE_CXXFLAGS $AM_CXXFLAGS -I$MOZILLA_INCLUDE_ROOT `pkg-config --cflags $MOZILLA-xpcom`"
-+#LDFLAGS="$_SAVE_LDFLAGS $AM_LDFLAGS `pkg-config --libs $MOZILLA-xpcom`"
-
-
- TEST_MOZILLA_INCLUDE_DIRS="widget mimetype docshell history dom necko string layout gfx content js exthandler pipnss uriloader caps xpconnect nkcache fastfind gtkembedmoz chrome"
-@@ -29151,7 +29157,7 @@
-
-
-
--if test "$gecko" == "xulrunner" || test "$gecko" == "libxul-embedding-unstable"; then
-+if test "$gecko" == "xulrunner" || test "$gecko" == "libxul-embedding" || test "$gecko" == "libxul-embedding-unstable"; then
- echo ""
- echo "Note that Galeon has a runtime dependency on the 'cookie' and 'permission'"
- echo "mozilla extensions. These are not built as part of the default xulrunner"
Deleted: trunk/dports/gnome/galeon/files/patch-mozilla-EphyXULAppInfo.cpp.diff
===================================================================
--- trunk/dports/gnome/galeon/files/patch-mozilla-EphyXULAppInfo.cpp.diff 2011-03-15 19:25:12 UTC (rev 76968)
+++ trunk/dports/gnome/galeon/files/patch-mozilla-EphyXULAppInfo.cpp.diff 2011-03-15 20:43:17 UTC (rev 76969)
@@ -1,15 +0,0 @@
---- mozilla/EphyXULAppInfo.cpp.orig
-+++ mozilla/EphyXULAppInfo.cpp
-@@ -128,3 +128,12 @@ EphyXULAppInfo::GetXPCOMABI(nsACString & aXPCOMABI)
- aXPCOMABI.Assign (EPHY_HOST_CPU "-gcc3");
- return NS_OK;
- }
-+
-+/* readonly attribute AUTF8String WidgetToolkit; */
-+NS_IMETHODIMP
-+EphyXULAppInfo::GetWidgetToolkit(nsACString & aWidgetToolkit)
-+{
-+ aWidgetToolkit.Assign ("gtk");
-+ return NS_OK;
-+}
-+
Deleted: trunk/dports/gnome/galeon/files/patch-mozilla-EventContext.cpp.diff
===================================================================
--- trunk/dports/gnome/galeon/files/patch-mozilla-EventContext.cpp.diff 2011-03-15 19:25:12 UTC (rev 76968)
+++ trunk/dports/gnome/galeon/files/patch-mozilla-EventContext.cpp.diff 2011-03-15 20:43:17 UTC (rev 76969)
@@ -1,40 +0,0 @@
---- mozilla/EventContext.cpp.orig 2008-07-18 07:41:08.000000000 +0300
-+++ mozilla/EventContext.cpp 2009-01-06 23:17:32.000000000 +0200
-@@ -35,6 +35,7 @@
- #include <nsIDOMXULDocument.h>
- #include <nsIURI.h>
- #include <nsIDOMNSEvent.h>
-+#include <nsIDOMNSElement.h>
- #include <nsIDOMNSHTMLElement.h>
- #include <nsIDOMCharacterData.h>
- #include <nsIDOMHTMLButtonElement.h>
-@@ -518,20 +519,21 @@
- nsresult EventContext::GetTargetCoords (nsIDOMEventTarget *aTarget, PRInt32 *aX, PRInt32 *aY)
- {
- /* Calculate the node coordinates relative to the widget origin */
-- nsCOMPtr<nsIDOMNSHTMLElement> elem = do_QueryInterface(aTarget);
-+ nsCOMPtr<nsIDOMNSHTMLElement> nsHTMLElem (do_QueryInterface(aTarget));
-
- PRInt32 x = 0, y = 0;
-- while (elem)
-+ while (nsHTMLElem)
- {
- PRInt32 val;
-- elem->GetOffsetTop(&val); y += val;
-- elem->GetScrollTop(&val); y -= val;
-- elem->GetOffsetLeft(&val); x += val;
-- elem->GetScrollLeft(&val); x -= val;
-+ nsCOMPtr<nsIDOMNSElement> nsElem (do_QueryInterface(nsHTMLElem));
-+ nsHTMLElem->GetOffsetTop(&val); y += val;
-+ nsElem->GetScrollTop(&val); y -= val;
-+ nsHTMLElem->GetOffsetLeft(&val); x += val;
-+ nsElem->GetScrollLeft(&val); x -= val;
-
- nsCOMPtr<nsIDOMElement> parent;
-- elem->GetOffsetParent(getter_AddRefs(parent));
-- elem = do_QueryInterface(parent);
-+ nsHTMLElem->GetOffsetParent (getter_AddRefs (parent));
-+ nsHTMLElem = do_QueryInterface(parent);
- }
- *aX = x;
- *aY = y;
Modified: trunk/dports/gnome/galeon/files/patch-mozilla-MozRegisterComponents.cpp.diff
===================================================================
--- trunk/dports/gnome/galeon/files/patch-mozilla-MozRegisterComponents.cpp.diff 2011-03-15 19:25:12 UTC (rev 76968)
+++ trunk/dports/gnome/galeon/files/patch-mozilla-MozRegisterComponents.cpp.diff 2011-03-15 20:43:17 UTC (rev 76969)
@@ -1,5 +1,5 @@
---- mozilla/MozRegisterComponents.cpp.orig 2010-12-09 10:36:39.000000000 -0800
-+++ mozilla/MozRegisterComponents.cpp 2010-12-09 10:37:20.000000000 -0800
+--- a/mozilla/MozRegisterComponents.cpp.orig 2010-12-09 10:36:39.000000000 -0800
++++ a/mozilla/MozRegisterComponents.cpp 2010-12-09 10:37:20.000000000 -0800
@@ -58,6 +58,7 @@
#include <nsIComponentManager.h>
#include <nsCOMPtr.h>
Deleted: trunk/dports/gnome/galeon/files/patch-mozilla-ProgressListener.cpp.diff
===================================================================
--- trunk/dports/gnome/galeon/files/patch-mozilla-ProgressListener.cpp.diff 2011-03-15 19:25:12 UTC (rev 76968)
+++ trunk/dports/gnome/galeon/files/patch-mozilla-ProgressListener.cpp.diff 2011-03-15 20:43:17 UTC (rev 76969)
@@ -1,17 +0,0 @@
---- mozilla/ProgressListener.cpp.orig
-+++ mozilla/ProgressListener.cpp
-@@ -587,12 +587,12 @@
- GulCString helperId(helperDesc);
-
- // Format <usertime>:<helperapp id>
-- char *colon = strchr (helperId.get(), ':');
-+ const char *colon = strchr (helperId.get(), ':');
- g_return_val_if_fail (colon, NS_ERROR_FAILURE);
-
- const char *helperappid = colon+1;
-
-- guint32 usertime = strtoul (helperId.get(), &colon, 0);
-+ guint32 usertime = strtoul (helperId.get(), NULL, 0);
-
- GnomeVFSMimeApplication *helper =
- #ifdef HAVE_NEW_GNOME_VFS_MIME_API
Deleted: trunk/dports/gnome/galeon/files/patch-mozilla-ProtocolService.cpp.diff
===================================================================
--- trunk/dports/gnome/galeon/files/patch-mozilla-ProtocolService.cpp.diff 2011-03-15 19:25:12 UTC (rev 76968)
+++ trunk/dports/gnome/galeon/files/patch-mozilla-ProtocolService.cpp.diff 2011-03-15 20:43:17 UTC (rev 76969)
@@ -1,15 +0,0 @@
---- mozilla/ExternalProtocolService.cpp.orig
-+++ mozilla/ExternalProtocolService.cpp
-@@ -185,3 +185,12 @@ NS_IMETHODIMP GExternalProtocolService::GetProtocolHandlerInfo(const nsACString
- return NS_ERROR_NOT_IMPLEMENTED;
- }
- #endif
-+
-+NS_IMETHODIMP GExternalProtocolService::GetProtocolHandlerInfoFromOS(const nsACString & aProtocolScheme, PRBool*, nsIHandlerInfo**)
-+{
-+ return NS_ERROR_NOT_IMPLEMENTED;
-+}
-+NS_IMETHODIMP GExternalProtocolService::SetProtocolHandlerDefaults(nsIHandlerInfo*, int)
-+{
-+ return NS_ERROR_NOT_IMPLEMENTED;
-+}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20110315/f9c34a5e/attachment-0001.html>
More information about the macports-changes
mailing list