commit 116950a5b6e91309281696aa4f7aa0857185a6d2
parent a33950ee5629586f631e63dceb984346d8702b85
Author: TheJackiMonster <thejackimonster@gmail.com>
Date: Mon, 3 Jan 2022 21:57:31 +0100
Fixed some warnings of invalidly queued draw signals
Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
Diffstat:
4 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/src/ui/new_contact.c b/src/ui/new_contact.c
@@ -324,7 +324,7 @@ ui_new_contact_dialog_init(MESSENGER_Application *app,
handle
);
- g_signal_connect(
+ handle->id_draw_signal = g_signal_connect(
handle->id_drawing_area,
"draw",
G_CALLBACK(handle_id_drawing_area_draw),
@@ -377,6 +377,11 @@ ui_new_contact_dialog_cleanup(UI_NEW_CONTACT_Handle *handle)
handle->idle_processing = 0;
+ g_signal_handler_disconnect(
+ handle->id_drawing_area,
+ handle->id_draw_signal
+ );
+
g_object_unref(handle->builder);
if (handle->image)
diff --git a/src/ui/new_contact.h b/src/ui/new_contact.h
@@ -47,6 +47,8 @@ typedef struct UI_NEW_CONTACT_Handle
GtkDrawingArea *id_drawing_area;
GtkEntry *id_entry;
+ gulong id_draw_signal;
+
GtkButton *cancel_button;
GtkButton *confirm_button;
diff --git a/src/ui/send_file.c b/src/ui/send_file.c
@@ -94,7 +94,8 @@ handle_file_redraw_animation(gpointer user_data)
handle->redraw_animation = 0;
- if (handle->file_drawing_area)
+ if ((handle->file_drawing_area) &&
+ ((handle->image) || (handle->animation) || (handle->animation_iter)))
gtk_widget_queue_draw(GTK_WIDGET(handle->file_drawing_area));
return FALSE;
@@ -224,7 +225,8 @@ handle_file_chooser_button_file_set(GtkFileChooserButton *file_chooser_button,
g_free(filename);
}
- gtk_widget_queue_draw(GTK_WIDGET(handle->file_drawing_area));
+ if (handle->file_drawing_area)
+ gtk_widget_queue_draw(GTK_WIDGET(handle->file_drawing_area));
}
void
@@ -257,7 +259,7 @@ ui_send_file_dialog_init(MESSENGER_Application *app,
gtk_builder_get_object(handle->builder, "file_chooser_button")
);
- g_signal_connect(
+ handle->file_draw_signal = g_signal_connect(
handle->file_drawing_area,
"draw",
G_CALLBACK(handle_file_drawing_area_draw),
@@ -330,5 +332,10 @@ ui_send_file_dialog_cleanup(UI_SEND_FILE_Handle *handle)
{
_clear_file_preview_data(handle);
+ g_signal_handler_disconnect(
+ handle->file_drawing_area,
+ handle->file_draw_signal
+ );
+
g_object_unref(handle->builder);
}
diff --git a/src/ui/send_file.h b/src/ui/send_file.h
@@ -37,6 +37,8 @@ typedef struct UI_SEND_FILE_Handle
GtkDrawingArea *file_drawing_area;
GtkFileChooserButton *file_chooser_button;
+ gulong file_draw_signal;
+
GtkButton *cancel_button;
GtkButton *send_button;