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 | ... | ... |