]> code.delx.au - gnu-emacs/commitdiff
* gtkutil.c (xg_update_scrollbar_pos): Call x_sync so that the
authorJan Djärv <jan.h.d@swipnet.se>
Thu, 10 Mar 2005 18:07:37 +0000 (18:07 +0000)
committerJan Djärv <jan.h.d@swipnet.se>
Thu, 10 Mar 2005 18:07:37 +0000 (18:07 +0000)
  GTK main loop is entered in xterm.c, thus doing the redraw.

src/ChangeLog
src/gtkutil.c

index f2bef4273eec94b0acbd30c699c46d8786feabe8..e116cdf1d06ab12ffd02384370bafb9946d6e2b9 100644 (file)
@@ -1,3 +1,8 @@
+2005-03-10  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
+
+       * gtkutil.c (xg_update_scrollbar_pos): Call x_sync so that the
+       GTK main loop is entered in xterm.c, thus doing the redraw.
+
 2005-03-10  Kim F. Storm  <storm@cua.dk>
 
        * xdisp.c (pos_visible_p): Fix X value in last line of buffer.
index 6dcba3036c090c83b73b499e0802b00ab326e69a..8bd83e4004387014ef9af3a68c52eea375eaac89 100644 (file)
@@ -2999,9 +2999,14 @@ xg_update_scrollbar_pos (f, scrollbar_id, top, left, width, height)
       GtkWidget *wparent = gtk_widget_get_parent (wscroll);
 
       /* Move and resize to new values.  */
-      gtk_widget_set_size_request (wscroll, width, height);
       gtk_fixed_move (GTK_FIXED (wfixed), wparent, left, top);
-
+      gtk_widget_set_size_request (wscroll, width, height);
+      gtk_widget_queue_draw (wparent);
+      gdk_window_process_all_updates ();
+      /* GTK does not redraw until the main loop is entered again, but
+         if there are no X events pending we will not enter it.  So we sync
+         here to get some events.  */
+      x_sync (f);
       SET_FRAME_GARBAGED (f);
       cancel_mouse_face (f);
     }