rendered paste bodyIndex: gedit/gedit-commands-view.c
===================================================================
RCS file: /cvs/gnome/gedit/gedit/gedit-commands-view.c,v
retrieving revision 1.2
diff -u -p -r1.2 gedit-commands-view.c
--- gedit/gedit-commands-view.c 12 Dec 2005 17:27:55 -0000 1.2
+++ gedit/gedit-commands-view.c 9 Feb 2006 13:19:18 -0000
@@ -71,12 +71,28 @@ gedit_cmd_view_show_side_pane (GtkAction
GeditWindow *window)
{
gboolean visible;
+ GeditPanel *panel;
- gedit_debug (DEBUG_COMMANDS);
+ gedit_debug (DEBUG_COMMANDS);
visible = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));
- _gedit_window_set_side_panel_visible (window, visible);
+ panel = gedit_window_get_side_panel (window);
+
+ if (visible)
+ {
+ gtk_widget_show (panel);
+ gtk_widget_grab_focus (panel);
+ }
+ else
+ {
+ GeditTab *tab;
+
+ gtk_widget_hide (panel);
+
+ tab = gedit_window_get_active_tab (window);
+ gtk_widget_grab_focus (GTK_WIDGET (tab));
+ }
}
void
Index: gedit/gedit-session.c
===================================================================
RCS file: /cvs/gnome/gedit/gedit/gedit-session.c,v
retrieving revision 1.10
diff -u -p -r1.10 gedit-session.c
--- gedit/gedit-session.c 12 Dec 2005 17:27:55 -0000 1.10
+++ gedit/gedit-session.c 9 Feb 2006 13:19:19 -0000
@@ -701,14 +701,14 @@ parse_window (xmlNodePtr node)
(strcmp ((char *) visible, "yes") == 0))
{
gedit_debug_message (DEBUG_SESSION, "Side panel visible");
- _gedit_window_set_side_panel_visible (window,
- TRUE);
+// _gedit_window_set_side_panel_visible (window,
+// TRUE);
}
else
{
gedit_debug_message (DEBUG_SESSION, "Side panel _NOT_ visible");
- _gedit_window_set_side_panel_visible (window,
- FALSE);
+// _gedit_window_set_side_panel_visible (window,
+// FALSE);
}
Index: gedit/gedit-window.c
===================================================================
RCS file: /cvs/gnome/gedit/gedit/gedit-window.c,v
retrieving revision 1.16
diff -u -p -r1.16 gedit-window.c
--- gedit/gedit-window.c 1 Feb 2006 08:32:42 -0000 1.16
+++ gedit/gedit-window.c 9 Feb 2006 13:19:24 -0000
@@ -2439,12 +2439,39 @@ side_panel_size_allocate (GtkWidget
}
static void
+sync_side_panel (GtkWidget *panel,
+ GeditWindow *window)
+{
+ gboolean visible;
+ GtkAction *action;
+
+ visible = GTK_WIDGET_VISIBLE (window->priv->side_panel);
+
+ if (gedit_prefs_manager_side_pane_visible_can_set ())
+ gedit_prefs_manager_set_side_pane_visible (visible);
+
+ action = gtk_action_group_get_action (window->priv->always_sensitive_action_group,
+ "ViewSidePane");
+
+ if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)) != visible)
+ gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), visible);
+}
+
+/*
+static void
+side_panel_show (GtkWidget *panel,
+ GeditWindow *window)
+{
+ _gedit_window_set_side_panel_visible (window, FALSE);
+}
+
+static void
side_panel_hide (GtkWidget *panel,
GeditWindow *window)
{
_gedit_window_set_side_panel_visible (window, FALSE);
}
-
+*/
static void
create_side_panel (GeditWindow *window)
{
@@ -2465,10 +2492,14 @@ create_side_panel (GeditWindow *window)
G_CALLBACK (side_panel_size_allocate),
window);
- g_signal_connect (window->priv->side_panel,
- "hide",
- G_CALLBACK (side_panel_hide),
- window);
+ g_signal_connect_after (window->priv->side_panel,
+ "show",
+ G_CALLBACK (sync_side_panel),
+ window);
+ g_signal_connect_after (window->priv->side_panel,
+ "hide",
+ G_CALLBACK (sync_side_panel),
+ window);
gtk_paned_set_position (GTK_PANED (window->priv->hpaned),
MAX (100, gedit_prefs_manager_get_side_panel_size ()));
@@ -3013,57 +3044,6 @@ _gedit_window_set_toolbar_visible (Gedit
if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)) != visible)
gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), visible);
-
- recursion_guard = FALSE;
-}
-
-void
-_gedit_window_set_side_panel_visible (GeditWindow *window,
- gboolean visible)
-{
- GtkAction *action;
- static gboolean recursion_guard = FALSE;
- gboolean show = FALSE;
-
- gedit_debug (DEBUG_WINDOW);
-
- g_return_if_fail (GEDIT_IS_WINDOW (window));
-
- if (recursion_guard)
- return;
-
- recursion_guard = TRUE;
-
- visible = (visible != FALSE);
-
- if (visible &&
- (GTK_WIDGET_VISIBLE (window->priv->side_panel) != visible))
- {
- gtk_widget_show (window->priv->side_panel);
- show = TRUE;
- }
- else
- {
- gtk_widget_hide (window->priv->side_panel);
- if (window->priv->active_tab)
- gtk_widget_grab_focus (GTK_WIDGET (
- gedit_tab_get_view (GEDIT_TAB (window->priv->active_tab))));
- }
-
- if (gedit_prefs_manager_side_pane_visible_can_set ())
- gedit_prefs_manager_set_side_pane_visible (visible);
-
- action = gtk_action_group_get_action (window->priv->always_sensitive_action_group,
- "ViewSidePane");
-
- if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)) != visible)
- gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), visible);
-
- if (show)
- {
- /* g_print ("GRAB side panel\n"); */
- gtk_widget_grab_focus (window->priv->side_panel);
- }
recursion_guard = FALSE;
}