summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdk/gdkdisplay.c24
-rw-r--r--gdk/gdkdisplay.h6
-rw-r--r--gdk/gdkdisplayprivate.h7
3 files changed, 35 insertions, 2 deletions
diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c
index 5e75773dae..f8989c623d 100644
--- a/gdk/gdkdisplay.c
+++ b/gdk/gdkdisplay.c
@@ -84,6 +84,7 @@ enum {
SEAT_REMOVED,
MONITOR_ADDED,
MONITOR_REMOVED,
+ SETTING_CHANGED,
LAST_SIGNAL
};
@@ -341,6 +342,14 @@ gdk_display_class_init (GdkDisplayClass *class)
0, NULL, NULL,
g_cclosure_marshal_VOID__OBJECT,
G_TYPE_NONE, 1, GDK_TYPE_MONITOR);
+
+ signals[SETTING_CHANGED] =
+ g_signal_new (g_intern_static_string ("setting-changed"),
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ 0, NULL, NULL,
+ NULL,
+ G_TYPE_NONE, 1, G_TYPE_STRING | G_SIGNAL_TYPE_STATIC_SCOPE);
}
static void
@@ -2223,3 +2232,18 @@ gdk_display_emit_opened (GdkDisplay *display)
{
g_signal_emit (display, signals[OPENED], 0);
}
+
+gboolean
+gdk_display_get_setting (GdkDisplay *display,
+ const char *name,
+ GValue *value)
+{
+ return gdk_screen_get_setting (gdk_display_get_default_screen (display), name, value);
+}
+
+void
+gdk_display_setting_changed (GdkDisplay *display,
+ const char *name)
+{
+ g_signal_emit (display, signals[SETTING_CHANGED], 0, name);
+}
diff --git a/gdk/gdkdisplay.h b/gdk/gdkdisplay.h
index d099ab4487..d9168481a5 100644
--- a/gdk/gdkdisplay.h
+++ b/gdk/gdkdisplay.h
@@ -154,6 +154,12 @@ GDK_AVAILABLE_IN_3_22
GdkMonitor * gdk_display_get_monitor_at_window (GdkDisplay *display,
GdkWindow *window);
+GDK_AVAILABLE_IN_3_94
+gboolean gdk_display_get_setting (GdkDisplay *display,
+ const char *name,
+ GValue *value);
+
+
G_END_DECLS
diff --git a/gdk/gdkdisplayprivate.h b/gdk/gdkdisplayprivate.h
index cd3ef346d1..16969e4cf1 100644
--- a/gdk/gdkdisplayprivate.h
+++ b/gdk/gdkdisplayprivate.h
@@ -225,8 +225,8 @@ struct _GdkDisplayClass
/* Signals */
void (*opened) (GdkDisplay *display);
- void (*closed) (GdkDisplay *display,
- gboolean is_error);
+ void (*closed) (GdkDisplay *display,
+ gboolean is_error);
};
@@ -303,6 +303,9 @@ void gdk_display_monitor_removed (GdkDisplay *display
GdkMonitor *monitor);
void gdk_display_emit_opened (GdkDisplay *display);
+void gdk_display_setting_changed (GdkDisplay *display,
+ const char *name);
+
G_END_DECLS
#endif /* __GDK_DISPLAY_PRIVATE_H__ */