gnome-mud r737 - in trunk: . src



Author: lharris
Date: Tue Feb 17 05:46:16 2009
New Revision: 737
URL: http://svn.gnome.org/viewvc/gnome-mud?rev=737&view=rev

Log:
Now properly notifies all views of NAWS changes. No longer attempts to send NAWS to unconnected view.


Modified:
   trunk/ChangeLog
   trunk/src/mud-connection-view.c
   trunk/src/mud-window.c

Modified: trunk/src/mud-connection-view.c
==============================================================================
--- trunk/src/mud-connection-view.c	(original)
+++ trunk/src/mud-connection-view.c	Tue Feb 17 05:46:16 2009
@@ -460,18 +460,21 @@
 
 #ifdef ENABLE_GST                               
     if(connection_view->priv->download_queue
-    && !g_queue_is_empty(connection_view->priv->download_queue))
-    while(
-        (item = (MudMSPDownloadItem *)g_queue_pop_head(
-            connection_view->priv->download_queue)) != NULL)
-        mud_telnet_msp_download_item_free(item);
+            && !g_queue_is_empty(connection_view->priv->download_queue))
+        while((item = (MudMSPDownloadItem *)
+                    g_queue_pop_head(connection_view->priv->download_queue)) != NULL)
+            mud_telnet_msp_download_item_free(item);
 
-if(connection_view->priv->download_queue)
-    g_queue_free(connection_view->priv->download_queue);
+    if(connection_view->priv->download_queue)
+        g_queue_free(connection_view->priv->download_queue);
 #endif
 
-    gnet_conn_disconnect(connection_view->connection);
-    gnet_conn_unref(connection_view->connection);
+    if(connection_view->connection && 
+            gnet_conn_is_connected(connection_view->connection))
+        gnet_conn_disconnect(connection_view->connection);
+
+    if(connection_view->connection)
+        gnet_conn_unref(connection_view->connection);
 
     g_free(connection_view->priv);
 
@@ -1163,7 +1166,9 @@
 void
 mud_connection_view_send_naws(MudConnectionView *view)
 {
-    if(view && view->naws_enabled)
+    if(view && view->connection 
+            && gnet_conn_is_connected(view->connection) 
+            && view->naws_enabled)
     {
         guint curr_width = VTE_TERMINAL(view->priv->terminal)->column_count;
         guint curr_height = VTE_TERMINAL(view->priv->terminal)->row_count;

Modified: trunk/src/mud-window.c
==============================================================================
--- trunk/src/mud-window.c	(original)
+++ trunk/src/mud-window.c	Tue Feb 17 05:46:16 2009
@@ -342,11 +342,16 @@
 {
     gchar *name;
 
-    window->priv->current_view = g_object_get_data(G_OBJECT(gtk_notebook_get_nth_page(notebook, arg)), "connection-view");
+    window->priv->current_view =
+        g_object_get_data(
+                G_OBJECT(gtk_notebook_get_nth_page(notebook, arg)),
+                "connection-view");
 
     if (window->priv->nr_of_tabs != 0)
     {
-        name = mud_profile_get_name(mud_connection_view_get_current_profile(MUD_CONNECTION_VIEW(window->priv->current_view)));
+        name = mud_profile_get_name(
+                mud_connection_view_get_current_profile(
+                    MUD_CONNECTION_VIEW(window->priv->current_view)));
 
         mud_window_profile_menu_set_active(name, window);
 
@@ -439,7 +444,7 @@
 gboolean
 mud_window_size_request(GtkWidget *widget, GdkEventConfigure *event, gpointer user_data)
 {
-    gint w, h;
+    gint w, h, i, n;
     GdkPixbuf *buf;
     GError *gerr = NULL;
     MudWindow *window = (MudWindow *)user_data;
@@ -457,8 +462,19 @@
 
     gtk_widget_grab_focus(window->priv->textview);
 
-    // FIXME: Should send naws to all views.
-    mud_connection_view_send_naws(MUD_CONNECTION_VIEW(window->priv->current_view));
+    n = gtk_notebook_get_n_pages(GTK_NOTEBOOK(window->priv->notebook));
+
+    for(i = 0; i < n; ++i)
+    {
+        MudConnectionView *iter =
+            g_object_get_data(
+                    G_OBJECT(
+                        gtk_notebook_get_nth_page(
+                            GTK_NOTEBOOK(window->priv->notebook),
+                            i)),
+                    "connection-view");
+        mud_connection_view_send_naws(iter);
+    }
 
     return FALSE;
 }



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