summaryrefslogtreecommitdiff
path: root/vcl/inc/unx/gtk/gtkinst.hxx
AgeCommit message (Collapse)Author
2019-02-27make cursor images part of the themeNoel Grandin
This first step only affects GTK3, later we will extend the support to other platforms. Note that these images are derived from the OSX PNG files, not the header-file encoded data we currently use for gtk/gtk3. Also rename the files to more useful names. Change-Id: Ia13a3f2ac35b06672aff724f4cf5bdcd823f6342 Reviewed-on: https://gerrit.libreoffice.org/67528 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-11-29tdf#42949 Fix IWYU warnings in include/vcl/[i-m]*Gabor Kelemen
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: If1b2e04872eb0dd6725802c1709a9085f4cd8c91 Reviewed-on: https://gerrit.libreoffice.org/64141 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2018-08-21loplugin:useuniqueptr in SvpSalInstanceNoel Grandin
Change-Id: I8cab3c63ba4dcd08488d0fb34d689692d5cf97f9 Reviewed-on: https://gerrit.libreoffice.org/59347 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-06-14return SalBitmap using std::shared_ptrNoel Grandin
since we hold it like that in Bitmap anyway Change-Id: I6264dfaaae6210cb008df5db8a421fc80c508f5b Reviewed-on: https://gerrit.libreoffice.org/55458 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-06-09hold and return SalMenu by std::unique_ptrNoel Grandin
and drop DestroyMenu, all the implementations just delete the object Change-Id: I673997ea1a9c5216b100cafdc70a8f697732769b Reviewed-on: https://gerrit.libreoffice.org/55501 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-06-09return and hold SalMenuItem by std::unique_ptrNoel Grandin
and drop DestroyMenuItem, all the implementations were just deleting the pointer Change-Id: I058817b963988b1e399279f61f45716a2cdba023 Reviewed-on: https://gerrit.libreoffice.org/55500 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-06-09hold and return SalPrinter with std::unique_ptrNoel Grandin
and remove DestroyPrinter, doesn't not anything beyond delete'ing the object Change-Id: I25e14b962e65a0e131fae3ff5771c82920a4e375 Reviewed-on: https://gerrit.libreoffice.org/55498 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-06-09hold and return SalI18NImeStatus using std::unique_ptrNoel Grandin
Change-Id: I3657980045290a4d65b2944afac04d610c0a94fd Reviewed-on: https://gerrit.libreoffice.org/55496 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-06-07vcl: refresh font cache only on real changeAshod Nakashian
GTK3 emits way too many style-updated, which triggers font cache updates. The avoidance of unecessary font cache updates was first implemented in 29c55564. Unfortuantely, it seems that the current font-options was never set as last-seen font-options, so still to many fonts-changed were emitted Change-Id: I01a47d4d7fb033e335b1a49ffa6e1bb98f7fd28d Reviewed-on: https://gerrit.libreoffice.org/55287 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-04-25loplugin:useuniqueptr in VirtualDeviceNoel Grandin
Change-Id: I7c70f9c590dd63cca1dce16ce184fc7e14922de2 Reviewed-on: https://gerrit.libreoffice.org/53353 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-04-16weld SwInsFootNoteDlgCaolán McNamara
Change-Id: I54849e2336d093e9044d4b32275387fa04e3bab9 Reviewed-on: https://gerrit.libreoffice.org/52963 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-04-05enable mapping direct from awt::XWindow and weld::WindowCaolán McNamara
Change-Id: I33b1309a4b81bfd84449213099c4f3f781413e00 Reviewed-on: https://gerrit.libreoffice.org/52456 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-04-04weld SvInsertOleDlgCaolán McNamara
and weld SfxInsertFloatingFrameDialog and smuggle in the parent widget for the Gtk File dialog via an XWindow interface Change-Id: I971b3a0ffe661c9268115fd5d00bf8eee80e77b3 Reviewed-on: https://gerrit.libreoffice.org/52373 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-02-16native dialog initial basisCaolán McNamara
Change-Id: I392be563e38257390f748c70bb71c67a66778ddd Reviewed-on: https://gerrit.libreoffice.org/49677 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-12-16sal_uIntPtr->sal_uInt32 in yieldCountsNoel Grandin
to match the underlying field in GenericSolarMutex Change-Id: I98dcab3b684278c4a184534ba782b5b03b0504f0 Reviewed-on: https://gerrit.libreoffice.org/46508 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-10-30Replace list by vector for m_aListeners in gtk3 (vcl)Julien Nabet
Change-Id: I97ad632be7340ae7a628026ae8e8c45d813a49e4 Reviewed-on: https://gerrit.libreoffice.org/44032 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
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-07-13GTK+ convert to a single-shot timerJan-Marek Glogowski
Simplified version of commit 3e20ce802ee2ab49c4f2a98880f6e999657686bb Since we're missing g_source_get_ready_time in our baseline, this can't change the complex implementation, but still drops the timer array and uses a single-shot timer, like all other backends. Change-Id: I0641da8d0db71785c505957533a9069924808cd4
2017-07-13Revert "GTK+ simplifiy system timer implementation"Jan-Marek Glogowski
Current LO baseline doesn't have g_source_get_ready_time, so we keep the old stuff. This reverts commit 3e20ce802ee2ab49c4f2a98880f6e999657686bb. Change-Id: I32c39fa70c8d52cbb78620f528d60a986087dfd0
2017-07-13GTK+ simplifiy system timer implementationJan-Marek Glogowski
Instead of implementing an own GSource, this implements the glib based system timer using the g_timeout_source_new() function. It removes the vector of GtkSalTimer and changes the remaining timer to be single-shot, just like the Windows and KDE platforms. The ownership handling is a little bit strange and should generally be changed to use std::shared_ptr as the result of CreateSalTimer for all backends. Change-Id: Iea40a6284bdc5c121235af5a6079a92a679391ca
2017-07-13Drop special idle handlingJan-Marek Glogowski
Idles are just instant timers, which should most time have a low priority, By dropping most special idle handling we'll just schedule by priority. This also reverts SalYieldResult back to a bool, which just indicates if any event was processed. Change-Id: Ia0b91b06dffb77af066f01838d8f9483523bf67d
2017-07-13Add some Scheduler unit tests and loggingJan-Marek Glogowski
1. calling Start() for invoked tasks 2. correctly schedule by priority 3. self-stopping AutoTimer This also adds SAL_INFO output to Scheduler and Task to log the scheduling processing tasks. Change-Id: I3c8a708d1fd51c550320f8af3f9486c43c32e358
2017-01-26Remove dynamic exception specificationsStephan Bergmann
...(for now, from LIBO_INTERNAL_CODE only). See the mail thread starting at <https://lists.freedesktop.org/archives/libreoffice/2017-January/076665.html> "Dynamic Exception Specifications" for details. Most changes have been done automatically by the rewriting loplugin:dynexcspec (after enabling the rewriting mode, to be committed shortly). The way it only removes exception specs from declarations if it also sees a definition, it identified some dead declarations-w/o-definitions (that have been removed manually) and some cases where a definition appeared in multiple include files (which have also been cleaned up manually). There's also been cases of macro paramters (that were used to abstract over exception specs) that have become unused now (and been removed). Furthermore, some code needed to be cleaned up manually (avmedia/source/quicktime/ and connectivity/source/drivers/kab/), as I had no configurations available that would actually build that code. Missing @throws documentation has not been applied in such manual clean-up. Change-Id: I3408691256c9b0c12bc5332de976743626e13960 Reviewed-on: https://gerrit.libreoffice.org/33574 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2016-12-13gtk3: implement opengl support for slideshowCaolán McNamara
all of them work, except "Fall" doesn't look right, but it has the exact same problem under gtk2/gen to. Change-Id: I73cb9c0fb8211f727198be78d90d4f80a4f8c7c8 Reviewed-on: https://gerrit.libreoffice.org/31214 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2016-09-19Related: rhbz#1373933 gtk3 emits a lot of style-updateds signalsCaolán McNamara
so don't throw away font settings every time, check if the font settings changed and only emit FontChanged if they differ from the last seen settings. Change-Id: I129887e3e866f395da3b906a38cf568abea5de8e
2016-09-13loplugin:override: No more need for the "MSVC dtor override" workaroundStephan Bergmann
The issue of 362d4f0cd4e50111edfae9d30c90602c37ed65a2 "Explicitly mark overriding destructors as 'virtual'" appears to no longer be a problem with MSVC 2013. (The little change in the rewriting code of compilerplugins/clang/override.cxx was necessary to prevent an endless loop when adding "override" to OOO_DLLPUBLIC_CHARTTOOLS virtual ~CloseableLifeTimeManager(); in chart2/source/inc/LifeTime.hxx, getting stuck in the leading OOO_DLLPUBLIC_CHARTTOOLS macro. Can't remember what that isAtEndOfImmediateMacroExpansion thing was originally necessary for, anyway.) Change-Id: I534c634504d7216b9bb632c2775c04eaf27e927e
2016-09-06Work around loplugin:unnecessaryoverrideStephan Bergmann
("public virtual function just calls public parent", in the gtk3 case) Change-Id: I0d5653f835fe0e62a905943fda7d79538dabfee3
2016-09-06GtkInstance should use default no-op I18NImeStatusCaolán McNamara
gtk3 already did, gtk2 claimed to support it, but will use the built-in gtk support for this. So this leaves this as gen/kde4 only now. Change-Id: I640ffafc93bf45a4729ecd33f0f85f23fa67b4bf
2016-07-27improve passstuffbyref return analysisNoel Grandin
Change-Id: I4258bcc97273d8bb7a8c4879fac02a427f76e18c Reviewed-on: https://gerrit.libreoffice.org/27317 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-07-27loplugin:countusersofdefaultparams in tools..xmlsecurityNoel Grandin
find methods with default params with only zero or one call site Change-Id: Ie5b30f60e9fe00ba1acf0dfc79b005ded46f05a0 Reviewed-on: https://gerrit.libreoffice.org/27512 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-07-25new loplugin overrideparamNoel Grandin
verify that parameters on override methods have the same set of default values for their params as their parent/super-methods do. Change-Id: Ibdbc1c6e417fbaa680ea025a6bbf5ba9c2e5bcd2 Reviewed-on: https://gerrit.libreoffice.org/27437 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-07-12Related: rhbz#1351369 gtk3 clipboards have to live to end once createdCaolán McNamara
like the other platforms do Change-Id: I31340254573d13dc808d1e3038e3a36ae97f6c22
2016-06-16tdf#100412: Cope with recursive gdk_threads_enter/_leaveStephan Bergmann
07157e644fa9666850767ff6bd54c1511167a0a2 "Keep track of ThreadsEnter/Leave acquire counts per thread" was done under the assumption that these calls never happen recursively, but tdf#100412 makes it look like such calls do happen, so that in a pattern gdk_threads_enter gdk_threads_enter gdk_threads_leave gdk_threads_leave the second gdk_threads_leave could find yieldCount non-zero. Change-Id: If9837764d22473f21cf5b10d769929f3c86a0ba7
2016-05-30loplugin:passstuffbyrefStephan Bergmann
Change-Id: If5c3c92eb2828348cda165d72147d7a570af59f8
2016-05-30Resolves: tdf#100097 dbaccess self-dnd depends on getting its own transferableCaolán McNamara
on drop that it set on drag. It does some uno tunnel foo to drag the data it needs back out of it in some grotesque fashion. So we have to follow the same style of hackery as under MacOSX to detect on drop that there is an active drag started by ourself and so use that active drag's transferable as the source transferable for the drop, rather that use the intermediate universal GtkDnDTransferable. Change-Id: I3c3a94416db908603bde8f15dc5b1c9d726b8dbd
2016-04-06revert to fix tdf#98783 missing menubarCaolán McNamara
Change-Id: Ia322149a7ed461f528af856d9907fe4620f9e97f
2016-03-16Related: tdf#98637 make this a tractable problemCaolán McNamara
This is just too hard, it would all be much easier if the ActionGroup existed right from the start of the entire process. So smuggle in to the ctor the toplevel frame that the menubar will be inserted into so we can use its ActionGroup from the start. That would suggest that we could then just keep the hierarchy in sync as it is created rather than finding opportune moments to update /generate it. Change-Id: I550f94a994210423ab9cea1986e643056cb5bd29 Reviewed-on: https://gerrit.libreoffice.org/23287 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2016-02-11Keep track of ThreadsEnter/Leave acquire counts per threadStephan Bergmann
Appears that gtk_clipboard_wait_for_targets (called from GtkClipboardTransferable::getTransferDataFlavorsAsVector, vcl/unx/gtk3/gtk3gtkinst.cxx) internally calls gdk_threads_leave/enter, so if two threads concurrently try to call into getTransferDataFlavorsAsVector, each with the SolarMutex recursively acquired a different number of times, the GtkYieldMutex::ThreadsLeave/Enter calls can pair up so that the threads' acquire counts get swapped. Then eventually causing one thread to prematurely get the SolarMutex unlocked. This was fairly well reproducible when calling an --enable-dbgutil's soffice with an .oxt file on the command line, causing both the Extension Manager dialog and an empty Writer document to open simultaneously (which apparently both run into the above getTransferDataFlavorsAsVector), and then running into some DBG_TESTSOLARMUTEX assert firing when the SolarMutex had been unlocked prematurely. According to <http://en.cppreference.com/w/cpp/compiler_support>, support for thread_local is available partially since GCC 4.4 and fully only since GCC 4.8, so hope the partial support in GCC 4.7 (our current baseline) is good enough for what is used here. Change-Id: I9fad318078be5f31111a7cbd15d0e1349e7ddd3e Reviewed-on: https://gerrit.libreoffice.org/22291 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2016-02-04coverity#1351758 Uninitialized pointer fieldCaolán McNamara
Change-Id: I50639f0f83c2f1135a0c2002145e02fdf15034a5
2016-01-27Resolves: tdf#93054 gtk3: implement drag and dropCaolán McNamara
Change-Id: Ib644ea36b8a9e68e023e465ef159b9a4890e5d37
2016-01-26wrong CreateDropTargetCaolán McNamara
Change-Id: I7df8c17863f1e16f1658c061a324d6f1f0699833
2016-01-26Related: tdf#93054 gtk3: implement enough dnd to be dragged into...Caolán McNamara
from another application, e.g. text from gedit or a standalone image (view image) from firefox Change-Id: I68b82217eb2513cedc096f5ff653fb7c75b48052
2016-01-11vcl: move vcl/generic/app/ files to vcl/unx/generic/appChris Sherlock
These source files as all specific to Unix environments (not, however, OS X) and are not "generic" (i.e. used across all platforms). Change-Id: Idba1e9bbe14d8a4bb8e5dd2c2ad1dc75458da53c Reviewed-on: https://gerrit.libreoffice.org/21335 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
2015-12-02valgrind: scary warning that the cairo font options were deleted before useCaolán McNamara
Change-Id: I58427aafb30eca64a67bcf7dd9a7738d8da3e085
2015-11-24Replace return boolean from DoYield with pleasant enumeration.Michael Meeks
Change-Id: I1b1f885b4d7916a18dfb2457a8e9af9a5b4ae6e4 Reviewed-on: https://gerrit.libreoffice.org/20138 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2015-11-23establish that Virtual Devices either match Physical Device depth or ...Caolán McNamara
are 1 or (rarely) 8 bit and lock that down. Change-Id: I3d946ebef34ffb71c5adea7aa420af50e9584e05
2015-11-18com::sun::star->css in vcl/Noel Grandin
Change-Id: Ifad76177673cf93746ba221838be80ff76fed228 Reviewed-on: https://gerrit.libreoffice.org/20032 Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.com>
2015-11-17vcl: add parameter to detect if OS events are processed during Yield.Michael Meeks
Intended as a non-functional change. Change-Id: I1915aad03786540da1a4bfe9031d33f2c2a9b4e3 Reviewed-on: https://gerrit.libreoffice.org/20006 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2015-10-12Replace "SAL_OVERRIDE" with "override" in LIBO_INTERNAL_ONLY codeStephan Bergmann
Change-Id: I2ea407acd763ef2d7dae2d3b8f32525523ac8274
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>