summaryrefslogtreecommitdiff
path: root/vcl/android
AgeCommit message (Collapse)Author
2018-02-26vcl: fix hangs in SvpSalInstanceMichael Stahl
Since commit cb8bfa9a32799bcde4e960fa56e388d5f7b2a928 the main thread will read from the timer pipe until it is empty. But evidently this introduces the problem that the poll() in another thread will not return, as the file descriptor will no longer be readable; see https://paste.debian.net/1011306/ for a reproducer of that rather under-documented poll behaviour. So other threads can get stuck forever in poll, and then the main thread can block in poll too with no other thread to wake it up. This is the problem that plagues UITest_writerperfect_epubexport. The timer pipe is difficult to fix, since the main thread can block on either the poll or the subsequent AcquireYieldMutex(). So replace the timer pipe with a condition etc. that is mostly copied from the OSX AquaSalInstance/SalYieldMutex implementation. The main thread now does something different than the other threads, and blocks on a condition_variable with a timeout, while other threads still block on acquiring the mutex. Non-main threads can poke the main thread to do a DoYield() on their behalf, and then get the result back with a blocking read from a pipe, all while holding the YieldMutex. This requires some fudging of the YieldMutex so that the main thread can borrow the ownership temporarily. Unfortunately SvpSalInstance, in addition to being directly instantiable for --headless, has a whole bunch of subclasses: * HeadlessSalInstance * AndroidSalInstance * IosSalInstance * GtkInstance (in the gtk3 case) * KDE5SalInstance Of these GtkInstance overrides everything related to the DoYield/SalYieldMutex implementation, but the others will be affected by the change. This commit will probably break IOS due to me not understanding the point of the undocumented random #ifdef IOS in svpinst.cxx. Change-Id: I1bbb143952dda89579e97ac32cd147e5b987573c Reviewed-on: https://gerrit.libreoffice.org/50237 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
2018-02-23blind android build fixCaolán McNamara
Change-Id: I8e5722ee922c609fa71c766692f79f138217bf05
2017-11-11Replace list by vector for ShowNativeDialog (vcl)Julien Nabet
Change-Id: I1101c5b5426507ce8e5fd1ed34930f385f527775 Reviewed-on: https://gerrit.libreoffice.org/44639 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2017-10-31ReleaseYieldMutex is always called with trueNoel Grandin
so drop param and rename to ReleaseYieldMutexAll Change-Id: Ic4fcee24d46405659e54363c87f21d88696b0ce1 Reviewed-on: https://gerrit.libreoffice.org/44057 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-09-28Fix SalUserEventList usage on AndroidJan-Marek Glogowski
Change-Id: I598446c6f14e9df798bf37cb64c8b7bcbb04dd91
2017-09-19rename SalGenericData to GenericUnixSalDataNoel Grandin
since it's generic over the various unixen, not anything else Change-Id: I994d5c9be99134b804e96bc045bf054fd9b434ef Reviewed-on: https://gerrit.libreoffice.org/42455 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-09-19Unify SolarMutex implementationsJan-Marek Glogowski
All backends implement the SolarMutex in mostly the same way. So this consolidates this code into a GenericSolarMutex. We still need the abstract SolarMutex class for the fake AKA fascade implementation in dbaccess. The patch also replaces various places of direct mutex usage with either SolarMutexGuard or SolarMutexReleaser objects. Change-Id: Ia0146dd6c51a3b9a513cc6af34a66def58aad831 Reviewed-on: https://gerrit.libreoffice.org/42325 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2017-08-08loplugin:constantparamNoel Grandin
Change-Id: Ib92aba17c46a4ada75c2a0630f281759d995f32e Reviewed-on: https://gerrit.libreoffice.org/40843 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-06-18another fix after loplugin:unusedfields in vclMarkus Mohrhard
Change-Id: I11a43d1285b474efcb5d4fb157d9e80f0930f081
2017-04-28probably android build fixCaolán McNamara
Change-Id: I95fe4879fe2e43e5b11165a703066ae1a029b5b1
2017-03-31vcl: attempt to blindly make androids properly rectangularMichael Stahl
Change-Id: I5d43744b754817174401558a200a4cd204779515
2016-11-18includes should be at the top of the fileNoel Grandin
not randomly scattered through the code found with something like: git ls-files *.cpp | xargs grep -Pzl "(?s){.*#include" Change-Id: I9c242fa4ef99e8677f2800d7ec9f16d16e488351 Reviewed-on: https://gerrit.libreoffice.org/30952 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-10-05InfoFont/Color is not used by vcl nowCaolán McNamara
anywhere anyone wanted to Get[Font|Color] give it the Label ones instead. why this is exposed through uno is bewildering, stubbed those out for the moment Change-Id: I7a31d027287436be1c075c76a370047efd010bf3
2016-02-01vcl: -Werror=unused-variableMiklos Vajna
Change-Id: I544d42994bd46171d5d507af450cd1ca5f9c912a
2016-02-01work around lack of cairo_rectangle_int_t with basegfxCaolán McNamara
ditch the CAIRO_VERSION_ENCODE(1, 10, 0) + sub optional damage rect and just use our always-available basegfx foo here. Change-Id: I680453180f4725ac37cabf38d71b935c99edf6c7 Reviewed-on: https://gerrit.libreoffice.org/21971 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2016-01-18basebmp now only used from vcl/headless codeCaolán McNamara
Change-Id: I068d404431d3565f6ad5741edbd3693225824a4d
2016-01-18some android build fixesCaolán McNamara
Change-Id: I2d60a6d70ca9d63f49b12b5d4c3855cc4ef53478
2016-01-18fix android buildCaolán McNamara
Change-Id: I180ed41a52e8f83fba86fb07e79ae2a7a3f095fc
2016-01-11vcl: fix Android buildMiklos Vajna
Change-Id: I05ce4ddb4c933eb1100e3a3410cea27520072933
2015-11-16fix android buildCaolán McNamara
Change-Id: Ida1447bad7f81ebfcc0da1e8278a74c11a139afe
2015-10-05convert SAL_FRAME_STYLE to scoped enumNoel Grandin
Change-Id: Ic3f7fddcea36c18ffe43c4c633d415f596a58cbc Reviewed-on: https://gerrit.libreoffice.org/19094 Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.com>
2015-06-04convert basebmp::Format to scoped enumNoel Grandin
Change-Id: I6eb213d6dcf387936967271fba9e2de3879ef479
2015-05-25cppcheck: noExplicitConstructorCaolán McNamara
Change-Id: I62076450ab77472bfd09b3fb9824f54b6ea1e0f7
2015-05-21Bin unused codeTor Lillqvist
2015-05-21WaE: macro "LOGW" is not usedTor Lillqvist
2015-05-21Remove more obsolete Android code: The 'AppSupport' stuffTor Lillqvist
2015-04-28allow a different notebook tab font than the rest of the uiCaolán McNamara
Change-Id: Ia41276033c1f656217bc3ae929faab001db36ca4
2015-03-24Kill dead <touch/touch.h> APITor Lillqvist
Has all been obsoleted by LibreOfficeKit. Only some MOBILE_* constant #defines are now left in touch.h, but probably those are used only by dead code. Change-Id: I646945c4408b4e6cd5510da535cfc12088dd391c
2015-01-07fdo#84938: convert VCL_INPUT_ #defines to 'enum class'Noel Grandin
Change-Id: I155e45f58974a2b946c4a7703b350bcbfbad342e
2014-12-04Call DetachCurrentThread() in the AndroidSalInstance destructorTor Lillqvist
As we call AttachCurrentThread() in the constructor, it seems logical to call DetachCurrentThread() in the destructor. Some warning messages in the logcat indicated that DetachCurrentThread() hadn't been called for a thread that died. Actually I would prefer to call both AttachCurrentThread() and DetachCurrentThread() in the actual thread function, instead of somewhat haphazardly and imlicitly in the AndroidSalInstance constructor and destructor. Do we know for sure that the lifetime of the AndroidSalInstance singleton (is is a singleton, right?) is 1:1 coupled to that of the LO "main thread"? Change-Id: Ifcc0e0b9af88b19389c416c5646499d44ad0e941
2014-11-08These constants are now in the MouseEventModifiers class enumTor Lillqvist
Change-Id: Ie6a0c86b18a7a01c8b020c37dcbcadc529deb80b
2014-09-18Use vcl::FontTor Lillqvist
Change-Id: I25b1ce4396a8e125b23e088310b970ef746cbaf0
2014-08-18ErrorBox->MessageDialogCaolán McNamara
Change-Id: I57d4e43460e40d3aff54873280eddbb18c12446b
2014-05-24cppcheck: Prefer prefix ++/-- operatorsJulien Nabet
Change-Id: I290ccba1487e59ea6f86bfb0382671ca4ed50831
2014-04-02Kill superfluous vertical whitespaceTor Lillqvist
Change-Id: I81ce8fd7022bf283db668705efdfb0666f87bde9
2014-02-20vcl: try to make android tinderbox happy tooMichael Stahl
Change-Id: If83b12578ce1e5dcae688589e92a54b96040abdd
2013-11-19remove unnecessary use of OUString constructor when assigningNoel Grandin
change code like aStr = OUString("xxxx"); to aStr = "xxxx"; Change-Id: Ib981a5cc735677ec5dba76ef9279a107d22e99d4
2013-10-13Hacking on iOS keyboard handlingTor Lillqvist
Change-Id: I0d842cc951cb5a3e7e990f835f541ccf1bd89df6
2013-07-12Turn basebmp::Format into a proper enumStephan Bergmann
Change-Id: I4067c5039c7b5c74a1c144721dd7260de54dd2bf
2013-06-29remove some createFromAscii usageThomas Arnhold
there are a lot more of them: git grep 'createFromAscii[^)]*"' Change-Id: Ibc2e9cae208d8b9c91667bb3b177c6bd6d3a9424
2013-04-22Move to MPLv2 license headers, with ESC decision and author's permission.Michael Meeks
2013-04-19Small refactoring of the Android "desktop app" code, no functional changeTor Lillqvist
Move the native methods out to a separate AppSupport class so that they aren't in our "experimenal" Desktop app's namespace. Don't hardcode the name of that class in the native code, but have the app register the class to which the damage callbacks should be done. Possibly the AppSupport and Bootstrap classes should be combined. Later. Also, the "android" part of the package name is superfluous; it is Android-specific code, no information gained by having an "android" part in the package name. Change-Id: Iddf55c8034ead7693887ace8438deb002c5eea9f
2013-04-12Start implementing on-demand keyboard display for non-DESKTOPTor Lillqvist
Change-Id: I9321dcf9d863cb59eee9b2a012d887a17cb1b454
2013-04-07mass removal of rtl:: prefixes for O(U)String*Luboš Luňák
Modules sal, salhelper, cppu, cppuhelper, codemaker (selectively) and odk have kept them, in order not to break external API (the automatic using declaration is LO-internal). Change-Id: I588fc9e0c45b914f824f91c0376980621d730f09
2013-03-30Bin redundant loggingTor Lillqvist
Change-Id: If7245ceea45a517084fdb5df09818e4e6e8c8be5
2013-03-17AndroidSalInstance::RedrawWindows() is called from only one placeTor Lillqvist
No need to take a parameter for which NULL is always passed, and related simplifications. Change-Id: I89bab2904fdae3520987d0f67e55b2649bf225d3
2013-03-08AndroidSalInstance::Wakeup() is unusedTor Lillqvist
The Wakeup() in the base class, SvpSalInstance, is not virtual. So this Wakeup() does not override the Wakeup() in the base class, as the author maybe thought. I don't see in git history that it would have ever been called explicitly on any AndroidSalInstance objects either. Or am I missing something? Change-Id: I932398e7c0a37a3048c5d372996fe6ac6f209887
2013-03-08Don't crash the other experimental appsTor Lillqvist
Don't try to find the class org.libreoffice.experimental.desktop.Desktop in the AndroidSalInstance constructor. It won't exist anyway except in that specific app. Look up the class in the damaged() method where it is needed. And actually, of course we should not hardcode the name of the app class like that, but the app should pass its class down to the native code. Change-Id: Ic15d5cc2c8d53be558711ca7a145d5489e34d298
2013-03-07Start hacking on scrollingTor Lillqvist
Change-Id: I74f1d7feb935be65629bdbd7464f9882229948e5
2013-03-07Use view size for "work area" sizeTor Lillqvist
Don't know what this affects, though. Things seem to have worked as expected even with the hardcoded bogus value? Change-Id: I945bdcd53260fc5f43cf0031dfd96637168475f0