unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* problem disabling display optimizaions
@ 2011-08-10 14:06 joakim
  2011-08-10 16:30 ` Eli Zaretskii
  0 siblings, 1 reply; 2+ messages in thread
From: joakim @ 2011-08-10 14:06 UTC (permalink / raw)
  To: emacs-devel


I disable display optimizations in the xwidget branch currently because
I need to reliably catch redisplays notion about where objects are on the
screen. The idea has always been to get back to this and re-enable
optimizations in stages.

Anyway, so the code to move the xwidgets around on screen was reliable
for a very long time. Then I spent some time on the new webkit xwidget
which had entirely different issues. 

Now, when I return to the simpler xwidgets such as buttons and sliders,
they no longer moved properly in the buffer. The cause might be changes
in redisplay or more likely some error of mine. redraw-display restores
proper placement immediately.

I can restore the previous behavior by disabling scrolling_window() by
making it return early. This function is similar to the try_* fns.

Now I would like to verify how redisplay works.

The problem happens because fill_xwidget_glyph_string doesn't get called
during redisplay any more. This works the same as the other
fill_*_glyph_string functions. If display opimizations are completely
disabled it should be called. Redisplay tries to optimize away the fill
calls by using hardware scrolling if possible. But if the screen is
scrolled that way the xwidget won't be notified that Emacs desires its
movement(yet).

GLYPH_DEBUG allows for disabling of optimizations and I have been using
that. GLYPH_DEBUG now compiles here but doesn't disable optimization as
I expect.

GLYPH_DEBUG listens to these variables:

inhibit-try-window-id
inhibit-try-window-reusing

There ought also be a inhibit-try-window but there isn't for some
reason. 

produce_xwidget_glyph gets called like the other produce_*_glyph
functions but at that time we don't know screen placement.

so, to summarize, GLYPH_DEBUG doesn't seem to inhibit optimizations as
it used to. Disabling scrolling_window() appears to be enough to get
xwidgets working again.

-- 
Joakim Verona



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-08-10 16:30 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-10 14:06 problem disabling display optimizaions joakim
2011-08-10 16:30 ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).