X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fgtkmathview-bonobo%2Fsrc%2Fhandlers.c;h=4861b2f0b0ec6f7205d3be03e5a2c79ae80fc396;hb=4167cea65ca58897d1a3dbb81ff95de5074700cc;hp=85479ed1b61a129b5a4466fae9f7bdb2d2c0880d;hpb=2a9857d047063f36dfd15b0e07902bde1dd3d466;p=helm.git diff --git a/helm/gtkmathview-bonobo/src/handlers.c b/helm/gtkmathview-bonobo/src/handlers.c index 85479ed1b..4861b2f0b 100644 --- a/helm/gtkmathview-bonobo/src/handlers.c +++ b/helm/gtkmathview-bonobo/src/handlers.c @@ -38,6 +38,21 @@ set_frame(BonoboControl *control, gpointer data) { } +static void +notify_browser(GtkMathViewControlData* control_data, const char* url) +{ + BonoboObject* evs = bonobo_object_query_local_interface(BONOBO_OBJECT(control_data->control), + "IDL:Bonobo/EventSource:1.0"); + if (evs != NULL) + { + BonoboArg* arg = bonobo_arg_new(BONOBO_ARG_STRING); + BONOBO_ARG_SET_STRING(arg, url); + bonobo_event_source_notify_listeners (evs, "URL", arg, NULL); + /* bonobo_arg_release(arg); */ + bonobo_object_unref(BONOBO_OBJECT(evs)); + } +} + void click_cb(GtkMathView* math_view, GdomeElement* elem, gint state, GtkMathViewControlData* control_data) @@ -46,7 +61,7 @@ click_cb(GtkMathView* math_view, GdomeElement* elem, gint state, g_return_if_fail(math_view != NULL); g_return_if_fail(control_data != NULL); - + if (elem != NULL) { GdomeElement* action; @@ -55,7 +70,10 @@ click_cb(GtkMathView* math_view, GdomeElement* elem, gint state, if (href != NULL) { /*gtk_math_view_load_uri(math_view,href->str);*/ - set_clipboard(href); + + notify_browser(control_data, href->str); + + //set_clipboard(href); gdome_str_unref(href); return; } @@ -102,7 +120,7 @@ select_begin_cb(GtkMathView* math_view, GdomeElement* elem, gint state, control_data->root_selected = NULL; } - if (control_data->id_ns_uri != NULL || control_data->id_name != NULL) + if (control_data->semantic_selection) { GdomeElement* new_elem = find_element_with_id(elem, control_data->id_ns_uri, control_data->id_name); if (new_elem != NULL) @@ -149,7 +167,7 @@ select_over_cb(GtkMathView* math_view, GdomeElement* elem, gint state, control_data->root_selected = NULL; } - if (control_data->id_ns_uri != NULL || control_data->id_name != NULL) + if (control_data->semantic_selection) { GdomeElement* new_root = find_common_ancestor(control_data->first_selected, elem); if (new_root != NULL) @@ -185,8 +203,7 @@ select_end_cb(GtkMathView* math_view, GdomeElement* elem, gint state, g_assert(exc == 0); control_data->first_selected = NULL; - if (control_data->root_selected != NULL && - (control_data->id_ns_uri != NULL || control_data->id_name != NULL)) + if (control_data->root_selected != NULL && control_data->semantic_selection) { GdomeException exc = 0; GdomeDOMString* id = gdome_el_getAttributeNS(control_data->root_selected,