Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
nx-libs
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
dimbor
nx-libs
Commits
92f41213
You need to sign in or sign up before continuing.
Unverified
Commit
92f41213
authored
Jun 11, 2019
by
Mike Gabriel
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'uli42-pr/fix_broken_cursor_handling' into 3.6.x
Attributes GH PR #810:
https://github.com/ArcticaProject/nx-libs/pull/810
parents
126cbe1f
a736122f
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
81 additions
and
69 deletions
+81
-69
events.c
nx-X11/programs/Xserver/dix/events.c
+4
-0
NXevents.c
nx-X11/programs/Xserver/hw/nxagent/NXevents.c
+75
-66
io.c
nx-X11/programs/Xserver/os/io.c
+0
-2
glyph.c
nx-X11/programs/Xserver/render/glyph.c
+2
-1
No files found.
nx-X11/programs/Xserver/dix/events.c
View file @
92f41213
...
@@ -245,6 +245,8 @@ static WindowPtr XYToWindow(
...
@@ -245,6 +245,8 @@ static WindowPtr XYToWindow(
int
y
int
y
);
);
static
Bool
CheckMotion
(
xEvent
*
xE
);
extern
int
lastEvent
;
extern
int
lastEvent
;
static
Mask
lastEventMask
;
static
Mask
lastEventMask
;
...
@@ -1951,6 +1953,7 @@ XYToWindow(int x, int y)
...
@@ -1951,6 +1953,7 @@ XYToWindow(int x, int y)
}
}
#endif
/* NXAGENT_SERVER */
#endif
/* NXAGENT_SERVER */
#ifndef NXAGENT_SERVER
static
Bool
static
Bool
CheckMotion
(
xEvent
*
xE
)
CheckMotion
(
xEvent
*
xE
)
{
{
...
@@ -2015,6 +2018,7 @@ CheckMotion(xEvent *xE)
...
@@ -2015,6 +2018,7 @@ CheckMotion(xEvent *xE)
}
}
return
TRUE
;
return
TRUE
;
}
}
#endif
/* NXAGENT_SERVER */
void
void
WindowsRestructured
()
WindowsRestructured
()
...
...
nx-X11/programs/Xserver/hw/nxagent/NXevents.c
View file @
92f41213
...
@@ -381,79 +381,88 @@ XYToWindow(int x, int y)
...
@@ -381,79 +381,88 @@ XYToWindow(int x, int y)
return
spriteTrace
[
spriteTraceGood
-
1
];
return
spriteTrace
[
spriteTraceGood
-
1
];
}
}
//
static Bool
static
Bool
//
CheckMotion(xEvent *xE)
CheckMotion
(
xEvent
*
xE
)
//
{
{
//
WindowPtr prevSpriteWin = sprite.win;
WindowPtr
prevSpriteWin
=
sprite
.
win
;
//
#ifdef PANORAMIX
#ifdef PANORAMIX
//
if(!noPanoramiXExtension)
if
(
!
noPanoramiXExtension
)
//
return XineramaCheckMotion(xE);
return
XineramaCheckMotion
(
xE
);
#endif
#endif
//
if (xE && !syncEvents.playingEvents)
if
(
xE
&&
!
syncEvents
.
playingEvents
)
//
{
{
//
if (sprite.hot.pScreen != sprite.hotPhys.pScreen)
if
(
sprite
.
hot
.
pScreen
!=
sprite
.
hotPhys
.
pScreen
)
//
{
{
//
sprite.hot.pScreen = sprite.hotPhys.pScreen;
sprite
.
hot
.
pScreen
=
sprite
.
hotPhys
.
pScreen
;
//
ROOT = sprite.hot.pScreen->root;
ROOT
=
sprite
.
hot
.
pScreen
->
root
;
//
}
}
//
sprite.hot.x = XE_KBPTR.rootX;
sprite
.
hot
.
x
=
XE_KBPTR
.
rootX
;
//
sprite.hot.y = XE_KBPTR.rootY;
sprite
.
hot
.
y
=
XE_KBPTR
.
rootY
;
//
if (sprite.hot.x < sprite.physLimits.x1)
if
(
sprite
.
hot
.
x
<
sprite
.
physLimits
.
x1
)
//
sprite.hot.x = sprite.physLimits.x1;
sprite
.
hot
.
x
=
sprite
.
physLimits
.
x1
;
//
else if (sprite.hot.x >= sprite.physLimits.x2)
else
if
(
sprite
.
hot
.
x
>=
sprite
.
physLimits
.
x2
)
//
sprite.hot.x = sprite.physLimits.x2 - 1;
sprite
.
hot
.
x
=
sprite
.
physLimits
.
x2
-
1
;
//
if (sprite.hot.y < sprite.physLimits.y1)
if
(
sprite
.
hot
.
y
<
sprite
.
physLimits
.
y1
)
//
sprite.hot.y = sprite.physLimits.y1;
sprite
.
hot
.
y
=
sprite
.
physLimits
.
y1
;
//
else if (sprite.hot.y >= sprite.physLimits.y2)
else
if
(
sprite
.
hot
.
y
>=
sprite
.
physLimits
.
y2
)
//
sprite.hot.y = sprite.physLimits.y2 - 1;
sprite
.
hot
.
y
=
sprite
.
physLimits
.
y2
-
1
;
#ifdef SHAPE
#ifdef SHAPE
//
if (sprite.hotShape)
if
(
sprite
.
hotShape
)
//
ConfineToShape(sprite.hotShape, &sprite.hot.x, &sprite.hot.y);
ConfineToShape
(
sprite
.
hotShape
,
&
sprite
.
hot
.
x
,
&
sprite
.
hot
.
y
);
#endif
#endif
// sprite.hotPhys = sprite.hot;
sprite
.
hotPhys
=
sprite
.
hot
;
//
// /*
#ifdef NXAGENT_SERVER
// * This code force cursor position to be inside the
/*
// * root window of the agent. We can't view a reason
* This code force cursor position to be inside the
// * to do this and it interacts in an undesirable way
* root window of the agent. We can't view a reason
// * with toggling fullscreen.
* to do this and it interacts in an undesirable way
// *
* with toggling fullscreen.
// * if ((sprite.hotPhys.x != XE_KBPTR.rootX) ||
*
// * (sprite.hotPhys.y != XE_KBPTR.rootY))
* if ((sprite.hotPhys.x != XE_KBPTR.rootX) ||
// * {
* (sprite.hotPhys.y != XE_KBPTR.rootY))
// * (*sprite.hotPhys.pScreen->SetCursorPosition)(
* {
// * sprite.hotPhys.pScreen,
* (*sprite.hotPhys.pScreen->SetCursorPosition)(
// * sprite.hotPhys.x, sprite.hotPhys.y, FALSE);
* sprite.hotPhys.pScreen,
// * }
* sprite.hotPhys.x, sprite.hotPhys.y, FALSE);
// */
* }
//
*/
// XE_KBPTR.rootX = sprite.hot.x;
#else
// XE_KBPTR.rootY = sprite.hot.y;
if
((
sprite
.
hotPhys
.
x
!=
XE_KBPTR
.
rootX
)
||
// }
(
sprite
.
hotPhys
.
y
!=
XE_KBPTR
.
rootY
))
//
{
// sprite.win = XYToWindow(sprite.hot.x, sprite.hot.y);
(
*
sprite
.
hotPhys
.
pScreen
->
SetCursorPosition
)(
sprite
.
hotPhys
.
pScreen
,
sprite
.
hotPhys
.
x
,
sprite
.
hotPhys
.
y
,
FALSE
);
}
#endif
XE_KBPTR
.
rootX
=
sprite
.
hot
.
x
;
XE_KBPTR
.
rootY
=
sprite
.
hot
.
y
;
}
sprite
.
win
=
XYToWindow
(
sprite
.
hot
.
x
,
sprite
.
hot
.
y
);
#ifdef notyet
#ifdef notyet
//
if (!(sprite.win->deliverableEvents &
if
(
!
(
sprite
.
win
->
deliverableEvents
&
//
Motion_Filter(inputInfo.pointer->button))
Motion_Filter
(
inputInfo
.
pointer
->
button
))
//
!syncEvents.playingEvents)
!
syncEvents
.
playingEvents
)
//
{
{
//
/* XXX Do PointerNonInterestBox here */
/* XXX Do PointerNonInterestBox here */
//
}
}
#endif
#endif
//
if (sprite.win != prevSpriteWin)
if
(
sprite
.
win
!=
prevSpriteWin
)
//
{
{
//
if (prevSpriteWin != NullWindow) {
if
(
prevSpriteWin
!=
NullWindow
)
{
//
if (!xE)
if
(
!
xE
)
//
UpdateCurrentTimeIf();
UpdateCurrentTimeIf
();
//
DoEnterLeaveEvents(prevSpriteWin, sprite.win, NotifyNormal);
DoEnterLeaveEvents
(
prevSpriteWin
,
sprite
.
win
,
NotifyNormal
);
//
}
}
//
PostNewCursor();
PostNewCursor
();
//
return FALSE;
return
FALSE
;
//
}
}
//
return TRUE;
return
TRUE
;
//
}
}
void
void
DefineInitialRootWindow
(
register
WindowPtr
win
)
DefineInitialRootWindow
(
register
WindowPtr
win
)
...
...
nx-X11/programs/Xserver/os/io.c
View file @
92f41213
...
@@ -424,8 +424,6 @@ ReadRequestFromClient(ClientPtr client)
...
@@ -424,8 +424,6 @@ ReadRequestFromClient(ClientPtr client)
if
(
oci
->
ignoreBytes
>
0
)
{
if
(
oci
->
ignoreBytes
>
0
)
{
assert
(
needed
==
oci
->
ignoreBytes
||
needed
==
oci
->
size
);
assert
(
needed
==
oci
->
ignoreBytes
||
needed
==
oci
->
size
);
oci
->
ignoreBytes
-=
gotnow
;
needed
=
gotnow
=
0
;
/*
/*
* The _XSERVTransRead call above may return more or fewer bytes than we
* The _XSERVTransRead call above may return more or fewer bytes than we
* want to ignore. Ignore the smaller of the two sizes.
* want to ignore. Ignore the smaller of the two sizes.
...
...
nx-X11/programs/Xserver/render/glyph.c
View file @
92f41213
...
@@ -589,7 +589,8 @@ miGlyphs(CARD8 op,
...
@@ -589,7 +589,8 @@ miGlyphs(CARD8 op,
height
=
extents
.
y2
-
extents
.
y1
;
height
=
extents
.
y2
-
extents
.
y1
;
pMaskPixmap
=
pMaskPixmap
=
(
*
pScreen
->
CreatePixmap
)
(
pScreen
,
width
,
height
,
(
*
pScreen
->
CreatePixmap
)
(
pScreen
,
width
,
height
,
maskFormat
->
depth
);
maskFormat
->
depth
,
CREATE_PIXMAP_USAGE_SCRATCH
);
if
(
!
pMaskPixmap
)
if
(
!
pMaskPixmap
)
return
;
return
;
component_alpha
=
NeedsComponent
(
maskFormat
->
format
);
component_alpha
=
NeedsComponent
(
maskFormat
->
format
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment