Skip to content
Commits on Source (11)
......@@ -18,7 +18,7 @@ variables:
DEBIAN_VERSION: testing-slim
DEBIAN_EXEC: 'bash .gitlab-ci/debian-install.sh'
DEBIAN_TAG: "2020-01-06"
DEBIAN_TAG: "2020-04-21"
IMAGE_LOCAL: "$CI_REGISTRY_IMAGE/debian/$DEBIAN_VERSION:$DEBIAN_TAG"
include:
......
......@@ -738,7 +738,7 @@ exaPolySegment(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment * pSeg)
}
}
prect = xallocarray(nseg, sizeof(xRectangle));
prect = xallocarray((unsigned int)nseg, sizeof(xRectangle));
for (i = 0; i < nseg; i++) {
if (pSeg[i].x1 < pSeg[i].x2) {
prect[i].x = pSeg[i].x1;
......
......@@ -729,4 +729,4 @@ Portions of
are based on code from The XFree86 Project
.RI ( http://www.xfree86.org )
and X.Org
.RI ( http://www.x.org ).
.RI ( https://www.x.org ).
......@@ -561,7 +561,7 @@ vesa(@drivermansuffix@),
vmware(@drivermansuffix@),
.br
Web site
.IR <http://www.x.org> .
.IR <https://www.x.org> .
.SH AUTHORS
Xorg has many contributors world wide. The names of most of them
......@@ -614,9 +614,9 @@ Orest Zborowski \fIorestz@eskimo.com\fP
.PP
Xorg source is available from the FTP server
\fI<ftp://ftp.x.org/>\fP, and from the X.Org
server \fI<http://gitweb.freedesktop.org/>\fP. Documentation and other
server \fI<https://gitlab.freedesktop.org/xorg/>\fP. Documentation and other
information can be found from the X.Org web site
\fI<http://www.x.org/>\fP.
\fI<https://www.x.org/>\fP.
.SH LEGAL
.PP
......@@ -626,7 +626,7 @@ and redistribution in source and binary form without fee.
.B Xorg is copyright by numerous authors and
contributors from around the world. Licensing information can be found
at
.IR <http://www.x.org> .
.IR <https://www.x.org> .
Refer to the source code for specific copyright notices.
.PP
.B XFree86(TM)
......
......@@ -2508,7 +2508,7 @@ section for a dual headed configuration with two mice:
This optional section is used to provide some information for the
Direct Rendering Infrastructure.
Details about the format of this section can be found on-line at
.IR <http://dri.freedesktop.org/> .
.IR <https://dri.freedesktop.org/> .
.SH "VENDOR SECTION"
The optional
.B Vendor
......
......@@ -138,13 +138,14 @@ xf86OSPMOpen(void)
#ifdef HAVE_ACPI
/* Favour ACPI over APM, but only when enabled */
if (!xf86acpiDisableFlag)
if (!xf86acpiDisableFlag) {
ret = lnxACPIOpen();
if (!ret)
if (ret)
return ret;
}
#endif
#ifdef HAVE_APM
ret = lnxAPMOpen();
ret = lnxAPMOpen();
#endif
return ret;
......
......@@ -41,7 +41,7 @@ XVisualInfo *xnestVisuals;
int xnestNumVisuals;
int xnestDefaultVisualIndex;
Colormap *xnestDefaultColormaps;
static int xnestNumDefaultColormaps;
static unsigned int xnestNumDefaultColormaps;
int *xnestDepths;
int xnestNumDepths;
XPixmapFormatValues *xnestPixmapFormats;
......
......@@ -136,7 +136,7 @@ instead of -d.
.PP
X(@miscmansuffix@), Xserver(1), xdm(1), xinit(1), syslog(1), syslogd(8)
.PP
http://xquartz.macosforge.org
https://www.xquartz.org/
.PP
.SH AUTHORS / HISTORY
X11 was originally ported to Mac OS X Server by John Carmack. Dave
......
......@@ -95,6 +95,8 @@ const static struct {
{ 62, XK_Control_R },
{ 63, XK_Meta_R },
{ 110, XK_Menu },
{ 122, XK_F1 },
{ 120, XK_F2 },
{ 99, XK_F3 },
......@@ -110,6 +112,11 @@ const static struct {
{ 105, XK_F13 },
{ 107, XK_F14 },
{ 113, XK_F15 },
{ 106, XK_F16 },
{ 64, XK_F17 },
{ 79, XK_F18 },
{ 80, XK_F19 },
{ 90, XK_F20 },
};
#endif
......
......@@ -72,6 +72,9 @@ xwl_pointer_warp_emulator_maybe_lock(struct xwl_pointer_warp_emulator *warp_emul
SpritePtr sprite,
int x, int y);
static Bool
xwl_seat_maybe_lock_on_hidden_cursor(struct xwl_seat *xwl_seat);
static void
xwl_seat_destroy_confined_pointer(struct xwl_seat *xwl_seat);
......@@ -447,6 +450,9 @@ pointer_handle_enter(void *data, struct wl_pointer *pointer,
xwl_seat->focus_window,
NULL, 0, 0);
}
else {
xwl_seat_maybe_lock_on_hidden_cursor(xwl_seat);
}
}
static void
......@@ -2544,8 +2550,15 @@ sprite_check_lost_focus(SpritePtr sprite, WindowPtr window)
* devices so we can find out the xwl_seat, but those don't actually own
* their sprite, so the match doesn't mean a lot.
*/
if (master->lastSlave == xwl_seat->pointer &&
xwl_seat->focus_window == NULL &&
if (master->lastSlave != xwl_seat->pointer)
return FALSE;
if (xwl_seat->focus_window != NULL &&
xwl_seat->cursor_confinement_window != NULL &&
xwl_seat->focus_window != xwl_seat->cursor_confinement_window)
return TRUE;
if (xwl_seat->focus_window == NULL &&
xwl_seat->last_xwindow != NullWindow &&
IsParent(xwl_seat->last_xwindow, window))
return TRUE;
......@@ -2810,13 +2823,15 @@ xwl_seat_maybe_lock_on_hidden_cursor(struct xwl_seat *xwl_seat)
* to implement infinite panning (eg. 3D views), lock the
* pointer for so the relative pointer is used.
*/
if (xwl_seat->x_cursor ||
!xwl_seat->cursor_confinement_window)
if (xwl_seat->x_cursor)
return FALSE;
if (!xwl_seat->focus_window)
return FALSE;
if (xwl_seat->cursor_confinement_window != xwl_seat->focus_window)
return FALSE;
if (xwl_seat->confined_pointer)
xwl_seat_destroy_confined_pointer(xwl_seat);
......
......@@ -228,6 +228,33 @@ xwl_cursor_warped_to(DeviceIntPtr device,
xwl_seat_emulate_pointer_warp(xwl_seat, xwl_window, sprite, x, y);
}
static struct xwl_window *
find_matching_input_output_window(struct xwl_screen *xwl_screen,
WindowPtr window)
{
struct xwl_window *xwl_window;
xorg_list_for_each_entry(xwl_window, &xwl_screen->window_list, link_window) {
/* When confining happens on InputOnly windows, work out the InputOutput
* window that would be covered by its geometry.
*/
if (window->drawable.x < xwl_window->window->drawable.x ||
window->drawable.x + window->drawable.width >
xwl_window->window->drawable.x + xwl_window->window->drawable.width ||
window->drawable.y < xwl_window->window->drawable.y ||
window->drawable.y + window->drawable.height >
xwl_window->window->drawable.y + xwl_window->window->drawable.height)
continue;
if (xwl_window->window->drawable.class == InputOnly)
continue;
return xwl_window;
}
return NULL;
}
static void
xwl_cursor_confined_to(DeviceIntPtr device,
ScreenPtr screen,
......@@ -250,14 +277,9 @@ xwl_cursor_confined_to(DeviceIntPtr device,
}
xwl_window = xwl_window_from_window(window);
if (!xwl_window && xwl_seat->focus_window) {
/* Allow confining on InputOnly windows, but only if the geometry
* is the same than the focus window.
*/
if (window->drawable.class == InputOnly) {
DebugF("Confine on InputOnly window, assuming pointer focus\n");
xwl_window = xwl_seat->focus_window;
}
if (!xwl_window && window->drawable.class == InputOnly) {
DebugF("Confine on InputOnly window, finding matching toplevel\n");
xwl_window = find_matching_input_output_window(xwl_screen, window);
}
if (!xwl_window)
return;
......
......@@ -1239,7 +1239,7 @@ ProcRRSetCrtcConfig(ClientPtr client)
rrScrPrivPtr pScrPriv;
RRCrtcPtr crtc;
RRModePtr mode;
int numOutputs;
unsigned int numOutputs;
RROutputPtr *outputs = NULL;
RROutput *outputIds;
TimeStamp time;
......
......@@ -61,7 +61,7 @@ xtest_init_devices(void)
{
ScreenRec screen = {0};
ClientRec server_client = {0};
WindowRec root = {0};
WindowRec root = {{0}};
WindowOptRec optional = {0};
/* random stuff that needs initialization */
......