-Main author: Denis Auroux (auroux@math.mit.edu, auroux@math.berkeley.edu)
+Main author: Denis Auroux (auroux@math.berkeley.edu)
The source code includes contributions by the following people:
-Eduardo de Barros Lima, Mathieu Bouchard, Ole Joergen Broenner,
-Vincenzo Ciancia, Luca de Cicco, Michele Codutti, Robert Gerlach,
-Lukasz Kaiser, Danny Kukawka, Stefan Lembach, Bob McElrath, Andy Neitzke,
-David Planella, Marco Poletti, Alex Ray, Jean-Baptiste Rouquier,
-Mike Ter Louw, Uwe Winter, Lu Zhihe.
+Alvaro, Kit Barnes, Eduardo de Barros Lima, Mathieu Bouchard,
+Ole Joergen Broenner, Robert Buchholz, Vincenzo Ciancia, Luca de Cicco,
+Michele Codutti, Robert Gerlach, Daniel German, Dirk Gerrits,
+Lukasz Kaiser, Timo Kluck, David Kolibac, Danny Kukawka, Stefan Lembach,
+Bob McElrath, Andy Neitzke, David Planella, Marco Poletti, Alex Ray,
+Jean-Baptiste Rouquier, Marco Souza, Mike Ter Louw, Uwe Winter, Lu Zhihe.
(Let me know if you are missing from this list or if your name is
mis-spelled)
-This version:
+Version 0.4.6 (May 22, 2012):
- win32 portability code (contributed by Dirk Gerrits)
- fix bug in PDF export code on 64-bit systems (patch by Robert Buchholz)
- fix hand tool bug when exiting canvas (#2905711)
- option to force PDF background rendering via cairo (slower but nicer)
- wrapper for missing GdkPixbuf rendering function in newest poppler
- disable GTK+ XInput bugfix by default (#3429416)
+ - fix linker flags (#3208984); evdev coordinate fix (#3244118) (Timo Kluck)
+ - specify license version: GPL v2 or later
+ - fix 1.#J coordinates from win32 xoj files
Version 0.4.5 (Oct 2, 2009):
- bugfixes for GTK+ 2.16/2.17 issues with xinput events
-Version 0.4.5 (October 2, 2009)
+Version 0.4.6 (May 22, 2012)
+
+This release catches up with changes accumulated in the cvs repository.
Installation: see INSTALL
User's manual: see html-doc/manual.html
-Version 0.4.5 (October 2, 2009)
+Version 0.4.6 (May 22, 2012)
-Installation: see INSTALL
-Latest changes: see ChangeLog
-User's manual: see html-doc/manual.html
-Updates: see http://xournal.sourceforge.net/
+This release catches up with changes accumulated in the cvs repository.
+
+Installation: see INSTALL
+User's manual: see html-doc/manual.html
+Updates: see http://xournal.sourceforge.net/
See also: http://sourceforge.net/projects/xournal
-# generated automatically by aclocal 1.11 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63],,
-[m4_warning([this file was generated for autoconf 2.63.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
+[m4_warning([this file was generated for autoconf 2.68.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.])])
[CATOBJEXT=.mo
DATADIRNAME=lib])
;;
+ *-*-openbsd*)
+ CATOBJEXT=.mo
+ DATADIRNAME=share
+ ;;
*)
CATOBJEXT=.mo
DATADIRNAME=lib
dnl These rules are solely for the distribution goal. While doing this
dnl we only have to keep exactly one list of the available catalogs
- dnl in configure.in.
+ dnl in configure.ac.
for lang in $ALL_LINGUAS; do
GMOFILES="$GMOFILES $lang.gmo"
POFILES="$POFILES $lang.po"
dnl
dnl Now the definitions that aclocal will find
dnl
-ifdef(glib_configure_in,[],[
+ifdef(glib_configure_ac,[],[
AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)])
AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)])
])dnl
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
+# serial 1 (pkg-config-0.24)
#
# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
#
AC_DEFUN([PKG_PROG_PKG_CONFIG],
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
-AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
+AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
+AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
+
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
fi
AC_MSG_RESULT([no])
PKG_CONFIG=""
fi
-
fi[]dnl
])# PKG_PROG_PKG_CONFIG
# Check to see whether a particular set of modules exists. Similar
# to PKG_CHECK_MODULES(), but does not set variables or print errors.
#
-#
-# Similar to PKG_CHECK_MODULES, make sure that the first instance of
-# this or PKG_CHECK_MODULES is called, or make sure to call
-# PKG_CHECK_EXISTS manually
+# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+# only at the first occurence in configure.ac, so if the first place
+# it's called might be skipped (such as if it is within an "if", you
+# have to call PKG_CHECK_EXISTS manually
# --------------------------------------------------------------
AC_DEFUN([PKG_CHECK_EXISTS],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
if test -n "$PKG_CONFIG" && \
AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
- m4_ifval([$2], [$2], [:])
+ m4_default([$2], [:])
m4_ifvaln([$3], [else
$3])dnl
fi])
-
# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
# ---------------------------------------------
m4_define([_PKG_CONFIG],
See the pkg-config man page for more details.])
if test $pkg_failed = yes; then
+ AC_MSG_RESULT([no])
_PKG_SHORT_ERRORS_SUPPORTED
if test $_pkg_short_errors_supported = yes; then
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
# Put the nasty error message in config.log where it belongs
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
- ifelse([$4], , [AC_MSG_ERROR(dnl
+ m4_default([$4], [AC_MSG_ERROR(
[Package requirements ($2) were not met:
$$1_PKG_ERRORS
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
-_PKG_TEXT
-])],
- [AC_MSG_RESULT([no])
- $4])
+_PKG_TEXT])
+ ])
elif test $pkg_failed = untried; then
- ifelse([$4], , [AC_MSG_FAILURE(dnl
+ AC_MSG_RESULT([no])
+ m4_default([$4], [AC_MSG_FAILURE(
[The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
_PKG_TEXT
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
- [$4])
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])
+ ])
else
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
AC_MSG_RESULT([yes])
- ifelse([$3], , :, [$3])
+ $3
fi[]dnl
])# PKG_CHECK_MODULES
[am__api_version='1.11'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.11], [],
+m4_if([$1], [1.11.1], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11])dnl
+[AM_AUTOMAKE_VERSION([1.11.1])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
/* Define to the version of this package. */
#undef PACKAGE_VERSION
# Define the identity of the package.
PACKAGE=xournal
- VERSION=0.4.5
+ VERSION=0.4.6
cat >>confdefs.h <<_ACEOF
dnl Process this file with autoconf to produce a configure script.
AC_INIT(configure.in)
-AM_INIT_AUTOMAKE(xournal, 0.4.5)
+AM_INIT_AUTOMAKE(xournal, 0.4.6)
AM_CONFIG_HEADER(config.h)
AM_MAINTAINER_MODE
Xournal User's Manual
</h2>
<p style="font-size: 0.95em; text-align: center; color: rgb(0,0,0)">
- Version 0.4.5
+ Version 0.4.6
</p>
<hr />
<p>
<h2 class="subtitle">Author information, license, bug-reports</h2>
<p>
Xournal is written by Denis Auroux
-(aur<!--despam-->oux<span>@</span><span>math</span>.<span>mit.edu,
-aur<!--despam-->oux<span>@</span><span>math</span>.<span>berkeley.edu).
+(aur<!--despam-->oux<span>@</span><span>math</span>.<span>berkeley.edu).
</p>
<p>
The source code includes contributions by the following people:
-Eduardo de Barros Lima, Mathieu Bouchard, Ole Jørgen Brønner,
-Vincenzo Ciancia, Luca de Cicco, Michele Codutti,
-Robert Gerlach, Lukasz Kaiser, Danny Kukawka, Bob McElrath,
-Andy Neitzke, David Planella, Alex Ray, Jean-Baptiste Rouquier,
-Mike Ter Louw, Uwe Winter, Lu Zhihe.
+Alvaro, Kit Barnes, Eduardo de Barros Lima, Mathieu Bouchard,
+Ole Jørgen Brønner, Robert Buchholz, Vincenzo Ciancia, Luca de Cicco,
+Michele Codutti, Robert Gerlach, Daniel German, Dirk Gerrits,
+Lukasz Kaiser, Timo Kluck, David Kolibac, Danny Kukawka, Stefan Lembach,
+Bob McElrath, Andy Neitzke, David Planella, Marco Poletti, Alex Ray,
+Jean-Baptiste Rouquier, Marco Souza, Mike Ter Louw, Uwe Winter, Lu Zhihe.
</p>
<p style="font-size:0.9em">(Let me know if you are missing from this list or
if your name is mis-spelled)</p>
<p>
-Xournal is distributed under the GNU General Public License.
+Xournal is distributed under the GNU General Public License (version 2, or
+at your option any later version).
</p>
<p style="font-size: 0.9em; font-style: italic">
<b>Note:</b> most of the code of version 0.4.2.1
<a name="changelog"></a>
<h2 class="subtitle">Version history</h2>
<p>
+Version 0.4.6 (May 22, 2012):
+<ul>
+ <li>win32 portability code (contributed by Dirk Gerrits)
+</li><li>fix bug in PDF export code on 64-bit systems (patch by Robert Buchholz)
+</li><li>fix hand tool bug when exiting canvas (#2905711)
+</li><li>Italian translation (Marco Poletti), German translation (Stefan Lembach)
+</li><li>Spanish translation (Alvaro), Brazil Portuguese translation (Marco Souza)
+</li><li>fix save bug with text boxes containing > 4095 characters
+</li><li>Czech translation (David Kolibac), Dutch translation (Timo Kluck)
+</li><li>fix crash upon unplugging input devices
+</li><li>change close dialog box default to "save" (patch by Kit Barnes)
+</li><li>option to force PDF background rendering via cairo (slower but nicer)
+</li><li>wrapper for missing GdkPixbuf rendering function in newest poppler
+</li><li>disable GTK+ XInput bugfix by default (#3429416)
+</li><li>fix linker flags (#3208984); evdev coordinate fix (#3244118) (Timo Kluck)
+</li><li>specify license version: GPL v2 or later
+</li><li>fix 1.#J coordinates from win32 xoj files
+</li>
+</ul>
+</p>
+<p>
Version 0.4.5 (Oct 2, 2009):
<ul>
<li>bugfixes for GTK+ 2.16/2.17 issues with xinput events
<p>
<b>Compilation and installation in /usr/local:</b>
<pre>
-./configure
+./autogen.sh
make
(as root) make install
(as root) make desktop-install
<p>
<b>Compilation and installation in $HOME:</b>
<pre>
+./autogen.sh
./configure --prefix=$HOME
make
make install
won't be detected anymore).
</p>
<p>
-I have also had a report that one of the workarounds used by Xournal to
-bypass a calibration bug in GTK+ can actually entirely prevent strokes
-from being drawn. If you are being unsuccessful at drawing in Xournal
-with XInput enabled, try recompiling after commenting out the line
+One of the workarounds used by Xournal to
+bypass a calibration bug in old versions of GTK+ seems to be more harmful
+than helpful with modern distributions. If you miss the old behavior or
+are having XInput issues, try recompiling after uncommenting the line
<pre>#define ENABLE_XINPUT_BUGFIX</pre>
near the beginning of <tt>src/xournal.h</tt>.
-If this modification does improve things for you, and if you have a bit
-of spare time to help investigate the causes of this problem, please
-contact me.
</p>
<h3 class="subsub">On-the-fly display rotation</h3>
<p>
</pre>
<b>Note #1:</b> you should not rotate the display while Xournal is running,
otherwise the tablet calibration in Xournal may (and most likely will)
-become incorrect.
+become incorrect. (Less likely to occur with modern distributions and
+ENABLE_XINPUT_BUGFIX disabled).
Exit Xournal and restart it after the display has been rotated.
</p>
<p>
#! /bin/sh
# mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman <friedman@prep.ai.mit.edu>
+
+scriptversion=2009-04-28.21; # UTC
+
+# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16
-# Public domain
+# Public domain.
+#
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+nl='
+'
+IFS=" "" $nl"
errstatus=0
-dirmode=""
+dirmode=
usage="\
-Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
+Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
+
+Create each directory DIR (with mode MODE, if specified), including all
+leading file name components.
+
+Report bugs to <bug-automake@gnu.org>."
# process command line arguments
while test $# -gt 0 ; do
case $1 in
-h | --help | --h*) # -h for help
- echo "$usage" 1>&2
- exit 0
+ echo "$usage"
+ exit $?
;;
-m) # -m PERM arg
shift
dirmode=$1
shift
;;
+ --version)
+ echo "$0 $scriptversion"
+ exit $?
+ ;;
--) # stop option processing
shift
break
0) exit 0 ;;
esac
+# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and
+# mkdir -p a/c at the same time, both will detect that a is missing,
+# one will create a, then the other will try to create a and die with
+# a "File exists" error. This is a problem when calling mkinstalldirs
+# from a parallel make. We use --version in the probe to restrict
+# ourselves to GNU mkdir, which is thread-safe.
case $dirmode in
'')
- if mkdir -p -- . 2>/dev/null; then
+ if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
echo "mkdir -p -- $*"
exec mkdir -p -- "$@"
+ else
+ # On NextStep and OpenStep, the `mkdir' command does not
+ # recognize any option. It will interpret all options as
+ # directories to create, and then abort because `.' already
+ # exists.
+ test -d ./-p && rmdir ./-p
+ test -d ./--version && rmdir ./--version
fi
;;
*)
- if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
+ if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
+ test ! -d ./--version; then
echo "mkdir -m $dirmode -p -- $*"
exec mkdir -m "$dirmode" -p -- "$@"
+ else
+ # Clean up after NextStep and OpenStep mkdir.
+ for d in ./-m ./-p ./--version "./$dirmode";
+ do
+ test -d $d && rmdir $d
+ done
fi
;;
esac
for file
do
- set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+ case $file in
+ /*) pathcomp=/ ;;
+ *) pathcomp= ;;
+ esac
+ oIFS=$IFS
+ IFS=/
+ set fnord $file
shift
+ IFS=$oIFS
- pathcomp=
for d
do
- pathcomp="$pathcomp$d"
+ test "x$d" = x && continue
+
+ pathcomp=$pathcomp$d
case $pathcomp in
-*) pathcomp=./$pathcomp ;;
esac
mkdir "$pathcomp" || lasterr=$?
if test ! -d "$pathcomp"; then
- errstatus=$lasterr
+ errstatus=$lasterr
else
- if test ! -z "$dirmode"; then
+ if test ! -z "$dirmode"; then
echo "chmod $dirmode $pathcomp"
- lasterr=""
- chmod "$dirmode" "$pathcomp" || lasterr=$?
+ lasterr=
+ chmod "$dirmode" "$pathcomp" || lasterr=$?
- if test ! -z "$lasterr"; then
- errstatus=$lasterr
- fi
- fi
+ if test ! -z "$lasterr"; then
+ errstatus=$lasterr
+ fi
+ fi
fi
fi
- pathcomp="$pathcomp/"
+ pathcomp=$pathcomp/
done
done
# Local Variables:
# mode: shell-script
# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
# End:
-# mkinstalldirs ends here
+Version 0.4.6:
- added Italian translation (by Marco Poletti)
- added German translation (by Stefan Lembach)
- added Spanish translation (by Alvaro)
$(MSGFMT) -o $@ $<
.po.gmo:
- file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
+ $(AM_V_GEN) file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
&& rm -f $$file && $(GMSGFMT) $(MSGFMT_OPTS) -o $$file $<
.po.cat:
all-no:
$(srcdir)/$(GETTEXT_PACKAGE).pot: $(POTFILES)
- $(XGETTEXT) --default-domain=$(GETTEXT_PACKAGE) --directory=$(top_srcdir) \
+ $(XGETTEXT) --default-domain=$(GETTEXT_PACKAGE) \
+ --msgid-bugs-address='http://bugzilla.gnome.org/enter_bug.cgi?product=glib&keywords=I18N+L10N&component=general' \
--add-comments --keyword=_ --keyword=N_ \
+ --keyword=C_:1c,2 \
+ --keyword=NC_:1c,2 \
+ --keyword=g_dcgettext:2 \
+ --keyword=g_dngettext:2,3 \
+ --keyword=g_dpgettext2:2c,3 \
+ --flag=N_:1:pass-c-format \
+ --flag=C_:2:pass-c-format \
+ --flag=NC_:2:pass-c-format \
+ --flag=g_dngettext:2:pass-c-format \
--flag=g_strdup_printf:1:c-format \
--flag=g_string_printf:2:c-format \
--flag=g_string_append_printf:2:c-format \
--flag=g_snprintf:3:c-format \
--flag=g_scanner_error:2:c-format \
--flag=g_scanner_warn:2:c-format \
- --files-from=$(srcdir)/POTFILES.in \
+ $(POTFILES) \
&& test ! -f $(GETTEXT_PACKAGE).po \
|| ( rm -f $(srcdir)/$(GETTEXT_PACKAGE).pot \
&& mv $(GETTEXT_PACKAGE).po $(srcdir)/$(GETTEXT_PACKAGE).pot )
rm -f $(GMOFILES)
distdir = ../$(GETTEXT_PACKAGE)-$(VERSION)/$(subdir)
-dist distdir: update-po $(DISTFILES)
+dist distdir: $(DISTFILES)
dists="$(DISTFILES)"; \
for file in $$dists; do \
ln $(srcdir)/$$file $(distdir) 2> /dev/null \
- cleanup of undo history (keep track of refcounts, delete old undo)
save-and-clear-undo ?
-- RandR / recalibration awareness?
+- RandR / recalibration awareness? - NOT NEEDED ANYMORE?
(e.g. if xinput events are far away from core events, re-query geometry?)
or see if removing the GTK bugfix would help? -- e.g. by recalling an
internal gtk init function?
to X server to query input device geometry and compensate for GTK.
BUGS:
-** lingering issues with synaptics touchpads? (#2872667)
+- lingering issues with synaptics touchpads? (#2872667)
(todo) - set device to Absolute mode at startup? (GDK doesn't expose API,
cf XSetDeviceMode() in /usr/include/X11/extensions/XInput.h)
-** color picker into canvas doesn't work in GTK+ 2.16 (should disable
+- color picker into canvas doesn't work in GTK+ 2.16 (should disable
xinput first?)
-** export to PDF should see cropbox size if smaller, and map the
+- export to PDF should see cropbox size if smaller, and map the
cropbox -- not the entire page -- to the page area! (2009-11-18 forum)
-*** filter out very large coords when loading, not just infinity
-
WIN32:
- test further
- write an installer
- bug: opening files with accents in name?
- bug: cairo-scaled-font in printing? (2009-11-18 bug tracker)
- bug: printf() sometimes generates stroke coordinates 1.#J -1.#J (???)
+ (filter out inf, -inf, nan, very large values when saving ???)
PATCHES TO INCORPORATE:
-* filter out very large coords when loading, not just infinity; also filter
- out 1.#J's
+- ezyang e-mail of 11/28/2011: patches in Ubuntu to fix PDF showing up?
+http://archive.ubuntu.com/ubuntu/pool/universe/x/xournal/xournal_0.4.5-3.debian.tar.gz
+actually not necessary anymore? (ezyang 12/2/2011)
+
+- tauu e-mail of 12/1/2011: 8 small patches for win32, uploaded on tracker
+https://sourceforge.net/tracker/index.php?func=detail&aid=3447356&group_id=163434&atid=827735
- patch: add Alt-Up/Dn accelerators for show/hide layer. See
show_hide_layer.patch
-***** my own patch noresize_background_v1.patch (also in xournal-working/)
+* my own patch noresize_background_v1.patch (also in xournal-working/)
** patch: ortho/snap (revised Apr 13 2009)
xournal_ortho_snap_patch_4 (by Josef Pavlicek)
shortcut to increase/decrease text font size by 1 point (?) - acts just
as if one had clicked font sel box and resized (affects sel text + cur font)
-- make default in ok_to_close() box "cancel" rather than "no".
-
- make line spacing in text objects customizable: to a fixed scaling factor,
a fixed number of units, or the paper ruling (esp. the latter!!)
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
subdir = src/ttsubset
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
+build = @build@
build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
+host = @host@
host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
if (!is_core)
fix_xinput_coords((GdkEvent *)event);
- if (!finite(event->x) || !finite(event->y)) return FALSE; // Xorg 7.3 bug
+ if (!finite_sized(event->x) || !finite_sized(event->y)) return FALSE; // Xorg 7.3 bug
if (ui.cur_item_type == ITEM_TEXT) {
if (!is_event_within_textview(event)) end_text();
is_core = (event->device == gdk_device_get_core_pointer());
if (!ui.use_xinput && !is_core) return FALSE;
if (!is_core) fix_xinput_coords((GdkEvent *)event);
- if (!finite(event->x) || !finite(event->y)) return FALSE; // Xorg 7.3 bug
+ if (!finite_sized(event->x) || !finite_sized(event->y)) return FALSE; // Xorg 7.3 bug
if (ui.selection!=NULL && ui.cur_item_type == ITEM_NONE) {
get_pointer_coords((GdkEvent *)event, pt);
}
// sanitize a string containing floats, in case it may have , instead of .
+// also replace Windows-produced 1.#J by inf
void cleanup_numeric(char *s)
{
- while (*s!=0) { if (*s==',') *s='.'; s++; }
+ while (*s!=0) {
+ if (*s==',') *s='.';
+ if (*s=='1' && s[1]=='.' && s[2]=='#' && s[3]=='J')
+ { *s='i'; s[1]='n'; s[2]='f'; s[3]=' '; }
+ s++;
+ }
}
// the XML parser functions for open_journal()
if (ptr == text) break;
text_len -= (ptr - text);
text = ptr;
- if (!finite(ui.cur_path.coords[n])) {
+ if (!finite_sized(ui.cur_path.coords[n])) {
if (n>=2) ui.cur_path.coords[n] = ui.cur_path.coords[n-2];
else ui.cur_path.coords[n] = 0;
}
// some helper functions
+int finite_sized(double x) // detect unrealistic coordinate values
+{
+ return (finite(x) && x<1E6 && x>-1E6);
+}
+
+
void get_pointer_coords(GdkEvent *event, gdouble *ret)
{
double x, y;
#ifdef ENABLE_XINPUT_BUGFIX
// fix broken events with the core pointer's location
- if (!finite(axes[0]) || !finite(axes[1]) || axes[0]==0. || axes[1]==0.) {
+ if (!finite_sized(axes[0]) || !finite_sized(axes[1]) || axes[0]==0. || axes[1]==0.) {
gdk_window_get_pointer(GTK_WIDGET(canvas)->window, &ix, &iy, NULL);
*px = ix + sx;
*py = iy + sy;
*py = (axes[1]/axis_width)*ui.screen_height + sy - wy;
}
#else
- if (!finite(*px) || !finite(*py) || (*px==0. && *py==0.)) {
+ if (!finite_sized(*px) || !finite_sized(*py) || *px==0. || *py==0.) {
gdk_window_get_pointer(GTK_WIDGET(canvas)->window, &ix, &iy, NULL);
*px = ix + sx;
*py = iy + sy;
|| device->num_axes <= 2) return 1.0;
rawpressure = axes[2]/(device->axes[2].max - device->axes[2].min);
- if (!finite(rawpressure)) return 1.0;
+ if (!finite_sized(rawpressure)) return 1.0;
return ((1-rawpressure)*ui.width_minimum_multiplier + rawpressure*ui.width_maximum_multiplier);
}
// helper functions
+int finite_sized(double x);
void get_pointer_coords(GdkEvent *event, double *ret);
double get_pressure_multiplier(GdkEvent *event);
void fix_xinput_coords(GdkEvent *event);