Сохраните копию QPixmap экранного содержания с помощью X11, XDamage, XRender и других приемов

очень не - хороший способ сделать это использует cookie.

, Если Вы используете одну страницу в своем MVC, который обрабатывает другие страницы, Вы могли фрагмент кода к нему, который загружает каждую страницу, которая создает cookie (если не существующий) названный "scrolltop". Существуют способы иметь JavaScript, автоматически обновляют этот cookie, когда пользователь прокручивает или вниз путем ловли этих событий или наблюдения значения scrollTop.

На новой странице просто необходимо загрузить сохраненное положение и сделать прокрутку представления там в 0 миллисекундах (с Mootools, или любой Ajax пишут сценарий, это должно быть возможно), и пользователь будет точно, где они были.

я не знаю много о asp, таким образом, я не знаю, существует ли метод к привязке к текущему y-position. JavaScript является быстрым и простым способом. Привязки в HTML могли быть опцией, если бы Вам привязали каждый элемент и отправили привязку на другие страницы.

15
задан Thomi 22 September 2009 в 12:19
поделиться

1 ответ

Сначала вам нужно изменить DamageReportLevel в вызове DamageCreate в QX11Mirror :: setWindow с DamageReportNotEmpty на XDamageReportBoundingBox.

Затем вам нужно вызвать dest.detach () перед вызовом XRenderComposite. На самом деле вам не нужны и m_px, и dest в качестве переменных-членов - вы можете просто использовать m__px.

В этом примере также отсутствует вызов XRenderFreePicture, который должен идти после вызова XRenderComposite:

XRenderFreePicture(QX11Info::display(), picture);

Вы не делаете ' Требуется дублировать весь код QX11Mirror :: pixmap в QX11Mirror :: x11Event. Вместо этого измените тип m_dirty с bool на QRect, затем пусть x11Event обновит m_dirty прямоугольником из XDamageNotifyEvent, то есть e-> area. Затем в QX11Mirror: pixmap вместо проверки, истинно ли m_dirty, проверьте, не является ли m_dirty пустым прямоугольником. Затем вы передадите прямоугольник из m_dirty в XRenderComposite.

Edit:

dest.detach - ключевой бит - без этого вы никогда не заставите его работать.

3
ответ дан 1 December 2019 в 05:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: