Commit 3735ab96 authored by Keith Packard's avatar Keith Packard

Merge remote-tracking branch 'daenzer/for-master'

parents 7c77c42f 43dbc556
......@@ -1424,18 +1424,21 @@ glamor_composite_clipped_region(CARD8 op,
if (!mask && !source->alphaMap && !dest->alphaMap
&& source->pDrawable && !source->transform
&& ((op == PictOpSrc
&& ((source->format == dest->format
|| (PICT_FORMAT_COLOR(dest->format)
&& PICT_FORMAT_COLOR(source->format)
&& dest->format == PICT_FORMAT(PICT_FORMAT_BPP(source->format),
PICT_FORMAT_TYPE(source->format),
0,
PICT_FORMAT_R(source->format),
PICT_FORMAT_G(source->format),
PICT_FORMAT_B(source->format))))
|| (op == PictOpOver
&& source->format == dest->format
&& !PICT_FORMAT_A(source->format)))))) {
&& (source->format == dest->format
|| (PICT_FORMAT_COLOR(dest->format)
&& PICT_FORMAT_COLOR(source->format)
&& dest->format == PICT_FORMAT(PICT_FORMAT_BPP(source->format),
PICT_FORMAT_TYPE(source->format),
0,
PICT_FORMAT_R(source->format),
PICT_FORMAT_G(source->format),
PICT_FORMAT_B(source->format)))))
|| (op == PictOpOver
&& source->format == dest->format
&& !PICT_FORMAT_A(source->format)))
&& x_source >= 0 && y_source >= 0
&& (x_source + width) <= source->pDrawable->width
&& (y_source + height) <= source->pDrawable->height) {
x_source += source->pDrawable->x;
y_source += source->pDrawable->y;
x_dest += dest->pDrawable->x;
......
......@@ -508,11 +508,6 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
}
}
#if 0
if (pScrn->pScreen &&
!xf86ReturnOptValBool(info->Options, OPTION_SW_CURSOR, FALSE))
xf86_reload_cursors(pScrn->pScreen);
#endif
done:
if (!ret) {
crtc->x = saved_x;
......
......@@ -968,14 +968,10 @@ extern _X_EXPORT Bool
xf86_cursors_init(ScreenPtr screen, int max_width, int max_height, int flags);
/**
* Called when anything on the screen is reconfigured.
*
* Reloads cursor images as needed, then adjusts cursor positions.
*
* Driver should call this from crtc commit function.
* Superseeded by xf86CursorResetCursor, which is getting called
* automatically when necessary.
*/
extern _X_EXPORT void
xf86_reload_cursors(ScreenPtr screen);
static _X_INLINE _X_DEPRECATED void xf86_reload_cursors(ScreenPtr screen) {}
/**
* Called from EnterVT to turn the cursors back on
......
......@@ -456,7 +456,6 @@ xf86_crtc_load_cursor_image(xf86CrtcPtr crtc, CARD8 *src)
CARD8 *cursor_image;
const Rotation rotation = xf86_crtc_cursor_rotation(crtc);
xf86_config->cursor = xf86CurrentCursor(xf86ScrnToScreen(scrn));
crtc->cursor_argb = FALSE;
if (rotation == RR_Rotate_0)
......@@ -493,6 +492,7 @@ xf86_load_cursor_image(ScrnInfoPtr scrn, unsigned char *src)
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
int c;
xf86_config->cursor = xf86CurrentCursor(scrn->pScreen);
for (c = 0; c < xf86_config->num_crtc; c++) {
xf86CrtcPtr crtc = xf86_config->crtc[c];
......@@ -640,63 +640,6 @@ xf86_cursors_init(ScreenPtr screen, int max_width, int max_height, int flags)
return xf86InitCursor(screen, cursor_info);
}
/**
* Called when anything on the screen is reconfigured.
*
* Reloads cursor images as needed, then adjusts cursor positions
* @note We assume that all hardware cursors to be loaded have already been
* found to be usable by the hardware.
*/
void
xf86_reload_cursors(ScreenPtr screen)
{
ScrnInfoPtr scrn;
xf86CrtcConfigPtr xf86_config;
xf86CursorInfoPtr cursor_info;
CursorPtr cursor;
int x, y;
xf86CursorScreenPtr cursor_screen_priv;
/* initial mode setting will not have set a screen yet.
May be called before the devices are initialised.
*/
if (!screen || !inputInfo.pointer)
return;
cursor_screen_priv = dixLookupPrivate(&screen->devPrivates,
xf86CursorScreenKey);
/* return if HW cursor is inactive, to avoid displaying two cursors */
if (!cursor_screen_priv || !cursor_screen_priv->isUp)
return;
scrn = xf86ScreenToScrn(screen);
xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
/* make sure the cursor code has been initialized */
cursor_info = xf86_config->cursor_info;
if (!cursor_info)
return;
cursor = xf86CurrentCursor(screen);
GetSpritePosition(inputInfo.pointer, &x, &y);
if (!(cursor_info->Flags & HARDWARE_CURSOR_UPDATE_UNHIDDEN))
(*cursor_info->HideCursor) (scrn);
if (cursor) {
void *src =
dixLookupScreenPrivate(&cursor->devPrivates, CursorScreenKey,
screen);
if (cursor->bits->argb && xf86DriverHasLoadCursorARGB(cursor_info))
xf86DriverLoadCursorARGB(cursor_info, cursor);
else if (src)
xf86DriverLoadCursorImage(cursor_info, src);
x += scrn->frameX0 + cursor_screen_priv->HotX;
y += scrn->frameY0 + cursor_screen_priv->HotY;
(*cursor_info->SetCursorPosition) (scrn, x, y);
}
}
/**
* Clean up CRTC-based cursor code
*/
......
......@@ -1131,19 +1131,20 @@ ComputeLocalClient(ClientPtr client)
* is forwarded from another host via SSH
*/
if (cmdname) {
char **cmd;
char *cmd = strdup(cmdname);
Bool ret;
/* Cut off any colon and whatever comes after it, see
* https://lists.freedesktop.org/archives/xorg-devel/2015-December/048164.html
*/
cmd = xstrtokenize(cmdname, ":");
cmd = strtok(cmd, ":");
#if !defined(WIN32) || defined(__CYGWIN__)
cmd[0] = basename(cmd[0]);
ret = strcmp(basename(cmd), "ssh") != 0;
#else
ret = strcmp(cmd, "ssh") != 0;
#endif
ret = strcmp(cmd[0], "ssh") != 0;
free(cmd);
return ret;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment