This is an automated email from the git hooks/post-receive script. o c h o s i p u s h e d a c o m m i t t o b r a n c h m a s t e r in repository panel-plugins/xfce4-clipman-plugin.
commit e88a1d195329da0bb6de6b72a89090701f4a7971 Author: Simon Steinbeiss <simon.steinbe...@elfenbeinturm.at> Date: Tue Mar 17 22:16:34 2020 +0100 Try to wire up paste on activate --- panel-plugin/menu.c | 110 +++++++++++++++++++---------------- panel-plugin/menu.h | 3 +- panel-plugin/xfce4-clipman-history.c | 17 +++++- 3 files changed, 76 insertions(+), 54 deletions(-) diff --git a/panel-plugin/menu.c b/panel-plugin/menu.c index 0f24fa7..9891a53 100644 --- a/panel-plugin/menu.c +++ b/panel-plugin/menu.c @@ -164,60 +164,68 @@ cb_set_clipboard (GtkMenuItem *mi, const ClipmanHistoryItem *item) return; } - { - int dummyi; - KeySym key_sym; - KeyCode key_code; + cb_paste_on_activate (GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (mi), "paste-on-activate"))); +} - Display *display = XOpenDisplay (NULL); - if (display == NULL) - { - return; - } - else if (!XQueryExtension (display, "XTEST", &dummyi, &dummyi, &dummyi)) - { - XCloseDisplay (display); - return; - } +void +cb_paste_on_activate (guint paste_on_activate) +{ + int dummyi; + KeySym key_sym; + KeyCode key_code; - switch (GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (mi), "paste-on-activate"))) - { - case PASTE_INACTIVE: - break; - - case PASTE_CTRL_V: - key_sym = XK_Control_L; - key_code = XKeysymToKeycode (display, key_sym); - XTestFakeKeyEvent (display, key_code, True, CurrentTime); - key_sym = XK_v; - key_code = XKeysymToKeycode (display, key_sym); - XTestFakeKeyEvent (display, key_code, True, CurrentTime); - key_sym = XK_v; - key_code = XKeysymToKeycode (display, key_sym); - XTestFakeKeyEvent (display, key_code, False, CurrentTime); - key_sym = XK_Control_L; - key_code = XKeysymToKeycode (display, key_sym); - XTestFakeKeyEvent (display, key_code, False, CurrentTime); - break; - - case PASTE_SHIFT_INS: - key_sym = XK_Shift_L; - key_code = XKeysymToKeycode (display, key_sym); - XTestFakeKeyEvent (display, key_code, True, CurrentTime); - key_sym = XK_Insert; - key_code = XKeysymToKeycode (display, key_sym); - XTestFakeKeyEvent (display, key_code, True, CurrentTime); - key_sym = XK_Insert; - key_code = XKeysymToKeycode (display, key_sym); - XTestFakeKeyEvent (display, key_code, False, CurrentTime); - key_sym = XK_Shift_L; - key_code = XKeysymToKeycode (display, key_sym); - XTestFakeKeyEvent (display, key_code, False, CurrentTime); - break; - } + g_warning ("paste on activate..."); + + Display *display = XOpenDisplay (NULL); + if (display == NULL) + { + return; + } + else if (!XQueryExtension (display, "XTEST", &dummyi, &dummyi, &dummyi)) + { + XCloseDisplay (display); + return; + } + g_warning ("moving on... %d", paste_on_activate); + + switch (paste_on_activate) + { + case PASTE_INACTIVE: + break; + + case PASTE_CTRL_V: + g_warning ("ctrl + v"); + key_sym = XK_Control_L; + key_code = XKeysymToKeycode (display, key_sym); + XTestFakeKeyEvent (display, key_code, True, CurrentTime); + key_sym = XK_v; + key_code = XKeysymToKeycode (display, key_sym); + XTestFakeKeyEvent (display, key_code, True, CurrentTime); + key_sym = XK_v; + key_code = XKeysymToKeycode (display, key_sym); + XTestFakeKeyEvent (display, key_code, False, CurrentTime); + key_sym = XK_Control_L; + key_code = XKeysymToKeycode (display, key_sym); + XTestFakeKeyEvent (display, key_code, False, CurrentTime); + break; + + case PASTE_SHIFT_INS: + key_sym = XK_Shift_L; + key_code = XKeysymToKeycode (display, key_sym); + XTestFakeKeyEvent (display, key_code, True, CurrentTime); + key_sym = XK_Insert; + key_code = XKeysymToKeycode (display, key_sym); + XTestFakeKeyEvent (display, key_code, True, CurrentTime); + key_sym = XK_Insert; + key_code = XKeysymToKeycode (display, key_sym); + XTestFakeKeyEvent (display, key_code, False, CurrentTime); + key_sym = XK_Shift_L; + key_code = XKeysymToKeycode (display, key_sym); + XTestFakeKeyEvent (display, key_code, False, CurrentTime); + break; + } - XCloseDisplay (display); - } + XCloseDisplay (display); } static void diff --git a/panel-plugin/menu.h b/panel-plugin/menu.h index 0444f79..af06c0d 100644 --- a/panel-plugin/menu.h +++ b/panel-plugin/menu.h @@ -53,5 +53,6 @@ GType clipman_menu_get_type (); GtkWidget * clipman_menu_new (); -#endif /* !__CLIPMAN_MENU_H__ */ +void cb_paste_on_activate (guint paste_on_activate); +#endif /* !__CLIPMAN_MENU_H__ */ diff --git a/panel-plugin/xfce4-clipman-history.c b/panel-plugin/xfce4-clipman-history.c index b5d2558..ba46656 100644 --- a/panel-plugin/xfce4-clipman-history.c +++ b/panel-plugin/xfce4-clipman-history.c @@ -29,6 +29,7 @@ #include <libxfce4util/libxfce4util.h> #include <x11-clipboard-manager/daemon.h> +#include <menu.h> #include <plugin.h> #include <history.h> @@ -45,7 +46,7 @@ static void clipman_history_row_activated (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *column, - gpointer user_data) + MyPlugin *plugin) { GtkWidget *window; GtkClipboard *clipboard; @@ -54,6 +55,7 @@ clipman_history_row_activated (GtkTreeView *treeview, GtkTreeIter iter; gboolean ret; gchar *text; + guint paste_on_activate; ret = gtk_tree_model_get_iter (gtk_tree_view_get_model (treeview), &iter, path); if (!ret) @@ -74,6 +76,17 @@ clipman_history_row_activated (GtkTreeView *treeview, gtk_clipboard_set_text (clipboard, text, -1); window = gtk_widget_get_toplevel (GTK_WIDGET (treeview)); + + g_object_get (G_OBJECT (plugin->menu), "paste-on-activate", &paste_on_activate, NULL); + if (paste_on_activate > 0) + { + g_warning ("close the window and paste.,.."); + gtk_window_iconify (GTK_WINDOW (window)); + g_usleep (100000); + cb_paste_on_activate (paste_on_activate); + //gtk_window_deiconify (GTK_WINDOW (window)); + } + if (GTK_IS_WINDOW (window)) gtk_dialog_response (GTK_DIALOG (window), GTK_RESPONSE_CLOSE); } @@ -166,7 +179,7 @@ clipman_history_treeview_init (MyPlugin *plugin) gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (treeview), FALSE); gtk_tree_view_set_enable_search (GTK_TREE_VIEW (treeview), FALSE); g_signal_connect_swapped (G_OBJECT (treeview), "start-interactive-search", G_CALLBACK (gtk_widget_grab_focus), entry); - g_signal_connect (G_OBJECT (treeview), "row-activated", G_CALLBACK (clipman_history_row_activated), NULL); + g_signal_connect (G_OBJECT (treeview), "row-activated", G_CALLBACK (clipman_history_row_activated), plugin); gtk_container_add (GTK_CONTAINER (scroll), treeview); gtk_widget_show (treeview); -- To stop receiving notification emails like this one, please contact the administrator of this repository. _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits