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
bc997cf6
Commit
bc997cf6
authored
Aug 03, 2019
by
Ulrich Sibiller
Committed by
Mike Gabriel
Sep 29, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Clipboard.c: introduce central function to abort the transfer
parent
f14e8007
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
36 additions
and
40 deletions
+36
-40
Clipboard.c
nx-X11/programs/Xserver/hw/nxagent/Clipboard.c
+36
-40
No files found.
nx-X11/programs/Xserver/hw/nxagent/Clipboard.c
View file @
bc997cf6
...
...
@@ -202,6 +202,9 @@ extern Display *nxagentDisplay;
Bool
nxagentValidServerTargets
(
Atom
target
);
void
nxagentSendSelectionNotify
(
Atom
property
);
static
void
endTransfer
(
Bool
success
);
#define SELECTION_SUCCESS True
#define SELECTION_FAULT False
void
nxagentTransferSelection
(
int
resource
);
void
nxagentCollectPropertyEvent
(
int
resource
);
void
nxagentResetSelectionOwner
(
void
);
...
...
@@ -745,6 +748,30 @@ void nxagentSendSelectionNotify(Atom property)
return
;
}
/*
* client and resetting the corresponding variables and the state
* machine. If success is False send a None reply, meaning "request
* denied/failed"
* Use SELECTION_SUCCESS and SELECTION_FAULT macros for success.
*/
static
void
endTransfer
(
Bool
success
)
{
if
(
success
==
SELECTION_SUCCESS
)
{
nxagentSendSelectionNotify
(
lastClientProperty
);
}
else
{
nxagentSendSelectionNotify
(
None
);
}
/*
* Enable further requests from clients.
*/
lastClientWindowPtr
=
NULL
;
SetClientSelectionStage
(
None
);
}
void
nxagentTransferSelection
(
int
resource
)
{
int
result
;
...
...
@@ -756,10 +783,7 @@ void nxagentTransferSelection(int resource)
resource
,
lastClientClientPtr
->
index
);
#endif
nxagentSendSelectionNotify
(
None
);
lastClientWindowPtr
=
NULL
;
SetClientSelectionStage
(
None
);
endTransfer
(
SELECTION_FAULT
);
return
;
}
...
...
@@ -804,10 +828,7 @@ void nxagentTransferSelection(int resource)
lastClientClientPtr
->
index
);
#endif
nxagentSendSelectionNotify
(
None
);
lastClientWindowPtr
=
NULL
;
SetClientSelectionStage
(
None
);
endTransfer
(
SELECTION_FAULT
);
return
;
}
...
...
@@ -857,10 +878,7 @@ void nxagentTransferSelection(int resource)
lastClientClientPtr
->
index
);
#endif
nxagentSendSelectionNotify
(
None
);
lastClientWindowPtr
=
NULL
;
SetClientSelectionStage
(
None
);
endTransfer
(
SELECTION_FAULT
);
return
;
}
...
...
@@ -913,10 +931,7 @@ void nxagentCollectPropertyEvent(int resource)
lastClientClientPtr
->
index
);
#endif
nxagentSendSelectionNotify
(
None
);
lastClientWindowPtr
=
NULL
;
SetClientSelectionStage
(
None
);
endTransfer
(
SELECTION_FAULT
);
SAFE_XFree
(
pszReturnData
);
return
;
...
...
@@ -928,10 +943,7 @@ void nxagentCollectPropertyEvent(int resource)
fprintf
(
stderr
,
"%s: WARNING! Invalid property value.
\n
"
,
__func__
);
#endif
nxagentSendSelectionNotify
(
None
);
lastClientWindowPtr
=
NULL
;
SetClientSelectionStage
(
None
);
endTransfer
(
SELECTION_FAULT
);
SAFE_XFree
(
pszReturnData
);
return
;
...
...
@@ -954,10 +966,7 @@ void nxagentCollectPropertyEvent(int resource)
lastClientClientPtr
->
index
);
#endif
nxagentSendSelectionNotify
(
None
);
lastClientWindowPtr
=
NULL
;
SetClientSelectionStage
(
None
);
endTransfer
(
SELECTION_FAULT
);
SAFE_XFree
(
pszReturnData
);
return
;
...
...
@@ -993,10 +1002,7 @@ void nxagentCollectPropertyEvent(int resource)
lastClientClientPtr
->
index
);
#endif
nxagentSendSelectionNotify
(
None
);
lastClientWindowPtr
=
NULL
;
SetClientSelectionStage
(
None
);
endTransfer
(
SELECTION_FAULT
);
SAFE_XFree
(
pszReturnData
);
return
;
...
...
@@ -1017,14 +1023,7 @@ void nxagentCollectPropertyEvent(int resource)
validateString
(
NameForAtom
(
lastClientProperty
)),
pszReturnData
);
#endif
nxagentSendSelectionNotify
(
lastClientProperty
);
/*
* Enable further requests from clients.
*/
lastClientWindowPtr
=
NULL
;
SetClientSelectionStage
(
None
);
endTransfer
(
SELECTION_SUCCESS
);
break
;
}
...
...
@@ -1093,10 +1092,7 @@ void nxagentNotifySelection(XEvent *X)
lastClientClientPtr
->
index
);
#endif
nxagentSendSelectionNotify
(
None
);
lastClientWindowPtr
=
NULL
;
SetClientSelectionStage
(
None
);
endTransfer
(
SELECTION_FAULT
);
}
return
;
...
...
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