Merge remote-tracking branch 'daenzer/for-master'
This commit is contained in:
commit
3735ab965a
|
@ -1424,18 +1424,21 @@ glamor_composite_clipped_region(CARD8 op,
|
||||||
if (!mask && !source->alphaMap && !dest->alphaMap
|
if (!mask && !source->alphaMap && !dest->alphaMap
|
||||||
&& source->pDrawable && !source->transform
|
&& source->pDrawable && !source->transform
|
||||||
&& ((op == PictOpSrc
|
&& ((op == PictOpSrc
|
||||||
&& ((source->format == dest->format
|
&& (source->format == dest->format
|
||||||
|| (PICT_FORMAT_COLOR(dest->format)
|
|| (PICT_FORMAT_COLOR(dest->format)
|
||||||
&& PICT_FORMAT_COLOR(source->format)
|
&& PICT_FORMAT_COLOR(source->format)
|
||||||
&& dest->format == PICT_FORMAT(PICT_FORMAT_BPP(source->format),
|
&& dest->format == PICT_FORMAT(PICT_FORMAT_BPP(source->format),
|
||||||
PICT_FORMAT_TYPE(source->format),
|
PICT_FORMAT_TYPE(source->format),
|
||||||
0,
|
0,
|
||||||
PICT_FORMAT_R(source->format),
|
PICT_FORMAT_R(source->format),
|
||||||
PICT_FORMAT_G(source->format),
|
PICT_FORMAT_G(source->format),
|
||||||
PICT_FORMAT_B(source->format))))
|
PICT_FORMAT_B(source->format)))))
|
||||||
|| (op == PictOpOver
|
|| (op == PictOpOver
|
||||||
&& source->format == dest->format
|
&& source->format == dest->format
|
||||||
&& !PICT_FORMAT_A(source->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;
|
x_source += source->pDrawable->x;
|
||||||
y_source += source->pDrawable->y;
|
y_source += source->pDrawable->y;
|
||||||
x_dest += dest->pDrawable->x;
|
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:
|
done:
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
crtc->x = saved_x;
|
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);
|
xf86_cursors_init(ScreenPtr screen, int max_width, int max_height, int flags);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when anything on the screen is reconfigured.
|
* Superseeded by xf86CursorResetCursor, which is getting called
|
||||||
*
|
* automatically when necessary.
|
||||||
* Reloads cursor images as needed, then adjusts cursor positions.
|
|
||||||
*
|
|
||||||
* Driver should call this from crtc commit function.
|
|
||||||
*/
|
*/
|
||||||
extern _X_EXPORT void
|
static _X_INLINE _X_DEPRECATED void xf86_reload_cursors(ScreenPtr screen) {}
|
||||||
xf86_reload_cursors(ScreenPtr screen);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called from EnterVT to turn the cursors back on
|
* 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;
|
CARD8 *cursor_image;
|
||||||
const Rotation rotation = xf86_crtc_cursor_rotation(crtc);
|
const Rotation rotation = xf86_crtc_cursor_rotation(crtc);
|
||||||
|
|
||||||
xf86_config->cursor = xf86CurrentCursor(xf86ScrnToScreen(scrn));
|
|
||||||
crtc->cursor_argb = FALSE;
|
crtc->cursor_argb = FALSE;
|
||||||
|
|
||||||
if (rotation == RR_Rotate_0)
|
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);
|
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
|
||||||
int c;
|
int c;
|
||||||
|
|
||||||
|
xf86_config->cursor = xf86CurrentCursor(scrn->pScreen);
|
||||||
for (c = 0; c < xf86_config->num_crtc; c++) {
|
for (c = 0; c < xf86_config->num_crtc; c++) {
|
||||||
xf86CrtcPtr crtc = xf86_config->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);
|
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
|
* Clean up CRTC-based cursor code
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1131,19 +1131,20 @@ ComputeLocalClient(ClientPtr client)
|
||||||
* is forwarded from another host via SSH
|
* is forwarded from another host via SSH
|
||||||
*/
|
*/
|
||||||
if (cmdname) {
|
if (cmdname) {
|
||||||
char **cmd;
|
char *cmd = strdup(cmdname);
|
||||||
Bool ret;
|
Bool ret;
|
||||||
|
|
||||||
/* Cut off any colon and whatever comes after it, see
|
/* Cut off any colon and whatever comes after it, see
|
||||||
* https://lists.freedesktop.org/archives/xorg-devel/2015-December/048164.html
|
* https://lists.freedesktop.org/archives/xorg-devel/2015-December/048164.html
|
||||||
*/
|
*/
|
||||||
cmd = xstrtokenize(cmdname, ":");
|
cmd = strtok(cmd, ":");
|
||||||
|
|
||||||
#if !defined(WIN32) || defined(__CYGWIN__)
|
#if !defined(WIN32) || defined(__CYGWIN__)
|
||||||
cmd[0] = basename(cmd[0]);
|
ret = strcmp(basename(cmd), "ssh") != 0;
|
||||||
|
#else
|
||||||
|
ret = strcmp(cmd, "ssh") != 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
ret = strcmp(cmd[0], "ssh") != 0;
|
|
||||||
free(cmd);
|
free(cmd);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user