Paint the row that was picked up as the drag icon, dim the actual row
and don't highlight it when dragging over itself.
Icon drawing code courtesy ebassi's tutorial:
https://blog.gtk.org/2017/04/23/drag-and-drop-in-lists/
Show GNOME settings when adding a supported GOA service type and
it is installed, otherwise show Geary's custom password-based impl.
For GOA accounts, hide the Remove button, and enable opening the
account in GNOME Settings from the server pane.
This allows the panes themselves to manage their own headers, command
stacks, and so on. Break out the account list pane out so it's handled in
the same way as the others.
This allows using the same code for editing account signatures as for the
composer.
* src/client/components/client-web-view.vala (ClientWebView): Move both
command_stack_changed and document_modified signals here from
ComposerWebView, since they use the same underlying machinery to
emit. Move get_html() from ComposerWebView since we want to get to the
HTML when editing signatures. Override WebView.set_editable() so we can
enable/disable the signal machinery and hence not get change signals
emitted when enabling/disabling editing.
* ui/client-web-view.js (PageState): Mirror the changes above made to
ClientWebView.
* src/meson.build (geary_web_process): Ensure C args are passed through
web compiling the web extension.
This seems to be a bit more accurate than the previous calculation.
Force the doc element's border to zero as well to make using
scrollHeight more reliable.
Queue a preferred height check on resize and transition end so we catch
cases where the user resizes the window and transitions cause a height
change after loading has completed, etc.
This restores normal key handling MainWindow:key_press_event when a
keyboard modifier (Ctrl, Shift, etc) is down, keeping the ordering hack
only for plain key presses, so that we can handle Ctrl+V before
WebKitGTK does, and hence letting us paste plain text default when rich
text is not enabled.
Fixes Bug 730495.
* ui/composer-widget.ui: Make the info label esliipsisable, but give it a
reasonable minimum size.
* src/client/composer/composer-widget.vala (ComposerWidget): Set the info
label's tooltip with the text so it can still be read when ellipsed.
* src/client/composer/composer-widget.vala (Composer): Replace use of
inappropriate public properties and obtuse property bindings with a
subject_changed signal and private properties that update the info
label in their setter, so it's obvious how the whole thing works. Move
code for managing a detached compoer's window title to the
ComposerWindow class.
Fixes Bug 793710.
* src/client/composer/composer-headerbar.vala (ComposerHeaderbar): Ensure
we actually get notified when the user changes their decoration prefs
and update detach button location correctly.
* ui/composer-headerbar.ui: Make start detach button's image visible by
default.
It looks like Gtk.Spinner triggers repaints when running, even when the
widget is not visible. This ensures the conversation is stopped when not
visible.
Fix for Bug 783025.
* src/client/conversation-viewer/conversation-viewer.vala
(ConversationViewer): Start the conversation spinner when showing it,
stop the conversation spinner when it is hidden.
Using show_all is a pita, since it causes a bunch of bugs whenever we
need to conditionally show/hide widgets. This removes all uses on the
main window in favour of either just show() or present(), and ensures
that its widgets that are shown by default, are shown by default.
This attempts to solve bug
[#714921](https://bugzilla.gnome.org/show_bug.cgi?id=714921).
They are available as two buttons on the format bar, next to font
options. The icons I used are taken from a free icons site just for demo
purposes and should be replaced by new icons. Also I did not include
hotkeys mainly because I could not come up with a good one, also they
are pretty uncommon I think.
Also added new icons to icons/CMakeLists.txt
Some remarks:
* Note that Meson adds a hard dependency on Python 3.
* All dependencies and defines are now listed together.
* Some build files were put in their respective subdirectories, e.g. the Geary
engine library will be built from the Meson file in `src/engine`.
* `--fatal-warnings` is no longer an explicit flag, as Meson provides
`-Dwerror=true` for this.
* An explicit resource file needs to be used. The issue to support this from
Meson itself can be found at https://github.com/mesonbuild/meson/issues/706 .
* The `gnome.yelp()` function parses a LINGUAS file so we no longer need to keep
track of all languages in our build system.
* There are no Debian scripts defined in the meson.build files to keep them
clean, but they can be kept as separate scripts in `build-aux`.
* Left out the `dist` target as there is now `ninja dist`
* `geary-docs` is disabled by default, as valadoc-0.38.3 returns errors.
https://bugzilla.gnome.org/show_bug.cgi?id=777044