diff --git a/src/main.cpp b/src/main.cpp
index eb060570f1ebd0e3d422622ec0a042e3c6ffa8bc..991a95adda6554cdfb1eee20e3f3145480c661f1 100644 (file)
--- a/src/main.cpp
+++ b/src/main.cpp
#endif
#include "path-prefix.h"
+// This has to be included prior to anything that includes setjmp.h, it croaks otherwise
+#include <png.h>
+
#include <gtk/gtkmessagedialog.h>
#ifdef HAVE_IEEEFP_H
#include <libxml/tree.h>
#include <glib-object.h>
+#include <gtk/gtk.h>
#include <gtk/gtkmain.h>
#include <gtk/gtksignal.h>
#include <gtk/gtkwindow.h>
#include "svg/stringstream.h"
#include "inkscape-private.h"
-#include "inkscape-stock.h"
-#include "inkscape_version.h"
+#include "inkscape-version.h"
#include "sp-namedview.h"
#include "sp-guide.h"
#endif
#include "application/application.h"
-
#include "main-cmdlineact.h"
+#include "widgets/icon.h"
+#include "ui/widget/panel.h"
-#include <png.h>
#include <errno.h>
enum {
@@ -167,7 +170,7 @@ static void do_export_ps_pdf(SPDocument* doc, gchar const* uri, char const *mime
#ifdef WIN32
static void do_export_emf(SPDocument* doc, gchar const* uri, char const *mime);
#endif //WIN32
-static void do_query_dimension (SPDocument *doc, bool extent, NR::Dim2 const axis, const gchar *id);
+static void do_query_dimension (SPDocument *doc, bool extent, Geom::Dim2 const axis, const gchar *id);
static void do_query_all (SPDocument *doc);
static void do_query_all_recurse (SPObject *o);
rt.setPathInfo();
#endif
+ // Prevents errors like "Unable to wrap GdkPixbuf..." (in nr-filter-image.cpp for example)
+ Gtk::Main::init_gtkmm_internals();
+
// Bug #197475
set_extensions_env();
int retVal = sp_common_main( argc, argv, &fl );
g_return_val_if_fail(retVal == 0, 1);
- inkscape_gtk_stock_init();
+ // Add our icon directory to the search path for icon theme lookups.
+ gchar *usericondir = profile_path("icons");
+ gtk_icon_theme_append_search_path(gtk_icon_theme_get_default(), usericondir);
+ gtk_icon_theme_append_search_path(gtk_icon_theme_get_default(), INKSCAPE_PIXMAPDIR);
+ g_free(usericondir);
gdk_event_handler_set((GdkEventFunc)snooper, NULL, NULL);
-
Inkscape::Debug::log_display_config();
- /* Set default icon */
- gchar *filename = (gchar *) g_build_filename (INKSCAPE_APPICONDIR, "inkscape.png", NULL);
- if (Inkscape::IO::file_test(filename, (GFileTest)(G_FILE_TEST_IS_REGULAR | G_FILE_TEST_IS_SYMLINK))) {
- gtk_window_set_default_icon_from_file(filename, NULL);
- }
- g_free (filename);
- filename = 0;
+ // Set default window icon. Obeys the theme.
+ gtk_window_set_default_icon_name("inkscape");
+ // Do things that were previously in inkscape_gtk_stock_init().
+ sp_icon_get_phys_size(GTK_ICON_SIZE_MENU);
+ Inkscape::UI::Widget::Panel::prep();
gboolean create_new = TRUE;
if (sp_query_all) {
do_query_all (doc);
} else if (sp_query_width || sp_query_height) {
- do_query_dimension (doc, true, sp_query_width? NR::X : NR::Y, sp_query_id);
+ do_query_dimension (doc, true, sp_query_width? Geom::X : Geom::Y, sp_query_id);
} else if (sp_query_x || sp_query_y) {
- do_query_dimension (doc, false, sp_query_x? NR::X : NR::Y, sp_query_id);
+ do_query_dimension (doc, false, sp_query_x? Geom::X : Geom::Y, sp_query_id);
}
delete doc;
gsize sizeLeft = buffer_size - offset;
gchar *useme = command_line + offset;
- fprintf(stdout, "Inkscape %s interactive shell mode. Type 'quit' to quit.\n", INKSCAPE_VERSION);
+ fprintf(stdout, "Inkscape %s interactive shell mode. Type 'quit' to quit.\n", Inkscape::version_string);
fflush(stdout);
char* linedata = 0;
do {
}
static void
-do_query_dimension (SPDocument *doc, bool extent, NR::Dim2 const axis, const gchar *id)
+do_query_dimension (SPDocument *doc, bool extent, Geom::Dim2 const axis, const gchar *id)
{
SPObject *o = NULL;
// write object bbox to area
sp_document_ensure_up_to_date (doc);
Geom::OptRect areaMaybe;
- sp_item_invoke_bbox((SPItem *) o_area, areaMaybe, sp_item_i2r_affine((SPItem *) o_area), TRUE);
+ sp_item_invoke_bbox((SPItem *) o_area, areaMaybe, sp_item_i2d_affine((SPItem *) o_area), TRUE);
if (areaMaybe) {
area = *areaMaybe;
} else {
break;
}
case SP_ARG_VERSION: {
- printf("Inkscape %s (%s)\n", INKSCAPE_VERSION, __DATE__);
+ printf("Inkscape %s (%s)\n", Inkscape::version_string, __DATE__);
exit(0);
break;
}