[Xfce4-commits] <xfce4-settings:master> Share xserver time function for clipboard manager.
Nick Schermer
noreply at xfce.org
Sun May 8 11:44:01 CEST 2011
Updating branch refs/heads/master
to 682b5e7025e86f3803bb9789925796586abaa09a (commit)
from 1badff8a32e9d931ca266f37acf3eed48db90e46 (commit)
commit 682b5e7025e86f3803bb9789925796586abaa09a
Author: Nick Schermer <nick at xfce.org>
Date: Sat May 7 18:38:27 2011 +0200
Share xserver time function for clipboard manager.
xfsettingsd/xsettings.c | 31 ++++++++++++++++++++++---------
xfsettingsd/xsettings.h | 3 +++
2 files changed, 25 insertions(+), 9 deletions(-)
diff --git a/xfsettingsd/xsettings.c b/xfsettingsd/xsettings.c
index bb35fb9..4d96b56 100644
--- a/xfsettingsd/xsettings.c
+++ b/xfsettingsd/xsettings.c
@@ -1029,6 +1029,26 @@ xfce_xsettings_helper_timestamp_predicate (Display *xdisplay,
+Time
+xfce_xsettings_get_server_time (Display *xdisplay,
+ Window window)
+{
+ Atom timestamp_atom;
+ guchar c = 'a';
+ XEvent xevent;
+
+ /* get the current xserver timestamp */
+ timestamp_atom = XInternAtom (xdisplay, "_TIMESTAMP_PROP", False);
+ XChangeProperty (xdisplay, window, timestamp_atom, timestamp_atom,
+ 8, PropModeReplace, &c, 1);
+ XIfEvent (xdisplay, &xevent, xfce_xsettings_helper_timestamp_predicate,
+ GUINT_TO_POINTER (window));
+
+ return xevent.xproperty.time;
+}
+
+
+
gboolean
xfce_xsettings_helper_register (XfceXSettingsHelper *helper,
GdkDisplay *gdkdisplay,
@@ -1039,11 +1059,9 @@ xfce_xsettings_helper_register (XfceXSettingsHelper *helper,
Window window;
gchar atom_name[64];
Atom selection_atom;
- Atom timestamp_atom;
gint n_screens, n;
- guchar c = 'a';
+
XfceXSettingsScreen *screen;
- XEvent xevent;
Time timestamp;
XClientMessageEvent xev;
gboolean succeed;
@@ -1079,12 +1097,7 @@ xfce_xsettings_helper_register (XfceXSettingsHelper *helper,
XSelectInput (xdisplay, window, PropertyChangeMask);
/* get the current xserver timestamp */
- timestamp_atom = XInternAtom (xdisplay, "_TIMESTAMP_PROP", False);
- XChangeProperty (xdisplay, window, timestamp_atom, timestamp_atom,
- 8, PropModeReplace, &c, 1);
- XIfEvent (xdisplay, &xevent, xfce_xsettings_helper_timestamp_predicate,
- GUINT_TO_POINTER (window));
- timestamp = xevent.xproperty.time;
+ timestamp = xfce_xsettings_get_server_time (xdisplay, window);
/* request ownership of the xsettings selection on this screen */
XSetSelectionOwner (xdisplay, selection_atom, window, timestamp);
diff --git a/xfsettingsd/xsettings.h b/xfsettingsd/xsettings.h
index 76371a6..01ad801 100644
--- a/xfsettingsd/xsettings.h
+++ b/xfsettingsd/xsettings.h
@@ -36,4 +36,7 @@ gboolean xfce_xsettings_helper_register (XfceXSettingsHelper *helper,
GdkDisplay *gdkdisplay,
gboolean force_replace);
+Time xfce_xsettings_get_server_time (Display *display,
+ Window window);
+
#endif /* !__XSETTINGS_H__ */
More information about the Xfce4-commits
mailing list