mirror of
https://github.com/gryf/gryf-overlay.git
synced 2025-12-21 13:28:00 +01:00
209 lines
7.5 KiB
Diff
209 lines
7.5 KiB
Diff
diff -ur gtk+-2.24.31/gtk/gtkentry.c gtk+-2.24.31_patched/gtk/gtkentry.c
|
|
--- gtk+-2.24.31/gtk/gtkentry.c 2016-07-03 20:01:01.000000000 +0200
|
|
+++ gtk+-2.24.31_patched/gtk/gtkentry.c 2016-10-06 20:19:41.504175144 +0200
|
|
@@ -168,6 +168,7 @@
|
|
CUT_CLIPBOARD,
|
|
COPY_CLIPBOARD,
|
|
PASTE_CLIPBOARD,
|
|
+ PASTE_SELECTION,
|
|
TOGGLE_OVERWRITE,
|
|
ICON_PRESS,
|
|
ICON_RELEASE,
|
|
@@ -382,6 +383,8 @@
|
|
static void gtk_entry_cut_clipboard (GtkEntry *entry);
|
|
static void gtk_entry_copy_clipboard (GtkEntry *entry);
|
|
static void gtk_entry_paste_clipboard (GtkEntry *entry);
|
|
+static void gtk_entry_paste_selection (GtkEntry *entry,
|
|
+ const gchar *which);
|
|
static void gtk_entry_toggle_overwrite (GtkEntry *entry);
|
|
static void gtk_entry_select_all (GtkEntry *entry);
|
|
static void gtk_entry_real_activate (GtkEntry *entry);
|
|
@@ -612,6 +615,7 @@
|
|
class->cut_clipboard = gtk_entry_cut_clipboard;
|
|
class->copy_clipboard = gtk_entry_copy_clipboard;
|
|
class->paste_clipboard = gtk_entry_paste_clipboard;
|
|
+ class->paste_selection = gtk_entry_paste_selection;
|
|
class->toggle_overwrite = gtk_entry_toggle_overwrite;
|
|
class->activate = gtk_entry_real_activate;
|
|
class->get_text_area_size = gtk_entry_get_text_area_size;
|
|
@@ -1485,6 +1489,26 @@
|
|
_gtk_marshal_VOID__VOID,
|
|
G_TYPE_NONE, 0);
|
|
|
|
+
|
|
+ /**
|
|
+ * GtkEntry::paste-selection:
|
|
+ * @entry: the object which received the signal
|
|
+ *
|
|
+ * The ::paste-selection signal is a
|
|
+ * <link linkend="keybinding-signals">keybinding signal</link>
|
|
+ * which gets emitted to paste the contents of the given selection
|
|
+ * into the entry.
|
|
+ */
|
|
+ signals[PASTE_SELECTION] =
|
|
+ g_signal_new (I_("paste-selection"),
|
|
+ G_OBJECT_CLASS_TYPE (gobject_class),
|
|
+ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
|
|
+ G_STRUCT_OFFSET (GtkEntryClass, paste_selection),
|
|
+ NULL, NULL,
|
|
+ _gtk_marshal_VOID__STRING,
|
|
+ G_TYPE_NONE, 1,
|
|
+ G_TYPE_STRING);
|
|
+
|
|
/**
|
|
* GtkEntry::toggle-overwrite:
|
|
* @entry: the object which received the signal
|
|
@@ -5091,6 +5115,23 @@
|
|
gtk_widget_error_bell (GTK_WIDGET (entry));
|
|
}
|
|
|
|
+gtk_entry_paste_selection (GtkEntry *entry, const gchar *which)
|
|
+{
|
|
+ if (entry->editable)
|
|
+ {
|
|
+ if (g_str_equal(which, "primary"))
|
|
+ gtk_entry_paste (entry, GDK_SELECTION_PRIMARY);
|
|
+ else if (g_str_equal(which, "secondary"))
|
|
+ gtk_entry_paste (entry, GDK_SELECTION_PRIMARY);
|
|
+ else if (g_str_equal(which, "clipboard"))
|
|
+ gtk_entry_paste (entry, GDK_SELECTION_CLIPBOARD);
|
|
+ else
|
|
+ gtk_widget_error_bell (GTK_WIDGET (entry));
|
|
+ }
|
|
+ else
|
|
+ gtk_widget_error_bell (GTK_WIDGET (entry));
|
|
+}
|
|
+
|
|
static void
|
|
gtk_entry_delete_cb (GtkEntry *entry)
|
|
{
|
|
diff -ur gtk+-2.24.31/gtk/gtkentry.h gtk+-2.24.31_patched/gtk/gtkentry.h
|
|
--- gtk+-2.24.31/gtk/gtkentry.h 2015-12-28 16:42:28.000000000 +0100
|
|
+++ gtk+-2.24.31_patched/gtk/gtkentry.h 2016-10-06 19:59:44.000000000 +0200
|
|
@@ -149,6 +149,8 @@
|
|
void (* cut_clipboard) (GtkEntry *entry);
|
|
void (* copy_clipboard) (GtkEntry *entry);
|
|
void (* paste_clipboard) (GtkEntry *entry);
|
|
+ void (* paste_selection) (GtkEntry *entry,
|
|
+ const gchar *which);
|
|
void (* toggle_overwrite) (GtkEntry *entry);
|
|
|
|
/* hook to add other objects beside the entry (like in GtkSpinButton) */
|
|
@@ -160,7 +162,6 @@
|
|
|
|
/* Padding for future expansion */
|
|
void (*_gtk_reserved1) (void);
|
|
- void (*_gtk_reserved2) (void);
|
|
};
|
|
|
|
GType gtk_entry_get_type (void) G_GNUC_CONST;
|
|
diff -ur gtk+-2.24.31/gtk/gtktextview.c gtk+-2.24.31_patched/gtk/gtktextview.c
|
|
--- gtk+-2.24.31/gtk/gtktextview.c 2015-12-28 16:42:28.000000000 +0100
|
|
+++ gtk+-2.24.31_patched/gtk/gtktextview.c 2016-10-06 19:59:58.000000000 +0200
|
|
@@ -135,6 +135,7 @@
|
|
CUT_CLIPBOARD,
|
|
COPY_CLIPBOARD,
|
|
PASTE_CLIPBOARD,
|
|
+ PASTE_SELECTION,
|
|
TOGGLE_OVERWRITE,
|
|
MOVE_VIEWPORT,
|
|
SELECT_ALL,
|
|
@@ -281,6 +282,8 @@
|
|
static void gtk_text_view_cut_clipboard (GtkTextView *text_view);
|
|
static void gtk_text_view_copy_clipboard (GtkTextView *text_view);
|
|
static void gtk_text_view_paste_clipboard (GtkTextView *text_view);
|
|
+static void gtk_text_view_paste_selection (GtkTextView *text_view,
|
|
+ const gchar *which);
|
|
static void gtk_text_view_toggle_overwrite (GtkTextView *text_view);
|
|
static void gtk_text_view_toggle_cursor_visible (GtkTextView *text_view);
|
|
static void gtk_text_view_compat_move_focus(GtkTextView *text_view,
|
|
@@ -532,6 +535,7 @@
|
|
klass->cut_clipboard = gtk_text_view_cut_clipboard;
|
|
klass->copy_clipboard = gtk_text_view_copy_clipboard;
|
|
klass->paste_clipboard = gtk_text_view_paste_clipboard;
|
|
+ klass->paste_selection = gtk_text_view_paste_selection;
|
|
klass->toggle_overwrite = gtk_text_view_toggle_overwrite;
|
|
klass->move_focus = gtk_text_view_compat_move_focus;
|
|
klass->set_scroll_adjustments = gtk_text_view_set_scroll_adjustments;
|
|
@@ -925,6 +929,27 @@
|
|
_gtk_marshal_VOID__VOID,
|
|
G_TYPE_NONE, 0);
|
|
|
|
+
|
|
+ /**
|
|
+ * GtkTextView::paste-selection:
|
|
+ * @text_view: the object which received the signal
|
|
+ *
|
|
+ * The ::paste-selection signal is a
|
|
+ * <link linkend="keybinding-signals">keybinding signal</link>
|
|
+ * which gets emitted to paste the contents of the given selection
|
|
+ * into the text view.
|
|
+ */
|
|
+ signals[PASTE_SELECTION] =
|
|
+ g_signal_new (I_("paste-selection"),
|
|
+ G_OBJECT_CLASS_TYPE (gobject_class),
|
|
+ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
|
|
+ G_STRUCT_OFFSET (GtkTextViewClass, paste_selection),
|
|
+ NULL, NULL,
|
|
+ _gtk_marshal_VOID__STRING,
|
|
+ G_TYPE_NONE, 1,
|
|
+ G_TYPE_STRING);
|
|
+
|
|
+
|
|
/**
|
|
* GtkTextView::paste-clipboard:
|
|
* @text_view: the object which received the signal
|
|
@@ -5818,6 +5843,32 @@
|
|
}
|
|
|
|
static void
|
|
+gtk_text_view_paste_selection (GtkTextView *text_view,
|
|
+ const gchar *which)
|
|
+{
|
|
+ GtkClipboard *clipboard = NULL;
|
|
+
|
|
+ if (g_str_equal (which, "primary"))
|
|
+ clipboard = gtk_widget_get_clipboard (GTK_WIDGET (text_view),
|
|
+ GDK_SELECTION_PRIMARY);
|
|
+ else if (g_str_equal (which, "secondary"))
|
|
+ clipboard = gtk_widget_get_clipboard (GTK_WIDGET (text_view),
|
|
+ GDK_SELECTION_SECONDARY);
|
|
+ else if (g_str_equal (which, "clipboard"))
|
|
+ clipboard = gtk_widget_get_clipboard (GTK_WIDGET (text_view),
|
|
+ GDK_SELECTION_CLIPBOARD);
|
|
+
|
|
+ if (clipboard)
|
|
+ gtk_text_buffer_paste_clipboard (get_buffer (text_view),
|
|
+ clipboard,
|
|
+ NULL,
|
|
+ text_view->editable);
|
|
+ else
|
|
+ gtk_widget_error_bell (GTK_WIDGET (text_view));
|
|
+}
|
|
+
|
|
+
|
|
+static void
|
|
gtk_text_view_paste_done_handler (GtkTextBuffer *buffer,
|
|
GtkClipboard *clipboard,
|
|
gpointer data)
|
|
diff -ur gtk+-2.24.31/gtk/gtktextview.h gtk+-2.24.31_patched/gtk/gtktextview.h
|
|
--- gtk+-2.24.31/gtk/gtktextview.h 2015-12-28 16:42:28.000000000 +0100
|
|
+++ gtk+-2.24.31_patched/gtk/gtktextview.h 2016-10-06 20:00:08.000000000 +0200
|
|
@@ -194,6 +194,8 @@
|
|
void (* cut_clipboard) (GtkTextView *text_view);
|
|
void (* copy_clipboard) (GtkTextView *text_view);
|
|
void (* paste_clipboard) (GtkTextView *text_view);
|
|
+ void (* paste_selection) (GtkTextView *text_view, const gchar *which);
|
|
+
|
|
/* overwrite */
|
|
void (* toggle_overwrite) (GtkTextView *text_view);
|
|
|
|
@@ -211,7 +213,6 @@
|
|
void (*_gtk_reserved4) (void);
|
|
void (*_gtk_reserved5) (void);
|
|
void (*_gtk_reserved6) (void);
|
|
- void (*_gtk_reserved7) (void);
|
|
};
|
|
|
|
GType gtk_text_view_get_type (void) G_GNUC_CONST;
|