freerdp-client: expose panning offsets

This commit is contained in:
C-o-r-E 2013-05-28 20:34:40 -04:00
parent ccc31f9843
commit 5820c24b03
3 changed files with 19 additions and 3 deletions

View File

@ -102,9 +102,12 @@ static BOOL xf_event_Expose(xfInfo* xfi, XEvent* event, BOOL app)
//if (xfi->scale != 1.0)
if ( (xfi->scale != 1.0) || (xfi->offset_x) || (xfi->offset_y) )
{
// printf("expose: %d,%d [%dx%d]\n", x, y, w, h);
//xf_draw_screen_scaled(xfi, x, y, w, h, FALSE);
xf_draw_screen_scaled(xfi, 0, 0, xfi->currentWidth, xfi->currentHeight, FALSE);
xf_draw_screen_scaled(xfi,
x - xfi->offset_x,
y - xfi->offset_y,
w,
h,
FALSE);
}
else
{

View File

@ -1669,6 +1669,16 @@ double freerdp_client_get_scale(xfInfo* xfi)
return xfi->scale;
}
int freerdp_client_get_xpan(xfInfo* xfi)
{
return xfi->offset_x;
}
int freerdp_client_get_ypan(xfInfo* xfi)
{
return xfi->offset_y;
}
void freerdp_client_reset_scale(xfInfo* xfi)
{
xfi->scale = 1.0;

View File

@ -244,6 +244,9 @@ DWORD xf_exit_code_from_disconnect_reason(DWORD reason);
#define cfInfo xfInfo
FREERDP_API int freerdp_client_get_xpan(xfInfo* xfi);
FREERDP_API int freerdp_client_get_ypan(xfInfo* xfi);
FREERDP_API double freerdp_client_get_scale(xfInfo* xfi);
FREERDP_API void freerdp_client_reset_scale(xfInfo* xfi);