Skip to content

Commit af1c27b

Browse files
committed
[linux] remove emission hook when plugin dispose
1 parent 625d44d commit af1c27b

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

packages/window_manager/linux/window_manager_plugin.cc

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ struct _WindowManagerPlugin {
2424
GdkEventButton _event_button;
2525
GdkDevice* grab_pointer;
2626
GtkCssProvider* css_provider;
27+
gulong _button_press_emission_hook_id;
2728
};
2829

2930
G_DEFINE_TYPE(WindowManagerPlugin, window_manager_plugin, g_object_get_type())
@@ -938,6 +939,8 @@ static void window_manager_plugin_handle_method_call(
938939

939940
static void window_manager_plugin_dispose(GObject* object) {
940941
WindowManagerPlugin* self = WINDOW_MANAGER_PLUGIN(object);
942+
g_signal_remove_emission_hook(g_signal_lookup("button-press-event", GTK_TYPE_WIDGET),
943+
self->_button_press_emission_hook_id);
941944
g_clear_object(&self->css_provider);
942945
g_free(self->title_bar_style_);
943946
G_OBJECT_CLASS(window_manager_plugin_parent_class)->dispose(object);
@@ -1121,7 +1124,7 @@ void window_manager_plugin_register_with_registrar(
11211124
G_CALLBACK(on_event_after), plugin);
11221125
find_event_box(plugin, GTK_WIDGET(fl_plugin_registrar_get_view(registrar)));
11231126

1124-
g_signal_add_emission_hook(
1127+
plugin->_button_press_emission_hook_id = g_signal_add_emission_hook(
11251128
g_signal_lookup("button-press-event", GTK_TYPE_WIDGET), 0, on_mouse_press,
11261129
plugin, NULL);
11271130

0 commit comments

Comments
 (0)