[geany/geany] c21405: Fix callbacks to scintilla functions to work with splitwindow
pik
git-noreply at xxxxx
Mon Apr 20 20:16:07 UTC 2015
Branch: refs/heads/master
Author: pik <alexander.maznev at gmail.com>
Committer: Colomban Wendling <ban at herbesfolles.org>
Date: Mon, 20 Apr 2015 20:16:07 UTC
Commit: c214056ea1d000c6e53b158f616b680d1e02eb53
https://github.com/geany/geany/commit/c214056ea1d000c6e53b158f616b680d1e02eb53
Log Message:
-----------
Fix callbacks to scintilla functions to work with splitwindow
* Use Scintilla focus object instead of notebook document to fix
splitwindow behaviour for cut, copy, paste and delete callbacks.
* move else-if to same line (style)
Modified Paths:
--------------
src/callbacks.c
src/keybindings.c
Modified: src/callbacks.c
44 lines changed, 15 insertions(+), 29 deletions(-)
===================================================================
@@ -228,16 +228,13 @@ void on_redo1_activate(GtkMenuItem *menuitem, gpointer user_data)
void on_cut1_activate(GtkMenuItem *menuitem, gpointer user_data)
{
- GeanyDocument *doc = document_get_current();
GtkWidget *focusw = gtk_window_get_focus(GTK_WINDOW(main_widgets.window));
if (GTK_IS_EDITABLE(focusw))
gtk_editable_cut_clipboard(GTK_EDITABLE(focusw));
- else
- if (IS_SCINTILLA(focusw) && doc != NULL)
- sci_cut(doc->editor->sci);
- else
- if (GTK_IS_TEXT_VIEW(focusw))
+ else if (IS_SCINTILLA(focusw))
+ sci_cut(SCINTILLA(focusw));
+ else if (GTK_IS_TEXT_VIEW(focusw))
{
GtkTextBuffer *buffer = gtk_text_view_get_buffer(
GTK_TEXT_VIEW(focusw));
@@ -248,16 +245,13 @@ void on_cut1_activate(GtkMenuItem *menuitem, gpointer user_data)
void on_copy1_activate(GtkMenuItem *menuitem, gpointer user_data)
{
- GeanyDocument *doc = document_get_current();
GtkWidget *focusw = gtk_window_get_focus(GTK_WINDOW(main_widgets.window));
if (GTK_IS_EDITABLE(focusw))
gtk_editable_copy_clipboard(GTK_EDITABLE(focusw));
- else
- if (IS_SCINTILLA(focusw) && doc != NULL)
- sci_copy(doc->editor->sci);
- else
- if (GTK_IS_TEXT_VIEW(focusw))
+ else if (IS_SCINTILLA(focusw))
+ sci_copy(SCINTILLA(focusw));
+ else if (GTK_IS_TEXT_VIEW(focusw))
{
GtkTextBuffer *buffer = gtk_text_view_get_buffer(
GTK_TEXT_VIEW(focusw));
@@ -268,18 +262,13 @@ void on_copy1_activate(GtkMenuItem *menuitem, gpointer user_data)
void on_paste1_activate(GtkMenuItem *menuitem, gpointer user_data)
{
- GeanyDocument *doc = document_get_current();
GtkWidget *focusw = gtk_window_get_focus(GTK_WINDOW(main_widgets.window));
if (GTK_IS_EDITABLE(focusw))
gtk_editable_paste_clipboard(GTK_EDITABLE(focusw));
- else
- if (IS_SCINTILLA(focusw) && doc != NULL)
- {
- sci_paste(doc->editor->sci);
- }
- else
- if (GTK_IS_TEXT_VIEW(focusw))
+ else if (IS_SCINTILLA(focusw))
+ sci_paste(SCINTILLA(focusw));
+ else if (GTK_IS_TEXT_VIEW(focusw))
{
GtkTextBuffer *buffer = gtk_text_view_get_buffer(
GTK_TEXT_VIEW(focusw));
@@ -291,16 +280,13 @@ void on_paste1_activate(GtkMenuItem *menuitem, gpointer user_data)
void on_delete1_activate(GtkMenuItem *menuitem, gpointer user_data)
{
- GeanyDocument *doc = document_get_current();
GtkWidget *focusw = gtk_window_get_focus(GTK_WINDOW(main_widgets.window));
if (GTK_IS_EDITABLE(focusw))
gtk_editable_delete_selection(GTK_EDITABLE(focusw));
- else
- if (IS_SCINTILLA(focusw) && doc != NULL && sci_has_selection(doc->editor->sci))
- sci_clear(doc->editor->sci);
- else
- if (GTK_IS_TEXT_VIEW(focusw))
+ else if (IS_SCINTILLA(focusw) && sci_has_selection(SCINTILLA(focusw)))
+ sci_clear(SCINTILLA(focusw));
+ else if (GTK_IS_TEXT_VIEW(focusw))
{
GtkTextBuffer *buffer = gtk_text_view_get_buffer(
GTK_TEXT_VIEW(focusw));
@@ -1200,10 +1186,10 @@ void on_print1_activate(GtkMenuItem *menuitem, gpointer user_data)
void on_menu_select_all1_activate(GtkMenuItem *menuitem, gpointer user_data)
{
- GeanyDocument *doc = document_get_current();
- g_return_if_fail(doc != NULL);
+ GtkWidget *focusw = gtk_window_get_focus(GTK_WINDOW(main_widgets.window));
+ g_return_if_fail(IS_SCINTILLA(focusw));
- sci_select_all(doc->editor->sci);
+ sci_select_all(SCINTILLA(focusw));
}
Modified: src/keybindings.c
11 lines changed, 5 insertions(+), 6 deletions(-)
===================================================================
@@ -1831,10 +1831,7 @@ static void goto_matching_brace(GeanyDocument *doc)
static gboolean cb_func_clipboard_action(guint key_id)
{
- GeanyDocument *doc = document_get_current();
-
- if (doc == NULL)
- return TRUE;
+ GtkWidget *focusw = gtk_window_get_focus(GTK_WINDOW(main_widgets.window));
switch (key_id)
{
@@ -1848,10 +1845,12 @@ static gboolean cb_func_clipboard_action(guint key_id)
on_paste1_activate(NULL, NULL);
break;
case GEANY_KEYS_CLIPBOARD_COPYLINE:
- sci_send_command(doc->editor->sci, SCI_LINECOPY);
+ if (IS_SCINTILLA(focusw))
+ sci_send_command(SCINTILLA(focusw), SCI_LINECOPY);
break;
case GEANY_KEYS_CLIPBOARD_CUTLINE:
- sci_send_command(doc->editor->sci, SCI_LINECUT);
+ if (IS_SCINTILLA(focusw))
+ sci_send_command(SCINTILLA(focusw), SCI_LINECUT);
break;
}
return TRUE;
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
More information about the Commits
mailing list