[nautilus] general: Clean up signal handler disconnection
- From: António Fernandes <antoniof src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus] general: Clean up signal handler disconnection
- Date: Thu, 9 Jul 2020 10:04:28 +0000 (UTC)
commit d275c8bde184ca1fa71292e2f2ed5e911b731531
Author: Joshua Lee <lee son wai gmail com>
Date: Tue Jun 16 18:46:53 2020 +0100
general: Clean up signal handler disconnection
Make use of GLib's new g_clear_signal_handler() function to simplify nautilus'
signal handler disconnection and reduce unneccessary code.
Fixes: #1522
eel/eel-canvas.c | 6 +-----
eel/eel-canvas.h | 2 +-
src/animation/egg-animation.c | 5 ++---
src/animation/ide-box-theatric.c | 9 +++------
src/nautilus-compress-dialog-controller.c | 9 ++-------
src/nautilus-file-undo-manager.c | 7 +------
src/nautilus-files-view.c | 18 ++++--------------
src/nautilus-new-folder-dialog-controller.c | 9 ++-------
src/nautilus-pathbar.c | 14 +++++---------
src/nautilus-rename-file-popover-controller.c | 26 ++++++--------------------
src/nautilus-trash-bar.c | 6 +-----
src/nautilus-tree-view-drag-dest.c | 8 +++-----
src/nautilus-window-slot.c | 24 ++++--------------------
src/nautilus-window.c | 11 +++--------
14 files changed, 38 insertions(+), 116 deletions(-)
---
diff --git a/eel/eel-canvas.c b/eel/eel-canvas.c
index e3ccfbd5d..de3902f6b 100644
--- a/eel/eel-canvas.c
+++ b/eel/eel-canvas.c
@@ -2248,11 +2248,7 @@ eel_canvas_destroy (GtkWidget *object)
canvas = EEL_CANVAS (object);
- if (canvas->root_destroy_id)
- {
- g_signal_handler_disconnect (G_OBJECT (canvas->root), canvas->root_destroy_id);
- canvas->root_destroy_id = 0;
- }
+ g_clear_signal_handler (&canvas->root_destroy_id, G_OBJECT (canvas->root));
if (canvas->root)
{
EelCanvasItem *root = canvas->root;
diff --git a/eel/eel-canvas.h b/eel/eel-canvas.h
index 62e50a857..f406ca0a4 100644
--- a/eel/eel-canvas.h
+++ b/eel/eel-canvas.h
@@ -355,7 +355,7 @@ struct _EelCanvas {
guint idle_id;
/* Signal handler ID for destruction of the root item */
- guint root_destroy_id;
+ gulong root_destroy_id;
/* Internal pixel offsets when zoomed out */
int zoom_xofs, zoom_yofs;
diff --git a/src/animation/egg-animation.c b/src/animation/egg-animation.c
index c8b025874..7ceba88c4 100644
--- a/src/animation/egg-animation.c
+++ b/src/animation/egg-animation.c
@@ -675,9 +675,8 @@ egg_animation_stop (EggAnimation *animation)
if (animation->frame_clock)
{
gdk_frame_clock_end_updating (animation->frame_clock);
- g_signal_handler_disconnect (animation->frame_clock, animation->tween_handler);
- g_signal_handler_disconnect (animation->frame_clock, animation->after_paint_handler);
- animation->tween_handler = 0;
+ g_clear_signal_handler (&animation->tween_handler, animation->frame_clock);
+ g_clear_signal_handler (&animation->after_paint_handler, animation->frame_clock);
}
else
{
diff --git a/src/animation/ide-box-theatric.c b/src/animation/ide-box-theatric.c
index cad8d4a44..1e882eae8 100644
--- a/src/animation/ide-box-theatric.c
+++ b/src/animation/ide-box-theatric.c
@@ -40,7 +40,7 @@ struct _IdeBoxTheatric
GdkRGBA background_rgba;
gdouble alpha;
- guint draw_handler;
+ gulong draw_handler;
guint background_set : 1;
guint pixbuf_failed : 1;
@@ -194,11 +194,8 @@ ide_box_theatric_dispose (GObject *object)
if (self->target)
{
- if (self->draw_handler && self->toplevel)
- {
- g_signal_handler_disconnect (self->toplevel, self->draw_handler);
- self->draw_handler = 0;
- }
+ if (self->toplevel)
+ g_clear_signal_handler (&self->draw_handler, self->toplevel);
g_object_remove_weak_pointer (G_OBJECT (self->target),
(gpointer *) &self->target);
self->target = NULL;
diff --git a/src/nautilus-compress-dialog-controller.c b/src/nautilus-compress-dialog-controller.c
index 34caaf013..d8aa792ee 100644
--- a/src/nautilus-compress-dialog-controller.c
+++ b/src/nautilus-compress-dialog-controller.c
@@ -39,7 +39,7 @@ struct _NautilusCompressDialogController
const char *extension;
- gint response_handler_id;
+ gulong response_handler_id;
};
G_DEFINE_TYPE (NautilusCompressDialogController, nautilus_compress_dialog_controller,
NAUTILUS_TYPE_FILE_NAME_WIDGET_CONTROLLER);
@@ -329,12 +329,7 @@ nautilus_compress_dialog_controller_finalize (GObject *object)
if (self->compress_dialog != NULL)
{
- if (self->response_handler_id > 0)
- {
- g_signal_handler_disconnect (self->compress_dialog,
- self->response_handler_id);
- self->response_handler_id = 0;
- }
+ g_clear_signal_handler (&self->response_handler_id, self->compress_dialog);
gtk_widget_destroy (self->compress_dialog);
self->compress_dialog = NULL;
}
diff --git a/src/nautilus-file-undo-manager.c b/src/nautilus-file-undo-manager.c
index 9ef6b1d79..2a886176f 100644
--- a/src/nautilus-file-undo-manager.c
+++ b/src/nautilus-file-undo-manager.c
@@ -109,12 +109,7 @@ nautilus_file_undo_manager_finalize (GObject *object)
{
NautilusFileUndoManager *self = NAUTILUS_FILE_UNDO_MANAGER (object);
- if (self->trash_signal_id != 0)
- {
- g_signal_handler_disconnect (nautilus_trash_monitor_get (),
- self->trash_signal_id);
- self->trash_signal_id = 0;
- }
+ g_clear_signal_handler (&self->trash_signal_id, nautilus_trash_monitor_get ());
file_undo_manager_clear (self);
diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c
index 5be047781..75ed250b8 100644
--- a/src/nautilus-files-view.c
+++ b/src/nautilus-files-view.c
@@ -277,8 +277,8 @@ typedef struct
GCancellable *starred_cancellable;
NautilusTagManager *tag_manager;
- gint name_accepted_handler_id;
- gint cancelled_handler_id;
+ gulong name_accepted_handler_id;
+ gulong cancelled_handler_id;
} NautilusFilesViewPrivate;
/**
@@ -1969,18 +1969,8 @@ disconnect_rename_controller_signals (NautilusFilesView *self)
priv = nautilus_files_view_get_instance_private (self);
- if (priv->name_accepted_handler_id != 0)
- {
- g_signal_handler_disconnect (priv->rename_file_controller, priv->name_accepted_handler_id);
- priv->name_accepted_handler_id = 0;
- }
-
- if (priv->cancelled_handler_id != 0)
- {
- g_signal_handler_disconnect (priv->rename_file_controller,
- priv->cancelled_handler_id);
- priv->cancelled_handler_id = 0;
- }
+ g_clear_signal_handler (&priv->name_accepted_handler_id, priv->rename_file_controller);
+ g_clear_signal_handler (&priv->cancelled_handler_id, priv->rename_file_controller);
}
static void
diff --git a/src/nautilus-new-folder-dialog-controller.c b/src/nautilus-new-folder-dialog-controller.c
index 99dcc2f23..17406a016 100644
--- a/src/nautilus-new-folder-dialog-controller.c
+++ b/src/nautilus-new-folder-dialog-controller.c
@@ -32,7 +32,7 @@ struct _NautilusNewFolderDialogController
gboolean with_selection;
- gint response_handler_id;
+ gulong response_handler_id;
};
G_DEFINE_TYPE (NautilusNewFolderDialogController, nautilus_new_folder_dialog_controller,
NAUTILUS_TYPE_FILE_NAME_WIDGET_CONTROLLER)
@@ -171,12 +171,7 @@ nautilus_new_folder_dialog_controller_finalize (GObject *object)
if (self->new_folder_dialog != NULL)
{
- if (self->response_handler_id)
- {
- g_signal_handler_disconnect (self->new_folder_dialog,
- self->response_handler_id);
- self->response_handler_id = 0;
- }
+ g_clear_signal_handler (&self->response_handler_id, self->new_folder_dialog);
gtk_widget_destroy (self->new_folder_dialog);
self->new_folder_dialog = NULL;
}
diff --git a/src/nautilus-pathbar.c b/src/nautilus-pathbar.c
index d59bb0d34..edc0fff56 100644
--- a/src/nautilus-pathbar.c
+++ b/src/nautilus-pathbar.c
@@ -93,7 +93,7 @@ struct _NautilusPathBar
gpointer current_button_data;
GList *button_list;
- guint settings_signal_id;
+ gulong settings_signal_id;
GActionGroup *action_group;
@@ -285,15 +285,11 @@ static void
remove_settings_signal (NautilusPathBar *self,
GdkScreen *screen)
{
- if (self->settings_signal_id != 0)
- {
- GtkSettings *settings;
+ GtkSettings *settings;
- settings = gtk_settings_get_for_screen (screen);
- g_signal_handler_disconnect (settings,
- self->settings_signal_id);
- self->settings_signal_id = 0;
- }
+ settings = gtk_settings_get_for_screen (screen);
+
+ g_clear_signal_handler (&self->settings_signal_id, settings);
}
static void
diff --git a/src/nautilus-rename-file-popover-controller.c b/src/nautilus-rename-file-popover-controller.c
index c1c049dab..903b54ff4 100644
--- a/src/nautilus-rename-file-popover-controller.c
+++ b/src/nautilus-rename-file-popover-controller.c
@@ -41,9 +41,9 @@ struct _NautilusRenameFilePopoverController
GtkWidget *name_entry;
GtkWidget *name_label;
- gint closed_handler_id;
- gint file_changed_handler_id;
- gint key_press_event_handler_id;
+ gulong closed_handler_id;
+ gulong file_changed_handler_id;
+ gulong key_press_event_handler_id;
};
G_DEFINE_TYPE (NautilusRenameFilePopoverController, nautilus_rename_file_popover_controller,
NAUTILUS_TYPE_FILE_NAME_WIDGET_CONTROLLER)
@@ -53,23 +53,9 @@ disconnect_signal_handlers (NautilusRenameFilePopoverController *self)
{
g_assert (NAUTILUS_IS_RENAME_FILE_POPOVER_CONTROLLER (self));
- if (self->closed_handler_id != 0)
- {
- g_signal_handler_disconnect (self->rename_file_popover, self->closed_handler_id);
- self->closed_handler_id = 0;
- }
-
- if (self->file_changed_handler_id != 0)
- {
- g_signal_handler_disconnect (self->target_file, self->file_changed_handler_id);
- self->file_changed_handler_id = 0;
- }
-
- if (self->key_press_event_handler_id != 0)
- {
- g_signal_handler_disconnect (self->name_entry, self->key_press_event_handler_id);
- self->key_press_event_handler_id = 0;
- }
+ g_clear_signal_handler (&self->closed_handler_id, self->rename_file_popover);
+ g_clear_signal_handler (&self->file_changed_handler_id, self->target_file);
+ g_clear_signal_handler (&self->key_press_event_handler_id, self->name_entry);
}
static void
diff --git a/src/nautilus-trash-bar.c b/src/nautilus-trash-bar.c
index 8c63333d2..fefb05cc5 100644
--- a/src/nautilus-trash-bar.c
+++ b/src/nautilus-trash-bar.c
@@ -109,11 +109,7 @@ nautilus_trash_bar_dispose (GObject *obj)
{
NautilusTrashBar *bar = NAUTILUS_TRASH_BAR (obj);
- if (bar->selection_handler_id)
- {
- g_signal_handler_disconnect (bar->view, bar->selection_handler_id);
- bar->selection_handler_id = 0;
- }
+ g_clear_signal_handler (&bar->selection_handler_id, bar->view);
G_OBJECT_CLASS (nautilus_trash_bar_parent_class)->dispose (obj);
}
diff --git a/src/nautilus-tree-view-drag-dest.c b/src/nautilus-tree-view-drag-dest.c
index c32f86568..379693ffd 100644
--- a/src/nautilus-tree-view-drag-dest.c
+++ b/src/nautilus-tree-view-drag-dest.c
@@ -55,7 +55,7 @@ struct _NautilusTreeViewDragDestDetails
GList *drag_list;
guint hover_id;
- guint highlight_id;
+ gulong highlight_id;
guint scroll_id;
guint expand_id;
@@ -216,11 +216,9 @@ static void
set_widget_highlight (NautilusTreeViewDragDest *dest,
gboolean highlight)
{
- if (!highlight && dest->details->highlight_id)
+ if (!highlight)
{
- g_signal_handler_disconnect (dest->details->tree_view,
- dest->details->highlight_id);
- dest->details->highlight_id = 0;
+ g_clear_signal_handler (&dest->details->highlight_id, dest->details->tree_view);
gtk_widget_queue_draw (GTK_WIDGET (dest->details->tree_view));
}
diff --git a/src/nautilus-window-slot.c b/src/nautilus-window-slot.c
index 0808496d2..3bf011519 100644
--- a/src/nautilus-window-slot.c
+++ b/src/nautilus-window-slot.c
@@ -477,26 +477,10 @@ hide_query_editor (NautilusWindowSlot *self)
priv = nautilus_window_slot_get_instance_private (self);
view = nautilus_window_slot_get_current_view (self);
- if (priv->qe_changed_id > 0)
- {
- g_signal_handler_disconnect (priv->query_editor, priv->qe_changed_id);
- priv->qe_changed_id = 0;
- }
- if (priv->qe_cancel_id > 0)
- {
- g_signal_handler_disconnect (priv->query_editor, priv->qe_cancel_id);
- priv->qe_cancel_id = 0;
- }
- if (priv->qe_activated_id > 0)
- {
- g_signal_handler_disconnect (priv->query_editor, priv->qe_activated_id);
- priv->qe_activated_id = 0;
- }
- if (priv->qe_focus_view_id > 0)
- {
- g_signal_handler_disconnect (priv->query_editor, priv->qe_focus_view_id);
- priv->qe_focus_view_id = 0;
- }
+ g_clear_signal_handler (&priv->qe_changed_id, priv->query_editor);
+ g_clear_signal_handler (&priv->qe_cancel_id, priv->query_editor);
+ g_clear_signal_handler (&priv->qe_activated_id, priv->query_editor);
+ g_clear_signal_handler (&priv->qe_focus_view_id, priv->query_editor);
nautilus_query_editor_set_query (priv->query_editor, NULL);
diff --git a/src/nautilus-window.c b/src/nautilus-window.c
index b1685b5b0..1723d8a81 100644
--- a/src/nautilus-window.c
+++ b/src/nautilus-window.c
@@ -146,7 +146,7 @@ struct _NautilusWindow
gchar *export_handle;
guint sidebar_width_handler_id;
- guint bookmarks_id;
+ gulong bookmarks_id;
GQueue *tab_data_queue;
@@ -2293,6 +2293,7 @@ nautilus_window_destroy (GtkWidget *object)
GList *slots_copy;
window = NAUTILUS_WINDOW (object);
+ application = NAUTILUS_APPLICATION (gtk_window_get_application (GTK_WINDOW (window)));
DEBUG ("Destroying window");
@@ -2312,13 +2313,7 @@ nautilus_window_destroy (GtkWidget *object)
window->active_slot = NULL;
- if (window->bookmarks_id != 0)
- {
- application = NAUTILUS_APPLICATION (gtk_window_get_application (GTK_WINDOW (window)));
- g_signal_handler_disconnect (nautilus_application_get_bookmarks (application),
- window->bookmarks_id);
- window->bookmarks_id = 0;
- }
+ g_clear_signal_handler (&window->bookmarks_id, nautilus_application_get_bookmarks (application));
g_clear_handle_id (&window->in_app_notification_undo_timeout_id, g_source_remove);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]