return 0;
}
+#ifdef WITH_XRANDR
inline Msp::Graphics::VideoRotation rotation_from_sys(Rotation r)
{
switch(r)
}
}
-bool monitor_x_compare(const Msp::Graphics::Monitor &m1, const Msp::Graphics::Monitor &m2)
+inline bool monitor_x_compare(const Msp::Graphics::Monitor &m1, const Msp::Graphics::Monitor &m2)
{
if(m1.desktop_mode && !m2.desktop_mode)
return true;
return m1.x<m2.x;
}
+#endif
inline unsigned mode_width(const Msp::Graphics::VideoMode &m, Msp::Graphics::VideoRotation r)
{
{
XRROutputInfo *o = XRRGetOutputInfo(priv->display, res, priv->monitors[i->index]);
XRRSetCrtcConfig(priv->display, res, o->crtc, CurrentTime, x, y, priv->modes[i->current_mode->index], rotation_to_sys(i->current_rotation), &priv->monitors[i->index], 1);
+
+ XRRPanning panning;
+ panning.timestamp = CurrentTime;
+ panning.left = x;
+ panning.top = y;
+ panning.width = i->current_mode->width;
+ panning.height = i->current_mode->height;
+ panning.track_left = panning.left;
+ panning.track_top = panning.top;
+ panning.track_width = panning.width;
+ panning.track_height = panning.height;
+ panning.border_left = 0;
+ panning.border_top = 0;
+ panning.border_right = 0;
+ panning.border_bottom = 0;
+ XRRSetPanning(priv->display, res, o->crtc, &panning);
+
XRRFreeOutputInfo(o);
i->x = x;