dia r4154 - trunk/app



Author: hans
Date: Sun Dec 14 12:39:01 2008
New Revision: 4154
URL: http://svn.gnome.org/viewvc/dia?rev=4154&view=rev

Log:
2008-12-14  Hans Breuer  <hans breuer org>

	* app/diagram.[ch] app/display.c : replace Diagram::display_count with
	g_slist_count(diagram->displays), no benefit in keeping both in sync.



Modified:
   trunk/app/diagram.c
   trunk/app/diagram.h
   trunk/app/display.c

Modified: trunk/app/diagram.c
==============================================================================
--- trunk/app/diagram.c	(original)
+++ trunk/app/diagram.c	Sun Dec 14 12:39:01 2008
@@ -607,16 +607,14 @@
 diagram_add_ddisplay(Diagram *dia, DDisplay *ddisp)
 {
   dia->displays = g_slist_prepend(dia->displays, ddisp);
-  dia->display_count++;
 }
 
 void
 diagram_remove_ddisplay(Diagram *dia, DDisplay *ddisp)
 {
   dia->displays = g_slist_remove(dia->displays, ddisp);
-  dia->display_count--;
 
-  if (dia->display_count == 0) {
+  if (g_slist_length(dia->displays) == 0) {
     if (!app_is_embedded()) {
       /* Don't delete embedded diagram when last view is closed */
       diagram_destroy(dia);

Modified: trunk/app/diagram.h
==============================================================================
--- trunk/app/diagram.h	(original)
+++ trunk/app/diagram.h	Sun Dec 14 12:39:01 2008
@@ -63,7 +63,6 @@
 
   DiagramData *data;     /*! just for compatibility, now that the Diagram _is_ and not _has_ DiagramData */
 
-  guint display_count;
   GSList *displays;       /* List of all displays showing this diagram */
 
   UndoStack *undo;

Modified: trunk/app/display.c
==============================================================================
--- trunk/app/display.c	(original)
+++ trunk/app/display.c	Sun Dec 14 12:39:01 2008
@@ -96,6 +96,10 @@
   GtkStatusbar *statusbar;
   guint context_id;
 
+  /* nothing to do if there is no display with the diagram anymore */
+  if (g_slist_length(dia->displays) < 1)
+    return;
+
   statusbar = GTK_STATUSBAR (ddisp->modified_status);
   context_id = gtk_statusbar_get_context_id (statusbar, "Selection");
 
@@ -1168,7 +1172,7 @@
 
   dia = ddisp->diagram;
   
-  if ( (dia->display_count > 1) ||
+  if ( (g_slist_length(dia->displays) > 1) ||
        (!diagram_is_modified(dia)) ) {
     ddisp_destroy(ddisp);
     return;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]