From 0e329efbf8f2617bab14631c7ac5fc289b960852 Mon Sep 17 00:00:00 2001 From: perry.werneck@gmail.com Date: Tue, 13 Mar 2012 02:29:40 +0000 Subject: [PATCH] Novas funções de clipboard não funcionaram legal no windows, correção feita. --- src/gtk/actions.c | 3 ++- src/gtk/v3270/clipboard.c | 18 ++++++++---------- src/gtk/v3270/mouse.c | 1 + src/gtk/v3270/private.h | 4 ---- src/gtk/v3270/v3270.h | 6 ++++-- 5 files changed, 15 insertions(+), 17 deletions(-) diff --git a/src/gtk/actions.c b/src/gtk/actions.c index 18cbc3c..a71b410 100644 --- a/src/gtk/actions.c +++ b/src/gtk/actions.c @@ -31,6 +31,7 @@ #include "globals.h" #include "uiparser/parser.h" + #include "v3270/v3270.h" #include /*--[ Implement ]------------------------------------------------------------------------------------*/ @@ -63,7 +64,7 @@ static void activate_action(GtkAction *action, GtkWidget *widget) static void copy_action(GtkAction *action, GtkWidget *widget) { trace("Action %s activated on widget %p",gtk_action_get_name(action),widget); - v3270_copy(GTK_V3270(widget)); + v3270_copy_clipboard(GTK_V3270(widget)); } void ui_connect_action(GtkAction *action, GtkWidget *widget, const gchar *name, const gchar *id) diff --git a/src/gtk/v3270/clipboard.c b/src/gtk/v3270/clipboard.c index 2c007fe..30f7325 100644 --- a/src/gtk/v3270/clipboard.c +++ b/src/gtk/v3270/clipboard.c @@ -41,8 +41,8 @@ static const GtkTargetEntry targets[] = { - { "STRING", 0, CLIPBOARD_TYPE_TEXT }, - { "text/plain", 0, CLIPBOARD_TYPE_TEXT }, + { "COMPOUND_TEXT", 0, CLIPBOARD_TYPE_TEXT }, + { "UTF8_STRING", 0, CLIPBOARD_TYPE_TEXT }, }; /*--[ Implement ]------------------------------------------------------------------------------------*/ @@ -53,16 +53,16 @@ static void clipboard_clear(GtkClipboard *clipboard, GObject *obj) } -void clipboard_get(GtkClipboard *clipboard, GtkSelectionData *selection, guint target, GObject *obj) +static void clipboard_get(GtkClipboard *clipboard, GtkSelectionData *selection, guint target, GObject *obj) { - v3270 *widget = GTK_V3270(obj); +// v3270 *widget = GTK_V3270(obj); trace("%s: widget=%p target=\"%s\"",__FUNCTION__,obj,targets[target].target); switch(target) { case CLIPBOARD_TYPE_TEXT: - gtk_selection_data_set_text(selection,"teste",-1); + gtk_selection_data_set_text(selection,"teste de clipboard",-1); break; default: @@ -70,9 +70,10 @@ void clipboard_get(GtkClipboard *clipboard, GtkSelectionData *selection, guint t } } -gboolean v3270_copy(v3270 *widget) +void v3270_copy_clipboard(v3270 *widget) { - GtkClipboard *clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD); + GtkClipboard * clipboard = gtk_widget_get_clipboard(GTK_WIDGET(widget),GDK_SELECTION_CLIPBOARD); + if(gtk_clipboard_set_with_owner( clipboard, targets, G_N_ELEMENTS(targets), @@ -82,9 +83,6 @@ gboolean v3270_copy(v3270 *widget) )) { gtk_clipboard_set_can_store(clipboard,targets,1); - trace("%s: Clipboard set",__FUNCTION__); - return TRUE; } - return FALSE; } diff --git a/src/gtk/v3270/mouse.c b/src/gtk/v3270/mouse.c index d6b8afa..8ef9b0a 100644 --- a/src/gtk/v3270/mouse.c +++ b/src/gtk/v3270/mouse.c @@ -33,6 +33,7 @@ #include "v3270.h" #include "private.h" #include + #include /*--[ Implement ]------------------------------------------------------------------------------------*/ diff --git a/src/gtk/v3270/private.h b/src/gtk/v3270/private.h index 9f19af4..59023e3 100644 --- a/src/gtk/v3270/private.h +++ b/src/gtk/v3270/private.h @@ -121,10 +121,6 @@ void v3270_update_message(v3270 *widget, LIB3270_MESSAGE id); void v3270_update_cursor(H3270 *session, unsigned short row, unsigned short col, unsigned char c, unsigned short attr); void v3270_update_oia(H3270 *session, LIB3270_FLAG id, unsigned char on); -// Clipboard -void v3270_clipboard_set(v3270 *widget); -void v3270_clipboard_clear(v3270 *widget); - // Keyboard & Mouse gboolean v3270_key_press_event(GtkWidget *widget, GdkEventKey *event); gboolean v3270_key_release_event(GtkWidget *widget, GdkEventKey *event); diff --git a/src/gtk/v3270/v3270.h b/src/gtk/v3270/v3270.h index 7f20385..5210cfc 100644 --- a/src/gtk/v3270/v3270.h +++ b/src/gtk/v3270/v3270.h @@ -198,8 +198,10 @@ int v3270_connect(GtkWidget *widget, const gchar *host); void v3270_disconnect(GtkWidget *widget); - // Clipboard - gboolean v3270_copy(v3270 *widget); +// Clipboard + void v3270_copy_clipboard(v3270 *widget); + void v3270_paste_clipboard(v3270 *widget); + G_END_DECLS -- libgit2 0.21.2