aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2014-11-13 15:38:27 +1100
committerNeil <nyamatongwe@gmail.com>2014-11-13 15:38:27 +1100
commit28740fc0e339b42f12ac7731820ced97d099f2cf (patch)
tree710d9ba3e35f3c9303f40b2a8fb5acaa67a13e4b
parent4f6d4cbd012f4eb9e6d3647b110483c9a6487e35 (diff)
downloadscintilla-mirror-28740fc0e339b42f12ac7731820ced97d099f2cf.tar.gz
Bug [#1643]. Only show system caret for GDI as it interferes with Direct2D.
From Mat Berchtold.
-rw-r--r--doc/ScintillaHistory.html4
-rw-r--r--win32/ScintillaWin.cxx5
2 files changed, 8 insertions, 1 deletions
diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html
index 374dad6fe..61ed3b7bc 100644
--- a/doc/ScintillaHistory.html
+++ b/doc/ScintillaHistory.html
@@ -505,6 +505,10 @@
<a href="http://sourceforge.net/p/scintilla/feature-requests/1080/">Feature #1080.</a>
</li>
<li>
+ On Windows, only call ShowCaret in GDI mode as it interferes with caret drawing when using Direct2D.
+ <a href="http://sourceforge.net/p/scintilla/bugs/1643/">Bug #1643</a>.
+ </li>
+ <li>
For GTK+ on Windows, avoid extra space when pasting from external application.
</li>
<li>
diff --git a/win32/ScintillaWin.cxx b/win32/ScintillaWin.cxx
index 71cf7fc7d..132aea91a 100644
--- a/win32/ScintillaWin.cxx
+++ b/win32/ScintillaWin.cxx
@@ -2913,7 +2913,10 @@ BOOL ScintillaWin::CreateSystemCaret() {
BOOL retval = ::CreateCaret(
MainHWND(), sysCaretBitmap,
sysCaretWidth, sysCaretHeight);
- ::ShowCaret(MainHWND());
+ if (technology == SC_TECHNOLOGY_DEFAULT) {
+ // System caret interferes with Direct2D drawing so only show it for GDI.
+ ::ShowCaret(MainHWND());
+ }
return retval;
}