Problems:
1: Browsers hard-code ctrl+shift+v as "paste without formatting" - ie. plain text
We need access to the clipboard to get the rich data needed for paste-special,
which we can only get security context / access to with a ctrl-v keypress
2: we cannot directly access the clipboard data with ctrl+shift+alt+v
Solution:
Externally copied data could not be pasted directly with paste special
and unformatted paste due to no access to the clipboard data
To access the data copied externally we rely on user to trigger paste event
We use default browser shortcut for unformatted paste(ctrl+shift+v)
this triggers a paste event
for paste special we ask user to press ctrl+v with a popup and then
if that popup is open and paste event is triggered we trigger paste special
New shortcuts:
Paste: ctrl+v
unformatted Paste: ctrl+shift+v
Paste special: ctrl+shift+alt+v
Change-Id: Ib15c701f5e03123cb91e36d1c1d64f0c12aa9cfb
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/100927
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
This is a quite complicated change that should both fix tdf#133284
(cursor keys on a hardware keyboard do not work in a spreadsheet
document) and also improve the interaction with
CollaboraOnlineWebViewKeyboardManager that manages the on-screen
keyboard. We need to jump through complicated hoops in order to get
the hardware cursor keys handled right after loading a spreadsheet
document.
In the CollaboraOnlineWebViewKeyboardManager case we try harder to
keep loleaflet's _textArea buffer in sync with what the UITextView in
CollaboraOnlineWebViewKeyboardManager uses to provide suggestions
above the on-screen keyboard.
Also merges in related changes from today to
CollaboraOnlineWebViewKeyboardManager.
Change-Id: Ic4acb54bd4e815aa8bfb2bf40b08493446ae5ab0
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/101878
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
When a dialog is rendered the hamburger menu appears to have
a different color and thus, it stands out in the background.
Change-Id: I35766d083fc342f1d7bcbdca1ad9723057b70cd3
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/101833
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Pedro Silva <pedro.silva@collabora.com>
This change prevents user from creating multiple instances
of dialogs eg. by using sidebar. Dialogs are modal now.
Child dialogs still can be created from existing dialog and used.
Change-Id: I388006d8857d0196d2884598e150f7bf5948ed47
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/100598
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/101821
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
and blink active dialog to inform user that he needs
to close dialog first...
Change-Id: I6c9ee662ae2ab935f03ee8fdd0cf7327703e2170
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/100457
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/101820
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
- Add lc_tableautofitmenu.svg
(used in the context menu when inside of a cell)
- Sometimes headers do not get properly set from JS:
missing "justify-content: space-between;" and so set it in the CSS side
Change-Id: If383b15fc5920f1074c6eb88dd45bd2667095d66
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/101481
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Pedro Silva <pedro.silva@collabora.com>
"Private" and "public" have no meaning in JavaScript as far as I know,
there are only naming conventions. And we keep using properties and
functions intended to be "private" (have names that start with an
underscore) quite freely across source files and classes anyway.
Also, the names in the comments were wrong.
Change-Id: Ib5172c26be8818cb261dbe7d08d1c3245ff64af8
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/101699
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
This reverts commit 0cc4977abd.
Reason for revert: after Pranam's fixes viewing/hiding/modifying comments
work as expected, therefore we can have this option back.
Change-Id: I299f33552ae26d29ea2078c286bc5c785ebdb7a9
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/101517
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
The apps are not meant to represent MIME types of respective
single file extensions; rather, they represent application/module
that handles several extensions. So this groups extensions under
modules (writer/calc/...). This is required for some WOPI hosts
that whitelist discovery data on per-app base.
The old list of MIME-type-based apps is kept for compatibility
with existing integrations, until they are fixed to use new-style
discovery. Extensions are removed from legacy part, to avoid
duplicating actions.
This also hardcodes content types, to avoid repeated parsing of
discovery.xml.
lint-discovery.py is updated to process new-style information
(ignores legacy part).
Change-Id: Ib8d3518f00510cd0788314d8a9da9a286a52e0ba
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/99637
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Files soft-linked from the jail will reference those in the
chroot and not the real/root filesystem. We can only get
away with hard-links in this case. Failing that, we must
copy the file and check at runtime. Hard-linking most
commonly fails due to cross-device linkage, which is
prohibited.
Change-Id: I4d43fd2ac47c42edd59de9baba5b38a78c879f6e
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/101417
Tested-by: Andras Timar <andras.timar@collabora.com>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
The use of a common threadname suffix in the WSD and Kit
processes is intentional. It is designed to help filter
for a single document's logs across both processes.
The thread name has nothing to do with the classes in
the code, nor is it intended to imply any relationship
except with the process and the document in question.
As the comment in this patch explains, the choice of
the suffix is arbitrary and while it may be changed,
it has to be sensible and common between the two threads
to allow for easy grepping.
Historically, there were in fact dedicated threads
within the respective "broker" classes, but this
fact should be safely ignored, since at the log level
we care less about which part of the code generates a
log entry (that info, if needed, is at the end of each
log entry, in the form of filename and line number),
rather we care more about which document it relates to,
which is crucial in investigating production issues.
Logs and code structure are only incidentally related.
Logs are (or at least should be) designed around
the execution structure, not code architecture.
(This reverts 2a16f34812)
Change-Id: Ic6fe2f9425998824774d2644fe4362e75dea6b88
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/101261
Tested-by: Jenkins
Tested-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
in IE/Edge:
- not working var()
- color with opacity must be used in rgba() format
- width: max-content not working, use nowrap
Change-Id: I771b2b8d58821144f5704d67126b5490a5f75c7a
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/101399
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
- make sure avatar container is set to content-box instead of border-box
Change-Id: I342f01136bee99a0154527f34703b323cd62aeb5
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/101381
Tested-by: Andras Timar <andras.timar@collabora.com>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
For now, just copy its source files here. When/if I figure out what is
the appropriate way to package that framework for use in other
products (like the Collabora Office iOS app) I will use that instead.
Change-Id: If808f96b6a72c80e54dc84fce80a551503c96335
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/101268
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
* convert var colors to rgb
* use the var colors for shadow + alpha (rgba)
* .document-title container: remove table display and add min width
Change-Id: Id4289af91562790edd23c83d4e70a16688e44fe3
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/101048
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Pedro Silva <pedro.silva@collabora.com>
This solves issues with positioning in Chrome
using non standard zoom levels
Change-Id: I14987f6c9e50f2d1c8a1170c489f69471cb9f807
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/101307
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
We now gracefully fallback to copying when/if systemplate
is readonly.
The bulk of the change is to support proper cleanup in
both cases.
First, we had to move as much of the jail bootstrapping
into the loolwsd-systemplate-setup script, so systemplate
will be as complete as possible before it is locked down.
Next, we needed to update the jail with graceful fallback
to linking/copying upon failure. For that, the jail setup
logic in Kit.cpp has been reworked to support not just
update failures, but also more comprehensive mounting
failures as well.
Finally, jail cleanup now is seamless. To support proper
cleanup when we had mounting enabled but had to fallback,
we mark jails that aren't mounted so we can 'rm -rf' the
contents safely and without fear or causing undue damage
(as unlikely as that is, technically we wouldn't want to
rm systemplate files, if mounting read-only had failed).
There are a few minor refactorings of JailUtil to make
it cleaner and more robust.
Change-Id: Iac34869cb84f45acf64fbbc46d46898367b496d2
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/101260
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
This reverts commit e83e36bd9b.
Unit test failure was fixed
Change-Id: I2176368278725c1711df3b23eef95de6526c68d5
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/100859
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>