Merge remote-tracking branch 'upstream/master' into master-windows-changes

This commit is contained in:
LAGonauta 2023-07-17 17:28:47 -04:00
commit 49f331627d
33 changed files with 128 additions and 66 deletions

View file

@ -472,8 +472,7 @@ public class MessageProcessor : StreamInteractionModule, Object {
string fallback = FallbackBody.get_quoted_fallback_body(content_item);
long fallback_length = fallback.length;
var fallback_location = new Xep.FallbackIndication.FallbackLocation(0, (int)fallback_length);
var fallback_location = new Xep.FallbackIndication.FallbackLocation(0, (int)fallback.char_count());
Xep.FallbackIndication.set_fallback(new_stanza, new Xep.FallbackIndication.Fallback(Xep.Replies.NS_URI, new Xep.FallbackIndication.FallbackLocation[] { fallback_location }));
return fallback;

View file

@ -105,7 +105,8 @@ namespace Dino {
string body = message.body;
foreach (var fallback in message.get_fallbacks()) {
if (fallback.ns_uri == Xep.Replies.NS_URI && message.quoted_item_id > 0) {
body = body[0:fallback.locations[0].from_char] + body[fallback.locations[0].to_char:body.length];
body = body[0:body.index_of_nth_char(fallback.locations[0].from_char)] +
body[body.index_of_nth_char(fallback.locations[0].to_char):body.length];
}
}
return body;

View file

@ -17,9 +17,7 @@ find_packages(MAIN_PACKAGES REQUIRED
set(RESOURCE_LIST
dino-conversation-list-placeholder-arrow.svg
icons/scalable/actions/dino-account-plus-symbolic.svg
icons/scalable/actions/dino-emoticon-add-symbolic.svg
icons/scalable/actions/dino-emoticon-symbolic.svg
icons/scalable/actions/dino-qr-code-symbolic.svg
icons/scalable/apps/im.dino.Dino.svg
@ -42,8 +40,6 @@ set(RESOURCE_LIST
icons/scalable/mimetypes/dino-file-video-symbolic.svg
icons/scalable/status/dino-double-tick-symbolic.svg
icons/scalable/status/dino-microphone-off-symbolic.svg
icons/scalable/status/dino-microphone-symbolic.svg
icons/scalable/status/dino-party-popper-symbolic.svg
icons/scalable/status/dino-security-high-symbolic.svg
icons/scalable/status/dino-status-away.svg
@ -71,6 +67,7 @@ set(RESOURCE_LIST
file_default_widget.ui
file_send_overlay.ui
global_search.ui
gtk/help-overlay.ui
conversation_content_view/item_metadata_header.ui
conversation_content_view/view.ui
manage_accounts/account_row.ui
@ -86,7 +83,6 @@ set(RESOURCE_LIST
quote.ui
search_autocomplete.ui
settings_dialog.ui
shortcuts.ui
unified_main_content.ui
unified_window_placeholder.ui

View file

@ -51,7 +51,7 @@
</child>
<child>
<object class="GtkMenuButton" id="emoji_button">
<property name="icon-name">dino-emoticon-symbolic</property>
<property name="icon-name">emoji-people-symbolic</property>
<property name="has-frame">False</property>
<property name="margin-top">2</property>
<property name="valign">start</property>
@ -85,6 +85,7 @@
<property name="margin_bottom">3</property>
<property name="margin_start">14</property>
<property name="margin_end">14</property>
<property name="wrap">True</property>
<attributes>
<attribute name="scale" value="0.8"></attribute>
</attributes>

View file

@ -80,7 +80,7 @@
</child>
<child>
<object class="GtkMenuButton" id="file_menu">
<property name="icon-name">open-menu-symbolic</property>
<property name="icon-name">view-more-symbolic</property>
<property name="opacity">0</property>
<property name="has_frame">False</property>
</object>

View file

@ -20,9 +20,8 @@
<file>file_default_widget.ui</file>
<file>file_send_overlay.ui</file>
<file>global_search.ui</file>
<file>icons/scalable/actions/dino-account-plus-symbolic.svg</file>
<file>gtk/help-overlay.ui</file>
<file>icons/scalable/actions/dino-emoticon-add-symbolic.svg</file>
<file>icons/scalable/actions/dino-emoticon-symbolic.svg</file>
<file>icons/scalable/actions/dino-qr-code-symbolic.svg</file>
<file>icons/scalable/apps/im.dino.Dino-symbolic.svg</file>
<file>icons/scalable/apps/im.dino.Dino.svg</file>
@ -41,8 +40,6 @@
<file>icons/scalable/mimetypes/dino-file-table-symbolic.svg</file>
<file>icons/scalable/mimetypes/dino-file-video-symbolic.svg</file>
<file>icons/scalable/status/dino-double-tick-symbolic.svg</file>
<file>icons/scalable/status/dino-microphone-off-symbolic.svg</file>
<file>icons/scalable/status/dino-microphone-symbolic.svg</file>
<file>icons/scalable/status/dino-party-popper-symbolic.svg</file>
<file>icons/scalable/status/dino-security-high-symbolic.svg</file>
<file>icons/scalable/status/dino-status-away.svg</file>
@ -65,7 +62,6 @@
<file>quote.ui</file>
<file>search_autocomplete.ui</file>
<file>settings_dialog.ui</file>
<file>shortcuts.ui</file>
<file>style-dark.css</file>
<file>style.css</file>
<file>unified_main_content.ui</file>

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<object class="GtkShortcutsWindow" id="shortcuts-window">
<object class="GtkShortcutsWindow" id="help_overlay">
<property name="modal">True</property>
<child>
<object class="GtkShortcutsSection">
@ -20,6 +20,12 @@
<property name="title" translatable="yes">Join Channel</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="accelerator">&lt;ctrl&gt;question</property>
<property name="title" translatable="yes">Keyboard shortcuts</property>
</object>
</child>
</object>
</child>
<child>

View file

@ -1 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M15,14C12.33,14 7,15.33 7,18V20H23V18C23,15.33 17.67,14 15,14M6,10V7H4V10H1V12H4V15H6V12H9V10M15,12A4,4 0 0,0 19,8A4,4 0 0,0 15,4A4,4 0 0,0 11,8A4,4 0 0,0 15,12Z" /></svg>

Before

Width:  |  Height:  |  Size: 456 B

View file

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" viewBox="0 0 23.568 23.711" xmlns="http://www.w3.org/2000/svg">
<path d="m10 19.211c2.33 0 4.3-1.46 5.11-3.5h-10.22c0.8 2.04 2.78 3.5 5.11 3.5m-3.5-6.5c0.82843 0 1.5-0.67157 1.5-1.5s-0.67157-1.5-1.5-1.5-1.5 0.67157-1.5 1.5 0.67157 1.5 1.5 1.5m7 0c0.82843 0 1.5-0.67157 1.5-1.5s-0.67157-1.5-1.5-1.5-1.5 0.67157-1.5 1.5 0.67157 1.5 1.5 1.5m-3.5 9c-4.4183 0-8-3.5817-8-8s3.5817-8 8-8c1.4367-0.016553 1.4581-1.9613 0-2-5.53 0-10 4.5-10 10 0 5.5228 4.4772 10 10 10s10-4.4772 10-10c0-1.0544-2-1.0324-2 0 0 4.4183-3.5817 8-8 8"/>
<path d="m18.908 0c-0.33046 0-0.61972 0.12233-0.80078 0.36133-0.18106 0.239-0.25586 0.56747-0.25586 0.97266v2.6523h-2.2715c-0.38896 0-0.70598 0.064394-0.94727 0.21875-0.26371 0.15646-0.38672 0.4669-0.38672 0.83789 0 0.36179 0.12302 0.66715 0.38086 0.83398l0.001953 0.0019531h0.001953c0.24918 0.15228 0.56865 0.21875 0.94922 0.21875h2.2715v2.6543c0 0.40519 0.074767 0.73218 0.25586 0.9707 0.18109 0.23852 0.46892 0.35944 0.79883 0.36133 0.32038 0.001837 0.60667-0.12152 0.78906-0.35937 0.18239-0.23785 0.26374-0.56552 0.26758-0.9707v-0.0019531-2.6543h2.2559c0.41061 0 0.74047-0.073348 0.98242-0.25391s0.36719-0.46969 0.36719-0.80078c0-0.33109-0.12524-0.62218-0.36719-0.80273s-0.57181-0.25391-0.98242-0.25391h-2.2559v-2.6523c0-0.38896-0.064393-0.70598-0.21875-0.94727-0.15646-0.26371-0.46495-0.38672-0.83594-0.38672z"/>
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
<path d="m 7 2 c -3.855469 0 -7 3.144531 -7 7 s 3.144531 7 7 7 s 7 -3.144531 7 -7 h -2 c 0 2.773438 -2.226562 5 -5 5 s -5 -2.226562 -5 -5 s 2.226562 -5 5 -5 z m 0 0"/>
<path d="m 11 0 v 3 h -3 v 2 h 3 v 3 h 2 v -3 h 3 v -2 h -3 v -3 z m 0 0"/>
<path d="m 6 7 c 0 0.550781 -0.449219 1 -1 1 s -1 -0.449219 -1 -1 s 0.449219 -1 1 -1 s 1 0.449219 1 1 z m 0 0"/>
<path d="m 10 7 c 0 0.550781 -0.449219 1 -1 1 s -1 -0.449219 -1 -1 s 0.449219 -1 1 -1 s 1 0.449219 1 1 z m 0 0"/>
<path d="m 4.171875 9.414062 c -0.390625 0.390626 -0.390625 1.023438 0 1.414063 c 0.75 0.75 1.765625 1.171875 2.828125 1.171875 c 1.058594 0 2.078125 -0.421875 2.828125 -1.171875 c 0.390625 -0.390625 0.390625 -1.023437 0 -1.414063 c -0.390625 -0.390624 -1.023437 -0.390624 -1.414063 0 c -0.375 0.375 -0.882812 0.585938 -1.414062 0.585938 s -1.039062 -0.210938 -1.414062 -0.585938 c -0.390626 -0.390624 -1.023438 -0.390624 -1.414063 0 z m 0 0"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1 KiB

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" viewBox="0 0 14 14" xmlns="http://www.w3.org/2000/svg">
<path d="m7 0c-3.866 0-7 3.134-7 7 0 3.866 3.134 7 7 7 3.866 0 7-3.0493 7-6.9153s-3.134-7.0847-7-7.0847zm-2 4c0.558 0 1.031 0.473 1.031 1.031v0.61307c0 0.558-0.473 1-1.031 1s-1-0.442-1-1v-0.61307c0-0.558 0.442-1.031 1-1.031zm4 0c0.558 0 1 0.473 1 1.031v0.63002c0 0.558-0.442 1-1 1s-1-0.442-1-1v-0.63002c0-0.558 0.442-1.031 1-1.031zm-6.5 4.1157c2 1.304 6.956 1.304 9 0-0.70196 2.8903-2.5245 3.853-4.499 3.8533-1.975 2.17e-4 -3.7981-1.1706-4.501-3.8533z" fill="#474747"/>
</svg>

Before

Width:  |  Height:  |  Size: 593 B

View file

@ -1 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M12,9C10.4,9 8.85,9.25 7.4,9.72V12.82C7.4,13.22 7.17,13.56 6.84,13.72C5.86,14.21 4.97,14.84 4.17,15.57C4,15.75 3.75,15.86 3.5,15.86C3.2,15.86 2.95,15.74 2.77,15.56L0.29,13.08C0.11,12.9 0,12.65 0,12.38C0,12.1 0.11,11.85 0.29,11.67C3.34,8.77 7.46,7 12,7C16.54,7 20.66,8.77 23.71,11.67C23.89,11.85 24,12.1 24,12.38C24,12.65 23.89,12.9 23.71,13.08L21.23,15.56C21.05,15.74 20.8,15.86 20.5,15.86C20.25,15.86 20,15.75 19.82,15.57C19.03,14.84 18.14,14.21 17.16,13.72C16.83,13.56 16.6,13.22 16.6,12.82V9.72C15.15,9.25 13.6,9 12,9Z" /></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
height="16px"
viewBox="0 0 16 16"
width="16px"
version="1.1"
id="svg73815"
sodipodi:docname="dino-phone-hangup-symbolic.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs73819" />
<sodipodi:namedview
id="namedview73817"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="true"
inkscape:zoom="18.223966"
inkscape:cx="0.52129158"
inkscape:cy="8.944266"
inkscape:current-layer="svg73815">
<inkscape:grid
type="xygrid"
id="grid73938" />
</sodipodi:namedview>
<path
d="m 8,3.992188 c -2.511719,0 -5.027344,0.957031 -6.9375,2.863281 L 0.71875,7.203125 c -0.957031,0.957031 -0.957031,2.511719 0,3.46875 l 1.039062,1.039063 c 0.382813,0.382812 1.003907,0.382812 1.386719,0 L 4.1875,10.671875 5.226562,9.632812 c 0.382813,-0.386718 0.382813,-1.003906 0,-1.390624 L 4.730469,7.75 c 2.035156,-1.105469 4.503906,-1.105469 6.539062,0 l -0.496093,0.492188 c -0.382813,0.386718 -0.382813,1.003906 0,1.390624 l 1.039062,1.039063 1.042969,1.039063 c 0.382812,0.382812 1.003906,0.382812 1.386719,0 l 1.039062,-1.039063 c 0.957031,-0.957031 0.957031,-2.511719 0,-3.46875 L 14.9375,6.855469 C 13.027344,4.949219 10.511719,3.992188 8,3.992188 Z"
id="path73813"
sodipodi:nodetypes="sccssccccccccccssccs" />
</svg>

Before

Width:  |  Height:  |  Size: 816 B

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -1 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M15,12H17A5,5 0 0,0 12,7V9A3,3 0 0,1 15,12M19,12H21C21,7 16.97,3 12,3V5C15.86,5 19,8.13 19,12M20,15.5C18.75,15.5 17.55,15.3 16.43,14.93C16.08,14.82 15.69,14.9 15.41,15.18L13.21,17.38C10.38,15.94 8.06,13.62 6.62,10.79L8.82,8.59C9.1,8.31 9.18,7.92 9.07,7.57C8.7,6.45 8.5,5.25 8.5,4A1,1 0 0,0 7.5,3H4A1,1 0 0,0 3,4A17,17 0 0,0 20,21A1,1 0 0,0 21,20V16.5A1,1 0 0,0 20,15.5Z" /></svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
<path d="m 5.003906 2 c 0.554688 0 1 0.445312 1 1 v 3 c 0 0.554688 -0.445312 1 -1 1 h -0.710937 c 0.671875 2.265625 2.445312 4.042969 4.710937 4.710938 v -0.710938 c 0 -0.554688 0.449219 -1 1 -1 h 3 c 0.554688 0 1 0.445312 1 1 v 1.5 c 0 1.378906 -1.117187 2.5 -2.5 2.5 h -0.5 c -5.503906 0 -10 -4.496094 -10 -10 v -0.5 c 0 -1.378906 1.121094 -2.5 2.5 -2.5 z m 0 0"/>
<path d="m 8 4 v 2 c 1.117188 0 2 0.882812 2 2 h 2 c 0 -2.199219 -1.800781 -4 -4 -4 z m 0 0"/>
<path d="m 8 1 v 2 c 2.773438 0 5 2.226562 5 5 h 2 c 0 -3.855469 -3.144531 -7 -7 -7 z m 0 0"/>
</svg>

Before

Width:  |  Height:  |  Size: 664 B

After

Width:  |  Height:  |  Size: 703 B

View file

@ -1 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M23.71,16.67C20.66,13.77 16.54,12 12,12C7.46,12 3.34,13.77 0.29,16.67C0.11,16.85 0,17.1 0,17.38C0,17.65 0.11,17.9 0.29,18.08L2.77,20.56C2.95,20.74 3.2,20.86 3.5,20.86C3.75,20.86 4,20.75 4.18,20.57C4.97,19.83 5.86,19.21 6.84,18.72C7.17,18.56 7.4,18.22 7.4,17.82V14.72C8.85,14.25 10.39,14 12,14C13.6,14 15.15,14.25 16.6,14.72V17.82C16.6,18.22 16.83,18.56 17.16,18.72C18.14,19.21 19.03,19.83 19.82,20.57C20,20.75 20.25,20.86 20.5,20.86C20.8,20.86 21.05,20.74 21.23,20.56L23.71,18.08C23.89,17.9 24,17.65 24,17.38C24,17.1 23.89,16.85 23.71,16.67M6.5,5.5L12,11L19,4L18,3L12,9L7.5,4.5H11V3H5V9H6.5V5.5Z" /></svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
<path d="m 12.980469 -0.0117188 c -0.039063 0 -0.074219 0.0039063 -0.113281 0.00781255 h -4.867188 v 0.83203125 c -0.050781 0.292969 0.03125 0.59375 0.226562 0.820313 c 0.191407 0.226562 0.476563 0.351562 0.773438 0.347656 h 1.585938 l -2.585938 2.585937 l -2.292969 -2.292969 c -0.25 -0.261718 -0.625 -0.367187 -0.972656 -0.273437 c -0.351563 0.089844 -0.625 0.363281 -0.714844 0.714844 c -0.09375 0.351562 0.011719 0.722656 0.273438 0.972656 l 3 3 c 0.390625 0.390625 1.023437 0.390625 1.414062 0 l 3.292969 -3.292969 v 1.585938 c -0.003906 0.296875 0.125 0.578125 0.347656 0.769531 c 0.222656 0.195313 0.519532 0.277344 0.808594 0.230469 h 0.84375 v -4.871094 c 0.011719 -0.09375 0.011719 -0.183594 0 -0.277344 v -0.85156225 h -0.855469 c -0.054687 -0.00781255 -0.109375 -0.01171875 -0.164062 -0.00781255 z m 0 0"/>
<path class="error" d="m 14.242188 15.710938 c -0.386719 0.386718 -1.003907 0.386718 -1.386719 0 l -1.042969 -1.039063 l -1.039062 -1.039063 c -0.382813 -0.386718 -0.382813 -1.003906 0 -1.386718 l 0.492187 -0.496094 c -2.035156 -1.105469 -4.496094 -1.105469 -6.53125 0 l 0.492187 0.496094 c 0.382813 0.382812 0.382813 1 0 1.386718 l -1.039062 1.039063 l -1.042969 1.039063 c -0.382812 0.386718 -1 0.386718 -1.386719 0 l -1.039062 -1.039063 c -0.957031 -0.957031 -0.957031 -2.511719 0 -3.46875 l 0.347656 -0.347656 c 3.816406 -3.816407 10.050782 -3.816407 13.867188 0 l 0.347656 0.347656 c 0.957031 0.957031 0.957031 2.511719 0 3.46875 z m 0 0"/>
</svg>

Before

Width:  |  Height:  |  Size: 890 B

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -1 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M23.71 16.67C20.66 13.78 16.54 12 12 12S3.34 13.78.29 16.67c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l2.48 2.48c.18.18.43.29.71.29.27 0 .52-.11.7-.28.79-.74 1.69-1.36 2.66-1.85.33-.16.56-.5.56-.9v-3.1c1.45-.48 3-.73 4.6-.73s3.15.25 4.6.72v3.1c0 .39.23.74.56.9.98.49 1.87 1.12 2.66 1.85.18.18.43.28.7.28.28 0 .53-.11.71-.29l2.48-2.48c.18-.18.29-.43.29-.71a.99.99 0 0 0-.29-.7zM21.16 6.26l-1.41-1.41-3.56 3.55 1.41 1.41s3.45-3.52 3.56-3.55zM13 2h-2v5h2V2zM6.4 9.81L7.81 8.4 4.26 4.84 2.84 6.26c.11.03 3.56 3.55 3.56 3.55z" /></svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
<path class="error" d="m 8 1 c -0.550781 0 -1 0.449219 -1 1 v 3 c 0 0.550781 0.449219 1 1 1 s 1 -0.449219 1 -1 v -3 c 0 -0.550781 -0.449219 -1 -1 -1 z m -7 2 c -0.265625 0 -0.519531 0.105469 -0.707031 0.292969 c -0.3906252 0.390625 -0.3906252 1.023437 0 1.414062 l 2 2 c 0.390625 0.390625 1.023437 0.390625 1.414062 0 s 0.390625 -1.023437 0 -1.414062 l -2 -2 c -0.1875 -0.1875 -0.441406 -0.292969 -0.707031 -0.292969 z m 14 0 c -0.265625 0 -0.519531 0.105469 -0.707031 0.292969 l -2 2 c -0.390625 0.390625 -0.390625 1.023437 0 1.414062 s 1.023437 0.390625 1.414062 0 l 2 -2 c 0.390625 -0.390625 0.390625 -1.023437 0 -1.414062 c -0.1875 -0.1875 -0.441406 -0.292969 -0.707031 -0.292969 z m -7 4.992188 c -2.511719 0 -5.027344 0.957031 -6.9375 2.863281 l -0.34375 0.347656 c -0.957031 0.957031 -0.957031 2.511719 0 3.46875 l 1.039062 1.039063 c 0.382813 0.382812 1.003907 0.382812 1.386719 0 l 1.042969 -1.039063 l 1.039062 -1.039063 c 0.382813 -0.386718 0.382813 -1.003906 0 -1.390624 l -0.496093 -0.492188 c 2.035156 -1.105469 4.503906 -1.105469 6.539062 0 l -0.496093 0.492188 c -0.382813 0.386718 -0.382813 1.003906 0 1.390624 l 1.039062 1.039063 l 1.042969 1.039063 c 0.382812 0.382812 1.003906 0.382812 1.386719 0 l 1.039062 -1.039063 c 0.957031 -0.957031 0.957031 -2.511719 0 -3.46875 l -0.34375 -0.347656 c -1.910156 -1.90625 -4.425781 -2.863281 -6.9375 -2.863281 z m 0 0"/>
</svg>

Before

Width:  |  Height:  |  Size: 812 B

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -1 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M6.62,10.79C8.06,13.62 10.38,15.94 13.21,17.38L15.41,15.18C15.69,14.9 16.08,14.82 16.43,14.93C17.55,15.3 18.75,15.5 20,15.5A1,1 0 0,1 21,16.5V20A1,1 0 0,1 20,21A17,17 0 0,1 3,4A1,1 0 0,1 4,3H7.5A1,1 0 0,1 8.5,4C8.5,5.25 8.7,6.45 9.07,7.57C9.18,7.92 9.1,8.31 8.82,8.59L6.62,10.79Z" /></svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
<path d="m 11 16.003906 c 0.828125 0 1.5 -0.671875 1.5 -1.5 s -0.671875 -1.5 -1.5 -1.5 c -4.433594 0 -8 -3.566406 -8 -8 c 0 -0.828125 -0.671875 -1.5 -1.5 -1.5 s -1.5 0.671875 -1.5 1.5 c 0 6.054688 4.945312 11 11 11 z m 0 0"/>
<path d="m 4 0 v 6 h -1.710938 l -2.289062 -1 v -2.5 c 0 -1.378906 1.121094 -2.5 2.5 -2.5 z m 0 0"/>
<path d="m 6 4.503906 v -3 c 0 -0.828125 -0.671875 -1.49999975 -1.5 -1.49999975 h -1 c -0.828125 0 -1.5 0.67187475 -1.5 1.49999975 v 3 c 0 0.832032 0.671875 1.5 1.5 1.5 h 1 c 0.828125 0 1.5 -0.667968 1.5 -1.5 z m 0 0"/>
<path d="m 16.003906 12.003906 h -6 v 1.710938 l 1 2.289062 h 2.5 c 1.382813 0 2.5 -1.121094 2.5 -2.5 z m 0 0"/>
<path d="m 11.5 10.003906 h 3 c 0.828125 0 1.5 0.671875 1.5 1.5 v 1 c 0 0.828125 -0.671875 1.5 -1.5 1.5 h -3 c -0.828125 0 -1.5 -0.671875 -1.5 -1.5 v -1 c 0 -0.828125 0.671875 -1.5 1.5 -1.5 z m 0 0"/>
</svg>

Before

Width:  |  Height:  |  Size: 574 B

After

Width:  |  Height:  |  Size: 1,015 B

View file

@ -1 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M19,11C19,12.19 18.66,13.3 18.1,14.28L16.87,13.05C17.14,12.43 17.3,11.74 17.3,11H19M15,11.16L9,5.18V5A3,3 0 0,1 12,2A3,3 0 0,1 15,5V11L15,11.16M4.27,3L21,19.73L19.73,21L15.54,16.81C14.77,17.27 13.91,17.58 13,17.72V21H11V17.72C7.72,17.23 5,14.41 5,11H6.7C6.7,14 9.24,16.1 12,16.1C12.81,16.1 13.6,15.91 14.31,15.58L12.65,13.92L12,14A3,3 0 0,1 9,11V10.28L3,4.27L4.27,3Z" /></svg>

Before

Width:  |  Height:  |  Size: 661 B

View file

@ -1 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M12,2A3,3 0 0,1 15,5V11A3,3 0 0,1 12,14A3,3 0 0,1 9,11V5A3,3 0 0,1 12,2M19,11C19,14.53 16.39,17.44 13,17.93V21H11V17.93C7.61,17.44 5,14.53 5,11H7A5,5 0 0,0 12,16A5,5 0 0,0 17,11H19Z" /></svg>

Before

Width:  |  Height:  |  Size: 476 B

View file

@ -1 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M3.27,2L2,3.27L4.73,6H4A1,1 0 0,0 3,7V17A1,1 0 0,0 4,18H16C16.2,18 16.39,17.92 16.54,17.82L19.73,21L21,19.73M21,6.5L17,10.5V7A1,1 0 0,0 16,6H9.82L21,17.18V6.5Z" /></svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
<path d="m 7 3.007812 c -1.367188 0 -2.53125 0.933594 -2.886719 2.195313 l 1.886719 1.886719 v -1.082032 c 0 -0.574218 0.429688 -1 1 -1 h 6 c 0.570312 0 1 0.425782 1 1 v 5 c 0 0.570313 -0.429688 1 -1 1 h -2.082031 l 2 2 h 0.082031 c 1.644531 0 3 -1.355468 3 -3 v -5 c 0 -1.648437 -1.355469 -3 -3 -3 z m -7 0.992188 v 9 h 0.644531 l 3.355469 -3.492188 v 1.5 c 0 1.644532 1.355469 3 3 3 h 3.792969 l -2 -2 h -1.792969 c -0.570312 0 -1 -0.429687 -1 -1 v -1.792968 l -5.210938 -5.214844 z m 0 0"/>
<path d="m 1.5 0.46875 l -1.0625 1.0625 l 14 14 l 1.0625 -1.0625 z m 0 0"/>
</svg>

Before

Width:  |  Height:  |  Size: 454 B

After

Width:  |  Height:  |  Size: 712 B

View file

@ -1 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M17,10.5V7A1,1 0 0,0 16,6H4A1,1 0 0,0 3,7V17A1,1 0 0,0 4,18H16A1,1 0 0,0 17,17V13.5L21,17.5V6.5L17,10.5Z" /></svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
<path d="m 0.683594 4 h -0.683594 v 9 h 0.644531 l 4.355469 -4.535156 z m 0 0"/>
<path d="m 7 3.003906 c -1.644531 0 -3 1.355469 -3 3 v 5 c 0 1.644532 1.355469 3 3 3 h 6 c 1.644531 0 3 -1.355468 3 -3 v -5 c 0 -1.644531 -1.355469 -3 -3 -3 z m 0 2 h 6 c 0.570312 0 1 0.429688 1 1 v 5 c 0 0.574219 -0.429688 1 -1 1 h -6 c -0.570312 0 -1 -0.425781 -1 -1 v -5 c 0 -0.570312 0.429688 -1 1 -1 z m 0 0"/>
</svg>

Before

Width:  |  Height:  |  Size: 399 B

After

Width:  |  Height:  |  Size: 539 B

View file

@ -11,3 +11,4 @@ Type=Application
Categories=GTK;Network;Chat;InstantMessaging;
X-GNOME-UsesNotifications=true
MimeType=x-scheme-handler/xmpp;
X-Purism-FormFactor=Workstation;Mobile;

View file

@ -13,7 +13,7 @@
<attribute name="label" translatable="yes">Preferences</attribute>
</item>
<item>
<attribute name="action">app.open_shortcuts</attribute>
<attribute name="action">win.show-help-overlay</attribute>
<attribute name="label" translatable="yes">Keyboard Shortcuts</attribute>
</item>
<item>

View file

@ -27,7 +27,7 @@
</style>
<child>
<object class="GtkImage">
<property name="icon-name">dino-emoticon-symbolic</property>
<property name="icon-name">emoji-people-symbolic</property>
<property name="icon-size">1</property>
</object>
</child>

View file

@ -194,19 +194,6 @@ public class Dino.Ui.Application : Adw.Application, Dino.Application {
add_action(loop_conversations_bw_action);
set_accels_for_action("app.loop_conversations_bw", KEY_COMBINATION_LOOP_CONVERSATIONS_REV);
SimpleAction open_shortcuts_action = new SimpleAction("open_shortcuts", null);
open_shortcuts_action.activate.connect((variant) => {
Builder builder = new Builder.from_resource("/im/dino/Dino/shortcuts.ui");
ShortcutsWindow dialog = (ShortcutsWindow) builder.get_object("shortcuts-window");
if (!use_csd()) {
dialog.set_titlebar(null);
}
dialog.title = _("Keyboard Shortcuts");
dialog.set_transient_for(get_active_window());
dialog.present();
});
add_action(open_shortcuts_action);
SimpleAction accept_call_action = new SimpleAction("accept-call", new VariantType.tuple(new VariantType[]{VariantType.INT32, VariantType.INT32}));
accept_call_action.activate.connect((variant) => {
int conversation_id = variant.get_child_value(0).get_int32();

View file

@ -113,11 +113,11 @@ public class Dino.Ui.CallBottomBar : Gtk.Box {
public void on_audio_enabled_changed() {
if (audio_enabled) {
audio_image.icon_name = "dino-microphone-symbolic";
audio_image.icon_name = "audio-input-microphone-symbolic";
audio_button.add_css_class("white-button");
audio_button.remove_css_class("transparent-white-button");
} else {
audio_image.icon_name = "dino-microphone-off-symbolic";
audio_image.icon_name = "microphone-disabled-symbolic";
audio_button.remove_css_class("white-button");
audio_button.add_css_class("transparent-white-button");
}

View file

@ -17,8 +17,8 @@ namespace Dino.Ui {
public Box title_box = new Box(Orientation.VERTICAL, 0) { valign=Align.CENTER, hexpand=true };
public MenuButton encryption_button = new MenuButton() { opacity=0, has_frame=false, height_request=30, width_request=30, margin_end=5 };
public CallEncryptionButtonController encryption_button_controller;
public MenuButton menu_button = new MenuButton() { icon_name="open-menu-symbolic", has_frame=false };
public Button invite_button = new Button.from_icon_name("dino-account-plus") { has_frame=false };
public MenuButton menu_button = new MenuButton() { icon_name="view-more-symbolic", has_frame=false };
public Button invite_button = new Button.from_icon_name("contact-new-symbolic") { has_frame=false };
public bool shows_video = false;
public string? participant_name;

View file

@ -94,8 +94,13 @@ public class ChatTextView : Box {
}
}
private bool on_text_input_key_press(uint keyval, uint keycode, Gdk.ModifierType state) {
private bool on_text_input_key_press(EventControllerKey controller, uint keyval, uint keycode, Gdk.ModifierType state) {
if (keyval in new uint[]{ Key.Return, Key.KP_Enter }) {
// Allow the text view to process the event. Needed for IME.
if (text_view.im_context_filter_keypress(controller.get_current_event())) {
return true;
}
if ((state & ModifierType.SHIFT_MASK) > 0) {
text_view.buffer.insert_at_cursor("\n", 1);
} else if (text_view.buffer.text.strip() != "") {

View file

@ -95,7 +95,6 @@ public class ConversationView : Widget, Plugins.ConversationItemCollection, Plug
EventControllerMotion main_wrap_motion_events = new EventControllerMotion();
main_wrap_box.add_controller(main_wrap_motion_events);
main_wrap_motion_events.leave.connect(on_leave_notify_event);
main_wrap_motion_events.enter.connect(update_highlight);
// The buttons of the overlaying message_menu_box may partially overlap the adjacent
// conversation items. We connect to the main_event_box directly to avoid emitting
// the pointer motion events as long as the pointer is above the message menu.

View file

@ -48,7 +48,7 @@ public class FileImageWidget : Box {
string? mime_type = Dino.Util.get_content_type(file_info);
MenuButton button = new MenuButton();
button.icon_name = "open-menu";
button.icon_name = "view-more";
Menu menu_model = new Menu();
menu_model.append(_("Open"), "file.open");
menu_model.append(_("Save as…"), "file.save_as");

View file

@ -11,7 +11,7 @@ class MenuEntry : Plugins.ConversationTitlebarEntry, Object {
StreamInteractor stream_interactor;
private Conversation? conversation;
Button button = new Button() { icon_name="open-menu-symbolic" };
Button button = new Button() { icon_name="view-more-symbolic" };
public MenuEntry(StreamInteractor stream_interactor) {
this.stream_interactor = stream_interactor;

View file

@ -6,7 +6,7 @@ using Dino.Entities;
namespace Dino.Ui {
public class MainWindow : Adw.Window {
public class MainWindow : Adw.ApplicationWindow {
public signal void conversation_selected(Conversation conversation);

View file

@ -38,7 +38,11 @@ public class Handler {
}
public uint8[]? process_incoming_data(uint component_id, uint8[] data) throws Crypto.Error {
if (srtp_session.has_decrypt) {
if (data[0] >= 128) {
if (!srtp_session.has_decrypt) {
debug("Received data before SRTP session is ready, dropping.");
return null;
}
if (component_id == 1) {
if (data.length >= 2 && data[1] >= 192 && data[1] < 224) {
return srtp_session.decrypt_rtcp(data);
@ -46,9 +50,12 @@ public class Handler {
return srtp_session.decrypt_rtp(data);
}
if (component_id == 2) return srtp_session.decrypt_rtcp(data);
} else if (component_id == 1) {
on_data_rec(data);
}
if (component_id == 1 && data.length >= 1 && (data[0] >= 20 && data[0] < 64)) {
on_data_rec(data);
return null;
}
debug("Dropping unknown data from component %u", component_id);
return null;
}
@ -79,7 +86,7 @@ public class Handler {
err = private_key.generate(PKAlgorithm.ECDSA, 256);
throw_if_error(err);
var start_time = new DateTime.now_local().add_days(1);
var start_time = new DateTime.now_local().add_days(-1);
var end_time = start_time.add_days(2);
X509.Certificate cert = X509.Certificate.create();

View file

@ -197,7 +197,11 @@ public class Dino.Plugins.Rtp.VideoWidget : Gtk.Widget, Dino.Plugins.VideoCallWi
caps.get_structure(0).get_int("width", out width);
caps.get_structure(0).get_int("height", out height);
debug("Input resolution changed: %ix%i", width, height);
resolution_changed(width, height);
// Invoke signal on GTK main loop as recipients are likely to use it for doing GTK operations
Idle.add(() => {
resolution_changed(width, height);
return Source.REMOVE;
});
last_input_caps = caps;
}

View file

@ -336,7 +336,7 @@ public class StanzaNode : StanzaEntry {
if (((!)val).length > 1000) {
return indent + "[... retracted for brevity ...]\n";
}
return indent + ((!)val).replace("\n", indent + "\n") + "\n";
return indent + ((!)val).replace("\n", "\n" + indent) + "\n";
}
var sb = new StringBuilder();
if (no_ns) {