From 08b8005a6a36205f27fc02754a66d63a73ad90a0 Mon Sep 17 00:00:00 2001 From: Ivica Ico Bukvic <ico@vt.edu> Date: Mon, 30 Apr 2012 23:30:35 -0400 Subject: [PATCH] fixed wrong color fill for selected gop object when opening gop-ed subpatch, incorrect selection of all scalars inside gop-ed patch when it is being edited as a toplevel window, and a bug where repeatedly opening already open gop-ed patch does not re-focus its toplevel window --- src/g_canvas.c | 34 +++++++++++++++++++--------------- src/g_graph.c | 5 +++-- src/g_scalar.c | 2 +- src/pd.tk | 8 ++++---- 4 files changed, 27 insertions(+), 22 deletions(-) diff --git a/src/g_canvas.c b/src/g_canvas.c index d29ff1574..717e0ebc2 100644 --- a/src/g_canvas.c +++ b/src/g_canvas.c @@ -820,22 +820,26 @@ void canvas_redraw(t_canvas *x) own window. */ void glist_menu_open(t_glist *x) { - if (glist_isvisible(x) && !glist_istoplevel(x)) + if (glist_isvisible(x)) { - t_glist *gl2 = x->gl_owner; - if (!gl2) - bug("glist_menu_open"); /* shouldn't happen but not dangerous */ - else - { - /* erase ourself in parent window */ - gobj_vis(&x->gl_gobj, gl2, 0); - /* get rid of our editor (and subeditors) */ - if (x->gl_editor) - canvas_destroy_editor(x); - x->gl_havewindow = 1; - /* redraw ourself in parent window (blanked out this time) */ - gobj_vis(&x->gl_gobj, gl2, 1); - } + if (!glist_istoplevel(x)) { + t_glist *gl2 = x->gl_owner; + if (!gl2) + bug("glist_menu_open"); /* shouldn't happen but not dangerous */ + else + { + /* erase ourself in parent window */ + gobj_vis(&x->gl_gobj, gl2, 0); + /* get rid of our editor (and subeditors) */ + if (x->gl_editor) + canvas_destroy_editor(x); + x->gl_havewindow = 1; + /* redraw ourself in parent window (blanked out this time) */ + gobj_vis(&x->gl_gobj, gl2, 1); + } + } else { + sys_vgui("focus .x%lx\n", (t_int)x); + } } else { if (x->gl_editor) canvas_destroy_editor(x); diff --git a/src/g_graph.c b/src/g_graph.c index ae9317e0a..1143efd1b 100644 --- a/src/g_graph.c +++ b/src/g_graph.c @@ -785,7 +785,7 @@ static void graph_vis(t_gobj *gr, t_glist *parent_glist, int vis) if (vis && gobj_shouldvis(gr, parent_glist)) { sys_vgui("catch {.x%lx.c create polygon\ - %d %d %d %d %d %d %d %d %d %d -tags %s -fill #c0c0c0}\n", + %d %d %d %d %d %d %d %d %d %d -tags %s -fill $graph_outline}\n", glist_getcanvas(x->gl_owner), //parent_glist, x1, y1, x1, y2, x2, y2, x2, y1, x1, y1, tag); @@ -1122,6 +1122,7 @@ static void graph_select(t_gobj *z, t_glist *glist, int state) else //if(glist_istoplevel(glist)) { //fprintf(stderr,"...yes\n"); + //fprintf(stderr,"%lx %lx %lx\n", glist_getcanvas(glist), glist, x); t_rtext *y = glist_findrtext(glist, &x->gl_obj); if (canvas_showtext(x)) rtext_select(y, state); @@ -1141,7 +1142,7 @@ static void graph_select(t_gobj *z, t_glist *glist, int state) */ sys_vgui(".x%lx.c itemconfigure %s -fill %s\n", canvas, rtext_gettag(y), - (state? "$select_color" : "black")); + (state? "$select_color" : "$graph_outline")); } t_gobj *g; if (x->gl_list) diff --git a/src/g_scalar.c b/src/g_scalar.c index b5af20a01..35321e172 100644 --- a/src/g_scalar.c +++ b/src/g_scalar.c @@ -230,7 +230,7 @@ static void scalar_select(t_gobj *z, t_glist *owner, int state) template_notify(tmpl, (state ? gensym("select") : gensym("deselect")), 1, &at); gpointer_unset(&gp); - sys_vgui("pdtk_select_all_gop_widgets .x%lx %lx %d\n", glist_getcanvas(owner), owner, state); + //sys_vgui("pdtk_select_all_gop_widgets .x%lx %lx %d\n", glist_getcanvas(owner), owner, state); scalar_drawselectrect(x, owner, state); } diff --git a/src/pd.tk b/src/pd.tk index 2500c44eb..5153a30f0 100644 --- a/src/pd.tk +++ b/src/pd.tk @@ -5460,12 +5460,12 @@ proc pdtk_data_dialog {name stuff} { match_linux_wm [list frame $name.buttonframe] pack $name.buttonframe -side bottom -fill x -pady 3 - match_linux_wm [list button $name.buttonframe.send -text {Send (Ctrl s)}\ + match_linux_wm [list button $name.buttonframe.send -text {Send (Ctrl+s)}\ -command [concat dodata_send $name]] - match_linux_wm [list button $name.buttonframe.ok -text {OK (Ctrl t)}\ + match_linux_wm [list button $name.buttonframe.ok -text {OK (Ctrl+t)}\ -command [concat dodata_ok $name]] - pack $name.buttonframe.ok -side right -expand 0 -pady 3 - pack $name.buttonframe.send -side right -expand 0 -pady 3 + pack $name.buttonframe.ok -side right -expand 0 -pady 3 -padx 3 + pack $name.buttonframe.send -side right -expand 0 -pady 3 -padx 3 match_linux_wm [list text $name.text -relief sunken -bd 1 -height 40 -width 60 \ -yscrollcommand "$name.scroll set" -font $pd_deffont \ -- GitLab