]> git.eshelyaron.com Git - emacs.git/commitdiff
Clear frame didn't redraw scrollbars, fixed that.
authorJan Djärv <jan.h.d@swipnet.se>
Fri, 14 Mar 2003 19:13:17 +0000 (19:13 +0000)
committerJan Djärv <jan.h.d@swipnet.se>
Fri, 14 Mar 2003 19:13:17 +0000 (19:13 +0000)
src/ChangeLog
src/gtkutil.c
src/xterm.c

index c962b2b6f63b76dfd869ed13dc06d8a30cf8b710..6f811fa752c620ed81002df525dbece798415d6e 100644 (file)
@@ -1,5 +1,7 @@
 2003-03-14  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 
+       * xterm.c (x_clear_frame): Call xg_frame_cleared for GTK.
+
        * gtkutil.c (struct xg_last_sb_pos): New structure.
        (handle_fixed_child): New function.
        (xg_resize_widgets): Call handle_fixed_child on all scroll bar widgets
@@ -11,6 +13,7 @@
        and force a redraw on the scroll bar.
        (xg_set_toolkit_scroll_bar_thumb): Do not change/redraw scroll bar
        if xg_last_sb_pos shows the positions are up to date.
+       (xg_frame_cleared): New function.
 
 2003-03-13  Kenichi Handa  <handa@m17n.org>
 
index 51cc2f1cf1b1c3ded76bc1c7f48d98b8d9f6a7cb..0b8f9294612dbd73fdc9c1dc6ffee67d14e4b8ad 100644 (file)
@@ -316,6 +316,24 @@ static handle_fixed_child (w, client_data)
     }
 }
 
+/* This gets called after the frame F has been cleared.  Since that is
+   done with X calls, we need to redraw GTK widget (scroll bars).  */
+void
+xg_frame_cleared (f)
+     FRAME_PTR f;
+{
+  GtkWidget *wfixed = f->output_data.x->edit_widget;
+
+  if (wfixed)
+    {
+      gtk_container_foreach (GTK_CONTAINER (wfixed),
+                             (GtkCallback) handle_fixed_child,
+                             NULL);
+      gtk_container_set_reallocate_redraws (GTK_CONTAINER (wfixed), TRUE);
+      gdk_window_process_all_updates ();
+    }
+}
+
 /* Function to handle resize of our widgets.  Since Emacs has some layouts
    that does not fit well with GTK standard containers, we do most layout
    manually.
@@ -346,12 +364,7 @@ xg_resize_widgets (f, pixelwidth, pixelheight)
 
       gtk_widget_size_allocate (x->edit_widget, &all);
 
-      gtk_container_foreach (GTK_CONTAINER (x->edit_widget),
-                             (GtkCallback) handle_fixed_child,
-                             NULL);
-      gtk_container_set_reallocate_redraws (GTK_CONTAINER (x->edit_widget),
-                                            TRUE);
-      gdk_window_process_all_updates ();
+      xg_frame_cleared (f);
 
       change_frame_size (f, rows, columns, 0, 1, 0);
       SET_FRAME_GARBAGED (f);
index 5feea82f3c152f194f0abb4eaedecb557e6ef3af..0c15e6a5fdce05fb8b3655eb67b5970fd27f95ad 100644 (file)
@@ -5343,6 +5343,11 @@ x_clear_frame ()
   x_scroll_bar_clear (f);
 
   XFlush (FRAME_X_DISPLAY (f));
+
+#ifdef USE_GTK
+  xg_frame_cleared (f);
+#endif
+
   UNBLOCK_INPUT;
 }