Files
MINGW-packages/mingw-w64-eog/002-relocation-support.patch

195 lines
5.9 KiB
Diff

diff -Naur eog-3.14.1-orig/src/eog-application.c eog-3.14.1/src/eog-application.c
--- eog-3.14.1-orig/src/eog-application.c 2014-07-22 13:42:43.000000000 +0400
+++ eog-3.14.1/src/eog-application.c 2014-10-19 11:41:44.795200000 +0400
@@ -284,8 +284,20 @@
g_object_unref (provider);
/* Add application specific icons to search path */
+ gchar * eog_data_dir;
+#ifdef G_OS_WIN32
+{
+ gchar *dir;
+
+ dir = g_win32_get_package_installation_directory_of_module (NULL);
+ eog_data_dir = g_build_filename (dir, "share", "eog", "icons", NULL);
+ g_free (dir);
+}
+#else
+ eog_data_dir = g_strdup (EOG_DATA_DIR G_DIR_SEPARATOR_S "icons");
+#endif
gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (),
- EOG_DATA_DIR G_DIR_SEPARATOR_S "icons");
+ eog_data_dir);
gtk_window_set_default_icon_name ("eog");
g_set_application_name (_("Image Viewer"));
@@ -307,6 +319,7 @@
G_CALLBACK (on_extension_removed), app);
peas_extension_set_call (app->priv->extensions, "activate");
+ g_free(eog_data_dir);
}
static void
@@ -442,8 +455,20 @@
priv->ui_settings = g_settings_new (EOG_CONF_UI);
+ gchar * eog_toolbar_file;
+#ifdef G_OS_WIN32
+{
+ gchar *dir;
+
+ dir = g_win32_get_package_installation_directory_of_module (NULL);
+ eog_toolbar_file = g_build_filename (dir, "share", "eog", "eog-toolbar.xml", NULL);
+ g_free (dir);
+}
+#else
+ eog_toolbar_file = g_strdup (EOG_DATA_DIR G_DIR_SEPARATOR_S "eog-toolbar.xml");
+#endif
egg_toolbars_model_load_names (priv->toolbars_model,
- EOG_DATA_DIR "/eog-toolbar.xml");
+ eog_toolbar_file);
if (G_LIKELY (dot_dir != NULL))
priv->toolbars_file = g_build_filename
@@ -453,13 +478,14 @@
priv->toolbars_file)) {
egg_toolbars_model_load_toolbars (priv->toolbars_model,
- EOG_DATA_DIR "/eog-toolbar.xml");
+ eog_toolbar_file);
}
egg_toolbars_model_set_flags (priv->toolbars_model, 0,
EGG_TB_MODEL_NOT_REMOVABLE);
eog_application_load_accelerators ();
+ g_free(eog_toolbar_file);
}
/**
@@ -780,12 +806,26 @@
priv->toolbars_model = egg_toolbars_model_new ();
+ gchar * eog_toolbar_file;
+#ifdef G_OS_WIN32
+{
+ gchar *dir;
+
+ dir = g_win32_get_package_installation_directory_of_module (NULL);
+ eog_toolbar_file = g_build_filename (dir, "share", "eog", "eog-toolbar.xml", NULL);
+ g_free (dir);
+}
+#else
+ eog_toolbar_file = g_strdup (EOG_DATA_DIR G_DIR_SEPARATOR_S "eog-toolbar.xml");
+#endif
egg_toolbars_model_load_names (priv->toolbars_model,
- EOG_DATA_DIR "/eog-toolbar.xml");
+ eog_toolbar_file);
egg_toolbars_model_load_toolbars (priv->toolbars_model,
- EOG_DATA_DIR "/eog-toolbar.xml");
+ eog_toolbar_file);
egg_toolbars_model_set_flags (priv->toolbars_model, 0,
EGG_TB_MODEL_NOT_REMOVABLE);
+
+ g_free(eog_toolbar_file);
}
static void
diff -Naur eog-3.14.1-orig/src/eog-plugin-engine.c eog-3.14.1/src/eog-plugin-engine.c
--- eog-3.14.1-orig/src/eog-plugin-engine.c 2014-01-14 00:17:51.000000000 +0400
+++ eog-3.14.1/src/eog-plugin-engine.c 2014-10-19 11:49:44.495200000 +0400
@@ -85,7 +85,19 @@
const gchar * const * system_data_dirs;
GError *error = NULL;
- private_path = g_build_filename (LIBDIR, "eog",
+ gchar * eog_lib_dir;
+#ifdef G_OS_WIN32
+{
+ gchar *dir;
+
+ dir = g_win32_get_package_installation_directory_of_module (NULL);
+ eog_lib_dir = g_build_filename (dir, "lib", NULL);
+ g_free (dir);
+}
+#else
+ eog_lib_dir = g_strdup (LIBDIR);
+#endif
+ private_path = g_build_filename (eog_lib_dir,
"girepository-1.0", NULL);
/* This should be moved to libpeas */
@@ -117,6 +129,7 @@
}
g_free (private_path);
+ g_free (eog_lib_dir);
engine = EOG_PLUGIN_ENGINE (g_object_new (EOG_TYPE_PLUGIN_ENGINE,
NULL));
@@ -150,10 +163,24 @@
}
/* Find system-wide plugins */
- eog_debug_message (DEBUG_PLUGINS, "Adding system plugin dir ("
- EOG_PLUGIN_DIR ")to plugins search path");
+ gchar * eog_plugin_dir;
+ gchar * eog_data_plugin_dir;
+#ifdef G_OS_WIN32
+{
+ gchar *dir;
+
+ dir = g_win32_get_package_installation_directory_of_module (NULL);
+ eog_plugin_dir = g_build_filename (dir, "lib", "eog", "plugins", NULL);
+ eog_data_plugin_dir = g_build_filename (dir, "share", "eog", "plugins", NULL);
+ g_free (dir);
+}
+#else
+ eog_plugin_dir = g_strdup (EOG_PLUGIN_DIR);
+ eog_data_plugin_dir = g_strdup (EOG_PLUGIN_DATA_DIR);
+#endif
+ eog_debug_message (DEBUG_PLUGINS, "Adding system plugin dir (%s) to plugins search path", eog_plugin_dir);
peas_engine_add_search_path (PEAS_ENGINE (engine),
- EOG_PLUGIN_DIR, EOG_PLUGIN_DATA_DIR);
+ eog_plugin_dir, eog_data_plugin_dir);
g_settings_bind (engine->priv->plugins_settings,
EOG_CONF_PLUGINS_ACTIVE_PLUGINS,
@@ -162,6 +190,8 @@
G_SETTINGS_BIND_DEFAULT);
g_free (user_plugin_path);
+ g_free (eog_plugin_dir);
+ g_free (eog_data_plugin_dir);
return engine;
}
diff -Naur eog-3.14.1-orig/src/eog-thumbnail.c eog-3.14.1/src/eog-thumbnail.c
--- eog-3.14.1-orig/src/eog-thumbnail.c 2014-03-22 23:09:38.000000000 +0400
+++ eog-3.14.1/src/eog-thumbnail.c 2014-10-19 12:16:07.387600000 +0400
@@ -533,7 +533,20 @@
void
eog_thumbnail_init (void)
{
+ gchar * eog_data_dir;
+#ifdef G_OS_WIN32
+{
+ gchar *dir;
+
+ dir = g_win32_get_package_installation_directory_of_module (NULL);
+ eog_data_dir = g_build_filename (dir, "share", "eog", "/pixmaps/thumbnail-frame.png", NULL);
+ g_free (dir);
+}
+#else
+ eog_data_dir = g_strdup (EOG_DATA_DIR "/pixmaps/thumbnail-frame.png");
+#endif
if (frame == NULL) {
- frame = gdk_pixbuf_new_from_file (EOG_DATA_DIR "/pixmaps/thumbnail-frame.png", NULL);
+ frame = gdk_pixbuf_new_from_file (eog_data_dir, NULL);
}
+ g_free (eog_data_dir);
}