Clone in a terminal:
Commit 2865538
Johan Mattsson - 2013-08-26T15:31:06+00:00
2865538b4425aab3c78332d9abd5c87f93bf8ccbjohan.mattsson.m@gmail.com

tie handle even if control point is not selected

Changed files (5)

Diff

diff --git a/README b/READMEindex 62ec72b..8e76d8d 100644--- a/README+++ b/README@@ -2,7 +2,7 @@ Birdfont - Font Editor
 ----------------------
 
-Birdfont is a font editor which can create vector graphics and export SVG, EOT and TTF fonts.+Birdfont is a font editor which can create vector graphics and export SVG, EOT and TTF fonts.
 
 Author: Johan Mattsson and others see AUTHORS for full attribution.
 License: GNU GPL v3
@@ -27,7 +27,7 @@ unicode-data (unicode character database) Configure, build and install:
 ./configure
 ./scripts/linux_build.py
-sudo ./birdfont_install
+sudo ./install.py
 
 BirdFont have two build systems, one very simple python script that
 builds all binaries at once and one dependency based build system
@@ -36,7 +36,7 @@ that uses doit. Configure, build and install with doit:
 ./configure
 doit
-sudo ./birdfont_install
+sudo ./install.py
 
 
 ---------------------
@@ -47,7 +47,7 @@ Compile all dependencies using MacPorts and run: 
 python ./configure --prefix=/opt/birdfont 
 python ./scripts/mac_build.py
-sudo python ./birdfont_install
+sudo python ./install.py
 
 --------
 Packages
@@ -56,7 +56,8 @@ Packages Windows binaries are avalilable at http://birdfont.org
 
 A Ubuntu package is avalilable at https://launchpad.net
-You can apt-get install birdfont form Olivier Bertens repository.
+You can apt-get install birdfont form Olivier Bertens or
+Dariusz Dumas repository.
 
 A Machintosh binary image is available at http://birdfont.org and
 a GTK version for Mac can be installed with MacPorts.
diff --git a/birdfont_install b/birdfont_installdeleted file mode 100755index 4d684f9..0000000--- a/birdfont_install+++ /dev/null@@ -1,85 +0,0 @@-#!/usr/bin/python -import os-import subprocess-import glob-from optparse import OptionParser-from scripts import config-from scripts import version-from scripts.run import run--def install (file, dir):-	f = dest + prefix + dir + '/'-	s = file.rfind ('/')-	if s > -1:-		f += file[s + 1:]-	else:-		f += file-	print ("install: " + f)-	run ('install -d ' + dest + prefix + dir)-	run ('install ' + file + ' ' + dest + prefix + dir + '/')-	installed.write (f + "\n")--if not os.path.exists ("build/configured"):-	print ("Project is not configured")-	exit (1)--if not os.path.exists ("build/installed"):-        print ("Project is not built")-        exit (1)--parser = OptionParser()-parser.add_option ("-d", "--dest", dest="dest", help="install to this directory", metavar="DEST")-parser.add_option ("-m", "--bsd-manpages", dest="nogzip", help="don't gzip manpages")--(options, args) = parser.parse_args()--if not options.dest:-	options.dest = ""--if not options.nogzip:-    bsd_manpages = True-else:-    bsd_manpages = False-	-prefix = config.PREFIX-dest = options.dest--# create uninstall file-installed = open ('build/installed', 'w')-installed.write ('build/installed\n')--# install it:-for file in os.listdir('./layout'):-	install ('layout/' + file, '/share/birdfont/layout')--for file in os.listdir('./icons'):-	install ('icons/' + file, '/share/birdfont/icons')--install ('resources/linux/birdfont.desktop', '/share/applications')-install ('resources/linux/birdfont.png', '/share/icons/hicolor/48x48/apps')--install ('build/bin/birdfont', '/bin')-install ('build/bin/birdfont-export', '/bin')--#library-if os.path.isfile ('build/bin/libbirdfont.so.' + version.SO_VERSION):-	install ('build/bin/libbirdfont.so.' + version.SO_VERSION, '/lib')-	install ('build/bin/libbirdfont.so', '/lib')-else:-	install ('build/bin/libbirdfont.' + version.SO_VERSION + '.dylib', '/lib')-	install ('build/bin/libbirdfont.dylib', '/lib')--#manpages-if not bsd_manpages:-    install ('build/birdfont.1.gz', '/share/man/man1')-    install ('build/birdfont-export.1.gz', '/share/man/man1')-else:-    install ('resources/linux/birdfont.1', '/man/man1')-    install ('resources/linux/birdfont-export.1', '/man/man1')--# translations-for lang_dir in glob.glob('build/locale/*'):-	lc = lang_dir.replace ('build/locale/', "")-	install ('build/locale/' + lc + '/LC_MESSAGES/birdfont.mo', '/share/locale/' + lc + '/LC_MESSAGES' );--installed.close ()diff --git a/install.py b/install.pynew file mode 100755index 0000000..4d684f9--- /dev/null+++ b/install.py@@ -0,0 +1,85 @@+#!/usr/bin/python +import os+import subprocess+import glob+from optparse import OptionParser+from scripts import config+from scripts import version+from scripts.run import run++def install (file, dir):+	f = dest + prefix + dir + '/'+	s = file.rfind ('/')+	if s > -1:+		f += file[s + 1:]+	else:+		f += file+	print ("install: " + f)+	run ('install -d ' + dest + prefix + dir)+	run ('install ' + file + ' ' + dest + prefix + dir + '/')+	installed.write (f + "\n")++if not os.path.exists ("build/configured"):+	print ("Project is not configured")+	exit (1)++if not os.path.exists ("build/installed"):+        print ("Project is not built")+        exit (1)++parser = OptionParser()+parser.add_option ("-d", "--dest", dest="dest", help="install to this directory", metavar="DEST")+parser.add_option ("-m", "--bsd-manpages", dest="nogzip", help="don't gzip manpages")++(options, args) = parser.parse_args()++if not options.dest:+	options.dest = ""++if not options.nogzip:+    bsd_manpages = True+else:+    bsd_manpages = False+	+prefix = config.PREFIX+dest = options.dest++# create uninstall file+installed = open ('build/installed', 'w')+installed.write ('build/installed\n')++# install it:+for file in os.listdir('./layout'):+	install ('layout/' + file, '/share/birdfont/layout')++for file in os.listdir('./icons'):+	install ('icons/' + file, '/share/birdfont/icons')++install ('resources/linux/birdfont.desktop', '/share/applications')+install ('resources/linux/birdfont.png', '/share/icons/hicolor/48x48/apps')++install ('build/bin/birdfont', '/bin')+install ('build/bin/birdfont-export', '/bin')++#library+if os.path.isfile ('build/bin/libbirdfont.so.' + version.SO_VERSION):+	install ('build/bin/libbirdfont.so.' + version.SO_VERSION, '/lib')+	install ('build/bin/libbirdfont.so', '/lib')+else:+	install ('build/bin/libbirdfont.' + version.SO_VERSION + '.dylib', '/lib')+	install ('build/bin/libbirdfont.dylib', '/lib')++#manpages+if not bsd_manpages:+    install ('build/birdfont.1.gz', '/share/man/man1')+    install ('build/birdfont-export.1.gz', '/share/man/man1')+else:+    install ('resources/linux/birdfont.1', '/man/man1')+    install ('resources/linux/birdfont-export.1', '/man/man1')++# translations+for lang_dir in glob.glob('build/locale/*'):+	lc = lang_dir.replace ('build/locale/', "")+	install ('build/locale/' + lc + '/LC_MESSAGES/birdfont.mo', '/share/locale/' + lc + '/LC_MESSAGES' );++installed.close ()diff --git a/libbirdfont/DrawingTools.vala b/libbirdfont/DrawingTools.valaindex 221a395..1d3a7ae 100644--- a/libbirdfont/DrawingTools.vala+++ b/libbirdfont/DrawingTools.vala@@ -108,16 +108,29 @@ public class DrawingTools : ToolCollection  { 		Tool tie_handles = new Tool ("tie_point", _("Tie curve handles for the selected edit point"), 'w'); 		tie_handles.select_action.connect ((self) => { 			bool tie;+			EditPoint p; 			-			foreach (EditPoint ep in PenTool.selected_points) {-				tie = !ep.tie_handles;+			if (PenTool.move_selected_handle) {+				p = PenTool.active_handle.parent;+				tie = !p.tie_handles; 				 				if (tie) {-					ep.process_tied_handle ();-					ep.set_reflective_handles (false);+					p.process_tied_handle ();+					p.set_reflective_handles (false);+				}+				+				p.set_tie_handle (tie);+			} else {+				foreach (EditPoint ep in PenTool.selected_points) {+					tie = !ep.tie_handles;+					+					if (tie) {+						ep.process_tied_handle ();+						ep.set_reflective_handles (false);+					}+				+					ep.set_tie_handle (tie); 				}-			-				ep.set_tie_handle (tie); 			} 			 			MainWindow.get_current_glyph ().update_view ();diff --git a/libbirdfont/PenTool.vala b/libbirdfont/PenTool.valaindex c128cb8..ef6d990 100644--- a/libbirdfont/PenTool.vala+++ b/libbirdfont/PenTool.vala@@ -35,7 +35,7 @@ public class PenTool : Tool { 	public static EditPoint? active_edit_point = new EditPoint (); 	public static EditPoint selected_point = new EditPoint (); -	private static bool move_selected_handle = false;+	public static bool move_selected_handle = false;  	private static double last_point_x = 0; 	private static double last_point_y = 0;

Contact

Email: johan.mattsson.m@gmail.com
Mastodon: typo.social/@birdfont
GitHub: johanmattssonm
LinkedIn: johan-mattsson-2ab324112