Use selection_copy_to_clipboard instead of peering into core innards.
This commit is contained in:
parent
5747465437
commit
1cb5272c95
|
@ -64,9 +64,6 @@ static char *clipboard = NULL;
|
|||
static size_t clip_alloc = 0;
|
||||
static size_t clip_length = 0;
|
||||
|
||||
static bool copy_handler(const char *text, size_t length, struct box *box,
|
||||
void *handle, const char *whitespace_text,
|
||||
size_t whitespace_length);
|
||||
static void ro_gui_discard_clipboard_contents(void);
|
||||
static void ro_gui_dragging_bounced(wimp_message *message);
|
||||
|
||||
|
@ -189,42 +186,6 @@ void ro_gui_selection_drag_end(struct gui_window *g, wimp_dragged *drag)
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Selection traversal routine for appending text to the current contents
|
||||
* of the clipboard.
|
||||
*
|
||||
* \param text pointer to text being added, or NULL for newline
|
||||
* \param length length of text to be appended (bytes)
|
||||
* \param box pointer to text box, or NULL if from textplain
|
||||
* \param handle unused handle, we don't need one
|
||||
* \param whitespace_text whitespace to place before text for formatting
|
||||
* may be NULL
|
||||
* \param whitespace_length length of whitespace_text
|
||||
* \return true iff successful and traversal should continue
|
||||
*/
|
||||
|
||||
bool copy_handler(const char *text, size_t length, struct box *box,
|
||||
void *handle, const char *whitespace_text,
|
||||
size_t whitespace_length)
|
||||
{
|
||||
bool add_space = box != NULL ? box->space != 0 : false;
|
||||
|
||||
/* add any whitespace which precedes the text from this box */
|
||||
if (whitespace_text != NULL && whitespace_length > 0) {
|
||||
if (!gui_add_to_clipboard(whitespace_text,
|
||||
whitespace_length, false)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/* add the text from this box */
|
||||
if (!gui_add_to_clipboard(text, length, add_space))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Empty the clipboard, called prior to gui_add_to_clipboard and
|
||||
* gui_commit_clipboard
|
||||
|
@ -361,7 +322,7 @@ bool gui_copy_to_clipboard(struct selection *s)
|
|||
if (!gui_empty_clipboard())
|
||||
return false;
|
||||
|
||||
selection_traverse(s, copy_handler, NULL);
|
||||
selection_copy_to_clipboard(s);
|
||||
|
||||
return gui_commit_clipboard();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue