vinagre r278 - in branches/unstable: . src
- From: jwendell svn gnome org
- To: svn-commits-list gnome org
- Subject: vinagre r278 - in branches/unstable: . src
- Date: Thu, 3 Apr 2008 20:08:16 +0100 (BST)
Author: jwendell
Date: Thu Apr 3 20:08:16 2008
New Revision: 278
URL: http://svn.gnome.org/viewvc/vinagre?rev=278&view=rev
Log:
2008-04-03 Jonh Wendell <jwendell gnome org>
* src/vinagre-tab.[ch],
* src/vinagre-window.[ch]: Better handles menus sensitivity.
* src/vinagre-bookmarks.c,
* src/vinagre-commands.c:
- Don't crash when adding a bookmark after the connection is closed. (LP: #205303).
- Ignore NULL hosts in bookmarks file.
Modified:
branches/unstable/ChangeLog
branches/unstable/src/vinagre-bookmarks.c
branches/unstable/src/vinagre-commands.c
branches/unstable/src/vinagre-tab.c
branches/unstable/src/vinagre-tab.h
branches/unstable/src/vinagre-window-private.h
branches/unstable/src/vinagre-window.c
branches/unstable/src/vinagre-window.h
Modified: branches/unstable/src/vinagre-bookmarks.c
==============================================================================
--- branches/unstable/src/vinagre-bookmarks.c (original)
+++ branches/unstable/src/vinagre-bookmarks.c Thu Apr 3 20:08:16 2008
@@ -214,6 +214,8 @@
g_return_val_if_fail (VINAGRE_IS_BOOKMARKS (book), FALSE);
g_return_val_if_fail (VINAGRE_IS_CONNECTION (conn), FALSE);
+ g_object_ref (conn);
+
glade_file = vinagre_utils_get_glade_filename ();
xml = glade_xml_new (glade_file, "add_to_bookmarks_dialog", NULL);
dialog = glade_xml_get_widget (xml, "add_to_bookmarks_dialog");
@@ -244,6 +246,7 @@
gtk_widget_destroy (GTK_WIDGET (dialog));
g_object_unref (G_OBJECT (xml));
+ g_object_unref (conn);
return (result == GTK_RESPONSE_OK);
}
@@ -492,14 +495,18 @@
gchar *s_value;
gint i_value;
+ s_value = g_key_file_get_string (book->priv->file, conns[i], "host", NULL);
+ if (!s_value)
+ continue;
+
conn = vinagre_connection_new ();
vinagre_connection_set_name (conn, conns[i]);
-
- s_value = g_key_file_get_string (book->priv->file, conns[i], "host", NULL);
vinagre_connection_set_host (conn, s_value);
g_free (s_value);
i_value = g_key_file_get_integer (book->priv->file, conns[i], "port", NULL);
+ if (i_value == 0)
+ i_value = 5900;
vinagre_connection_set_port (conn, i_value);
book->priv->conns = g_slist_prepend (book->priv->conns, conn);
Modified: branches/unstable/src/vinagre-commands.c
==============================================================================
--- branches/unstable/src/vinagre-commands.c (original)
+++ branches/unstable/src/vinagre-commands.c Thu Apr 3 20:08:16 2008
@@ -243,22 +243,27 @@
vinagre_cmd_bookmarks_add (GtkAction *action,
VinagreWindow *window)
{
+ GtkWidget *tab;
VinagreConnection *conn;
gchar *name;
g_return_if_fail (VINAGRE_IS_WINDOW (window));
- conn = vinagre_tab_get_conn (VINAGRE_TAB (window->priv->active_tab));
+ tab = window->priv->active_tab;
+ conn = vinagre_tab_get_conn (VINAGRE_TAB (tab));
g_return_if_fail (VINAGRE_IS_CONNECTION (conn));
vinagre_bookmarks_add (window->priv->book,
conn,
GTK_WINDOW (window));
- name = vinagre_connection_get_best_name (conn);
- vinagre_tab_set_title (VINAGRE_TAB (window->priv->active_tab),
- name);
- g_free (name);
+ if (window->priv->active_tab == tab)
+ {
+ name = vinagre_connection_get_best_name (conn);
+ vinagre_tab_set_title (VINAGRE_TAB (window->priv->active_tab),
+ name);
+ g_free (name);
+ }
}
void
Modified: branches/unstable/src/vinagre-tab.c
==============================================================================
--- branches/unstable/src/vinagre-tab.c (original)
+++ branches/unstable/src/vinagre-tab.c Thu Apr 3 20:08:16 2008
@@ -44,6 +44,7 @@
guint status_id;
gboolean save_password;
guint32 keyring_item_id;
+ VinagreTabState state;
};
G_DEFINE_TYPE(VinagreTab, vinagre_tab, GTK_TYPE_VBOX)
@@ -469,7 +470,8 @@
tab->priv->status_id,
_("Press Ctrl+Alt to grab the cursor"));
- _vinagre_window_add_machine_connected (tab->priv->window);
+ tab->priv->state = VINAGRE_TAB_STATE_CONNECTED;
+ vinagre_window_update_machine_menu_sensitivity (tab->priv->window);
/* Emits the signal saying that we have connected to the machine */
g_signal_emit (G_OBJECT (tab),
@@ -581,6 +583,7 @@
tab->priv = VINAGRE_TAB_GET_PRIVATE (tab);
tab->priv->save_password = FALSE;
tab->priv->keyring_item_id = 0;
+ tab->priv->state = VINAGRE_TAB_STATE_INITIALIZING;
/* Create the scrolled window */
tab->priv->scroll = gtk_scrolled_window_new (NULL, NULL);
@@ -811,4 +814,12 @@
return vnc_display_get_scaling (VNC_DISPLAY (tab->priv->vnc));
}
+VinagreTabState
+vinagre_tab_get_state (VinagreTab *tab)
+{
+ g_return_if_fail (VINAGRE_IS_TAB (tab));
+
+ return tab->priv->state;
+}
+
/* vim: ts=8 */
Modified: branches/unstable/src/vinagre-tab.h
==============================================================================
--- branches/unstable/src/vinagre-tab.h (original)
+++ branches/unstable/src/vinagre-tab.h Thu Apr 3 20:08:16 2008
@@ -41,6 +41,14 @@
#include "vinagre-notebook.h"
#include "vinagre-window.h"
+typedef enum
+{
+ VINAGRE_TAB_STATE_INITIALIZING = 1,
+ VINAGRE_TAB_STATE_CONNECTED,
+ VINAGRE_TAB_STATE_INVALID
+} VinagreTabState;
+
+
struct _VinagreTab
{
GtkVBox vbox;
@@ -81,6 +89,9 @@
gboolean vinagre_tab_set_scaling (VinagreTab *tab, gboolean active);
gboolean vinagre_tab_get_scaling (VinagreTab *tab);
+
+VinagreTabState vinagre_tab_get_state (VinagreTab *tab);
+
G_END_DECLS
#endif /* __VINAGRE_TAB_H__ */
Modified: branches/unstable/src/vinagre-window-private.h
==============================================================================
--- branches/unstable/src/vinagre-window-private.h (original)
+++ branches/unstable/src/vinagre-window-private.h Thu Apr 3 20:08:16 2008
@@ -70,7 +70,6 @@
gulong signal_notebook;
gulong signal_clipboard;
- gint machines_connected;
};
Modified: branches/unstable/src/vinagre-window.c
==============================================================================
--- branches/unstable/src/vinagre-window.c (original)
+++ branches/unstable/src/vinagre-window.c Thu Apr 3 20:08:16 2008
@@ -467,8 +467,8 @@
}
-static void
-set_machine_menu_sensitivity (VinagreWindow *window)
+void
+vinagre_window_update_machine_menu_sensitivity (VinagreWindow *window)
{
gboolean active;
@@ -477,7 +477,8 @@
active = gtk_notebook_get_n_pages (GTK_NOTEBOOK (window->priv->notebook)) > 0;
gtk_action_group_set_sensitive (window->priv->action_group, active);
- active = window->priv->machines_connected > 0;
+ active = (window->priv->active_tab) &&
+ (vinagre_tab_get_state (VINAGRE_TAB (window->priv->active_tab)) == VINAGRE_TAB_STATE_CONNECTED);
gtk_action_group_set_sensitive (window->priv->machine_connected_action_group, active);
}
@@ -796,7 +797,7 @@
vinagre_window_set_title (window);
update_toggle_machine_items (window);
- _vinagre_window_del_machine_connected (window);
+ vinagre_window_update_machine_menu_sensitivity (window);
}
static void
@@ -811,6 +812,7 @@
vinagre_window_set_title (window);
update_toggle_machine_items (window);
+ vinagre_window_update_machine_menu_sensitivity (window);
}
static void
@@ -831,6 +833,7 @@
vinagre_window_set_title (window);
update_toggle_machine_items (window);
+ vinagre_window_update_machine_menu_sensitivity (window);
}
static void
@@ -900,7 +903,6 @@
window->priv->fav_conn_selected = NULL;
window->priv->fullscreen = FALSE;
window->priv->signal_notebook = 0;
- window->priv->machines_connected = 0;
window->priv->book = vinagre_bookmarks_get_default ();
@@ -933,7 +935,7 @@
gtk_widget_grab_focus (window->priv->hpaned);
init_widgets_visibility (window);
- set_machine_menu_sensitivity (window);
+ vinagre_window_update_machine_menu_sensitivity (window);
vinagre_window_update_bookmarks_list_menu (window);
g_signal_connect_swapped (window->priv->book,
@@ -1095,25 +1097,4 @@
return window->priv->manager;
}
-void
-_vinagre_window_add_machine_connected (VinagreWindow *window)
-{
- g_return_if_fail (VINAGRE_IS_WINDOW (window));
-
- window->priv->machines_connected++;
- set_machine_menu_sensitivity (window);
-}
-
-void
-_vinagre_window_del_machine_connected (VinagreWindow *window)
-{
- g_return_if_fail (VINAGRE_IS_WINDOW (window));
-
- if (window->priv->machines_connected > 0)
- {
- window->priv->machines_connected--;
- set_machine_menu_sensitivity (window);
- }
-}
-
/* vim: ts=8 */
Modified: branches/unstable/src/vinagre-window.h
==============================================================================
--- branches/unstable/src/vinagre-window.h (original)
+++ branches/unstable/src/vinagre-window.h Thu Apr 3 20:08:16 2008
@@ -90,9 +90,7 @@
void vinagre_window_toggle_fullscreen (VinagreWindow *window);
void vinagre_window_set_title (VinagreWindow *window);
-void _vinagre_window_add_machine_connected (VinagreWindow *window);
-void _vinagre_window_del_machine_connected (VinagreWindow *window);
-
+void vinagre_window_update_machine_menu_sensitivity (VinagreWindow *window);
G_END_DECLS
#endif /* __VINAGRE_WINDOW_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]