2009-07-02 Jan Djärv <jan.h.d@swipnet.se>
- * gtkutil.c (xg_frame_set_char_size): Do not set pixel width/height here or
- call change_frame_size.
+ * gtkutil.c (xg_frame_set_char_size): Do not set pixel width/height
+ here or call change_frame_size. Just call flush_and_sync.
+ (flush_and_sync): Reintroduced.
2009-07-01 Jan Djärv <jan.h.d@swipnet.se>
FRAME_PTR f;
int pixelwidth, pixelheight;
{
+ fprintf(stderr, "%s: %d/%d\n", __func__, pixelwidth, pixelheight);
int rows = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, pixelheight);
int columns = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, pixelwidth);
}
}
+static void
+flush_and_sync (f)
+ FRAME_PTR f;
+{
+ gdk_window_process_all_updates ();
+ x_sync (f);
+ while (gtk_events_pending ())
+ {
+ gtk_main_iteration ();
+ gdk_window_process_all_updates ();
+ x_sync (f);
+ }
+}
+
/* Resize the outer window of frame F after chainging the height.
COLUMNS/ROWS is the size the edit area shall have after the resize. */
request, XMonad does this all the time. The best we can do
is try to sync, so lisp code sees the updated size as fast as
possible. */
- gdk_window_process_all_updates ();
- x_sync (f);
+ flush_and_sync (f);
}
/* Handle height changes (i.e. add/remove menu/toolbar).