---
libgeda/include/prototype.h | 2 +-
libgeda/src/s_basic.c | 4 +---
libgeda/src/s_page.c | 21 ++-------------------
libgeda/src/s_tile.c | 7 ++-----
4 files changed, 6 insertions(+), 28 deletions(-)
diff --git a/libgeda/include/prototype.h b/libgeda/include/prototype.h
index 93a3d22..fa05ce9 100644
--- a/libgeda/include/prototype.h
+++ b/libgeda/include/prototype.h
@@ -478,7 +478,7 @@ void s_stretch_destroy_all(STRETCH *head);
/* s_tile.c */
void s_tile_init(TOPLEVEL *toplevel, PAGE *p_current);
void s_tile_add_line_object(TOPLEVEL *toplevel, OBJECT *object);
-void s_tile_remove_object(TOPLEVEL *toplevel, PAGE *page, OBJECT *object);
+void s_tile_remove_object(OBJECT *object);
void s_tile_update_object(TOPLEVEL *toplevel, OBJECT *object);
GList *s_tile_get_objectlists(TOPLEVEL *toplevel, int world_x1, int world_y1,
int world_x2, int world_y2);
void s_tile_print(TOPLEVEL *toplevel);
diff --git a/libgeda/src/s_basic.c b/libgeda/src/s_basic.c
index c84e439..998a8a5 100644
--- a/libgeda/src/s_basic.c
+++ b/libgeda/src/s_basic.c
@@ -313,9 +313,7 @@ s_delete_object(TOPLEVEL *toplevel, OBJECT *o_current)
g_free(o_current->line);
/* yes this object might be in the tile system */
- s_tile_remove_object(toplevel,
- toplevel->page_current,
- o_current);
+ s_tile_remove_object(o_current);
}
o_current->line = NULL;
diff --git a/libgeda/src/s_page.c b/libgeda/src/s_page.c
index 19c40fa..bbec414 100644
--- a/libgeda/src/s_page.c
+++ b/libgeda/src/s_page.c
@@ -138,21 +138,9 @@ PAGE *s_page_new (TOPLEVEL *toplevel, const gchar
*filename)
*/
void s_page_delete (TOPLEVEL *toplevel, PAGE *page)
{
- PAGE *tmp;
gchar *backup_filename;
gchar *real_filename;
- /* we need to play with page_current because s_delete_list_fromstart() */
- /* make use of it (see s_tile_remove_object) */
-
- /* save page_current and switch to page */
- if (page == toplevel->page_current) {
- tmp = NULL;
- } else {
- tmp = toplevel->page_current;
- s_page_goto (toplevel, page);
- }
-
/* Get the real filename and file permissions */
real_filename = follow_symlinks (page->page_filename, NULL);
@@ -218,15 +206,10 @@ void s_page_delete (TOPLEVEL *toplevel, PAGE *page)
o_complex_free_filename(toplevel);
#endif
- /* restore page_current */
- if (tmp != NULL) {
- s_page_goto (toplevel, tmp);
- } else {
- /* page was page_current */
+ if (toplevel->page_current == page) {
+ /* page was page_current, page_current must be updated */
toplevel->page_current = NULL;
- /* page_current must be updated by calling function */
}
-
}
diff --git a/libgeda/src/s_tile.c b/libgeda/src/s_tile.c
index a1e3de4..4f41180 100644
--- a/libgeda/src/s_tile.c
+++ b/libgeda/src/s_tile.c
@@ -281,11 +281,8 @@ void s_tile_add_line_object (TOPLEVEL *toplevel, OBJECT
*object)
* \brief
* \par Function Description
*
- * \bug
- * this is still wrong, p_current needs to be the page the object is on
- * doesn't work if the current page isn't where the object lives
*/
-void s_tile_remove_object(TOPLEVEL *toplevel, PAGE *page, OBJECT *object)
+void s_tile_remove_object(OBJECT *object)
{
GList *tl_current;
@@ -310,7 +307,7 @@ void s_tile_remove_object(TOPLEVEL *toplevel, PAGE *page,
OBJECT *object)
*/
void s_tile_update_object(TOPLEVEL * toplevel, OBJECT * object)
{
- s_tile_remove_object(toplevel, toplevel->page_current, object);
+ s_tile_remove_object(object);
s_tile_add_line_object(toplevel, object);
}
--
1.5.6
_______________________________________________
geda-dev mailing list
[email protected]
http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev