mirror of https://github.com/GNOME/gimp.git
Bug 675748: Text tool: text editor inhibits text...
...selection on the canvas if the editor dialog is active do not copy to the clipboard the text selected, copy it instead when selected with keys <Shift>-left/right.
This commit is contained in:
parent
3a75d98679
commit
aa293ae9a7
|
@ -115,6 +115,9 @@ static gboolean gimp_text_tool_im_delete_surrounding
|
||||||
|
|
||||||
static void gimp_text_tool_im_delete_preedit (GimpTextTool *text_tool);
|
static void gimp_text_tool_im_delete_preedit (GimpTextTool *text_tool);
|
||||||
|
|
||||||
|
static void gimp_text_tool_editor_copy_selection_to_clipboard
|
||||||
|
(GimpTextTool *text_tool);
|
||||||
|
|
||||||
|
|
||||||
/* public functions */
|
/* public functions */
|
||||||
|
|
||||||
|
@ -344,19 +347,7 @@ gimp_text_tool_editor_button_press (GimpTextTool *text_tool,
|
||||||
void
|
void
|
||||||
gimp_text_tool_editor_button_release (GimpTextTool *text_tool)
|
gimp_text_tool_editor_button_release (GimpTextTool *text_tool)
|
||||||
{
|
{
|
||||||
GtkTextBuffer *buffer = GTK_TEXT_BUFFER (text_tool->buffer);
|
gimp_text_tool_editor_copy_selection_to_clipboard (text_tool);
|
||||||
|
|
||||||
if (gtk_text_buffer_get_has_selection (buffer))
|
|
||||||
{
|
|
||||||
GimpTool *tool = GIMP_TOOL (text_tool);
|
|
||||||
GimpDisplayShell *shell = gimp_display_get_shell (tool->display);
|
|
||||||
GtkClipboard *clipboard;
|
|
||||||
|
|
||||||
clipboard = gtk_widget_get_clipboard (GTK_WIDGET (shell),
|
|
||||||
GDK_SELECTION_PRIMARY);
|
|
||||||
|
|
||||||
gtk_text_buffer_copy_clipboard (buffer, clipboard);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -995,6 +986,7 @@ gimp_text_tool_move_cursor (GimpTextTool *text_tool,
|
||||||
gimp_text_tool_reset_im_context (text_tool);
|
gimp_text_tool_reset_im_context (text_tool);
|
||||||
|
|
||||||
gtk_text_buffer_select_range (buffer, &cursor, sel_start);
|
gtk_text_buffer_select_range (buffer, &cursor, sel_start);
|
||||||
|
gimp_text_tool_editor_copy_selection_to_clipboard (text_tool);
|
||||||
|
|
||||||
gimp_draw_tool_resume (GIMP_DRAW_TOOL (text_tool));
|
gimp_draw_tool_resume (GIMP_DRAW_TOOL (text_tool));
|
||||||
}
|
}
|
||||||
|
@ -1651,3 +1643,22 @@ gimp_text_tool_im_delete_preedit (GimpTextTool *text_tool)
|
||||||
text_tool->preedit_string = NULL;
|
text_tool->preedit_string = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gimp_text_tool_editor_copy_selection_to_clipboard (GimpTextTool *text_tool)
|
||||||
|
{
|
||||||
|
GtkTextBuffer *buffer = GTK_TEXT_BUFFER (text_tool->buffer);
|
||||||
|
|
||||||
|
if (! text_tool->editor_dialog &&
|
||||||
|
gtk_text_buffer_get_has_selection (buffer))
|
||||||
|
{
|
||||||
|
GimpTool *tool = GIMP_TOOL (text_tool);
|
||||||
|
GimpDisplayShell *shell = gimp_display_get_shell (tool->display);
|
||||||
|
GtkClipboard *clipboard;
|
||||||
|
|
||||||
|
clipboard = gtk_widget_get_clipboard (GTK_WIDGET (shell),
|
||||||
|
GDK_SELECTION_PRIMARY);
|
||||||
|
|
||||||
|
gtk_text_buffer_copy_clipboard (buffer, clipboard);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue