From f49bb00c8056c4590910dbb9928c84cb18431a8a Mon Sep 17 00:00:00 2001 From: Joakim Verona Date: Wed, 10 Aug 2011 10:48:13 +0200 Subject: [PATCH] found a way to inhibit blit scrolling which restores proper xwidget movement --- README.xwidget | 22 +++++++++++++++++++--- src/dispnew.c | 6 ++++++ 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/README.xwidget b/README.xwidget index 78f19067c1d..01902702033 100644 --- a/README.xwidget +++ b/README.xwidget @@ -1052,13 +1052,29 @@ this used to work great. now it doesn't. suspects: - XCopyArea - x_shift_glyphs_for_insert - - x_scroll_run + - x_scroll_run. this is run by the try_window* functions, and + inhibiting them dösnt help. but also callid in scrolling_window. + + - try_window_reusing_current_matrix - I used to enable GLYPH_DEBUG which I currently don't. it disables - many optimisations. + many optimisations. this was fixed. - lookup_xwidget then produce_xwidget_glyph gets called always but not x_draw_xwidget_glyph_string probably because of scroll optimization. -movement detection could possibly be moved to produce_xwidget_glyph +movement detection could possibly be moved to produce_xwidget_glyph(not) + +no longer helps: +(setq inhibit-try-window-id t) +(setq inhibit-try-window-reusing t) + +workaround: +(run-with-timer 1 1 'redraw-display) + +seems to work: +inhibiting scrolling_window(). and this seem to be enaugh to restore +old behaviour, GLYPH_DEBUG doesn't seem needed. + + ** DONE GLYPH_DEBUG doesn't work CLOSED: [2011-08-08 Mon 17:30] was stupid accidental line removal that was hard to spot diff --git a/src/dispnew.c b/src/dispnew.c index b4d2dc2334a..4cffc32b0d7 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -4295,6 +4295,12 @@ scrolling_window (struct window *w, int header_line_p) break; } +#ifdef HAVE_XWIDGETS + //currently this is needed to detect xwidget movement reliably. or probably not. + printf("scrolling_window\n"); + return 0; +#endif + /* Give up if some rows in the desired matrix are not enabled. */ if (!MATRIX_ROW (desired_matrix, i)->enabled_p) return -1;