Fix problems discovered while testing on Windows.

* Set the working directory for glib-genmarshal correctly.
* Use one more path suffix when searching for glibconfig.h.
* Don't assume that gdk_screen_get_resolution() returns
  a useful value.
This commit is contained in:
Přemysl Eric Janouch 2010-12-20 05:20:21 +01:00
parent b44b3e6a54
commit 9dc1822040
3 changed files with 21 additions and 4 deletions

View File

@ -123,7 +123,16 @@ function (glib_genmarshal base prefix)
set (command_base ${GLIB_GENMARSHAL_EXECUTABLE}
--prefix ${prefix} "${base_name}.list")
# NOTE: VERBATIM may cause problems, so it is not used here
# On Windows, the final makefile may contain:
# cd e:\abc && ...
# That won't actually change the directory. We have to do:
# cd e:\abc && e: && ...
if (WIN32 AND "${base_path}" MATCHES "^.:[/\\\\]")
string (SUBSTRING "${base_path}" 0 2 base_drive)
set (command_base "${base_drive}" && "${command_base}")
endif (WIN32 AND "${base_path}" MATCHES "^.:[/\\\\]")
# NOTE: VERBATIM would cause problems, so it is not used here
add_custom_command (OUTPUT ${base}.c
COMMAND ${command_base} --body > "${base_name}.c"
DEPENDS "${base}.list"

View File

@ -38,7 +38,7 @@ find_path (JSON_GLIB_INCLUDE_DIR_GOBJECT glib-object.h
find_path (JSON_GLIB_INCLUDE_DIR_GLIBCONFIG glibconfig.h
PATHS /usr/lib
PATH_SUFFIXES glib-2.0/include)
PATH_SUFFIXES glib-2.0 glib-2.0/include)
find_library (JSON_GLIB_LIBRARIES json-glib-1.0)

View File

@ -36,6 +36,9 @@
/* Tolerance on all sides of symbols for strokes. */
#define SYMBOL_AREA_TOLERANCE 0.5
/* The default screen resolution in DPI units. */
#define DEFAULT_SCREEN_RESOLUTION 96
/*
* LdCanvasPrivate:
* @diagram: A diagram object assigned to this canvas as a model.
@ -455,11 +458,16 @@ ld_canvas_get_library (LdCanvas *self)
static gdouble
ld_canvas_get_base_unit_in_px (GtkWidget *self)
{
gdouble resolution;
g_return_val_if_fail (GTK_IS_WIDGET (self), 1);
resolution = gdk_screen_get_resolution (gtk_widget_get_screen (self));
if (resolution == -1)
resolution = DEFAULT_SCREEN_RESOLUTION;
/* XXX: It might look better if the unit was rounded to a whole number. */
return gdk_screen_get_resolution (gtk_widget_get_screen (self))
/ MM_PER_INCH * LD_CANVAS_BASE_UNIT_LENGTH;
return resolution / MM_PER_INCH * LD_CANVAS_BASE_UNIT_LENGTH;
}
/*