diff options
author | Matthias Clasen <mclasen@redhat.com> | 2017-11-17 15:39:08 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2017-11-17 15:39:08 -0500 |
commit | dbb18ad5d88584b14bffea31bd9f8327d2d859dd (patch) | |
tree | afbf6b5317a37ab4b5dcbad8ecc154fdf151064f | |
parent | fc579b121a3f93b1c692bdff189162770983cf85 (diff) | |
download | gtk+-dbb18ad5d88584b14bffea31bd9f8327d2d859dd.tar.gz |
gdk: Add a private method to get a server timestamp
This is needed in the clipboard code. We don't make
it public, since that code is destined to eventually
live in gdk anyway.
-rw-r--r-- | gdk/broadway/gdkdisplay-broadway.c | 7 | ||||
-rw-r--r-- | gdk/gdk-private.h | 2 | ||||
-rw-r--r-- | gdk/gdkdisplay.c | 12 | ||||
-rw-r--r-- | gdk/gdkdisplayprivate.h | 1 | ||||
-rw-r--r-- | gdk/win32/gdkdisplay-win32.c | 7 | ||||
-rw-r--r-- | gdk/x11/gdkdisplay-x11.c | 7 |
6 files changed, 36 insertions, 0 deletions
diff --git a/gdk/broadway/gdkdisplay-broadway.c b/gdk/broadway/gdkdisplay-broadway.c index 0d8dbc8b04..c5eede1a94 100644 --- a/gdk/broadway/gdkdisplay-broadway.c +++ b/gdk/broadway/gdkdisplay-broadway.c @@ -317,6 +317,12 @@ gdk_broadway_display_get_setting (GdkDisplay *display, return FALSE; } +static guint32 +gdk_broadway_display_get_last_seen_time (GdkDisplay *display) +{ + return _gdk_broadway_server_get_last_seen_time (GDK_BROADWAY_DISPLAY (display)->server); +} + static void gdk_broadway_display_class_init (GdkBroadwayDisplayClass * class) { @@ -364,4 +370,5 @@ gdk_broadway_display_class_init (GdkBroadwayDisplayClass * class) display_class->get_monitor = gdk_broadway_display_get_monitor; display_class->get_primary_monitor = gdk_broadway_display_get_primary_monitor; display_class->get_setting = gdk_broadway_display_get_setting; + display_class->get_last_seen_time = gdk_broadway_display_get_last_seen_time; } diff --git a/gdk/gdk-private.h b/gdk/gdk-private.h index 14554643bf..0c7ca6681f 100644 --- a/gdk/gdk-private.h +++ b/gdk/gdk-private.h @@ -39,4 +39,6 @@ void gdk_window_move_to_rect (GdkWindow *window, GObject * gdk_event_get_user_data (const GdkEvent *event); +guint32 gdk_display_get_last_seen_time (GdkDisplay *display); + #endif /* __GDK__PRIVATE_H__ */ diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c index dfe9e3e199..ae09c25339 100644 --- a/gdk/gdkdisplay.c +++ b/gdk/gdkdisplay.c @@ -2013,3 +2013,15 @@ gdk_display_setting_changed (GdkDisplay *display, { g_signal_emit (display, signals[SETTING_CHANGED], 0, name); } + +guint32 +gdk_display_get_last_seen_time (GdkDisplay *display) +{ + g_return_val_if_fail (GDK_IS_DISPLAY (display), GDK_CURRENT_TIME); + + if (GDK_DISPLAY_GET_CLASS (display)->get_last_seen_time) + return GDK_DISPLAY_GET_CLASS (display)->get_last_seen_time (display); + + return GDK_CURRENT_TIME; +} + diff --git a/gdk/gdkdisplayprivate.h b/gdk/gdkdisplayprivate.h index f2927ab6d0..d35f4849f7 100644 --- a/gdk/gdkdisplayprivate.h +++ b/gdk/gdkdisplayprivate.h @@ -219,6 +219,7 @@ struct _GdkDisplayClass gboolean (*get_setting) (GdkDisplay *display, const char *name, GValue *value); + guint32 (*get_last_seen_time) (GdkDisplay *display); /* Signals */ void (*opened) (GdkDisplay *display); diff --git a/gdk/win32/gdkdisplay-win32.c b/gdk/win32/gdkdisplay-win32.c index b3b6013f33..4643f1698b 100644 --- a/gdk/win32/gdkdisplay-win32.c +++ b/gdk/win32/gdkdisplay-win32.c @@ -1208,6 +1208,12 @@ gdk_win32_display_get_setting (GdkDisplay *display, return _gdk_win32_get_setting (name, value); } +static guint32 +gdk_win32_display_get_last_seen_time (GdkDisplay *display) +{ + return GetMessageTime (); +} + static void gdk_win32_display_class_init (GdkWin32DisplayClass *klass) { @@ -1266,6 +1272,7 @@ gdk_win32_display_class_init (GdkWin32DisplayClass *klass) #endif display_class->get_setting = gdk_win32_display_get_setting; + display_class->get_last_seen_time = gdk_win32_display_get_last_seen_time; _gdk_win32_windowing_init (); } diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c index a9d30fc61b..4e022c635b 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -3158,6 +3158,12 @@ gdk_x11_display_get_toplevel_windows (GdkDisplay *display) return GDK_X11_DISPLAY (display)->toplevels; } +static guint32 +gdk_x11_display_get_last_seen_time (GdkDisplay *display) +{ + return gdk_x11_get_server_time (GDK_X11_DISPLAY (display)->leader_gdk_window); +} + static void gdk_x11_display_class_init (GdkX11DisplayClass * class) { @@ -3215,6 +3221,7 @@ gdk_x11_display_class_init (GdkX11DisplayClass * class) display_class->get_monitor = gdk_x11_display_get_monitor; display_class->get_primary_monitor = gdk_x11_display_get_primary_monitor; display_class->get_setting = gdk_x11_display_get_setting; + display_class->get_last_seen_time = gdk_x11_display_get_last_seen_time; _gdk_x11_windowing_init (); } |