summaryrefslogtreecommitdiff
path: root/vcl/osx
AgeCommit message (Collapse)Author
2018-06-11tdf#117872: Never participate in the macOS system full-screen modeTor Lillqvist
There is just too much complexity involved, and the way LibreOffice works really isn't prepared for the concept of windows having the option from a system point of view to being full-screenable or not. This means that the green bubble in window title bars changes from being a (system) full-screen toggle to being a maximize/restore toggle. Sure, the "maximize" concept also probably can be confused with LibreOffice's own full-screen concept. For instance, the Start Centre window is not expecting to be made full-screen. Still, when you from the Start Centre open a Writer document, it is the *same* window that is re-used as the Writer window, and then suddenly should be prepared to handle going full-screen. Also, it is up to each separate kind of document window whether it can be made full-screen (from the LibreOffice point of view) or not. Writer windows can, but Impress windows can't, for example. The View>Full Screen menu entry is added separately each case. Change-Id: I6983481cbd30c0e5190c450483b1246006c80633 Reviewed-on: https://gerrit.libreoffice.org/55617 Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Tor Lillqvist <tml@collabora.com>
2018-06-01tdf#117850: Just call _Exit() in our applicationWillTerminate:Tor Lillqvist
Sure, it is just a workaround, but a very effective workaround. Change-Id: Id0daff048a27dae5cf8fb5e0e949c5b21e03fc86 Reviewed-on: https://gerrit.libreoffice.org/54924 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tor Lillqvist <tml@collabora.com> (cherry picked from commit aa81a086bd3dcd7d6b830951619f310bd0aff30c) Reviewed-on: https://gerrit.libreoffice.org/54995 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> (cherry picked from commit b1eeeaccc3337510df93b147f5905fca3416fc48)
2018-04-23tdf#117033 - Tooltips show the wrong symbol for MOD3 combinationsheiko tietze
Symbol for MOD3 added Change-Id: Idb76199fbff240fe39c96ed837db098a4283d70b Reviewed-on: https://gerrit.libreoffice.org/52957 Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Tor Lillqvist <tml@collabora.com> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit e422efcaff1bf789343a73a16e46b00f303e3032) Reviewed-on: https://gerrit.libreoffice.org/53015 Reviewed-by: Heiko Tietze <tietze.heiko@gmail.com> (cherry picked from commit 54473bec1f419773dd0a44c3ed2754b7f7f7e840)
2018-02-26tdf#103571: Avoid spurious heavy SalEvent::DisplayChanged callbacksTor Lillqvist
It seems that on some Macs that the NSApplicationDidChangeScreenParametersNotification is sent for unknown reasons quite often. I can reproduce the problem by changing the Dock size in System Preferences while LibreOffice is running, but others seem to get it without resorting to such trickery. The code used to invoke the SalEvent::DisplayChanged callback in all cases, which can be extremely heavy, as it involves re-measuring text layouts all over the place in all open document windows. Avoid that if the geometry in fact has not changed. Sure, there still is the problem that LibreOffice can become unresponsive for several seconds when the display geometry *does* change, like when you attach or detach a display. Change-Id: I659881e5e392bd599f6be190835e32a77d9f4725 Reviewed-on: https://gerrit.libreoffice.org/50249 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tor Lillqvist <tml@collabora.com> (cherry picked from commit 715b7b6f346fdd9c856db268dcd66334b58c273c) Reviewed-on: https://gerrit.libreoffice.org/50264 Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2018-02-23tdf#100784 macOS: Don't attempt to handle shortcuts via the menubarMaxim Monastirsky
... when it's hidden. Change-Id: I7930afb8124dd552843512cd30bce4d82ade0c70 Reviewed-on: https://gerrit.libreoffice.org/49399 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com> (cherry picked from commit 9d77e7551e56b85d7f1b40bc42b9ba6876091f22) Reviewed-on: https://gerrit.libreoffice.org/49707 Reviewed-by: Tor Lillqvist <tml@collabora.com>
2018-02-22tdf#103690: Set up notifications only after VCL has been initialisedTor Lillqvist
On some Macs, it seems that LibreOffice (or any app?) gets an NSApplicationDidChangeScreenParametersNotification as soon as it has started and asked for such a notification. Our handler for that notification assumes that VCL is initialised. Thus we should not ask for such notifications before VCL has been initialised. I could not reproduce the reported crash with an unmodified LibreOffice, only after inserting a sleep after the notifications had been set up. But I am fairly sure this change fixes the problem. Change-Id: I18d342eb7dc0c77cb7fc8623756bead65a1bd329 Reviewed-on: https://gerrit.libreoffice.org/50164 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tor Lillqvist <tml@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/50197 Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Michael Meeks <michael.meeks@collabora.com>
2018-01-29tdf#109062 restore osx scrollwheel logicCaolán McNamara
to pre commit f7d2bf216afa10268e6a7c1d4613a2fd8f7c7f3c Date: Tue May 16 10:12:09 2017 +0100 Resolves: tdf#103174 & rhbz#1367846 improve gtk3 trackpad scrolling state. Change-Id: If5a494441731e73136158b4905c2744ba8bc8875 Reviewed-on: https://gerrit.libreoffice.org/48305 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tor Lillqvist <tml@collabora.com>
2018-01-23tdf#114985: Tell NSWindow to never use automatic window tabbingTelesto
Based on https://codereview.chromium.org/2325313002/ Change-Id: I8838449d57b1d1b010491a405c87645d38199fdf Reviewed-on: https://gerrit.libreoffice.org/48330 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tor Lillqvist <tml@collabora.com> (cherry picked from commit ce88f2a7374bb8c53d57e8263e0701db19d62f30) Reviewed-on: https://gerrit.libreoffice.org/48384
2018-01-23tdf#112153: Set button theme properlyTelesto
Change-Id: I0665880c0d0348fcbb3bcf04d9172405c8e31eb7 Reviewed-on: https://gerrit.libreoffice.org/48334 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tor Lillqvist <tml@collabora.com> (cherry picked from commit 44af50465a02b6f5566be45913a34fdbdba90133) Reviewed-on: https://gerrit.libreoffice.org/48385
2017-11-23loplugin:unnecessaryparenStephan Bergmann
Change-Id: Iddf5ed0a611f6dec4d30d056729dfd6dcd1f37d9
2017-11-23loplugin:simplifyboolStephan Bergmann
Change-Id: If6084771aaa9d2bdc7ffca7550749cbb3bf8e084
2017-11-16vcl: StyleSettings - start to unwind code duplication.Michael Meeks
This should be a pure re-factor, plus: switch from Serif -> Sans font default for the UI (wow). enable larger font size for LOK only that avoids a hard to debug svx junit test failure. Change-Id: Id438026064983ea4907819bab55c4be740954605 Reviewed-on: https://gerrit.libreoffice.org/44625 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2017-11-13Apparent fix for what seems like a copy-paste error by me in 2014Tor Lillqvist
(in 5f27a6864420815d0d0abc409333fec963536faf.) Whether this has anything to do with tdf#92190 is unclear. (I am not able to reproduce that bug.) Thanks to Telesto for noticing this copy-paste issue. Change-Id: Iab47db59dc2af76adf70d92ab8333e06cd40e0d6
2017-11-13MACOSX_SDK_VERSION is always at least 1090Tor Lillqvist
Change-Id: I802d9aae2220ae6b8f67e3387c3b329f6b02163c
2017-11-11vcl: StyleSettings - start to unwind code duplication.Michael Meeks
This should be a pure re-factor, plus headless tweak. Change-Id: Iad7f524ea76625601b3f85cc13a50311ed1de171 Reviewed-on: https://gerrit.libreoffice.org/44624 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2017-11-09Avoid races when using OSX_RUNINMAIN_MEMBERSStephan Bergmann
...so that e.g. main thread in SalYieldMutex::doAcquire could reset m_aInMainTHreadCondition and then block waiting on it only after another thread had set it. (Saw such a deadlock in some 'make check' CppunitTest.) Change-Id: I5c676956a2bec6bf8f94d7dbeee64f100db39bd3 Reviewed-on: https://gerrit.libreoffice.org/44501 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
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-10-26tdf#109343 Fix paste as .RTF on MacXisco Fauli
Change-Id: Ida0433437301ea2803373e534df3d42f67d6aff8 Reviewed-on: https://gerrit.libreoffice.org/43513 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2017-10-24loplugin:includeform: vcl (macOS)Stephan Bergmann
Change-Id: I4382a45dcffb32c7c001ee722ac1deccb2b01c2d
2017-10-23overload std::hash for OUString and OStringNoel Grandin
no need to explicitly specify it anymore Change-Id: I6ad9259cce77201fdd75152533f5151aae83e9ec Reviewed-on: https://gerrit.libreoffice.org/43567 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-10-20WIN message handling cleanup and refactoringJan-Marek Glogowski
Replace a lot of duplicated case code with macros. Some minor constifications of function parameters. I restrained from shorten the SAL_MSG_* via preprocessor concat, so a grep will still find the whole names. Change-Id: If1f2477fc8817b4ae7816e807154e35004bb4da9 Reviewed-on: https://gerrit.libreoffice.org/43531 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2017-10-20OSX implement direct timeout processingJan-Marek Glogowski
Basically works in the same way then in the Windows backend. Change-Id: If48e2b55f037563839a5e716830ce75ed78381e4 Reviewed-on: https://gerrit.libreoffice.org/43530 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2017-10-17Fix typoAndrea Gelmini
Change-Id: Ibc13a8c1dbfd6fdfc5e35856b21ea5af310f63db Reviewed-on: https://gerrit.libreoffice.org/43430 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2017-10-16tdf#112076 OSX post timeout after shouldCloseWindowJan-Marek Glogowski
It seems that something filters application defined events when closing a window... DoYield expects a timeout event, which never arrives, stopping all redraw and generating a busy loop. Change-Id: Ic83468cceac7b967acaecf18b321178fc7565b94 Reviewed-on: https://gerrit.libreoffice.org/43381 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2017-10-04Convert tick-based timer events to versioned onesJan-Marek Glogowski
Instead of storing the system ticks in the timer event message simply store a version. Moves the version handling code into a VersionedEvent class, inherited by WinSalTimer and AquaSalTimer. Change-Id: I5add85031d36b3424a26a9ef798294cbfb00b2e4 Reviewed-on: https://gerrit.libreoffice.org/42959 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2017-10-04loplugin:redundantcastStephan Bergmann
Change-Id: Ia00af1b79ac30ca00345f52a1981d3bfc1620f76
2017-09-29OSX rename mpFirstInstance to mpInstanceJan-Marek Glogowski
In the same spirit as the Windows commit 7c52d86f7b05fe7e0178f6d98a12a531b88a32ff. Change-Id: Ic45803c0715723b6f57c9f6a0c731edd559aa92c Reviewed-on: https://gerrit.libreoffice.org/42932 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2017-09-29tdf#112605 OSX refactor SalAquaTimerJan-Marek Glogowski
Drops all the static calls and variables from SalAquaTimer and moves all timer handling logic inside the class. This also fixes the leak in timerElapsed. Change-Id: Ie7a1a8fffb70b8579ec6876eed10a275d2f06d27 Reviewed-on: https://gerrit.libreoffice.org/42913 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2017-09-28Unify SalUserEvent handlingJan-Marek Glogowski
Merges the various SalUserEvent structs and their handling into a single class. This includes a common SalFrame* hash map, as all backends use such a map to verify alive SalFrames. It also reverts the "FIXME: lousy workaround" for i#90083, which was part of commit d6f7c94e5c27ba02ff5c3229760c9808cc9b5bea. At least on my current OSX box application based window switching "just works" "out of the box", even without the code. Change-Id: I188b567e44fd79c162b2d9cabbd771d1f66c7dc4 Reviewed-on: https://gerrit.libreoffice.org/42845 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2017-09-28tdf#112288 set timestamp for otherEventWithTypeJan-Marek Glogowski
In otherEventWithType we have to set the timestamp manually to the current uptime, and can't default to 0. Change-Id: I3e96dff38ea81b0e6744fa175fc3a169e160b982
2017-09-27tdf#112288 compare event timestamp with sys uptimeJan-Marek Glogowski
This is a "brown paperbag" fixup. untilDate is actually used as a timeout for nextEventMatchingMask, not as a maximum event age. So manually compare the event timestamp with the system uptime. Change-Id: I912bedc0cba45c5cc231679c1b6139fa012492ed
2017-09-27Don't wait-yield non-main threads in the main threadJan-Marek Glogowski
This prevents blocking the main thread by a yielding non-main thread. The current solution is to wait on a condition, which is set by the main thread on wakeup. Change-Id: I8d680bb51a36ce1e0d3d4713d47d8e2ef93d7297 Reviewed-on: https://gerrit.libreoffice.org/42808 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2017-09-26tdf#112288 Clarify Reschedule implementationsJan-Marek Glogowski
Application::Reschedule(true) must just process all currently pending events and ignore all new events generated while processing them. In contrast to Scheduler::ProcessEventsToIdle, this way it can't busy-lock the application with background jobs. This way we also can drop nMaxEvents from the Windows backend. This limit was also never implemented on OSX and for the KDE4 backend it's actually impossible to handle single events, and a call to QAbstractEventDispatcher::processEvents works like this. Also changes various call sites to just process all pending events instead of some made up number of times. Change-Id: I1ab95df89b079cc8c6319a808194fe3127144d1c Reviewed-on: https://gerrit.libreoffice.org/42659 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2017-09-26Silence macOS 10.13 -Werror,-Wdeprecated-declarationsStephan Bergmann
Change-Id: I84e9d3fc344fdc9fcf90ab63303d86e7a1cb20da
2017-09-26WIN run main thread redirects ignoring SolarMutexJan-Marek Glogowski
This way we can drop all the special nReleased handling. Instead we use the same mechanism as on Mac, where we keep the lock, but disable it for the main thread. As a security measure we assert on duplicate redirects, which should not happen. As a result we can't use SendMessage on the main thread itself, which would normally just call the WinProc directly. This could be accomplished by converting the redirect bool into a counter, which should be safe, as no other thread could acquire the SolarMutex, as we don't release it. Change-Id: Icd87b3da37a2489f3cad2bc80215bf93fc41d388 Reviewed-on: https://gerrit.libreoffice.org/42583 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2017-09-25Fix typosAndrea Gelmini
Change-Id: I879a52820d78d9151ef64dd21612379f617f66e2 Reviewed-on: https://gerrit.libreoffice.org/42726 Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com> Tested-by: Tamás Zolnai <tamas.zolnai@collabora.com>
2017-09-21WaE: -Wunused-variableTor Lillqvist
Change-Id: I6bcc39cd749f8cdbe550b94346c5cb8fd9f67097
2017-09-21tdf#99784 OSX run GUI stuff in the main threadJan-Marek Glogowski
The extension manager starts dialogs from its own thread. But the OSX backend currently doesn't defer these calls to the main thread. This implements the deference by running the called function in the main thread, using a code ^Block, and returning the result via a SalYieldMutex member. Change-Id: Id8977991e3eda91da27c23d8021e028d4f4cefe5 Reviewed-on: https://gerrit.libreoffice.org/42448 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2017-09-19Assert active Tasks on scheduler de-initJan-Marek Glogowski
This shuts down the VCL scheduler later in the DeInitVCL call and asserts active pending tasks, as these will never be processed after shutdown. There is currently a TODO whitelist, so the unit tests still pass but probably most of these should be fixed. No task in the list looks critical - all seem to do some idle / cleanup work. This also processes all the Idles before shutdown. All seem to be of type sfx::SfxItemDisruptor_Impl. Change-Id: I9cc484a525cc2bacd54c4f271f86997517393e92 Reviewed-on: https://gerrit.libreoffice.org/40533 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2017-09-19loplugin:unnecessaryoverrideStephan Bergmann
Change-Id: I37c338fd08df3dc102963ccffc65c1f0684653be
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-09-13Blind macOS -Werror,-Wunreachable-code fixStephan Bergmann
Change-Id: Ice41b6394bc4fc8e4b1d7b9c5689019361883b59
2017-09-06Don't poll the extension install progress barJan-Marek Glogowski
Just start the Idle, if actually something changed. Quite probably we shouldn't rely on an Idle at all, but this fixes the busy loop while installing an extension waiting in a confirmation dialog. Change-Id: I3abbe2eb6651ce9320ef6e4d9c5251a23ab87216
2017-08-31loplugin:constparams: vcl (macOS)Stephan Bergmann
Change-Id: I993ab0021d0a0bee8e78975bba180355d2bfb19c
2017-08-28loplugin:implicitboolconversionStephan Bergmann
Change-Id: Ie6c9b4c98d1fab26f79e7549ebeb03aa81a1dd1d
2017-08-22OSX fix updates during resizeJan-Marek Glogowski
While resizing MacOS suspends the NSDefaultRunLoopMode. So in this caae we can't post to the system event loop, but must use timers to restart ourself. Since the timer itself is scheduled on the NSEventTrackingRunLoopMode it' also triggers on resize events. There is still some minor glitch: when resizing too fast some part of LibreOffice isn't painted, while the left mouse button is down. Since there isn't any layouting triggered by the mouse up, there has to be an other inconsistency. Change-Id: I3ccba78bd23ec8526f21e7b93b027f3d3279f901
2017-08-17Fix typosAndrea Gelmini
Change-Id: Iaa9c0aea3ea1a239e378bd714ba335f91bb1faf3 Reviewed-on: https://gerrit.libreoffice.org/41194 Reviewed-by: Michael Stahl <mstahl@redhat.com> Tested-by: Michael Stahl <mstahl@redhat.com>
2017-08-07loplugin:casttovoidStephan Bergmann
Change-Id: Icda66259acf54e6771b926ce9d329287bd610e82
2017-08-07loplugin:oncevarStephan Bergmann
Change-Id: I678b1bf281ae4de4a75f8c83398ee19f75b4f278
2017-08-07loplugin:staticmethodsStephan Bergmann
Change-Id: I13fe0b5b77d8d43639afa035f2db6e904cd998be