diff --git a/modules/lib3270 b/modules/lib3270 index 053ca75..e787606 160000 --- a/modules/lib3270 +++ b/modules/lib3270 @@ -1 +1 @@ -Subproject commit 053ca75fbac196fd5730875af2412eafded8d8e0 +Subproject commit e78760681ebc7c453f98930112e7f8c200f3049d diff --git a/modules/libv3270 b/modules/libv3270 index f092fcc..68f0118 160000 --- a/modules/libv3270 +++ b/modules/libv3270 @@ -1 +1 @@ -Subproject commit f092fccd2d5c086b6a0837468aa44deca38d98ac +Subproject commit 68f0118e01c6e7916e750c752884dcc39bf90ad1 diff --git a/src/plugins/dbus3270/gobject.c b/src/plugins/dbus3270/gobject.c index ea78ae8..4b245b3 100644 --- a/src/plugins/dbus3270/gobject.c +++ b/src/plugins/dbus3270/gobject.c @@ -118,12 +118,8 @@ void pw3270_dbus_set_ur_l(PW3270Dbus *object, const gchar *uri, DBusGMethodInvoc void pw3270_dbus_get_ur_l(PW3270Dbus *object, DBusGMethodInvocation *context) { - char buffer[1024]; - trace("%s object=%p context=%p",__FUNCTION__,object,context); - - lib3270_get_url(pw3270_dbus_get_session_handle(PW3270_DBUS(object)),buffer,sizeof(buffer)); - dbus_g_method_return(context,buffer); + dbus_g_method_return(context,lib3270_get_url(pw3270_dbus_get_session_handle(PW3270_DBUS(object)))); } diff --git a/src/pw3270/actions.c b/src/pw3270/actions.c index 87cadc4..8687e72 100644 --- a/src/pw3270/actions.c +++ b/src/pw3270/actions.c @@ -255,6 +255,7 @@ G_GNUC_INTERNAL void transfer_action(GtkAction *action, GtkWidget *widget) static void connect_standard_action(GtkAction *action, GtkWidget *widget, const gchar *name) { + /* #undef DECLARE_LIB3270_ACTION #undef DECLARE_LIB3270_CLEAR_SELECTION_ACTION #undef DECLARE_LIB3270_KEY_ACTION @@ -275,6 +276,7 @@ static void connect_standard_action(GtkAction *action, GtkWidget *widget, const { #include }; + */ static const struct _gtk_action { @@ -304,6 +306,19 @@ static void connect_standard_action(GtkAction *action, GtkWidget *widget, const int f; // Search for lib3270 predefined actions + const LIB3270_ACTION_ENTRY * lib3270_actions = lib3270_get_action_table(); + + for(f=0; lib3270_actions[f].name; f++) + { + if(!g_ascii_strcasecmp(name,lib3270_actions[f].name)) + { + g_object_set_data(G_OBJECT(action),"lib3270_call",lib3270_actions[f].call); + g_signal_connect(action,"activate",G_CALLBACK(do_lib3270_action),widget); + return; + } + } + + /* for(f=0;f