parent
271e6c7793
commit
5c27f72cac
|
@ -103,6 +103,7 @@ Application Window Properties
|
||||||
Window Manager Protocols
|
Window Manager Protocols
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
[ ] _NET_WM_PING
|
[ ] _NET_WM_PING
|
||||||
|
[+] _NET_WM_SYNC_REQUEST
|
||||||
|
|
||||||
|
|
||||||
GNOME Compliance (_WIN_... hints)
|
GNOME Compliance (_WIN_... hints)
|
||||||
|
|
|
@ -195,8 +195,8 @@ if test "x$enable_zoom" = "xyes"; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_ARG_ENABLE(xsync,
|
AC_ARG_ENABLE(xsync,
|
||||||
[ --enable-xsync compile with SYNC support (experimental!) @<:@default=no@:>@],,
|
[ --enable-xsync compile with SYNC support @<:@default=yes@:>@],,
|
||||||
enable_xsync=no)
|
enable_xsync=yes)
|
||||||
if test "x$enable_xsync" = "xyes"; then
|
if test "x$enable_xsync" = "xyes"; then
|
||||||
AC_CHECK_LIB(Xext, XSyncQueryExtension,
|
AC_CHECK_LIB(Xext, XSyncQueryExtension,
|
||||||
AC_DEFINE(HAS_XSYNC, 1, [SYNC support]),
|
AC_DEFINE(HAS_XSYNC, 1, [SYNC support]),
|
||||||
|
@ -318,12 +318,12 @@ echo " Zoom ......................... $enable_zoom"
|
||||||
echo " Xft .......................... $enable_xft"
|
echo " Xft .......................... $enable_xft"
|
||||||
echo " Xinerama ..................... $enable_xinerama"
|
echo " Xinerama ..................... $enable_xinerama"
|
||||||
echo " RandR ........................ $enable_xrandr"
|
echo " RandR ........................ $enable_xrandr"
|
||||||
|
echo " Sync ......................... $enable_xsync"
|
||||||
echo " Composite .................... $enable_composite"
|
echo " Composite .................... $enable_composite"
|
||||||
echo " Window mode helper library ... $enable_roothacklib"
|
echo " Window mode helper library ... $enable_roothacklib"
|
||||||
echo
|
echo
|
||||||
echo "Experimental options - DO NOT USE unless you know what you are doing"
|
echo "Experimental options - DO NOT USE unless you know what you are doing"
|
||||||
echo " Compile with ecore/ecore_x ... $enable_ecore"
|
echo " Compile with ecore/ecore_x ... $enable_ecore"
|
||||||
echo " Sync ......................... $enable_xsync"
|
|
||||||
echo " ScreenSaver .................. $enable_xscrnsaver"
|
echo " ScreenSaver .................. $enable_xscrnsaver"
|
||||||
echo
|
echo
|
||||||
echo "Installation Path .............. $prefix"
|
echo "Installation Path .............. $prefix"
|
||||||
|
|
|
@ -298,7 +298,7 @@ doEwinMoveResize(EWin * ewin, Desk * dsk, int x, int y, int w, int h, int flags)
|
||||||
{
|
{
|
||||||
static int call_depth = 0;
|
static int call_depth = 0;
|
||||||
int dx, dy, sw, sh, xo, yo;
|
int dx, dy, sw, sh, xo, yo;
|
||||||
char move, resize, reparent, raise, floating;
|
char move, resize, reparent, raise, floating, configure;
|
||||||
EWin **lst;
|
EWin **lst;
|
||||||
int i, num;
|
int i, num;
|
||||||
Desk *pdesk;
|
Desk *pdesk;
|
||||||
|
@ -461,6 +461,16 @@ doEwinMoveResize(EWin * ewin, Desk * dsk, int x, int y, int w, int h, int flags)
|
||||||
else
|
else
|
||||||
EoMoveResize(ewin, x, y, w, h);
|
EoMoveResize(ewin, x, y, w, h);
|
||||||
|
|
||||||
|
configure = 0;
|
||||||
|
if (Mode.mode == MODE_NONE || resize || Conf.movres.update_while_moving)
|
||||||
|
{
|
||||||
|
configure = 1;
|
||||||
|
#if USE_XSYNC
|
||||||
|
if (Conf.testing.use_sync)
|
||||||
|
EwinSyncRequestSend(ewin);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
if (flags & MRF_RESIZE)
|
if (flags & MRF_RESIZE)
|
||||||
{
|
{
|
||||||
if (!ewin->state.shaded)
|
if (!ewin->state.shaded)
|
||||||
|
@ -490,6 +500,7 @@ doEwinMoveResize(EWin * ewin, Desk * dsk, int x, int y, int w, int h, int flags)
|
||||||
if (resize && ewin->state.shaped)
|
if (resize && ewin->state.shaped)
|
||||||
ewin->update.shape = 1;
|
ewin->update.shape = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
EwinPropagateShapes(ewin);
|
EwinPropagateShapes(ewin);
|
||||||
|
|
||||||
if (raise)
|
if (raise)
|
||||||
|
@ -498,8 +509,15 @@ doEwinMoveResize(EWin * ewin, Desk * dsk, int x, int y, int w, int h, int flags)
|
||||||
EwinRaise(ewin);
|
EwinRaise(ewin);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Mode.mode == MODE_NONE || Conf.movres.update_while_moving)
|
if (configure)
|
||||||
ICCCM_Configure(ewin);
|
{
|
||||||
|
if (!resize)
|
||||||
|
ICCCM_Configure(ewin);
|
||||||
|
#if USE_XSYNC
|
||||||
|
if (Conf.testing.use_sync)
|
||||||
|
EwinSyncRequestWait(ewin);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
if (flags & (MRF_DESK | MRF_MOVE | MRF_FLOAT | MRF_UNFLOAT))
|
if (flags & (MRF_DESK | MRF_MOVE | MRF_FLOAT | MRF_UNFLOAT))
|
||||||
{
|
{
|
||||||
|
|
|
@ -777,8 +777,7 @@ EwinSyncRequestSend(EWin * ewin)
|
||||||
{
|
{
|
||||||
long long count;
|
long long count;
|
||||||
|
|
||||||
if (!Conf.testing.use_sync || !ewin->ewmh.sync_request_enable ||
|
if (!ewin->ewmh.sync_request_enable || EServerIsGrabbed())
|
||||||
EServerIsGrabbed())
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
count = ++ewin->ewmh.sync_request_count;
|
count = ++ewin->ewmh.sync_request_count;
|
||||||
|
@ -801,8 +800,7 @@ EwinSyncRequestWait(EWin * ewin)
|
||||||
XSyncWaitCondition xswc[2];
|
XSyncWaitCondition xswc[2];
|
||||||
double t;
|
double t;
|
||||||
|
|
||||||
if (!Conf.testing.use_sync || !ewin->ewmh.sync_request_enable ||
|
if (!ewin->ewmh.sync_request_enable || EServerIsGrabbed())
|
||||||
EServerIsGrabbed())
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
xswc[0].trigger.counter = ewin->ewmh.sync_request_counter;
|
xswc[0].trigger.counter = ewin->ewmh.sync_request_counter;
|
||||||
|
@ -815,7 +813,7 @@ EwinSyncRequestWait(EWin * ewin)
|
||||||
|
|
||||||
xswc[1].trigger.counter = Mode.display.server_time;
|
xswc[1].trigger.counter = Mode.display.server_time;
|
||||||
xswc[1].trigger.value_type = XSyncRelative;
|
xswc[1].trigger.value_type = XSyncRelative;
|
||||||
XSyncIntsToValue(&xswc[1].trigger.wait_value, 1000, 0); /* 1 sec */
|
XSyncIntsToValue(&xswc[1].trigger.wait_value, 200, 0); /* 200 ms */
|
||||||
xswc[1].trigger.test_type = XSyncPositiveComparison;
|
xswc[1].trigger.test_type = XSyncPositiveComparison;
|
||||||
XSyncIntsToValue(&xswc[1].event_threshold, 0, 0);
|
XSyncIntsToValue(&xswc[1].event_threshold, 0, 0);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue