Revision: 54459
http://brlcad.svn.sourceforge.net/brlcad/?rev=54459&view=rev
Author: n_reed
Date: 2013-02-21 16:39:37 +0000 (Thu, 21 Feb 2013)
Log Message:
-----------
restore draw behavior of only autoviewing when starting with an empty display
Modified Paths:
--------------
brlcad/trunk/src/libged/draw.c
Modified: brlcad/trunk/src/libged/draw.c
===================================================================
--- brlcad/trunk/src/libged/draw.c 2013-02-21 15:50:18 UTC (rev 54458)
+++ brlcad/trunk/src/libged/draw.c 2013-02-21 16:39:37 UTC (rev 54459)
@@ -1492,8 +1492,15 @@
char *ptr_o=NULL;
char *c;
- if (*argv[i] != '-')
+ if (*argv[i] != '-') {
+ /* Done checking options. If our display is non-empty,
+ * add -R to keep current view.
+ */
+ if (BU_LIST_NON_EMPTY(&gedp->ged_gdp->gd_headDisplay)) {
+ bu_vls_strcat(&vls, " -R");
+ }
break;
+ }
ptr_A=strchr(argv[i], 'A');
if (ptr_A)
@@ -1601,8 +1608,14 @@
bu_vls_free(&vls);
bu_free((char *)new_argv, "ged_draw_guts new_argv");
} else {
+ int empty_display;
bu_vls_free(&vls);
+ empty_display = 1;
+ if (BU_LIST_NON_EMPTY(&gedp->ged_gdp->gd_headDisplay)) {
+ empty_display = 0;
+ }
+
/* First, delete any mention of these objects.
* Silently skip any leading options (which start with minus signs).
*/
@@ -1614,7 +1627,27 @@
ged_erasePathFromDisplay(gedp, argv[i], 0);
}
- _ged_drawtrees(gedp, argc, argv, kind, (struct _ged_client_data *)0);
+ /* if our display is non-empty add -R to keep current view */
+ if (!empty_display) {
+ int new_argc;
+ char **new_argv;
+
+ new_argc = argc + 1;
+ new_argv = (char **)bu_malloc(new_argc * sizeof(char *),
"ged_draw_guts new_argv");
+
+ new_argv[0] = bu_strdup("-R");
+ for (i = 0; i < (size_t)argc; ++i) {
+ new_argv[i + 1] = bu_strdup(argv[i]);
+ }
+
+ _ged_drawtrees(gedp, new_argc, (const char **)new_argv, kind,
(struct _ged_client_data *)0);
+
+ for (i = 0; i < (size_t)new_argc; ++i) {
+ bu_free(new_argv[i], "ged_draw_guts new_argv");
+ }
+ } else {
+ _ged_drawtrees(gedp, argc, argv, kind, (struct _ged_client_data
*)0);
+ }
}
return GED_OK;
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits