}
#endif
-#if defined HAVE_XSYNC && !defined USE_GTK
+#if defined HAVE_XSYNC && !defined USE_GTK && defined HAVE_CLOCK_GETTIME
/* Frame synchronization can't be used in child frames since
they are not directly managed by the compositing manager.
Re-enabling vsync in former child frames also leads to
x_set_use_frame_synchronization (struct frame *f, Lisp_Object arg,
Lisp_Object oldval)
{
-#if !defined USE_GTK && defined HAVE_XSYNC
+#if defined HAVE_XSYNC && !defined USE_GTK && defined HAVE_CLOCK_GETTIME
struct x_display_info *dpyinfo;
dpyinfo = FRAME_DISPLAY_INFO (f);
Starting and ending an update
***********************************************************************/
-#if defined HAVE_XSYNC && !defined USE_GTK
+#if defined HAVE_XSYNC && !defined USE_GTK && defined HAVE_CLOCK_GETTIME
/* Wait for an event matching PREDICATE to show up in the event
queue, or TIMEOUT to elapse.
static void
x_update_begin (struct frame *f)
{
-#if defined HAVE_XSYNC && !defined USE_GTK
+#if defined HAVE_XSYNC && !defined USE_GTK && defined HAVE_CLOCK_GETTIME
/* If F is double-buffered, we can make the entire frame center
around XdbeSwapBuffers. */
#ifdef HAVE_XDBE
if (FRAME_X_DOUBLE_BUFFERED_P (f))
{
-#if defined HAVE_XSYNC && !defined USE_GTK
+#if defined HAVE_XSYNC && !defined USE_GTK && defined HAVE_CLOCK_GETTIME
/* Wait for drawing of the previous frame to complete before
displaying this new frame. */
x_sync_wait_for_frame_drawn_event (f);
swap_info.swap_action = XdbeCopied;
XdbeSwapBuffers (FRAME_X_DISPLAY (f), &swap_info, 1);
-#if defined HAVE_XSYNC && !defined USE_GTK
+#if defined HAVE_XSYNC && !defined USE_GTK && defined HAVE_CLOCK_GETTIME
/* Finish the frame here. */
x_sync_update_finish (f);
#endif
/* If double buffering is disabled, finish the update here.
Otherwise, finish the update when the back buffer is next
displayed. */
-#if defined HAVE_XSYNC && !defined USE_GTK
+#if defined HAVE_XSYNC && !defined USE_GTK && defined HAVE_CLOCK_GETTIME
#ifdef HAVE_XDBE
if (!FRAME_X_DOUBLE_BUFFERED_P (f))
#endif
if (!send_event || time > dpyinfo->last_user_time)
dpyinfo->last_user_time = time;
-#if defined HAVE_XSYNC && !defined USE_GTK
+#if defined HAVE_XSYNC && !defined USE_GTK && defined HAVE_CLOCK_GETTIME
if (!send_event)
{
/* See if the current CLOCK_MONOTONIC time is reasonably close
goto done;
}
-#if defined HAVE_XSYNC && !defined USE_GTK
+#if defined HAVE_XSYNC && !defined USE_GTK && defined HAVE_CLOCK_GETTIME
/* These messages are sent by the compositing manager after a
frame is drawn under extended synchronization. */
if (event->xclient.message_type