[gtk+] display: Make opened signal have a vfunc
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] display: Make opened signal have a vfunc
- Date: Fri, 19 Apr 2013 20:26:46 +0000 (UTC)
commit c86ac95ebf53e0d132bcb87c19303c2e645c1488
Author: Benjamin Otte <otte redhat com>
Date: Wed Apr 17 22:53:42 2013 +0100
display: Make opened signal have a vfunc
... instead of g_signal_connect()ing in every init function.
gdk/gdkdisplay.c | 53 ++++++++++++++++++++++++-------------------------
gdk/gdkdisplayprivate.h | 1 +
2 files changed, 27 insertions(+), 27 deletions(-)
---
diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c
index dbddfe8..d8fe13e 100644
--- a/gdk/gdkdisplay.c
+++ b/gdk/gdkdisplay.c
@@ -88,6 +88,29 @@ gdk_display_real_make_default (GdkDisplay *display)
}
static void
+device_removed_cb (GdkDeviceManager *device_manager,
+ GdkDevice *device,
+ GdkDisplay *display)
+{
+ g_hash_table_remove (display->multiple_click_info, device);
+ g_hash_table_remove (display->device_grabs, device);
+ g_hash_table_remove (display->pointers_info, device);
+
+ /* FIXME: change core pointer and remove from device list */
+}
+
+static void
+gdk_display_real_opened (GdkDisplay *display)
+{
+ GdkDeviceManager *device_manager;
+
+ device_manager = gdk_display_get_device_manager (display);
+
+ g_signal_connect (device_manager, "device-removed",
+ G_CALLBACK (device_removed_cb), display);
+}
+
+static void
gdk_display_class_init (GdkDisplayClass *class)
{
GObjectClass *object_class = G_OBJECT_CLASS (class);
@@ -98,6 +121,7 @@ gdk_display_class_init (GdkDisplayClass *class)
class->get_app_launch_context = gdk_display_real_get_app_launch_context;
class->window_type = GDK_TYPE_WINDOW;
+ class->opened = gdk_display_real_opened;
class->make_default = gdk_display_real_make_default;
/**
@@ -111,7 +135,8 @@ gdk_display_class_init (GdkDisplayClass *class)
g_signal_new (g_intern_static_string ("opened"),
G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_LAST,
- 0, NULL, NULL,
+ G_STRUCT_OFFSET (GdkDisplayClass, opened),
+ NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
@@ -166,29 +191,6 @@ free_device_grabs_foreach (gpointer key,
}
static void
-device_removed_cb (GdkDeviceManager *device_manager,
- GdkDevice *device,
- GdkDisplay *display)
-{
- g_hash_table_remove (display->multiple_click_info, device);
- g_hash_table_remove (display->device_grabs, device);
- g_hash_table_remove (display->pointers_info, device);
-
- /* FIXME: change core pointer and remove from device list */
-}
-
-static void
-gdk_display_opened (GdkDisplay *display)
-{
- GdkDeviceManager *device_manager;
-
- device_manager = gdk_display_get_device_manager (display);
-
- g_signal_connect (device_manager, "device-removed",
- G_CALLBACK (device_removed_cb), display);
-}
-
-static void
gdk_display_init (GdkDisplay *display)
{
display->double_click_time = 250;
@@ -205,9 +207,6 @@ gdk_display_init (GdkDisplay *display)
display->multiple_click_info = g_hash_table_new_full (NULL, NULL, NULL,
(GDestroyNotify) g_free);
- g_signal_connect (display, "opened",
- G_CALLBACK (gdk_display_opened), NULL);
-
_gdk_display_manager_add_display (gdk_display_manager_get (), display);
}
diff --git a/gdk/gdkdisplayprivate.h b/gdk/gdkdisplayprivate.h
index 69fffb1..582c279 100644
--- a/gdk/gdkdisplayprivate.h
+++ b/gdk/gdkdisplayprivate.h
@@ -237,6 +237,7 @@ struct _GdkDisplayClass
const gchar *text);
/* Signals */
+ void (*opened) (GdkDisplay *display);
void (*closed) (GdkDisplay *display,
gboolean is_error);
};
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]