Private
Public Access
1
0

fixes crash when trying to copy image

This commit is contained in:
2025-06-18 01:49:33 -07:00
parent d33b50cfb5
commit 4170f13092
7 changed files with 21 additions and 6 deletions

View File

@@ -63,6 +63,8 @@ private abstract class BubbleLayout : Object, ChatItemLayout
public abstract void draw_content(Snapshot snapshot);
public abstract void copy(Gdk.Clipboard clipboard);
private void draw_background(Snapshot snapshot)
{
var width = get_width();

View File

@@ -10,4 +10,5 @@ interface ChatItemLayout : Object
public abstract float get_width();
public abstract void draw(Snapshot snapshot);
public abstract void copy(Gdk.Clipboard clipboard);
}

View File

@@ -47,4 +47,8 @@ class DateItemLayout : Object, ChatItemLayout {
snapshot.restore();
}
public void copy(Gdk.Clipboard clipboard) {
clipboard.set_text(layout.get_text());
}
}

View File

@@ -132,4 +132,8 @@ private class ImageBubbleLayout : BubbleLayout
snapshot.restore();
}
public override void copy(Gdk.Clipboard clipboard) {
clipboard.set_texture(cached_texture);
}
}

View File

@@ -54,4 +54,8 @@ private class SenderAnnotationLayout : Object, ChatItemLayout
snapshot.restore();
}
public void copy(Gdk.Clipboard clipboard) {
clipboard.set_text(sender);
}
}

View File

@@ -91,6 +91,10 @@ private class TextBubbleLayout : BubbleLayout
snapshot.restore();
}
public override void copy(Gdk.Clipboard clipboard) {
clipboard.set_text(message.text);
}
}

View File

@@ -195,11 +195,7 @@ private class TranscriptDrawingArea : Widget
y_offset += chat_item.get_height() + chat_item.vertical_padding;
if (y_offset > bounding_box.y) {
var text_bubble = chat_item as TextBubbleLayout;
var text = text_bubble.message.text;
var clipboard = get_clipboard();
clipboard.set_text(text);
chat_item.copy(get_clipboard());
break;
}
}