Commit 868bfe06 authored by Claes Sjofors's avatar Claes Sjofors

Ge subwindow exchange bugfix

parent 5c186ef6
...@@ -34,3 +34,4 @@ conselected <Connection is selected> /error ...@@ -34,3 +34,4 @@ conselected <Connection is selected> /error
noselect <Nothing is selected> /error noselect <Nothing is selected> /error
groupclass <Unable to group this kind of object> /error groupclass <Unable to group this kind of object> /error
terminated <Ctx is terminated> /info terminated <Ctx is terminated> /info
subterminated <Subwindow is terminated> /info
...@@ -1531,7 +1531,8 @@ int GeDyn::action( grow_tObject object, glow_tEvent event) ...@@ -1531,7 +1531,8 @@ int GeDyn::action( grow_tObject object, glow_tEvent event)
for ( GeDynElem *elem = elements; elem; elem = elem->next) { for ( GeDynElem *elem = elements; elem; elem = elem->next) {
sts = elem->action( object, event); sts = elem->action( object, event);
if ( sts == GE__NO_PROPAGATE || sts == GLOW__TERMINATED) if ( sts == GE__NO_PROPAGATE || sts == GLOW__TERMINATED ||
sts == GLOW__SUBTERMINATED)
return sts; return sts;
} }
return 1; return 1;
...@@ -10215,9 +10216,11 @@ int GeCommand::action( grow_tObject object, glow_tEvent event) ...@@ -10215,9 +10216,11 @@ int GeCommand::action( grow_tObject object, glow_tEvent event)
if ( dyn->graph->command_cb) { if ( dyn->graph->command_cb) {
char cmd[400]; char cmd[400];
int sts;
dyn->graph->get_command( command, cmd, dyn); dyn->graph->get_command( command, cmd, dyn);
(dyn->graph->command_cb)( dyn->graph->parent_ctx, cmd); sts = (dyn->graph->command_cb)( dyn->graph->parent_ctx, cmd);
return sts;
} }
break; break;
default: ; default: ;
......
...@@ -3658,6 +3658,11 @@ static int graph_trace_grow_cb( GlowCtx *ctx, glow_tEvent event) ...@@ -3658,6 +3658,11 @@ static int graph_trace_grow_cb( GlowCtx *ctx, glow_tEvent event)
sts = dyn->action( event->object.object, event); sts = dyn->action( event->object.object, event);
if ( sts == GLOW__TERMINATED) if ( sts == GLOW__TERMINATED)
return sts; return sts;
else if ( sts == GLOW__SUBTERMINATED) {
if ( ctx_popped)
graph->grow->push();
return sts;
}
} }
break; break;
} }
...@@ -3916,7 +3921,9 @@ int Graph::set_subwindow_source( const char *name, char *source) ...@@ -3916,7 +3921,9 @@ int Graph::set_subwindow_source( const char *name, char *source)
if ( ctx != grow->ctx) if ( ctx != grow->ctx)
grow->pop(ctx); grow->pop(ctx);
return sts;
return GLOW__SUBTERMINATED;
// return sts;
} }
int Graph::sound( pwr_tAttrRef *aref) int Graph::sound( pwr_tAttrRef *aref)
......
...@@ -806,7 +806,7 @@ static int xnav_set_func( void *client_data, ...@@ -806,7 +806,7 @@ static int xnav_set_func( void *client_data,
xnav->message('E', "Graph is not open"); xnav->message('E', "Graph is not open");
return XNAV__HOLDCOMMAND; return XNAV__HOLDCOMMAND;
} }
gectx->set_subwindow_source( object_str, source_str); return gectx->set_subwindow_source( object_str, source_str);
} }
else if ( cdh_NoCaseStrncmp( arg1_str, "LANGUAGE", strlen( arg1_str)) == 0) else if ( cdh_NoCaseStrncmp( arg1_str, "LANGUAGE", strlen( arg1_str)) == 0)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment