summaryrefslogtreecommitdiff
path: root/vcl/osx
AgeCommit message (Collapse)Author
2021-08-01o3tl::sorted_vector is better for small sets of pointersNoel Grandin
Change-Id: I6f67cf1ec02095c3953853d53f8750a97369fbcb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119814 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-06-28loplugin:indentation (macOS)Stephan Bergmann
Change-Id: Ia7b33ee93dbb4d27a2387af6e2dd247b5f0b0788 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118026 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-06-10-Werror,-Wunused-but-set-variable (Clang 13 trunk)Stephan Bergmann
...ever since the code's introduction in adf0066a17538a394550237a54f6fc0027f6ed29 "#i91478# aqua implementation (continued)" Change-Id: I2dd7bbaba9e8068929f4792b7f953cbf01e03a7d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116989 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-06-10loplugin:unnecessaryreturn SalFrame::SetPluginParentNoel Grandin
Change-Id: If927a834f5b5d722fc36cce40e161597af6234ca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116972 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-05-22tdf#142061 Add window scaling to XOR emulation on macOSThorsten Wagner
Window scaling for retina displays on macOS has been added to fix tdf#138122 in commit 1a167625314bf36b735176ed488e6ba9b5e9b675 Missing window scaling for XOR emulation is added by this change. Code modified for macOS is moved from quartz/salgidcommon.cxx to osx/salmacos.cxx while original code is copied to ios/salios.cxx to prevent modifications for iOS. Change-Id: Ia8c52f9045379cc37d5aff1279650db0dddee8c0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115816 Tested-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com> Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2021-05-18tdf#104169 - Change mouse cursor to FatCross in calc spreadsheetSarabjot Singh
Added new cursor FatCross to calc. Change mouse cursor to FatCross while hovering over the spreadsheet in calc instead of earlier Arrow. Co-authored-by: Mesut Çifci <mesutcifci97@gmail.com> Change-Id: I672a058cc702eab0cba6ac953534def915766859 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114679 Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2021-04-30vcl: iOS/macOS - move graphic render func. into AquaGraphicsBackendTomaž Vajngerl
This change moves graphic rendering function under AquaSalGraphics into a new AquaGraphicsBackend, which inherits from SalGraphicsImpl. This is part of the refactoring to make it mandatory that a SalGraphics always has a SalGraphicsImpl associated, which will make it possible to simplify the SalGraphics interface and enable the posibility to implement alernative graphic backends (Skia). Common variables and attributes are moved to AquaSharedAttributes and are shared between SalGraphics and SalGraphicsImpl. Change-Id: Ie48da87002ec8e4011ba92fdc9170f3a86761517 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114701 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-04-26drop mask from BitmapExNoel Grandin
So that we have fewer cases to deal with when we transition to 32-bit bitmaps. (*) rename maMask to maAlphaMask, since now it is only being used for alpha duties. (*) drop mbAlpha and mbTransparent to simplify state management, the only thing we need to check for alpha is if maAlphaMask is non-empty. Change-Id: I06252e38e950e846a94b4c2ba8ea763be17801fe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111679 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-04-05VCL drop Scheduler::ProcessTaskSchedulingJan-Marek Glogowski
Just process tasks (and system events) via DoYield and actually wake up the system timer on OSX. This drops the testFocus unit test. There is some comment about it in README.lifecycle, but the test's CPPUNIT_ASSERT was already commented and mmeeks suggested to simply drop it. Even worse: just replacing - Scheduler::ProcessTaskScheduling(); + Scheduler::ProcessEventsToIdle(); results in a SIGSEGV in my local Linux build, which is a totally unrelated crash. Change-Id: Ie3e2a8668b8501f081706dde0ba3684801c30cc2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112761 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-03-28drop operator bool and operator! from Bitmap and BitmapExNoel
IRC chat: <quikee[m]> noelgrandin: doesn't adding operator bool to Bitmap has the same problem as Graphic and the reason why you dropped that commit 7334034ae93b49fc93b5859a3c047a319d138282 "drop Graphic::operator bool" <noelgrandin> quikee[m], hmmm, good point <noelgrandin> maybe I should just drop both operator bool and operator! in favor of IsEmpty <quikee[m]> noelgrandin: I don't remember what the problem is I just remembered we dropped it Graphic :) sure, dropping everything for IsEmpty is probably the best Change-Id: Ieae289cda64f0b8d8fdecd5ea9e6f2bb874ff4cd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113163 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-03-07tdf#140856 macOS listbox renderingNoel Grandin
Change-Id: Ib5d4af162da7264d9e6da8742e36c194448bd1fd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112132 Tested-by: Jenkins Reviewed-by: Thorsten Wagner <thorsten.wagner.4@gmail.com> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-03-06tdf#138314 Change selected tab text color on macOS Big SurThorsten Wagner
Change text color of selected tabs starting with macOS 10.16 (not with macOS 11.0) to ensure compatibilty with macOS SDKs prior to 11 used within LibreOffice build process The version check used in commit 058ad4b900b5e0ee902f3e89ed121c2b5f8c58f1 is amended by this change. Change-Id: I4814e8edd9aa11794a9fb1b1eaa391451bde4487 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112036 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
2021-03-04macOS: use HITheme to draw listbox window borderNoel Grandin
Change-Id: I39fd6f643649bc405447d10e7072ae6dabd679b6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111935 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-03-03vcl/floatwin.hxx can be toolkit only nowCaolán McNamara
Change-Id: Ifd8f58771ea6f9212a0dca7d4550c86ebecd9333 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111814 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-03-03drop TransparentType::Color usageNoel Grandin
which is dead code, since we convert to TransparentType::Bitmask in the constructor of BitmapEx Change-Id: I047b7d25317c4be4d17a8b0db9a90ec101875c9f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111683 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-03-01loplugin:redundantstatic (macOS)Stephan Bergmann
Change-Id: Ifc148f4b4a2a3f10a563bc3bb2ed16625c5908dc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111737 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-03-01macOS spinbox and tab header tweaksNoel Grandin
(*) tweak location of SpinBoxes so they line up a little better (*) tweak the size of the TabItems so they don't overlap, which causes little extra vertical bars of gray Change-Id: Ic36be6c97b4b44f5e60b0f4a0f1e172fd7c2af03 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111712 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-02-26dummy clipboard for unit testsNoel Grandin
Change-Id: I285b36536dd38e41a199e8b6fd654666d125d906 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111498 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins
2021-02-23tdf#138122 Detect window scaling for multi display configurations on macOSThorsten Wagner
(1) Activate window scaling when at least one retina display is connected (2) Remove environment variable VCL_MACOS_FORCE_WINDOW_SCALING (3) Disable related unit tests unless bitmap scaling has been implemented Change-Id: I218119a21e319e22bf17c609608724fce180f000 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111267 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-02-18loplugin:referencecasting (macOS)Stephan Bergmann
Change-Id: I99470067a34fab9fbc2ea53d2f8a634240f0d223 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111127 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-02-11Remove unneeded breaksAndrea Gelmini
Extending this: https://gerrit.libreoffice.org/c/core/+/110512 Change-Id: I1066aac690fe297a557352266f3405ae29ed4593 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110522 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-01-28Revert "tdf#138122 Detect window scaling for multi display configurations on ↵Stephan Bergmann
macOS" This reverts commit f318b856ed055f1952276355f811153f6b29c93e. It appears this reliably causes CppunitTest_vcl_backend_test to fail on macOS on at least tb69, see e.g. <https://ci.libreoffice.org/job/gerrit_mac/82587/ consoleFull#-500134232d893063f-7f3d-4b7e-b56f-4e0f225817cd> and <https://ci.libreoffice.org/job/gerrit_mac/82592/ consoleFull#-500134232d893063f-7f3d-4b7e-b56f-4e0f225817cd>, [_RUN_____] BackendTest::testDrawBlendExtended /Users/tdf/lode/jenkins/workspace/lo_gerrit/Config/macosx_clang_dbgutil/vcl/qa/cppunit/BackendTest.cxx:688:BackendTest::testDrawBlendExtended equality assertion failed - Expected: c[000080ff] - Actual : c[ffffffff] BackendTest::testDrawBlendExtended finished in: 1ms [_RUN_____] BackendTest::testDrawAlphaBitmapMirrored /Users/tdf/lode/jenkins/workspace/lo_gerrit/Config/macosx_clang_dbgutil/vcl/qa/cppunit/BackendTest.cxx:749:BackendTest::testDrawAlphaBitmapMirrored equality assertion failed - Expected: c[ff0000ff] - Actual : c[000000ff] BackendTest::testDrawAlphaBitmapMirrored finished in: 1ms [_RUN_____] BackendTest::testTdf124848 /Users/tdf/lode/jenkins/workspace/lo_gerrit/Config/macosx_clang_dbgutil/vcl/qa/cppunit/BackendTest.cxx:808:BackendTest::testTdf124848 equality assertion failed - Expected: c[000000ff] - Actual : c[ffffffff] And it also causes my local macOS 11.1 ARM64 build to consistently fail that way, both the original patch set 1 (with the older parent) and the submitted patch set 2 (with a newer parent). Change-Id: I2c36fada271e8bc300b6caa19370d8e8bb1e7599 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110055 Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Jenkins
2021-01-27NSApplication's appearance property exists in macOS 10.14 and later onlyTor Lillqvist
Change-Id: I12f586d91e40da130f59eeba3ab65e07eec088d3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110013 Tested-by: Tor Lillqvist <tml@collabora.com> Reviewed-by: Tor Lillqvist <tml@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110015 Tested-by: Jenkins
2021-01-27tdf#138122 Detect window scaling for multi display configurations on macOSThorsten Wagner
(1) Activate window scaling when at least one retina display is connected (2) Remove environment variable VCL_MACOS_FORCE_WINDOW_SCALING Change-Id: If6926ace7238f2be4ae91290872dbb3dbf658221 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110002 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
2021-01-24Use ContainerType().swap and avoid local variablesMike Kaganski
Change-Id: I773555180758a97aff37f9bc27de83c355d71521 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109761 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-01-20Fix typosAndrea Gelmini
Change-Id: I8bab3efcd63c0f950bc3176e0d26cc896d601083 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109559 Tested-by: Jenkins Reviewed-by: Dante DM <dante19031999@gmail.com> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-01-19Avoid deadlock when macOS menu-related code is run on non-main threadStephan Bergmann
At least on macOS 11.1 on ARM64 (though not with an otherwise somewhat similar build on macOS 10.15.7 on x86-64), CppunitTest_smoketest deadlocked the soffice process for me, first while processing a remote call from cppunittester at > thread #8, name = 'cppu_threadpool::ORequestThread' > frame #0: 0x0000000183c43488 libsystem_kernel.dylib`__psynch_cvwait + 8 > frame #1: 0x0000000183c79568 libsystem_pthread.dylib`_pthread_cond_wait + 1192 > frame #2: 0x0000000184aeb0f0 Foundation`-[NSOperation waitUntilFinished] + 584 > frame #3: 0x0000000183d370e0 CoreFoundation`_CFXNotificationPost + 800 > frame #4: 0x0000000184aa0650 Foundation`-[NSNotificationCenter postNotificationName:object:userInfo:] + 64 > frame #5: 0x000000018653d3bc AppKit`-[NSMenu insertItem:atIndex:] + 624 > frame #6: 0x000000018653e66c AppKit`-[NSMenu insertItemWithTitle:action:keyEquivalent:atIndex:] + 144 > frame #7: 0x0000000115d16a28 libvclplug_osxlo.dylib`initAppMenu() at vcl/osx/salmenu.cxx:126:16 > frame #8: 0x0000000115d1691c libvclplug_osxlo.dylib`AquaSalInstance::CreateMenu(this=0x000000013febbd10, bMenuBar=false, pVCLMenu=0x0000000299db67a0) at vcl/osx/salmenu.cxx:207:5 > frame #9: 0x000000010b1b8620 libvcllo.dylib`PopupMenu::PopupMenu(this=0x0000000299db67a0) at vcl/source/window/menu.cxx:2718:45 [...] and later while processing a remote call from cppunittester at > thread #8, name = 'cppu_threadpool::ORequestThread' > frame #0: 0x0000000183c43488 libsystem_kernel.dylib`__psynch_cvwait + 8 > frame #1: 0x0000000183c79568 libsystem_pthread.dylib`_pthread_cond_wait + 1192 > frame #2: 0x0000000184aeb0f0 Foundation`-[NSOperation waitUntilFinished] + 584 > frame #3: 0x0000000183d370e0 CoreFoundation`_CFXNotificationPost + 800 > frame #4: 0x0000000184aa0650 Foundation`-[NSNotificationCenter postNotificationName:object:userInfo:] + 64 > frame #5: 0x000000018653d3bc AppKit`-[NSMenu insertItem:atIndex:] + 624 > frame #6: 0x0000000119858590 libvclplug_osxlo.dylib`AquaSalMenu::InsertItem(this=0x000000028be8cc20, pSalMenuItem=0x000000028be67420, nPos=65535) at vcl/osx/salmenu.cxx:489:9 > frame #7: 0x000000010aa8a424 libvcllo.dylib`Menu::NbcInsertItem(this=0x000000028be78f90, nId=2, nBits=NONE, rStr=0x000000028070ef70, pMenu=0x000000028be78f90, nPos=65535, rIdent=0x000000028070ef10) at vcl/source/window/menu.cxx:416:27 [...] and the main thread in both cases in the main loop at > thread #1, queue = 'com.apple.main-thread' > frame #0: 0x0000000183c43488 libsystem_kernel.dylib`__psynch_cvwait + 8 > frame #1: 0x0000000183c79568 libsystem_pthread.dylib`_pthread_cond_wait + 1192 > frame #2: 0x00000001013b0354 libc++.1.0.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) [inlined] std::__1::__libcpp_condvar_wait(__cv=<unavailable>, __m=<unavailable>) at ~/llvm/build/include/c++/v1/__threading_support:436:10 [opt] > frame #3: 0x00000001013b0350 libc++.1.0.dylib`std::__1::condition_variable::wait(this=<unavailable>, lk=<unavailable>) at ~/github.com/llvm/llvm-project/libcxx/src/condition_variable.cpp:44 [opt] > frame #4: 0x0000000115d0a8fc libvclplug_osxlo.dylib`void std::__1::condition_variable::wait<SalYieldMutex::doAcquire(unsigned int)::$_0>(this=0x000000013fec8f50, __lk=0x000000016f255bf8, __pred=(anonymous class) @ 0x000000016f255b80)::$_0) at ~/llvm/inst/include/c++/v1/__mutex_base:406:9 > frame #5: 0x0000000115d0a71c libvclplug_osxlo.dylib`SalYieldMutex::doAcquire(this=0x000000013fec8ef0, nLockCount=1) at vcl/osx/salinst.cxx:215:36 > frame #6: 0x000000010b15ec90 libvcllo.dylib`comphelper::SolarMutex::acquire(this=0x000000013fec8ef0, nLockCount=1) at include/comphelper/solarmutex.hxx:86:5 > frame #7: 0x000000010b8215c4 libvcllo.dylib`SalInstance::AcquireYieldMutex(this=0x000000013febbd10, nCount=1) at vcl/source/app/salvtables.cxx:121:73 > frame #8: 0x000000010b8c1d78 libvcllo.dylib`Application::AcquireSolarMutex(nCount=1) at vcl/source/app/svapp.cxx:562:25 > frame #9: 0x0000000115d10000 libvclplug_osxlo.dylib`SolarMutexReleaser::~SolarMutexReleaser(this=0x000000016f255e28) at include/vcl/svapp.hxx:1421:29 > frame #10: 0x0000000115d0c650 libvclplug_osxlo.dylib`SolarMutexReleaser::~SolarMutexReleaser(this=0x000000016f255e28) at include/vcl/svapp.hxx:1421:27 > frame #11: 0x0000000115d0c2d8 libvclplug_osxlo.dylib`AquaSalInstance::DoYield(this=0x000000013febbd10, bWait=true, bHandleAllCurrentEvents=false) at vcl/osx/salinst.cxx:570:9 > frame #12: 0x000000010b8c1558 libvcllo.dylib`ImplYield(i_bWait=true, i_bAllEvents=false) at core/vcl/source/app/svapp.cxx:463:48 > frame #13: 0x000000010b8c1298 libvcllo.dylib`Application::Yield() at vcl/source/app/svapp.cxx:528:5 > frame #14: 0x000000010b8c120c libvcllo.dylib`Application::Execute() at vcl/source/app/svapp.cxx:442:9 [...] Change-Id: I5146b7bdeb6b1b9b9ad4f4b91bbe52de0b76f308 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109648 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-01-19loplugin:colorcheck (macOS)Stephan Bergmann
as suggested by noelgrandin on IRC, "just add ColorTransparency as the first param, since that will maintain whatever the code is doing currently (whether it is actually correct is a different story)" Change-Id: I3fd7f10ffadc343f3f9a532120e2a7bbb33244d7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109616 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Jenkins
2021-01-19-Werror,-Wdeprecated-anon-enum-enum-conversionStephan Bergmann
same as f9c6a153c95c4acc6ba02e660c6ca51166b4c79a "-Werror,-Wdeprecated-anon-enum-enum-conversion" Change-Id: Ie69413a98269c215eaf2cbd938708f0d9fcf28d7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109614 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-01-18Clean up includes a bit for iOS and macOSTor Lillqvist
Change-Id: I1dc6256968503ee3865f90e3693acce911a1d65c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109485 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
2021-01-17tdf#138122: Fix vcl for iOS after 1a167625314bf36b735176ed488e6ba9b5e9b675Tor Lillqvist
Make vcl compile again for iOS and make the Collabora Office iOS app work again when built against a master build of core. For now, keep the old versions of the functions touched by 1a167625314bf36b735176ed488e6ba9b5e9b675 in vcl/ios/salios.cxx, and move the modified versions to the new file vcl/osx/salmacos.cxx. Keep the functions as they were except that ifdefs for MACOSX or IOS are expanded. Keep the formatting as it was to make comparisons easier. Thus add the new files to the clang-format exclusion list. While at it, also move vcl/quartz/salgdiutils.cxx to vcl/osx as it is compiled only for macOS anyway. Change-Id: I990ef678f2263031d4a5af8cc547fffe185d17c4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109480 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
2021-01-17tdf#138314 Change selected tab text color on macOS Big SurThorsten Wagner
Starting with macOS Big Sur, coloring has changed. Currently there is no documentation which system color should be used for selected tab text. As a workaround text color is changed for macOS Big Sur and newer only. Change-Id: I2e8c83527775c17f95e5e4afe70577442e14715e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109479 Tested-by: Tor Lillqvist <tml@collabora.com> Reviewed-by: Tor Lillqvist <tml@collabora.com>
2021-01-17tdf#138122 Add window scaling for retina displays on macOSThorsten Wagner
(1) Remove hack to make application look as if being linked against SDK 10.13 (2) Use quad storage size on virtual devices for displaying on retina displays thereafter (3) Apply workaround to downsample bitmaps from scaled layers (to be implemented) (4) Disable dark mode (to be implemented) (5) Provide new environment variables: VCL_MACOS_FORCE_WINDOW_SCALING: window scaling on non retina displays VCL_MACOS_FORCE_DARK_MODE: enable dark mode (macOS 10.14, iOS 13 and newer) VCL_MACOS_USE_SYSTEM_APPEARANCE: use light mode or dark mode (macOS 10.14, iOS 13 and newer) as configured by system preferences Change-Id: I99877cd62a98cb91bcbf27af62b043c31c5f5fc9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109072 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
2021-01-16Enable pasting of LINK data from the system pasteboard on macOSTor Lillqvist
Also add more documentation on how the flavorMap array works. The interesting thing is that the code stores anything you throw at it on the system pasteboard. But in another LibreOffice process, it won't accept types not mentioned in the array even if it as such is a type that other parts of the code would look for. Thus, adding the "application/x-openoffice-link;windows_formatname=\"Link\"" type to the array means that if there is such data on the system pasteboard (from an earlier or simultaneous run of LibreOffice), it will be pasteable also in a different LibreOffice process from the one that put it there. (While at it, order the FLAVOR_FOO variable definitions to be in the same order as their use in the array entries.) Change-Id: I913cc732e4dfb32d4b098505aa10806976db6326 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109384 Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Tor Lillqvist <tml@collabora.com>
2021-01-15remove leftover codeNoel Grandin
from commit 0918eade90e19dd8e9a246446dcb9463c6c7f7cc "remove unnecessary macos cursor code" Change-Id: Ieab46070e8da83ab6c054a57006e7760d69a2a43 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109326 Tested-by: Tor Lillqvist <tml@collabora.com> Reviewed-by: Tor Lillqvist <tml@collabora.com>
2021-01-15Fix handling of the OBJECTDESCRIPTOR clipboard (pasteboard) type on macOSTor Lillqvist
This fixes a demonstrable problem, and affects only macOS. This is also on the path towards fixing https://github.com/CollaboraOnline/online/issues/849 , even if the code touched here is for macOS only. The iOS pasteboard handling code is based on the macOS one. We need the pasteboard to have the OBJECTDESCRIPTOR type as a MIME type that includes the typename attribute, because the code in sc checks for that when it decides whether it is a proper OBJECTDESCRIPTOR. Simplify the data in the flavorMap array. No need to duplicate the same MIME type string as both the pasteboard type and MIME type, for those cases where the MIME type is used diretly as pasteboard type. We also know that for those types, the MIME type might have additional parameters, so be more lenient in checking. With this change, and my recent change to sot, this now works: Start LibreOffice. Open a spreadsheet. Select a cell range. (It can include formulas.) Edit > Copy. Quit LibreOffice. Start LibreOffice again. Open a spreadsheet. Edit > Paste. You get the very same cells that you pasted as such (with relative cell addresses in formulas properly adjusted, as expected). Previously, it would paste an image of the copied cell range, which is fairly pointless. There is still lots of opportunity for cleanup in the clipboard code for macOS and iOS. It is presumably rather pointless to put images on the pasteboard in Windows bitmap format, for instance. Just PNG should be enough. No idea why the code provides the TIFF pasteboard type for images. Ditto for Windows metafiles (WMF and EMF). It is also unclear how useful the EMBED_SOURCE or LINK_SOURCE types are on macOS, for instance. Change-Id: I573648480b03972b506203b4f470d513bcb81212 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109297 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
2021-01-14remove unnecessary macos cursor codeNoel Grandin
certainly on my Catalina macOS install it makes no difference with or without this code. I could have sworn it was necessary back when I added it, but since I'm going on snippets of hacking scattered around the net (because Apple 's documentation is rather lacking), who knows. Change-Id: I8a66a5179ab7ca8138e54a57564b8d453848c0e3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109241 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-01-11Avoid assertion failure related to cursor sizes on macOSTor Lillqvist
No idea why this assertion failure started to show up now (at least when viewing a presentation slide show). Anyway, apparently the code needs to handle 256x256 cursors, too, and not just 128x128 and 32x32 ones. Apparently the assertion failure is caused by icon-themes/colibre/vcl/res/null.png. Sadly I don't really understand the code around here, but this commit gets rid of the assertion failure, and that is good enough for me for now. This problem was reported in a comment in the otherwise unrelated tdf#138122, and the assertion failure caused a hang, which is not good, reported as tdf#139535. That general problem is not fixed by this commit. Change-Id: I1390f00e03e0766d54969d9d62311a55da8e8945 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109083 Tested-by: Tor Lillqvist <tml@collabora.com> Reviewed-by: Tor Lillqvist <tml@collabora.com>
2020-12-14Fix and clean up SalAbort implementations on macOS and WindowsStephan Bergmann
Since "forever", SalAbort has been declared as non-exported in vcl/inc/salinst.hxx and (only) called from Application::Abort (vcl/source/app/svapp.cxx) in Library_vcl. Its various implementations for different platforms have always been scattered across Library_vcl. For Windows, SalAbort was originally implemented in vcl/win/app/salinst.cxx, until 1698debed2993fc5f262aa3ebbdb32fc112ac556 "Implement Windows VCL backend as plugin" introduced an incompatible implementation in vcl/win/app/salplug.cxx (which was added to Library_vcl) and moved the original implementation in vcl/win/app/salinst.cxx from Library_vcl to Library_vclplug_win, where it thus became dead code (and where it now gets removed). For macOS, SalAbort was originally implemented in vcl/osx/salinst.cxx, until 3af4e1a0825c5b11ae4ef58fc411378aab669387 "Implement MacOSX VCL backend as plugin" introduced a different implementation in vcl/osx/salplug.cxx (which was added to Library_vcl) and moved the original implementation in vcl/osx/salinst.cxx from Library_vcl to Library_vclplug_win, where it thus became dead code (and where it now gets removed). (In 0f3be2e19fa408d7069d586ccf04cb3f3eccd6b9 "Unify sal plugin loaders", the--- identical---new implementations in vcl/osx/salinst.cxx and vcl/win/app/salinst.cxx where then consolidated with other---also identical--- implementations in vcl/source/app/salplug.cxx.) For macOS, the original, now removed implementation in vcl/osx/salinst.cxx and the consolidated implementation in vcl/source/app/salplug.cxx only differed in an added CrashReporter::addKeyValue("AbortMessage", rErrorText, CrashReporter::Write); which is presumably harmless to add. But for Windows, the original, now removed implementation in vcl/win/app/salinst.cxx differed substantially from the consolidated implementation in vcl/source/app/salplug.cxx, which is updated here to reflect those differences. The one thing that cannot easily be updated, though, is the //TODO: ImplFreeSalGDI(); call, as ImplFreeSalGDI is defined in Library_vclplug_win. I'll thus leave fixing that TODO for another commit (if calling ImplFreeSalGDI from SalAbort is even necessary, given that it ends in FatalAppExitW anyway)---my gut feeling is that the whole 1698debed2993fc5f262aa3ebbdb32fc112ac556 "Implement Windows VCL backend as plugin" was somewhat misguided. Change-Id: I641a3d7b1bc27ae14c38eb1ec0838bc04e4290d2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107666 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-12-13loplugin:stringviewparam (macOS)Stephan Bergmann
Change-Id: I3f026a3c2348b55cadf40f5d28c90963266486f1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107658 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-12-07loplugin:stringviewparam (macOS)Stephan Bergmann
Change-Id: I75344c7eda051838c015f0c4126788fd3628682f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107356 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-11-26Add 'SinglePrintJobs' to PrintOptionsSamuel Mehrbrodt
So that this option can be set via UNO API Change-Id: I0b69162661a4327d59aaed82d5eff98cb50d852c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106593 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2020-11-24Remove unused parameter (flagged now by loplugin:stringview)Stephan Bergmann
Change-Id: I78e2b60945f256de5e7455373a2ecff72f9eaae7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106484 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-11-22tdf#123936 Formatting files in module vcl with clang-formatPhilipp Hofer
Change-Id: Ia162ad5b7499c0ddfdbfca59ae76b81335ce2d45 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105728 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Tested-by: Jenkins
2020-11-15loplugin:toolslong in Library_vclplug_osxStephan Bergmann
Change-Id: I63892376154893a97e6b205b93c1682f66fd3064 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105756 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-11-15CGFloat appears to be a more suitable type hereStephan Bergmann
...interacting with NS data sructures and functions Change-Id: I16e155be33754a06fa2d6decb32be961f83255f8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105752 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-11-15Assumed UNOIDL long vs. C++ sal_Int32 confusionStephan Bergmann
UNOIDL css.accessibility.XAccessibleValue.getCurrentValue returning any is documented: "The exact return type is implementation dependent. Typical types are long and double." So assume that this code meant to extract a UNOIDL long, i.e., sal_Int32 in C++, value. (And similarly for getMinimum/MaximumValue. Also, the "TODO: Detect Type from Any" comments seem to imply that something more elaborate is asked for, anyway?) Change-Id: If01956eaf4ec186931414a4e1d55429e66901c55 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105745 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-11-15DPI values are generally represented as sal_Int32 in VCLStephan Bergmann
cf. e.g. pure virtual SalGraphics::GetResolution (vcl/inc/salgdi.hxx) Change-Id: I77d54ad0a7b80cf8839b253c14ce468ac4e16c84 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105748 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-11-15UNOIDL long vs. C++ sal_Int32 confustionStephan Bergmann
UNOIDL css.awt.Point members x, y are of type long, i.e., sal_Int32 in C++ Change-Id: I3a8f087af2e282e6b82a8409a1202f3be18464ca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105744 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-11-15UNOIDL long vs. C++ sal_Int32 confustionStephan Bergmann
UNOIDL css.accessibility.XAccessibleText.getCaretPosition returns long, i.e., sal_Int32 in C++ Change-Id: Iaf6f6407f77a3d3fae7cd99e08c4cd43343a7af6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105742 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>