Commit graph

675 commits

Author SHA1 Message Date
Adrien Plazas
e6fd0fe174 accounts-editor: Wrap the welcome panel labels
This helps the accounts editor fit in narrow screens.
2020-11-17 11:48:31 +01:00
Michael Gratton
ec3057daf7 ConversationWebView: Fix plain text emails sometimes being too wide
Using `whitespace: pre-wrap` to format plain text email sometimes
causes additional width to be allocated by the plain text blocks that
then does not get used due to the constraints on the HTML element.
The allocated space remains however and hence an un-needed horizontal
scrollbar appears.

Using `break-spaces` instead seems to help since it allows breaks after
a space character, leading to the additional space not otherwise being
allocated.
2020-10-17 15:08:10 +11:00
Michael Gratton
0e783de5bf ui/conversation-web-view.css: Work around oversized email body height
Sometimes when loading an email body, the viewport for the web view
will be set to 0 (when the web view is hidden or not yet laid out in
the widget hierarchy?). When this happens, since the width of the body
is specified as 100vw, the content width is reduced to the absolute
minimum and hence the content height is stretched right out. Then, when
the web view is displayed, the viewport width increases but the extra
whitespace is never reclaimed (scrollHeight never goes down), so the
height of the web view remains way too large, causing large amounts of
whitespace at the end of the email message (i.e. #283).

To work around this, set a min width for the HTML element so the initial
height of the email body isn't too badly wrong.
2020-10-17 13:55:36 +11:00
Michael Gratton
40f97de745 ui/conversation-web-view.css: Clean up HTML/BODY element lockdowns
Use some more obvious CSS to ensure we can get an accurate idea of the
content height for sizing the web view and that the body fits the
web view's width.
2020-10-17 13:55:36 +11:00
Michael Gratton
0dce103f6b ui/components-web-view.js: Use arrow functions for better this scoping 2020-10-17 13:55:36 +11:00
Michael Gratton
01a0f96b40 ui/components-web-view.js: Use ResizeObserver for watching pref height
Rather than guessing when the height might change by using a number
of different event listeners, use a ResizeObserver to get direct
notifications of any changes to the HTML element's size.
2020-10-17 11:29:05 +11:00
Michael Gratton
1d80ed2034 ComposerPageState: Use CSS for managing focus with composer body parts
Now that the `:focus-within` pseudoclass is supported, use this rather
than some custom JS to update custom HTML classes. This also prevents
spurious mutation events from firing.
2020-10-13 00:02:09 +11:00
Michael Gratton
7950ce50c6 GearyWebExtension: Untangle extension and JS interaction a bit
Move selection changed event listener into JS so it doesn't have to
cross the JS/native boundary twice.

Move sending remote load blocked from JS to the extension since we can
do that directly now and again so the JS/native boundary doesn't need
to be double-crossed again.
2020-10-13 00:02:09 +11:00
Michael Gratton
7b0146274c Conversation.WebView: Convert to using messages for JS → client comms 2020-10-13 00:02:09 +11:00
Michael Gratton
3655f4896f Composer.WebView: Convert to using messages for JS → client comms 2020-10-13 00:02:09 +11:00
Michael Gratton
fb96676fbd Components.WebView: Convert to using messages for JS → client comms 2020-10-13 00:02:09 +11:00
Michael Gratton
6162785d99 GearyWebExtension: Add support for sending messages from JS to client
Define a vala-backed JS class in the extension and make that available
to pages when they are registered. Add some helper JS to PageState for
defining message sending functions. Listen for these in
Components.WebView and dispatch to the registered callback for it.
2020-10-13 00:02:09 +11:00
Michael Gratton
c813aa5707 Components.WebView: Check for pass up exceptions when calling JS code
Update web extension to check for errors when invoking page state
methods and pass a message back if found. Check for this, decode and
throw a vala error in the WebView if found.
2020-10-13 00:02:09 +11:00
Michael Gratton
ff565bc6ef Components.WebView: Convert to using messages for JS method invocation
Use WebKitGTK UserMessage objects for invoking JS methods rather than
serialising to JS strings and running those. This is possibly slightly
less efficient, but removes the onus on serialising to and parsing from
JS and once switched over from message handlers to UserMessage objects
will be using a single uniform IPC interface for both.
2020-10-13 00:02:09 +11:00
Michael James Gratton
d7af23201c Revert "Revert "Merge branch 'mjog/558-webkit-shared-process' into 'mainline'""
This reverts commit cbe6e0ba9b, which reinstates
commit e4a5b85698.

See !411 and !374
2020-10-13 00:02:02 +11:00
Julian Sparber
70a40893a3 action-bar: Add an action bar to the conversations list (2-panel)
This moves the actions from the headerbar to the action bar at the
bottom of the conversations list when multiple conversations are
selected. This changes is needed so that the user can still interact
with the conversations when folded.
This also hides the actions from the Headerbar and action bar when
no conversation is selected.
2020-10-12 11:03:55 +02:00
Julian Sparber
98017cfb39 main-toolbar: Create object containing conversation actions
This creates a new object that contain the 4 groups of actions that used
to be in the conversation-viewer headerbar.
This allows the widgets to be moved to differen locations, e.g. to an
action bar that will be added in a later commit.
2020-10-12 11:03:04 +02:00
Julian Sparber
d6c546e2d5 composer: close the composer when navigating back 2020-10-10 10:41:49 +02:00
Adrien Plazas
d97d86cbc7 toolbar header group 2020-10-10 10:41:49 +02:00
Julian Sparber
28a19775b8 main-toolbar: Add back buttons for leaflet navigation 2020-10-10 10:41:49 +02:00
Adrien Plazas
28e3192674 application-main-window: Sync the leaflets' swipe state
This keeps the swiping state of the leaflets in sync.
2020-10-10 10:41:49 +02:00
Adrien Plazas
12a7101ba5 Use leaflets in the UI
There is no way to navigate into the app, but it's a start.

v2: replace expand with child vexpand
2020-10-10 10:41:49 +02:00
Adrien Plazas
edfb1a2cf3 application-main-window: Sync the pane size request
Bind each pane's elements minimum size requests via size groups.
2020-10-10 10:41:49 +02:00
Adrien Plazas
94ab7e5ac6 main-toolbar: Split the folder header
Split it into a folder header and a conversations header. This is needed
to properly split the 3 panes.

Fixes https://gitlab.gnome.org/GNOME/geary/issues/442.
2020-10-10 10:41:49 +02:00
Adrien Plazas
850efb7238 application-main-window: Move the conversations searchbar
Move it at above the conversations but not above the folders. This is
needed to properly split the 3 panes.
2020-10-10 10:41:49 +02:00
Michael Gratton
5ab4838a77 ui/composer-headerbar.ui: Fix label not being marked as translatable
Fixes #959
2020-09-01 21:38:32 +10:00
Michael Gratton
369b1f1a4d Composer.Widget: Split email body editing code out into separate widget
Create a new Composer.Editor widget and move all body web view and
action bar related code from the main widget there.

This helps to clearly delineate concerns of the two classes, it
substantially reduces the complexity of the main widget, and should
reduce the odds of further breakage like that fixed by the previous
commit less likely in the future.
2020-08-28 18:25:58 +10:00
Michael Gratton
1282696048 ui/composer-widget.ui: Make action bars child of the editor box
Editor actions are defined on the editor box, so action bars need to be
decedents of that to pick up the actions.
2020-08-28 14:06:27 +10:00
Michael Gratton
798c76bc83 client: Give inspector and problem report dialogs consistent sizes 2020-08-18 22:20:29 +10:00
Michael Gratton
5b097c3076 client: Port client codebase to handy-1 2020-08-18 22:20:23 +10:00
Michael Gratton
2c7fe7dbc9 Composer.Widget: Add focused_input_widget property
Support tracking the last focused input widget so that text can be
inserted into it as needed.
2020-08-18 16:32:26 +10:00
Michael Gratton
bde39bf985 Composer.Widget: Place composer action bars into their own container
Use CSS instead of widget props to ensure widgets have sufficient
white space.

This will allow adding additional action bars (e.g. by plugins) in a
more straight-forward manner.
2020-08-18 16:32:26 +10:00
Michael Gratton
ce905740dc Plugins: Actually implement info bar plugin priority
Now that InfoBarStack supports a priority queue, use that for folder
and email stacks, and set the required priority property when
constructing info bars for plugins, so that the highest priority
info bar is always shown.
2020-08-18 16:32:26 +10:00
Michael Gratton
75ec2fe279 Merge branch 'nomailinglist' into 'mainline'
geary-list mailing list is obsolete

See merge request GNOME/geary!532
2020-07-30 04:08:31 +00:00
Federico Bruni
fbef65754c geary-list mailing list is obsolete
Archives are still available at:
https://mail.gnome.org/archives/geary-list/
2020-07-10 13:19:32 +02:00
hkdb
4ca4a91bbc Added detach composer shortcut to UI
Added "Detach composer" shortcut to "Keyboard Shortcuts" window
under the "Actions" section of the "Composer Shortcuts" page in the UI.
2020-07-07 21:13:20 +08:00
Michael Gratton
30d3352036 Merge branch 'single-key-overlay' into 'mainline'
update help-overlay for single-key shortcuts

Closes #811

See merge request GNOME/geary!505
2020-05-07 01:07:27 +00:00
Andres Salomon
751cf0860f help-overlay: reduce the length of the header even further 2020-05-06 18:02:21 -04:00
Michael Gratton
66773a01f1 Merge branch 'adwait/create_mnemonic' into 'mainline'
Accounts.EditorAddPane: Add mnemonic to create button

See merge request GNOME/geary!491
2020-05-03 07:36:55 +00:00
Andres Salomon
e2118daa9e help-overlay: shorten single-key section name 2020-05-01 01:09:49 -04:00
Andres Salomon
af44f4457c help-overlay: further single-key shortcut screen cleanups
Add a bit more spacing below the header, and reduce the length of the header
to fit better on smaller screens.
2020-04-28 18:32:39 -04:00
Andres Salomon
ec649efcc9 help-overlay: move single-key shortcuts to a new section
- Move single-key shortcuts to their own section
 - break the shortcuts list into two columns
 - mention that single-key shortcuts need to be enabled in preferences
2020-04-25 18:59:01 -04:00
Andres Salomon
27b39a5548 help-overlay: fix minor typo
'/' is for finding in the current _conversation_ (singular). Match the text here
with what we have for Ctrl-F.
2020-04-25 18:49:42 -04:00
Michael Gratton
8b4f370a2a Component.Inspector: Add mark and clear buttons for logs 2020-04-16 18:47:33 +10:00
Michael Gratton
31b073d0d5 ui/components-inspector-log-view.ui: Minor tweaks 2020-04-16 17:31:18 +10:00
Michael Gratton
b70790eac1 Components.InspectorLogView: Support filtering logs by account/domain
Hook up sidebar rows so that their checkbox's enabled state indicates
and can be used to set the filtering for the log view.
2020-04-16 17:30:50 +10:00
Michael Gratton
4b097b4542 Components.InspectorLogView: Add sidebar listing accounts & log domains
Adds a sidebar that displays accounts and logging domains, grouped into
accounts, internal domains, and external domains.
2020-04-16 13:05:07 +10:00
Adwait Rawat
a6ab4fba86 Accounts.EditorAddPane: Add mnemonic to create button 2020-04-08 03:24:51 +09:00
Michael Gratton
ec382470fd Rename other uses of spam in the codebase to junk 2020-03-31 15:41:51 +11:00
Michael Gratton
28e6b669f6 ConversationMessage: Convert to use InfoBarStack
Remove stock infobars from ConversationEmail and ConversationMessage
builder files. Use common ComponentsInfobar for remote image loading
infobar. Use Components.InfoBarStack in ConversationMessage for plugin
support.
2020-03-30 21:05:00 +11:00