path: root/vcl/win/app
AgeCommit message (Collapse)AuthorFilesLines
2017-04-13tdf#106933 vcl: delete D2DWriteTextOutRenderer before exit()Michael Stahl1-0/+1
As it happens this DirectWrite stuff is using some thread pool internally, and that must be shutdown before exit(), as Win32 will terminate all other threads at that point, and then the thread pool wants to talk to threads that don't exist any more. So convert this from a global variable that is deleted from DllMain() to a member of SalData, so it is deleted from DeInitVCL(). Change-Id: I51408a07c78758cf0c193ab66b9214d0c9dbd9e3
2017-04-04Finally switch MSVC to sal_Unicode = char16_t, tooStephan Bergmann1-2/+2
There is lots of (Windows-only) code that relied on sal_Unicode being the same as wchar_t, and the best change may be different in each case (and doing the changes may be somewhat error prone). So for now add SAL_U/SAL_W scaffolding functions to sal/types.h, remove their uses one by one again, and finally drop those functions again. Change-Id: I2cc791bd941d089901abb5f6fc2f05fbc49e65ea Reviewed-on: Tested-by: Jenkins <> Reviewed-by: Stephan Bergmann <>
2017-03-31tdf#82580 tools: rename Rectangle to tools::RectangleMiklos Vajna1-5/+5
Mostly generated using make check COMPILER_EXTERNAL_TOOL=1 CCACHE_PREFIX=clang-rename-wrapper RENAME_ARGS="-qualified-name=Rectangle -new-name=tools::Rectangle" Except some modules have their own foo::tools namespace, so there have to use ::tools::Rectangle. This commit just moves the class from the global namespace, it does not update pre/postwin.h yet. Change-Id: I42b2de3c6f769fcf28cfe086f98eb31e42a305f2 Reviewed-on: Reviewed-by: Miklos Vajna <> Tested-by: Jenkins <>
2017-03-14loplugin:subtlezeroinit (clang-cl)Stephan Bergmann1-6/+2
Change-Id: I34367cad2d07b9fc6c8f4607ee5e74625f12e78f
2017-02-10Remove MinGW supportStephan Bergmann2-51/+0
In OOo times, there'd originally been efforts to allow building on Windows with MinGW. Later, in LO times, this has been shifted to an attempt of cross- compiling for Windows on Linux. That attempt can be considered abandoned, and the relevant code rotting. Due to this heritage, there are now three kinds of MinGW-specific code in LO: * Code from the original OOo native Windows effort that is no longer relevant for the LO cross-compilation effort, but has never been removed properly. * Code from the original OOo native Windows effort that is re-purposed for the LO cross-compilation effort. * Code that has been added specifially for the LO cross-compilation effort. All three kinds of code are removed. (An unrelated, remaining use of MinGW is for --enable-build-unowinreg, utilizing --with-mingw-cross-compiler, MINGWCXX, and MINGWSTRIP.) Change-Id: I49daad8669b4cbe49fa923050c4a4a6ff7dda568 Reviewed-on: Tested-by: Jenkins <> Reviewed-by: Stephan Bergmann <>
2017-02-09remove ConnectionIdentifierType enumNoel Grandin1-4/+2
since we only use the AsciiCString enumerator. Consequently simplify the GetConnectionIdentifier method Change-Id: I9e1a1318d2f12bfd18edeb8479e0e7171b22d0f1 Reviewed-on: Reviewed-by: Noel Grandin <> Tested-by: Noel Grandin <>
2016-12-03add the SalAbort message to the crash reporterMarkus Mohrhard1-0/+3
Change-Id: Ibe08034bcf2a73fb12562c87c2898db1e974376c Reviewed-on: Tested-by: Jenkins <> Reviewed-by: Markus Mohrhard <>
2016-10-15clang-cl loplugin: vclStephan Bergmann4-110/+110
Change-Id: I40f8a6fef9d66b28a1d72551a6873b041b38b09e Reviewed-on: Tested-by: Jenkins <> Reviewed-by: Stephan Bergmann <>
2016-09-06SalI18NImeStatus is stubbed the same way for everyone except...Caolán McNamara1-17/+0
the gen vclplug, which is then unused for the gtk/gtk3 case so only possible to use in gen/kde. Make the default impl the no-op case and override just in gen Change-Id: Id0dd3fe4ae4e5b94bfc56219defab56905ec710a Reviewed-on: Tested-by: Jenkins <> Reviewed-by: Caolán McNamara <> Tested-by: Caolán McNamara <>
2016-06-17convert DBG_ASSERT in vclNoel Grandin1-5/+5
Change-Id: I732fb1a789f90ca7a7f393cc41a6afe84fecf3d3 Reviewed-on: Tested-by: Jenkins <> Reviewed-by: Noel Grandin <>
2016-05-11tdf#98924 In windows, change the keyboard layout per applicationJuergen Funk1-0/+2
reint the key maps when in windows change the language for the application Change-Id: I71045386b4fe4d6db5572effa07a2f01ce79e74f Reviewed-on: Tested-by: Jenkins <> Reviewed-by: Thorsten Behrens <>
2016-05-04Missing includesStephan Bergmann1-0/+1
Change-Id: Ic0618ff8a8f01937a467e4ba5184fe68f14cd24b
2016-05-03tdf#99383 vcl: don't dispatch events from SolarMutexReleaserMichael Stahl1-1/+4
Having SolarMutexReleaser effectively do Reschedule() on WNT and not on other platforms doesn't seem such a good idea. Let's try to restrict it so that it still calls ImplSalYieldMutexAcquireWithWait() but no longer dispatches messages, timers and idles. (regression from 482c52e91fe41a52e68827e9bf64a9736427d517) Change-Id: I52a2c88e9c2473e35909bf270b9e3ae7acbe0d17
2016-04-18tdf#96887 vcl: stop using periodic timers on WNTMichael Stahl2-14/+28
Every time the periodic timer fires, it does a PostMessage() to the main thread. The main thread will only process the first message and discard the rest anyway, but with a short enough timer and other threads hogging the SolarMutex it's possible that the message queue overflows and other PostMessage calls fail with ERROR_NOT_ENOUGH_QUOTA. Try to avoid the problem by having the WinSalTimer always be a one-shot timer; when it fires and the main thread processes the posted message, it is restarted with the new due time. This requires creating a new TimerQueueTimer because ChangeTimerQueueTimer only works on periodic timers. Change-Id: I816bd3fa5fbfbea4f26be8ff680a1c916618d3f9 Reviewed-on: Tested-by: Jenkins <> Reviewed-by: Jan Holesovsky <> Reviewed-by: Michael Stahl <>
2016-04-14remove dead fields from WinSalSystem::DisplayMonitorNoel Grandin1-6/+2
Change-Id: I76254f194ac1bbd019b8c46f3f3f0f28e4e7f0ec Reviewed-on: Tested-by: Jenkins <> Reviewed-by: Noel Grandin <>
2016-04-13remove dead stuff from Windows SalDataNoel Grandin1-4/+0
- drop mbInTimerProc field - drop mnSageStatus,mpSageEnableProc fields i.e. SAGE.DLL (System Agent) workaround, which died out with Win95/98 - convert some TRUE/FALSE constants to true/false where the field is a bool - drop maDwmLib, mpDwmIsCompositionEnabled fields Change-Id: I7b773f915dbc329eb0262bc8fee2ea7c72d25c66 Reviewed-on: Tested-by: Jenkins <> Reviewed-by: Michael Stahl <>
2016-04-12vcl: simplify WNT SalYieldMutex::release() further ...Michael Stahl1-21/+18
... by asserting that the current thread is the owner of the SalYieldMutex. Anything else would be a bug anyway. Change-Id: I564c184ae21b99a096f67edbc729b3f2b0e307de
2016-04-12vcl: simplify WNT SalYieldMutex::release() a bitMichael Stahl1-9/+4
The ordering between clearing mnThreadId and OpenGLContext shouldn't matter since it was already inconsistent. Change-Id: I0b7b6457547e9e38527de58ba062fd7092178056
2016-04-12WNT: check result of PostMessage()Michael Stahl2-3/+13
... so the next time something overflows the main thread's message queue it's easier to debug. Change-Id: I90a35e46f3b2cab190c7da5e53024ec549159ac6
2016-04-12tdf#96887 enhance SolarMutex AcquireWithWait for WindowsArmin Le Grand1-83/+34
Currently the Windows-specific method ImplSalYieldMutexAcquireWithWait() uses a messaging mechanism to learn about the SolarMutex being free again. This is not reliable when the MessageQueue overflows (MS allows 10000 messages per queue). It is more safe to use MsgWaitForMultipleObjects. This also allows to not only wait for the SolarMutex to be freed, but also to detect when SendMessage() is used which needs to lead to a reschedule to not block current Window handling. Change-Id: Id317dda62aaa1fe7677d8d28929e6936e5a22705 Reviewed-on: Tested-by: Jenkins <> Reviewed-by: Armin Le Grand <>
2016-03-16loplugin:constantparams in vcl/Noel Grandin1-29/+2
also some improvements to the plugin Change-Id: I0e3a519d70756e577fcb1bd47dd66864b5b4c871 Reviewed-on: Reviewed-by: Noel Grandin <> Tested-by: Noel Grandin <>
2016-02-13vcl: include vcl headers via triangular brackets instead of quotesChris Sherlock2-2/+2
Change-Id: I311f7db622ce341527fe12a92b516f800b602f92
2016-02-09Remove excess newlinesChris Sherlock1-1/+0
A ridiculously fast way of doing this is: for i in $(pcregrep -l -M -r --include='.*[hc]xx$' \ --exclude-dir=workdir --exclude-dir=instdir '^ {3,}' .) do perl -0777 -i -pe 's/^ {3,}/ /gm' $i done Change-Id: Iebb93eccbee9e4fc5c4380474ba595858a27ac2c Reviewed-on: Tested-by: Jenkins <> Reviewed-by: Chris Sherlock <>
2016-02-06vcl: split exception types from input typesChris Sherlock1-13/+13
Having them in the file apptypes.hxx isn't necessary helpful, IMO so I've split the types into inputtypes.hxx and exceptiontypes.hxx Change-Id: I89a1ff168c3ae276b2f5486669d4ec2dda062d57
2015-12-06unused vcl::IsWindowSystemAvailable Juergen Funk1-9/+0
Change-Id: Ie903a6fe3237319661662c0533c23528766ffd08 Reviewed-on: Tested-by: Jenkins <> Reviewed-by: Tor Lillqvist <> Tested-by: Tor Lillqvist <>
2015-12-04Wingdi RGB macro handling improvedAshod Nakashian1-2/+0
Improved the isolation of windows headers. Specifically, RGB macro is better handled now. Change-Id: I0eeea16d0de9da3455810c80b0715f7b54ae8c3f Reviewed-on: Tested-by: Jenkins <> Reviewed-by: Michael Stahl <>
2015-12-02Get rid of a superfluous directory levelTor Lillqvist5-0/+1742
Change-Id: I79e065f0c68b149d2ef69f428d31e36e97a6098b