- Change from textarea to input (type="text") to prevent Firefox
to auto-capitalize.
- Clean the text input content after each word so that the soft
keyboard spellcheck suggestions are correct and that backspace
doesn't delete long IME suggestions before it has effect.
- Workaround on Chrome Android 'space' and applying spell-check
corrections.
Otherwise we are getting completely confused times - various processes start
at various times, so for one process the epoch start can be eg. 20 minutes
later than for the other.
Change-Id: I6d87e98682a5fcd0348a584cf66f7ffa5813ca66
Before setting up the socket where we listen for client requests, try
connecting to the same port. If that succeeds, another loolwsd process
is already running and listening on that port. That is obviously
undesirable.
Yes, there is a race condition if multiple loolwsd processes are
started simultaneously and do this check before any of them have
actually created the socket. Live with it. Multiple loolwsd processes
is a problem that happens accidentally for developers only anyway. In
a production environment systemd takes care of having just one, I
hope.
Thanks to Kendy for the idea.
Change-Id: Ifdde83472f9a56e592ec5dc7649dd7706efc2f7c
This seems to be superfluous. w2ui library automatically set the
width of the toolbar overriding this value always.
Change-Id: Ia87018533f99769ef1dc48463ac58d32cbf40d9d
There was a race condition here between our toolbar doing its
stuff and loolwsd sending us websocket messages, noticeable on
slow networks.
Change-Id: I5ae174e94561dd427d22389e443c80b2a6be4ec4
Primary reason we are bringing it back is because in mobile mode
userlist icon goes to the right most edge of the screen which
leads to userlist popup not being shown (which seems to be the
bug in library we are using)
Change-Id: Ie5b93c41f54ffeeb8615f90fa0e71c74de5ed92c
I started changing the cases for all the parameters to use similar
code as for the 'hash=' one: Check the parameter name with
startsWith() instead of fragile substring() function call where the
length parameter must match the length of a string literal that the
substring() result is compared to.
But then I got bored and gave up. It would be even better to not have
to tediously check for all defined parameter names, but instead just
parse each parameter using the same code that sets the property whose
name we found. Except that we have special cases where the parameter
name in the protocol doesn't match our coresponding property name, and
those that consist of a list of comma-separated values.
Maybe we indeed should just switch to JSON (or some binary
representation of JSON or somesuch).
Change-Id: Ibcdb26d7228b75f6f23c186f0b17cb46a12f3cec
The server tells the client the hash of each tile it sends (calculated
from the contents of the tile, not its PNG encoding). When the client
asks for a tile to be refreshed, it tells the server what the hash of
the existing tile is. If the server notices that the tile contents
hasn't actually changed, it doesn't PNG encode it and doesn't send it
to the client.
The intent is that this will reduce load on the server and also avoid
unnecessary tile traffic.
Change-Id: Ia06ca68655ea984ed4319f24f4470afda322eccf
If we are logging a message, we want to see the first line of it in
its entirety if possible. Especially now with more parameters being
added to tile messages, 120 was not enough to see the added
interesting ones.
Bin the silly test that used knowledge of what the limit is. We should
not test a coindidental arbitrary number that is not a documented part
of an API. If we want to test the default abbreviation functionality,
we need to at least make that default limit (now 500) public in
Protocol.hpp.
Change-Id: Iea59ba46e8331e2a839c792146f123fed9df2b82
Reduce userlist text to now only show the number of users in
mobile mode instead of 'x users' string. Drop the 'Document
saved' string notification.
Change-Id: Ife20a5fcea01301601912c734dae6c3d6504c4f5
Using !important always is not a good idea. You can't override an
!important with another !important and we have started to face
such situations now where we want to adjust element's alignment
based on media-screen width. Instead lets fix the specificity to
make this work.
.parts-preview-document or .spreadsheet-document would be
0-0-1-0. Use #document-container.parts-preview-document to
increase its specificity to 0-1-1-0 so that we can do without the
!important flag and use !important flag for media-screen blocks.
Change-Id: I1d15df492cdc7cd1cd09c3b43c8ea84295a07205
Slide sorter and presentation toolbar are now contained in a
presentation-controls-wrapper and alignment values are now
factored out and only present in the container now.
Also, position the presentation-toolbar absolutely outside of
container so that slidesorter scrollbar doesn't go behind the
toolbar hindering some view of the slide thumbnails.
This would also make the job of hiding/showing the whole control
easier.
Change-Id: I080e854906ef0635aba02cfeb687bf87463ef756