messenger-gtk

Gtk+3 graphical user interfaces for GNUnet Messenger
Log | Files | Refs | Submodules | README | LICENSE

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:
MREADME.md | 2+-
Msrc/ui/chat.c | 32++++++++++++++++++++++++--------
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);