Bug Hunting Session
Bug 92982 - rendercontext: blinking cursor is drawn directly
Summary: rendercontext: blinking cursor is drawn directly
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Writer (show other bugs)
Version:
(earliest affected)
5.1.0.0.alpha0+ Master
Hardware: Other All
: medium normal
Assignee: Miklos Vajna
URL:
Whiteboard: target:5.1.0 target:5.0.1 target:5.0...
Keywords:
Depends on:
Blocks:
 
Reported: 2015-07-28 14:38 UTC by Miklos Vajna
Modified: 2016-10-25 19:24 UTC (History)
2 users (show)

See Also:
Crash report or crash signature:


Attachments
How it looks like currently (20.11 KB, image/png)
2015-07-28 14:38 UTC, Miklos Vajna
Details
Sidebar problem. (208.38 KB, image/png)
2015-07-31 16:11 UTC, Miklos Vajna
Details
Spin field problem. (199.53 KB, image/png)
2015-08-06 15:21 UTC, Miklos Vajna
Details
How oxygen-gtk looks like currently (26.11 KB, image/png)
2015-08-10 16:34 UTC, Miklos Vajna
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Miklos Vajna 2015-07-28 14:38:43 UTC
Created attachment 117499 [details]
How it looks like currently

If LO is started with:

VCL_DOUBLEBUFFERING_FORCE_ENABLE=1 SAL_USE_VCLPLUGIN=gtk ./soffice

then VCL's blinking cursor is still painted directly on the Window. I *think* this is the root cause of the situation that sometimes the cursor is not hidden when double-buffering is enabled, see the attached screenshot.
Comment 1 Commit Notification 2015-07-28 15:46:27 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=09bd5846d57bf6b506b0967d664b2f80562e03fc

tdf#92982 vcl: move Invert() member functions from vcl::Window to OutputDevice

It will be available in 5.1.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 2 Commit Notification 2015-07-29 12:14:20 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=a33e0379bbe2c7651315f5cdc5925adab33b573b

tdf#92982 vcl rendercontext: move buffer from PaintHelper to ImplFrameData

It will be available in 5.1.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 3 Commit Notification 2015-07-29 16:42:56 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=79c9598d0a586f44757954556661ce6eda1f997e

tdf#92982 vcl::Cursor: handle rendercontext

It will be available in 5.1.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 4 Commit Notification 2015-07-30 07:53:13 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "libreoffice-5-0":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=d3e7bac9172b7302d29792ffc480955b7a7b6896&h=libreoffice-5-0

tdf#92982 vcl: move Invert() member functions from vcl::Window to OutputDevice

It will be available in 5.0.1.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 5 Commit Notification 2015-07-30 14:49:52 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=ea5e83abcfa1406c401b8a1ec91efda65373b74b

tdf#92982 vcl: stop creating/disposing the paint buffer in PaintHelper

It will be available in 5.1.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 6 Commit Notification 2015-07-30 14:49:58 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "libreoffice-5-0":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=b27af0af9d621b82694b7fc70e143e22d2febe2e&h=libreoffice-5-0

tdf#92982 vcl rendercontext: move buffer from PaintHelper to ImplFrameData

It will be available in 5.0.1.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 7 Commit Notification 2015-07-31 08:20:03 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "libreoffice-5-0":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=c618e888ca92afa2a301eebc5ce8de77f318d00a&h=libreoffice-5-0

tdf#92982 vcl::Cursor: handle rendercontext

It will be available in 5.0.1.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 8 Commit Notification 2015-07-31 11:31:35 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "libreoffice-5-0":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=a0f68343d1c0ae39de39194647e014555e3ed237&h=libreoffice-5-0

tdf#92982 vcl: stop creating/disposing the paint buffer in PaintHelper

It will be available in 5.0.1.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 9 Commit Notification 2015-07-31 13:54:58 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=161f7533ac177c25516ec206233936bd6982e3df

tdf#92982 vcl rendercontext: set buffer size in ImplHandleResize()

It will be available in 5.1.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 10 Miklos Vajna 2015-07-31 16:11:13 UTC
Created attachment 117565 [details]
Sidebar problem.

The last commit caused a problem, in case the repaint rectangle is empty, we didn't erase anything, and that caused multiple paints painting over each other, without an erase, see the sidebar screenshot.
Comment 11 Commit Notification 2015-07-31 16:32:29 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=43ac95ab64980ed958ba144c33971f897791d15f

tdf#92982 vcl rendercontext: handle empty repaint rect in PaintHelper

It will be available in 5.1.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 12 Commit Notification 2015-08-03 10:52:19 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "libreoffice-5-0":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=4acfac8501cebf24e614be090efde12b3b4df392&h=libreoffice-5-0

tdf#92982 vcl rendercontext: set buffer size in ImplHandleResize()

It will be available in 5.0.1.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 13 Commit Notification 2015-08-03 16:03:33 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=8bb963c3e51725fba649a5db0f5deb8778f1232b

tdf#92982 vcl rendercontext: no buffer is created here

It will be available in 5.1.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 14 Commit Notification 2015-08-03 16:03:37 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=27f6b2c038f5daf16a7fff4adf478b603eb08399

tdf#92982 vcl rendercontext: no need to call SetupBuffer() twice

It will be available in 5.1.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 15 Commit Notification 2015-08-04 07:56:47 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "libreoffice-5-0":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=ac2bd6e1c50b0155707b90d301ccb9df5cd91a92&h=libreoffice-5-0

tdf#92982 vcl rendercontext: no need to call SetupBuffer() twice

It will be available in 5.0.1.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 16 Commit Notification 2015-08-04 09:30:44 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=94a6daa068f75c7196e79a8a4295c2a069ff4530

tdf#92982 vcl rendercontext: set correct offset for the frame-level buffer

It will be available in 5.1.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 17 Commit Notification 2015-08-04 09:30:48 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=c36a00b811471b81abf189d80e07b5ff96243288

tdf#92982 vcl rendercontext: PaintHelper: restore set buffer properties

It will be available in 5.1.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 18 Commit Notification 2015-08-04 09:30:51 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=28e465d2611adee62aac984a9c0bf731adcb793b

tdf#92982 vcl rendercontext: let PaintBufferGuard also manage pixel offset

It will be available in 5.1.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 19 Commit Notification 2015-08-04 12:59:29 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=ec1a0354050491e84792a30df75d361803b62b1f

tdf#92982 vcl rendercontext: no need to tweak map mode in PaintBuffer()

It will be available in 5.1.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 20 Commit Notification 2015-08-05 08:45:10 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "libreoffice-5-0":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=f975b84a80dc17a3f91e7754eb4ce6a781e2508a&h=libreoffice-5-0

tdf#92982 vcl rendercontext: set correct offset for the frame-level buffer

It will be available in 5.0.1.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 21 Commit Notification 2015-08-05 09:55:44 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=968bc55adebd0158349b32a31ea341be292d8aa1

tdf#92982 vcl rendercontext: fix buffer size with empty user profile

It will be available in 5.1.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 22 Commit Notification 2015-08-06 09:15:26 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "libreoffice-5-0":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=884856481774a6e6eb3e350bf76b3900c2e62b0d&h=libreoffice-5-0

tdf#92982 vcl rendercontext: fix buffer size with empty user profile

It will be available in 5.0.1.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 23 Miklos Vajna 2015-08-06 15:21:24 UTC
Created attachment 117717 [details]
Spin field problem.

Current problem is that if the spin fields are updated, then the white background from the VirtualDevice is not painted before the buffer hits the screen, see how the white rectangle around the "0.42 cm" overpaints the border of the widget.
Comment 24 Commit Notification 2015-08-06 16:13:18 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=f4a2c604c73337cd21cd98d975b4f2b943fbab60

tdf#92982 vcl rendercontext: fix missing background repaint of Edit

It will be available in 5.1.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 25 Commit Notification 2015-08-07 08:13:08 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "libreoffice-5-0":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=207edc05ceadda49e311758cae67be1ea2d0e49d&h=libreoffice-5-0

tdf#92982 vcl rendercontext: fix missing background repaint of Edit

It will be available in 5.0.1.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 26 Commit Notification 2015-08-07 12:28:23 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=c85b25114a756e1abb3e68a4c7d3630c486917b5

tdf#92982 vcl rendercontext: make PaintBufferGuard visible outside paint.cxx

It will be available in 5.1.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 27 Commit Notification 2015-08-07 14:35:57 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=a6c7a0bf105c399d087e2d9f843dbd9b175fdf42

tdf#92982 vcl rendercontext: move buffer paint logic to PaintBufferGuard

It will be available in 5.1.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 28 Commit Notification 2015-08-07 14:36:01 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=c64a7ce1fcd1e30956a77530d0b76ad493841024

Resolves: tdf#92982 vcl rendercontext: handle buffered paint of vcl::Cursor

It will be available in 5.1.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 29 Miklos Vajna 2015-08-07 14:54:27 UTC
Finally we can assert that no Invert() happens on a vcl::Window that is double buffered, so the original problem is now resolved.
Comment 30 Commit Notification 2015-08-07 15:28:45 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "libreoffice-5-0":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=ec5da2f76adbfeaf1cebc6fb0e0dea08a7bdfe79&h=libreoffice-5-0

Resolves: tdf#92982 vcl rendercontext: handle buffered paint of vcl::Cursor

It will be available in 5.0.1.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 31 Miklos Vajna 2015-08-10 16:34:05 UTC
Created attachment 117812 [details]
How oxygen-gtk looks like currently

This is one last remaining problem here, some Gtk themes now show an additional horizontal artifact on combo boxes with double-buffering enabled, including oxygen-gtk.
Comment 32 Commit Notification 2015-08-10 20:20:09 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=4532ea42904e4a7d6c50f7f8ea53aaa97ec72c5e

tdf#92982 vcl rendercontext: simplify Edit::ImplClearBackground() logic

It will be available in 5.1.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 33 Commit Notification 2015-08-11 14:05:33 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "libreoffice-5-0":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=35aa47d30c01425a303c1fdaf8651b5fa0944b3a&h=libreoffice-5-0

tdf#92982 vcl rendercontext: simplify Edit::ImplClearBackground() logic

It will be available in 5.0.2.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 34 Commit Notification 2015-09-04 07:57:37 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=012a7115d11c6bc2f4c3c33180c319d043a22d51

Related: tdf#92982 vcl rendercontext: optimize non-buffered paint of Cursor

It will be available in 5.1.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 35 Commit Notification 2015-09-11 07:56:13 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "libreoffice-5-0-2":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=5af5c4a1038f9b0ce38716300401fda40c7fba10&h=libreoffice-5-0-2

Related: tdf#92982 vcl rendercontext: optimize non-buffered paint of Cursor

It will be available in 5.0.2.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 36 Commit Notification 2015-09-11 07:57:49 UTC
Miklos Vajna committed a patch related to this issue.
It has been pushed to "libreoffice-5-0":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=8488315d565a061749546df27d2507d0927a8993&h=libreoffice-5-0

Related: tdf#92982 vcl rendercontext: optimize non-buffered paint of Cursor

It will be available in 5.0.3.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.