commit 1388979c7583529615418392a553854bb7129557
parent 46a64920c30ff0e7e94bd1743c3d661ef41211d5
Author: Jacki <jacki@thejackimonster.de>
Date: Wed, 8 May 2024 13:19:42 +0200
Simulate long press via right-click
Signed-off-by: Jacki <jacki@thejackimonster.de>
Diffstat:
2 files changed, 25 insertions(+), 9 deletions(-)
diff --git a/README.md b/README.md
@@ -73,7 +73,7 @@ The application will utilize gstreamer to scan a video feed from your camera for
- [gtksink](https://gstreamer.freedesktop.org/documentation/gtk/gtksink.html?gi-language=c)
- [oggdemux](https://gstreamer.freedesktop.org/documentation/ogg/oggdemux.html?gi-language=c)
- [oggmux](https://gstreamer.freedesktop.org/documentation/ogg/oggmux.html?gi-language=c)
- - [v4l2src](https://gstreamer.freedesktop.org/documentation/video4linux2/v4l2src.html?gi-language=c)
+ - pipewiresrc
- [videoconvert](https://gstreamer.freedesktop.org/documentation/videoconvertscale/videoconvert.html?gi-language=c)
- [vorbisdec](https://gstreamer.freedesktop.org/documentation/vorbis/vorbisdec.html?gi-language=c)
- [vorbisenc](https://gstreamer.freedesktop.org/documentation/vorbis/vorbisenc.html?gi-language=c)
diff --git a/src/ui/chat.c b/src/ui/chat.c
@@ -858,13 +858,17 @@ handle_send_now_button_click(GtkButton *button,
static gboolean
handle_send_record_button_pressed(GtkWidget *widget,
- UNUSED GdkEvent *event,
+ GdkEvent *event,
gpointer user_data)
{
- g_assert((widget) && (user_data));
+ g_assert((widget) && (event) && (user_data));
+ GdkEventButton *ev = (GdkEventButton*) event;
MESSENGER_Application *app = (MESSENGER_Application*) user_data;
+ if (1 != ev->button)
+ return FALSE;
+
GtkTextView *text_view = GTK_TEXT_VIEW(
g_object_get_qdata(G_OBJECT(widget), app->quarks.widget)
);
@@ -942,21 +946,33 @@ handle_send_record_button_pressed(GtkWidget *widget,
static gboolean
handle_send_record_button_released(GtkWidget *widget,
- UNUSED GdkEvent *event,
+ GdkEvent *event,
gpointer user_data)
{
- g_assert((widget) && (user_data));
+ g_assert((widget) && (event) && (user_data));
+ GdkEventButton *ev = (GdkEventButton*) event;
MESSENGER_Application *app = (MESSENGER_Application*) user_data;
- GtkTextView *text_view = GTK_TEXT_VIEW(
- g_object_get_qdata(G_OBJECT(widget), app->quarks.widget)
- );
-
UI_CHAT_Handle *handle = (UI_CHAT_Handle*) (
g_object_get_qdata(G_OBJECT(widget), app->quarks.ui)
);
+ if ((gtk_stack_get_visible_child(handle->send_stack) == handle->send_text_box) &&
+ (3 == ev->button))
+ {
+ handle->send_pressed_time = UI_CHAT_SEND_BUTTON_HOLD_INTERVAL;
+
+ handle_send_record_button_click(GTK_BUTTON(widget), user_data);
+ return FALSE;
+ }
+ else if (1 != ev->button)
+ return FALSE;
+
+ GtkTextView *text_view = GTK_TEXT_VIEW(
+ g_object_get_qdata(G_OBJECT(widget), app->quarks.widget)
+ );
+
handle->send_pressed_time = g_get_monotonic_time() - handle->send_pressed_time;
GtkTextBuffer *buffer = gtk_text_view_get_buffer(text_view);