summaryrefslogtreecommitdiff
path: root/vcl
AgeCommit message (Collapse)Author
2016-05-10fix Windows and OSX buildNoel Grandin
after my "Convert SAL_EVENT to scoped enum" commit Change-Id: I1a52a1e3428c9b68d67bd521a3136f3a529392f5
2016-05-10fix OSX buildNoel Grandin
after my "WindowStateState scoped enum" conversion. WorkWindow::IsMinimized needs to check the return code of SalFrame::GetWindowState, or it can end up reading uninitialised memory. So mark the member as SAL_WARN_UNUSED_RESULT. Change-Id: Iaeb132ed2fbf08162dbd7ec2e126dfa679cbda6c
2016-05-10Convert SAL_EVENT to scoped enumNoel Grandin
Change-Id: I4e605e7acfe9d4fe409d32f20880b4c0e85a0ea7
2016-05-10EXTTEXTINPUT_CURSOR_INVISIBLE is set on the wrong fieldCaolán McNamara
Change-Id: I6d92c86035dd321eb6df46bcd01aed7a0113b0a4
2016-05-10Avoid non--async-signal-safe functions in child after forkStephan Bergmann
Posix requires that a process forked from a multi-threaded process only calls async-signal-safe functions between fork and exec. This has been observed to cause trouble at least in an ASan build, where a forked sub-process (that wants to proceed to exec java from getJavaProps, jvmfwk/plugins/sunmajor/pluginlib/util.cxx) hangs in __sanitizer::BlockingMutex::Lock from within ASan's operator new replacement, from within the SAL_INFO in SvpSalInstance::CloseWakeupPipe, from within the atfork_child handler established with pthread_atfork. The rest of the calls in SvpSalInstance::Create-/CloseWakupPipe appear to be async-signal-safe. This pthread_atfork handler got introduced with dbced8e8584b631524dacf607f752ebb734901db "Don't share the wakeup pipe with child processes". It is irrelevant when the child process will proceed to call exec. And if the child process does not proceed to call exec (which is the intented use case why it got added), the above-mentioned Posix requirement makes it look unlikely that the child will operate properly (i.e., not call any async-signal- safe functions), unless the parent process was single-threaded. Change-Id: I9ecaf98597b396e0db83fe98fb11a7df7686e1d6
2016-05-10fix Windows build (second attempt)Noel Grandin
Change-Id: I5aa3bcf16cbcda984a74ec85a49a354087f5044e
2016-05-10tdf#99207: Fix incorrect RGB ordering in Graphite DWrite pathTim Eves
Direct 2D accepts colours specified as UINT32 ARGB values or floats. However GDI presents colours as COLOREFS which are 32 bit FBGR (F is a flag not an alpha) values. Passing a COLORREF to D2D1:ColorF swaps the red and blue channels. This patch converts the COLORREF into RGB float triples using the GDI colour macros. Change-Id: Iee5c00bfb10fa8771a2a1019976f70633cca4094 Reviewed-on: https://gerrit.libreoffice.org/24819 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Martin Hosken <martin_hosken@sil.org>
2016-05-10fix Windows buildNoel Grandin
Change-Id: Ia00af427fda31867a19457b7ef30158b385639e6
2016-05-10vcl : Simplify vcl::Window initialisation and destructionArnaud Versini
Change-Id: Ie3a8435d0adff795645618deb2c3c3da813e54f3 Reviewed-on: https://gerrit.libreoffice.org/24681 Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-10convert WINDOWSTATE_STATE to scoped enumNoel Grandin
Change-Id: I5448c7e46042850f18970c7613ec5a37df57bce7
2016-05-10convert WINDOWSTATE_MASK to scoped enumNoel Grandin
Change-Id: Ic8259d81d8080c518aa07697e253a59cd6efaa4b
2016-05-09Improve two informative messagesTor Lillqvist
Use 'enable/disable' terminology consistently: don't mix 'enable' and 'set' in the same phrase if they both actually refer to the same thing. Also, don't say that it is 'already set' when it is already 'disabled'. Change-Id: If4cea9845b47cdf678d5591f05ac08cc086c9a0b
2016-05-09Update the wmf filter to simplify object ownershipMark Page
Changed the GDI style structures to use inheritance, thus object deletion no longer requires a static_cast Used std::unique_ptr for GDI objects to enforce object ownership Modified the WMF Writer to use std::vector, instead of a raw pointer array when processing handles Change-Id: Ic635ff9d641427b901eb18468529ea6367859b53 Reviewed-on: https://gerrit.libreoffice.org/24634 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
2016-05-09cid#1358836 reorganize to silence Resource leak in objectCaolán McNamara
Change-Id: I4cb51f537cf6b40748dd8902dc39362d8846ba22 Reviewed-on: https://gerrit.libreoffice.org/24708 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2016-05-09gtk3: always update on UpdateFullCaolán McNamara
e.g. templates menubutton button which isn't torn down and recreated each time, but hidden/shown Change-Id: Ib80e0dc0ca5abfb5efa2966283034b7ba1840978
2016-05-09convert FONT_EMPHASIS_MARK to scoped enumNoel Grandin
Change-Id: I137c78b337e57d3442db08334128e79d186b278f Reviewed-on: https://gerrit.libreoffice.org/24753 Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-09tdf#96348 Get rid of unnecessary DLLPUBLIC decorations - VclEventListenersTomofumi Yagi
No need for VclEventListeners to be VCL_DLLPUBLIC Build passed "make check" on linux and Windows. Change-Id: Ib3330b3af434ee4d3622c6e0d6ac705c3087c672 Reviewed-on: https://gerrit.libreoffice.org/24766 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-08Resolves: tdf#96604 remove and restore full stack of grabsCaolán McNamara
Change-Id: I51b5943f52ccdce6b4b50131f5f2b7d2c1ff7368
2016-05-08tdf#99258 bail out if we fail to reserve the textureTomaž Vajngerl
Change-Id: I830e313352b69a7665bff953aadb1334be0dc847 Reviewed-on: https://gerrit.libreoffice.org/24509 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2016-05-08Updated includes pathAndrea Gelmini
Change-Id: I4ba692b73ce7d6cf84fdf528b6d410e07cbc36ca Reviewed-on: https://gerrit.libreoffice.org/24719 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: jan iversen <jani@documentfoundation.org>
2016-05-06vcl: oops, so there was a macro thereMichael Stahl
Change-Id: I824fa3c83a5bc8b68a6554c9bfe5ce5b3c2d711f
2016-05-06sd: replace boost::enable_shared_from_this with std::enable...Michael Stahl
Change-Id: Ia4f31a03b20bb0abe7e0ff8e423a0b046a828607
2016-05-06coverity#1359236 Uninitialized scalar fieldCaolán McNamara
Change-Id: I504b84ad39a8519f495676b7821e3079ac74aaf0
2016-05-06Resolves: tdf#98636 if the menubar hierarchy has been changedCaolán McNamara
then update the whole thing by re-calling SetFrame Change-Id: Ib16006a76ca04dc104232a056c43fda2b5b24074
2016-05-06reroute UpdateFull through ActivateAllSubmenusCaolán McNamara
Change-Id: I8689abacbfc970a9124bb97a3962bcfb0df9c67d
2016-05-06vcl: PhysicalFontFamily::maFontFaces must be sortedMichael Stahl
When toggling the "Apply replacement table" setting in Tools->Options->Fonts, the fonts are re-enumerated once per OutputDevice, so if the sorting isn't maintained properly duplicates will be inserted and the number of font faces goes from 400 to 40k. (regression from a20a52a2f47c67ab30bf764d420c663f7173f032) Change-Id: I7daa53ff28187056e34efa4e2173dea45a47df27
2016-05-06gtk3: getting new entries added after the menu is visible is problematicCaolán McNamara
Change-Id: Ibc2fc35c3d5315eb7d25181c2c2eba4cb5509a96
2016-05-06Resolves: tdf#92067 and tdf#99599, use a foolproof action naming schemeCaolán McNamara
encode the GtkSalMenu and the item id into the action_name so each one is unique and directly refers to the menu and item in the menu so knowing which one is which is direct and simple Change-Id: I81bb278e73946f864e29aeab884e07e16835dad3
2016-05-06gtk3: separate the two different usages of ActivateCaolán McNamara
Change-Id: Ic7442209efac40bd0cd034ff006e87128b0bea35
2016-05-06Set toggle/radio ToolBox bits in .ui tooMaxim Monastirsky
The way gtk works doesn't exactly map to our ToolBox behavior, but still we can use that to some extent. Change-Id: Ia525e4356a612e3abfacb54d591dba05750278f2
2016-05-06improve perf. of VCL event dispatch, take IIDavid Tardon
Change-Id: I5052f0c3e2c8739b336da52ef9590e5008255247
2016-05-06tdf#99703 Revert "improve perf. of VCL event dispatch"David Tardon
... as it causes a crash at exit. This reverts commit 9ff1d7f8140de1224bb37fba0cb266a58f37e66d. Change-Id: I48bfd8974e6ed6c5ba3f8282eb8717f685d580be
2016-05-06teach passstuffbyref plugin to check for..Noel Grandin
unnecessarily passing primitives by const ref. Suggested by Tor Lillqvist Change-Id: I445e220542969ca3e252581e5953fb01cb2b2be6 Reviewed-on: https://gerrit.libreoffice.org/24672 Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-06vcl: save one heap allocThorsten Behrens
Change-Id: I4557d643debbf47c10e1ccd2141f04680333a11d Reviewed-on: https://gerrit.libreoffice.org/24685 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2016-05-05remove superfluous checkDavid Tardon
Change-Id: If5c522a58bfced722e3b423c867911d3dc6cec48
2016-05-05improve perf. of VCL event dispatchDavid Tardon
Anectodal evidence: for removal of 32 slides from 64 slide presentation, time spent in Window::CallEventListeners has been cut down from 70% to 19% of the total time. Change-Id: Ic8fbb44fa935f068e1b18235592dec0d7e71aec7
2016-05-05gtk3: New Folder dialog from Templates dialog doesn't get keyboard focusCaolán McNamara
ctrl+shift+N, and click new folder, no keyboard input is accepted. The dialogs don't get keyboard events, because the keyboard events go to the top level window because of... commit 011ce226e89ecabaf621603d692547c88061eaba Author: Caolán McNamara <caolanm@redhat.com> Date: Tue Jan 19 13:22:10 2016 +0000 Resolves: tdf#99604 ungrab modal dialogs (should be tdf#96604) which stripped away the grab from the sub dialog but I did that because menu dropdowns from comboboxes inside modal dialogs didn't receive mouse focus otherwise. I had set our "modal" dialogs to be truly modal and triggering that problem with commit 8d5822983e9b6a1e04874ce4d2c807fd0cf1ee04 Author: Caolán McNamara <caolanm@redhat.com> Date: Mon Dec 14 11:36:50 2015 +0000 Related: rhbz#1290014 gtk3: use gtk_window_set_modal on modal dialogs which makes modal dialogs (which are most of them) place correctly under wayland. Modeless ones are still uselessly shoved far to the left, but this makes things near usable and gives the same "graying into the bg" effect for the main window as other gtk apps which I still contend is "a good thing" if we stop removing the grab from the modal dialog, then we still have the problem that the menu dropdowns from comboboxes inside modal dialogs don't receive mouse focus otherwise. After trying to add/remove grabs around showing/hiding menus we run into another pit of trouble (commit 72e6a1365cb08986b542a5beb797634bca62d85b Author: Caolán McNamara <caolanm@redhat.com> Date: Wed May 4 16:29:35 2016 +0100) so, lets save the widget that has the grab before showing our first menu, clear the grab, and restore it on hiding the first menu again. and still ditch that metacity hack around thing at this point too I truly hate this crap Change-Id: If10e758585f156b33680b8d40355302cc1ae72f3
2016-05-05Revert "gtk3: New Folder dialog from Templates dialog doesn't get keyboard ↵Caolán McNamara
focus" cause testing in libreoffice 5-1 shows that it breaks the menus there, we need that more complicated grab after all, we just don't see that on master because of the native menus in use there. This reverts commit 72e6a1365cb08986b542a5beb797634bca62d85b.
2016-05-05fix crash in WallpaperImpl destructorNoel Grandin
after commit b6f3b2b0ab9404917b7805bb89701c110b468768 "tdf#62525 vcl: use cow_wrapper for wall" OutputDevice::DrawBitmapWallpaper passes a stack allocated object to Wallpaper::ImplSetCachedBitmap, which in turns takes a pointer to that object, and then unconditionally deletes that object in it's destructor. The original code did a *mpCache = rBmp so restore that. Change-Id: Ie65fb84e48750bb2c698dc08e0b6c5c7a0dea694
2016-05-05gtk3: New Folder dialog from Templates dialog doesn't get keyboard focusCaolán McNamara
ctrl+shift+N, and click new folder, no keyboard input is accepted. The dialogs don't get keyboard events, because the keyboard events go to the top level window because of... commit 011ce226e89ecabaf621603d692547c88061eaba Author: Caolán McNamara <caolanm@redhat.com> Date: Tue Jan 19 13:22:10 2016 +0000 Resolves: tdf#99604 ungrab modal dialogs (should be tdf#96604) which stripped away the grab from the sub dialog but I did that because menu dropdowns from comboboxes inside modal dialogs didn't receive mouse focus otherwise. I had set our "modal" dialogs to be truly modal and triggering that problem with commit 8d5822983e9b6a1e04874ce4d2c807fd0cf1ee04 Author: Caolán McNamara <caolanm@redhat.com> Date: Mon Dec 14 11:36:50 2015 +0000 Related: rhbz#1290014 gtk3: use gtk_window_set_modal on modal dialogs which makes modal dialogs (which are most of them) place correctly under wayland. Modeless ones are still uselessly shoved far to the left, but this makes things near usable and gives the same "graying into the bg" effect for the main window as other gtk apps which I still contend is "a good thing" if we stop removing the grab from the modal dialog, then we need to grab the keyboard and mouse on to the menu on showing those. This then runs into the problem that sometimes we want the keyboard to go to one window and the mouse to go to another, i.e. mouse to the floating menu and the keypresses to its parent combobox. Which was the joy of... commit 27e0fee7da99f3df722668d132bc034bef421514 Author: Caolán McNamara <caolanm@redhat.com> Date: Fri Mar 27 15:28:28 2015 +0000 gnome#745909 grab/ungrab keyboard for menus and subsequent fix of commit 57ec66e294b1405a85029aa1f1c0e9485ad4e5b4 Author: Caolán McNamara <caolanm@redhat.com> Date: Thu Jul 23 09:55:01 2015 +0100 Resolves: tdf#92689 grab keyboard focus to parent, not to earlier generations so... lets drop the ungrab on modal dialog attempt and leave that alone. That means that the keyboard focus travels around the modal dialogs stack correctly. For the mouse and keyboard events in menu problems, instead gtk_grab_add on the menu itself, and convert the separate grab of keyboard and mouse to different places with a single grab of everything to the menu, and in the keyInput of such menus where the keyInput would have gone to their parent in the past, forward it on ourselves directly. Using the gtk_grab_add makes the bOwnerEvents mode of mouse grabbing not work correctly anymore. So throw my hat at it, and instead use the simpler mouse grabbing where all events go to the menu, and doesn't send the events outside of it to the parent, the side effect is that now clicking outside the menu doesn't make it go away automatically because its the parent window which used to do that. So instead of dismissing the menu within the gtk plugin when the button click is outside the application, take it onto ourselves to dismiss the menu when the button click is outside the menu. and ditch some metacity hack around thing at this point too I hate this crap Change-Id: If10e758585f156b33680b8d40355302cc1ae72f3
2016-05-05drop commented out codeCaolán McNamara
Change-Id: Ifb4a19bf9c86cf6294859da73ac380e93b2deb45
2016-05-04Missing includesStephan Bergmann
Change-Id: Ic0618ff8a8f01937a467e4ba5184fe68f14cd24b
2016-05-04tdf#62525 vcl: use cow_wrapper for wallXisco Fauli
Change-Id: Iaf0b288a4c40f1e471a0a59b6baf17c317810d23 Reviewed-on: https://gerrit.libreoffice.org/24575 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2016-05-04tdf#62525 vcl: use cow_wrapper for mapmodXisco Fauli
Change-Id: I25ddaeb051f171388bb490a23bf03dbaf0add281 Reviewed-on: https://gerrit.libreoffice.org/24438 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2016-05-04use Any constructor instead of temporariesNoel Grandin
Change-Id: Iffb82a2cee1a28d89eeea2b905aaa14086ee475a
2016-05-03tdf#99383 vcl: don't dispatch events from SolarMutexReleaserMichael Stahl
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-05-03Resolves: tdf#98940 (-1 not mapping to maximum string length anymore)Matteo Casalin
Change-Id: I58e4a63bce17b880a97c7ccfb4d42dfb930e54c5 Reviewed-on: https://gerrit.libreoffice.org/24268 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2016-05-03Change vGDIObj pointer to unique_ptr to reduce WinMtfOutput complexityMark Page
Change-Id: Ia81d3b30a874c2e722f7b836db9fab0be2d6e27b Reviewed-on: https://gerrit.libreoffice.org/24488 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-05-02Simply use implicit conversion from GLboolean to boolStephan Bergmann
Change-Id: Ic758f578d44f8c3fef71ff8ed6ff710c4f1458b0
2016-05-01fix copy&paste errorJochen Nitschke
since commit 4cab94239be70bd5800a8808652514f14501d303 Change-Id: I8fbd55977bdf8531a66123948c0c4d23657713d4 Reviewed-on: https://gerrit.libreoffice.org/24558 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>