gnome-terminal r2749 - trunk/src



Author: chpe
Date: Thu May 29 19:50:39 2008
New Revision: 2749
URL: http://svn.gnome.org/viewvc/gnome-terminal?rev=2749&view=rev

Log:
The parent-set handler on TerminalScreen cannot get the toplevel, since it's called when creating the terminal screen container which has no parent yet.


Modified:
   trunk/src/terminal-screen-container.c
   trunk/src/terminal-screen.c
   trunk/src/terminal-screen.h
   trunk/src/terminal-window.c

Modified: trunk/src/terminal-screen-container.c
==============================================================================
--- trunk/src/terminal-screen-container.c	(original)
+++ trunk/src/terminal-screen-container.c	Thu May 29 19:50:39 2008
@@ -42,6 +42,7 @@
   gtk_container_add (GTK_CONTAINER (scrolled_window), GTK_WIDGET (screen));
   gtk_widget_show (GTK_WIDGET (screen));
 
+  _terminal_screen_update_scrollbar (screen);
   return scrolled_window;
 #else
   GtkWidget *hbox, *scrollbar;
@@ -60,6 +61,7 @@
   
   gtk_widget_show_all (hbox);
 
+  _terminal_screen_update_scrollbar (screen);
   return hbox;
 #endif
 }

Modified: trunk/src/terminal-screen.c
==============================================================================
--- trunk/src/terminal-screen.c	(original)
+++ trunk/src/terminal-screen.c	Thu May 29 19:50:39 2008
@@ -174,36 +174,17 @@
 {
   g_print ("screen %p scrolled-window size req %d : %d\n", screen, req->width, req->height);
 }
-#endif
 
 static void
 parent_set_callback (TerminalScreen *screen,
                      GtkWidget      *old_parent)
 {
-  TerminalScreenPrivate *priv = screen->priv;
-
-#ifdef DEBUG_GEOMETRY
   if (old_parent)
     g_signal_handlers_disconnect_by_func (old_parent, G_CALLBACK (parent_size_request), screen);
   if (GTK_WIDGET (screen)->parent)
     g_signal_connect (GTK_WIDGET (screen)->parent, "size-request", G_CALLBACK (parent_size_request), screen);
-#endif
-
-  if (GTK_WIDGET (screen)->parent == NULL)
-    {
-      priv->window = NULL;
-    }
-  else
-    {
-      GtkWidget *window;
-
-      window = gtk_widget_get_toplevel (GTK_WIDGET (screen)->parent);
-      if (!TERMINAL_IS_WINDOW (window))
-        return; /* FIXMEchpe */
-
-      priv->window = TERMINAL_WINDOW (window);
-    }
 }
+#endif
 
 static void
 set_background_image_file (VteTerminal *terminal,
@@ -382,16 +363,13 @@
                     G_CALLBACK (terminal_screen_widget_child_died),
                     screen);
 
-  g_signal_connect (G_OBJECT (screen), "parent-set",
-                    G_CALLBACK (parent_set_callback), 
-                    NULL);
-
   g_signal_connect (terminal_app_get (), "notify::system-font",
                     G_CALLBACK (terminal_screen_system_font_notify_cb), screen);
 
 #ifdef DEBUG_GEOMETRY
   g_signal_connect_after (screen, "size-request", G_CALLBACK (size_request), NULL);
   g_signal_connect_after (screen, "size-allocate", G_CALLBACK (size_allocate), NULL);
+  g_signal_connect (screen, "parent-set", G_CALLBACK (parent_set_callback), NULL);
 #endif
 
   gtk_widget_show (GTK_WIDGET (screen)); /* FIXMEchpe remove this */
@@ -640,10 +618,12 @@
       /* We need these in line for the set_size in
        * update_on_realize
        */
-      terminal_screen_update_scrollbar (screen);
       terminal_window_update_geometry (priv->window);
     }
   
+  if (!prop_name || prop_name == I_(TERMINAL_PROFILE_SCROLLBAR_POSITION))
+    _terminal_screen_update_scrollbar (screen);
+
   if (!prop_name ||
       prop_name == I_(TERMINAL_PROFILE_TITLE_MODE) ||
       prop_name == I_(TERMINAL_PROFILE_TITLE))
@@ -2074,9 +2054,8 @@
     }
 }
 
-/* FIXMEchpe move this to TerminalWindow! */
 void
-terminal_screen_update_scrollbar (TerminalScreen *screen)
+_terminal_screen_update_scrollbar (TerminalScreen *screen)
 {
   TerminalProfile *profile;
   GtkWidget *parent;
@@ -2084,7 +2063,6 @@
   GtkCornerType corner = GTK_CORNER_TOP_LEFT;
 
   profile = terminal_screen_get_profile (screen);
-
   if (profile == NULL)
     return;
 

Modified: trunk/src/terminal-screen.h
==============================================================================
--- trunk/src/terminal-screen.h	(original)
+++ trunk/src/terminal-screen.h	Thu May 29 19:50:39 2008
@@ -121,7 +121,7 @@
                                           int *width_chars,
                                           int *height_chars);
 
-void terminal_screen_update_scrollbar (TerminalScreen *screen);
+void _terminal_screen_update_scrollbar (TerminalScreen *screen);
 
 /* Allow scales a bit smaller and a bit larger than the usual pango ranges */
 #define TERMINAL_SCALE_XXX_SMALL   (PANGO_SCALE_XX_SMALL/1.2)

Modified: trunk/src/terminal-window.c
==============================================================================
--- trunk/src/terminal-window.c	(original)
+++ trunk/src/terminal-window.c	Thu May 29 19:50:39 2008
@@ -2050,8 +2050,6 @@
   g_signal_connect (screen, "show-popup-menu",
                     G_CALLBACK (screen_show_popup_menu_callback), window);
 
-  terminal_screen_update_scrollbar (screen);
-
   update_notebook (window);
 
   update_tab_visibility (window, 0);



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