Commit 5076a548ef127fe540f78ffe5bc87079349eefc2
1 parent
4baf2f92
Exists in
master
and in
5 other branches
Incluindo mais métodos na interface dbus
Showing
4 changed files
with
27 additions
and
0 deletions
Show diff stats
src/plugins/dbus3270/gobject.c
... | ... | @@ -391,6 +391,12 @@ void pw3270_dbus_get_clipboard(PW3270Dbus *object, int row, int col, int len, DB |
391 | 391 | } |
392 | 392 | } |
393 | 393 | |
394 | +void pw3270_dbus_set_clipboard(PW3270Dbus *object, const gchar *text, DBusGMethodInvocation *context) | |
395 | +{ | |
396 | + gtk_clipboard_set_text(gtk_widget_get_clipboard(pw3270_get_toplevel(),GDK_SELECTION_CLIPBOARD),(gchar *) text, -1); | |
397 | + dbus_g_method_return(context,0); | |
398 | +} | |
399 | + | |
394 | 400 | void pw3270_dbus_set_script(PW3270Dbus *object, const gchar *text, int mode, DBusGMethodInvocation *context) |
395 | 401 | { |
396 | 402 | GtkWidget *widget = pw3270_get_terminal_widget(NULL); | ... | ... |
src/plugins/dbus3270/pw3270dbus.xml
... | ... | @@ -61,6 +61,10 @@ |
61 | 61 | <arg type="i" name="len" direction="in" /> |
62 | 62 | <arg type="s" name="text" direction="out" /> |
63 | 63 | </method> |
64 | + <method name="setClipboard"> | |
65 | + <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/> | |
66 | + <arg type="s" name="text" direction="in" /> | |
67 | + </method> | |
64 | 68 | <method name="getClipboard"> |
65 | 69 | <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/> |
66 | 70 | <arg type="s" name="text" direction="out" /> | ... | ... |
src/plugins/dbus3270/service.h
... | ... | @@ -99,6 +99,8 @@ |
99 | 99 | void pw3270_dbus_get_text_at(PW3270Dbus *object, int row, int col, int len, DBusGMethodInvocation *context); |
100 | 100 | void pw3270_dbus_cmp_text_at(PW3270Dbus *object, int row, int col, const gchar *text, DBusGMethodInvocation *context); |
101 | 101 | void pw3270_dbus_input(PW3270Dbus *object, const gchar *utftext, DBusGMethodInvocation *context); |
102 | + | |
103 | + void pw3270_dbus_set_clipboard(PW3270Dbus *object, const gchar *text, DBusGMethodInvocation *context); | |
102 | 104 | void pw3270_dbus_get_clipboard(PW3270Dbus *object, int row, int col, int len, DBusGMethodInvocation *context); |
103 | 105 | |
104 | 106 | G_END_DECLS | ... | ... |
src/plugins/rx3270/remote.cc
... | ... | @@ -1165,6 +1165,21 @@ int remote::get_next_unprotected(int baddr) |
1165 | 1165 | |
1166 | 1166 | int remote::set_clipboard(const char *text) |
1167 | 1167 | { |
1168 | +#if defined(WIN32) | |
1169 | + | |
1170 | + return -1; | |
1171 | + | |
1172 | +#elif defined(HAVE_DBUS) | |
1173 | + | |
1174 | + DBusMessage * msg = create_message("setClipboard"); | |
1175 | + if(msg) | |
1176 | + { | |
1177 | + dbus_message_append_args(msg, DBUS_TYPE_STRING, &text, DBUS_TYPE_INVALID); | |
1178 | + return get_intval(call(msg)); | |
1179 | + } | |
1180 | + | |
1181 | +#endif | |
1182 | + | |
1168 | 1183 | return -1; |
1169 | 1184 | } |
1170 | 1185 | ... | ... |