From e35c56a1f1f434a545a15ff880046f5c0bb5c7e1 Mon Sep 17 00:00:00 2001
From: Ivica Ico Bukvic <ico@vt.edu>
Date: Thu, 23 May 2013 20:17:25 -0400
Subject: [PATCH] added accelerated displace to pddplink

---
 externals/pddp/pddplink.c | 30 ++++++++++++++++++++++++------
 1 file changed, 24 insertions(+), 6 deletions(-)

diff --git a/externals/pddp/pddplink.c b/externals/pddp/pddplink.c
index e352c642d..87650cf94 100644
--- a/externals/pddp/pddplink.c
+++ b/externals/pddp/pddplink.c
@@ -79,6 +79,18 @@ static void pddplink_displace(t_gobj *z, t_glist *glist, int dx, int dy)
     }
 }
 
+static void pddplink_displace_withtag(t_gobj *z, t_glist *glist, int dx, int dy)
+{
+    t_text *t = (t_text *)z;
+    t->te_xpix += dx;
+    t->te_ypix += dy;
+    /*if (glist_isvisible(glist))
+    {
+        t_rtext *y = glist_findrtext(glist, t);
+        rtext_displace(y, dx, dy);
+    }*/
+}
+
 static void pddplink_select(t_gobj *z, t_glist *glist, int state)
 {
     t_pddplink *x = (t_pddplink *)z;
@@ -86,12 +98,17 @@ static void pddplink_select(t_gobj *z, t_glist *glist, int state)
     rtext_select(y, state);
     if (glist_isvisible(glist) && glist->gl_havewindow)
     {
-	if (state)
-	    sys_vgui(".x%lx.c itemconfigure %s -fill $select_color\n",
-		     glist, rtext_gettag(y));
-	else
-	    sys_vgui(".x%lx.c itemconfigure %s -text {%s} -fill #0000dd -activefill #e70000\n",
-		     glist, rtext_gettag(y), x->x_vistext);
+		if (state) {
+			sys_vgui(".x%lx.c itemconfigure %s -fill $select_color\n",
+				glist, rtext_gettag(y));
+			sys_vgui(".x%lx.c addtag selected withtag %s\n",
+				glist, rtext_gettag(y));
+		}
+		else {
+			sys_vgui(".x%lx.c itemconfigure %s -text {%s} -fill #0000dd -activefill #e70000\n",
+				glist, rtext_gettag(y), x->x_vistext);
+			sys_vgui(".x%lx.c dtag %s selected\n", glist, rtext_gettag(y));
+		}
     }
 }
 
@@ -137,6 +154,7 @@ static t_widgetbehavior pddplink_widgetbehavior =
     0,
     pddplink_vis,
     pddplink_wbclick,
+	pddplink_displace_withtag,
 };
 
 /* Code that might be merged back to g_text.c ends here. */
-- 
GitLab