st: Use StSettings for primary-paste setting

If middle-click happens, check whether the setting is enabled
and paste primary selection if so.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/317
This commit is contained in:
Carlos Garnacho 2019-01-30 19:56:18 +01:00
parent df3068d9ca
commit 8647922df9

View File

@ -56,6 +56,7 @@
#include "st-icon.h"
#include "st-label.h"
#include "st-settings.h"
#include "st-widget.h"
#include "st-texture-cache.h"
#include "st-clipboard.h"
@ -644,29 +645,32 @@ clutter_text_button_press_event (ClutterActor *actor,
gpointer user_data)
{
StEntryPrivate *priv = ST_ENTRY_PRIV (user_data);
GtkSettings *settings = gtk_settings_get_default ();
gboolean primary_paste_enabled;
g_object_get (settings,
"gtk-enable-primary-paste", &primary_paste_enabled,
NULL);
if (primary_paste_enabled && event->button == 2
&& clutter_text_get_editable (CLUTTER_TEXT (priv->entry)))
if (event->button == 2 &&
clutter_text_get_editable (CLUTTER_TEXT (priv->entry)))
{
StClipboard *clipboard;
StSettings *settings;
gboolean primary_paste_enabled;
clipboard = st_clipboard_get_default ();
settings = st_settings_get ();
g_object_get (settings, "primary-paste", &primary_paste_enabled, NULL);
/* By the time the clipboard callback is called,
* the rest of the signal handlers will have
* run, making the text cursor to be in the correct
* place.
*/
st_clipboard_get_text (clipboard,
ST_CLIPBOARD_TYPE_PRIMARY,
st_entry_clipboard_callback,
user_data);
if (primary_paste_enabled)
{
StClipboard *clipboard;
clipboard = st_clipboard_get_default ();
/* By the time the clipboard callback is called,
* the rest of the signal handlers will have
* run, making the text cursor to be in the correct
* place.
*/
st_clipboard_get_text (clipboard,
ST_CLIPBOARD_TYPE_PRIMARY,
st_entry_clipboard_callback,
user_data);
}
}
return FALSE;