And other changes to reduce logs by about
20 lines per test (15% of total)
Signed-off-by: Neil Guertin <neil.guertin@collabora.com>
Change-Id: Ia6a1c96752816c5cd9fb11368cf921bdce9936ff
If we had very long or tall cell - maybe bigger than a screen
on every selection we tried to show it on the screen what
caused view to jump. If cell is bigger and partially visible
left view at the same position to avoid "jumping".
Steps to reproduce:
1. merge many cells - longer than one screen width
2. scroll in the middle of merged cell
3. select the cell
Result: jump to the begining
Expected: no jump if it is paritally visible
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: I04da5cd346f175728222888a039a796b271e00d1
Touch unification (b3bff28bede07a48cdecefcda14a6fc9da86e4bb, change ID
I9016fc15ad3ccb3664af348fdcdca006495b0778) was a rework of the input
system to better support touch devices, but unfortunately it caused some
fairly serious regressions. This commit fixes the following:
- Triple/Quadruple clicking was no longer recognized on non-touch
devices.
- There were some issues recognizing wrapped events
- Pens were considered to be touch devices, but this broke some
remote/virtual machine setups. It's possible that this change will
cause a regression for apple pencil users. I plan to get an Apple
pencil to test whether preventing pens from being touch devices breaks
the Apple pencil workflow instead
- manualDrag was taken to mean "is on a touch device". This is only
almost true, causing some input to be incorrectly ingnored when it was
not
- manualDrag and _manualDrag were confused. They affect different
things, and we now recognize this
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: Iab0d3bcca588eaed14469597868a9c4e2dcf8488
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
L.Browser.touch is sometimes nice, but it's ultimately a flawed concept
to use it for input events. Using L.Browser.touch for input handicaps
people with mice if it's too liberal in what it classes as touchscreens,
and handicaps people with touchscreens if it's too conservative. There's
also no sweet spot: it's impossible to choose correctly if someone is
using both a touchscreen and a pointer device, as there's no right
option!
Previously many of our event handlers and some of our UI was gated
behind L.Browser.touch. This commit adds a new "window.touch" property
which is used instead. It has functions to help with event detection,
allowing you to easily make event handlers that work for only the input
devices they are designed for, without gating them behind feature
detection. This has the added bonus that - as you register all the
events - switching between a touchscreen and pointer is now not only
possible but already implemented!
For cases which don't have reasonable events to tag onto (e.g. the
teardrop for cursor movement) this commit adds "hasPrimaryTouchscreen"
and "hasAnyTouchscreen" which use the CSS media queries to detect if
there's a touchscreen attached to your device (either as the primary
input mechanism or at all). This works a lot more similarly to
L.Browser.mode, but being dynamically updated allows you to effectively
swich between touchscreen and not at-will. This still has all of the
disadvantages that L.Browser.touch did when used to register event
handlers, so my advice would be to avoid using it with events.
Signed-off-by: Skyler Grey <skyler.grey@collabora.com>
Change-Id: I9016fc15ad3ccb3664af348fdcdca006495b0778
Also logs unhandled exceptions from iframe cool.html
Change-Id: I6f7b7d1340c8818d3f81916d42d6d9ed2920e35c
Signed-off-by: Henry Castro <hcastro@collabora.com>
Setting a baseURL cypress verify if the server is
running and prevents to refresh when command cy.visit()
Change-Id: I1cffc0932d6a1ec4ee9793eb3935f60e02ca2545
Signed-off-by: Henry Castro <hcastro@collabora.com>
If it is a remote 'coolwsd' server,
there is no way to rename or copy files.
Change-Id: Ic38302de5ecf3fa08fedd485d6060ede320867bc
Signed-off-by: Henry Castro <hcastro@collabora.com>
It is useful inspect logs and run unit test
with an already running coolwsd instance.
Change-Id: I6b01316d552e3d12bf63db9cc7e813adb33a20c0
Signed-off-by: Henry Castro <hcastro@collabora.com>
Helper functions:
checkAccessibilityEnabledToBe
check accessibility state independently from current desktop ui
setAccessibilityState
set accessibility state independently from current desktop ui
Both helper functions check that ui state and a11y support in text
input element are in sync.
Enable/Disable Accessibility Support
test state toggling and state preservation when switching ui
Typing after switching accessibility state
check editable area content after toggling accessibility support
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: Icce5ae148024a8abf9b65a90229915f28f720554
It converts textarea into contenteditable div.
Input is handled by TextInput.js used for document
and already in the past for formulabar. Replaces
usage of keyevents which are not triggered with
eg. Japanese.
Fixes also #6737
Fixes on mobile #6767 requires: https://gerrit.libreoffice.org/c/core/+/153717
New widget consists of text layer with visible content
and cursor layer with selections and cursor. When clicked
it focuses TextInput.js field for typing.
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Change-Id: Ieb7cf148a5aba80ab790e0b53c3a5ba27f166b73
expectTextForClipboard(expectedText) never fails for any passed
expectedText string
The value returned by the function passed to `then` cypress construct
must not be regarded as an implicit assertion.
I don't see anymore the '\n TEXT" case. It seems that comparing for
equality against the selected plain content is enough.
Fixed some cypress test that was failing after modifying
expectTextForClipboard.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I64ce31fa2127efcc70bbc3da3ac45fe456e66803
The failing unit test it is due to a duplicate file
that was modified with new properties.
Change-Id: I02824cfeaf8c496e84dc4e285975e95e79edb9df
Signed-off-by: Henry Castro <hcastro@collabora.com>
Helper functions has been moved to external file:
contenteditable_helper.js
Tests have been subdiveded in groups.
Spec file renamed from editing_spec to editable_area_spec
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: Ifdb18b0de4851a2fc927b3a8fb3b1472165f2b7f
When accessibility is enabled in coolwsd.xml, overrides setting in
<user-interface> section by force to use the notebookbar UI.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I98f4b288439b21110214ca2a67df639b397184c9
We handle notification from core about currently focused paragraph:
content, caret position, text selection start/end.
Notifications are sent on any text changes, even when the text has
been modified in another view.
Moreover we can request such info to core at any time.
That allows AT software to read focused paragraph and selected text.
All that keeping editing still working.
A set of new cypress tests for checking clipboard content has been
developed.
failing cpp unit test:
- HTTPWSTest::testInactiveClient
'unexpected message' assertion was failing since an idle client can
receive an a11yfocuschanged message when the same paragraph has focus
in both view and the active view is editing the paragraph.
failing cypress tests:
desktop
- calc/autofilter_spec.js
- added more wait time before performing clickOnFirstCell
- impress/undo_redo_spec.js
- Repair Document was broken
- we need to select 'Hello world' in order to overwrite it
mobile
- impress/spellchecking_spec.js
- Apply suggestion
- better use selectTextOfShape instead of Ctrl-A
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I070d390543fa66fe786c4a0661fa09f891b9883e
Refactored TextInput implementation. A content editable <div> is used
in place of <textarea>.
<img> elements are used as pre/post spaces.
Minimal changes to FormulaBarJSDialog, since some code was
dependendent on
TextInput details.
Refactored some cypress helper funcions, too, since cypress tests
expected a <textarea> element.
Signed-off-by: Marco Cecchetti <marco.cecchetti@collabora.com>
Change-Id: I13fd7d5c6446dea054a5a9e88f22ed100a66b3fb
Remove notebookbar tag and use switch UI functionality.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I49cfc7340b7ef07d06b0b7c37d24d88127c03735
Add switch UI to notebookbar function to desktop helper.
Remove tagnotebookbar.
Remove clickonidle function calls.
Tests should be more reliable and faster now - tested locally.
Signed-off-by: Gökay Şatır <gokaysatir@gmail.com>
Change-Id: I8b05f0b7cf3755ce6e1fe35a26a4ec1154bb2510