diff -urN tmp/gnome-terminal-2.6.1/src/terminal-screen.c work/gnome-terminal-2.6.1/src/terminal-screen.c --- tmp/gnome-terminal-2.6.1/src/terminal-screen.c 2004-05-17 19:59:47.850620000 -0700 +++ work/gnome-terminal-2.6.1/src/terminal-screen.c 2004-05-17 20:05:56.833560000 -0700 @@ -1599,10 +1599,6 @@ terminal_widget_get_cell_size (term, &char_width, &char_height); g_free (screen->priv->matched_string); - screen->priv->matched_string = - terminal_widget_check_match (term, - event->x / char_width, - event->y / char_height); dingus_button = ((event->button == 1) || (event->button == 2)); if (dingus_button && @@ -1624,20 +1620,30 @@ } if (dingus_button && - (event->state & GDK_CONTROL_MASK) && - (screen->priv->matched_string != NULL)) + (event->state & GDK_CONTROL_MASK)) { gtk_widget_grab_focus (widget); - open_url (screen, screen->priv->matched_string); - g_free (screen->priv->matched_string); - screen->priv->matched_string = NULL; - return TRUE; /* don't do anything else such as select with the click */ + screen->priv->matched_string = + terminal_widget_check_match (term, + event->x / char_width, + event->y / char_height); + if (screen->priv->matched_string != NULL) + { + open_url (screen, screen->priv->matched_string); + g_free (screen->priv->matched_string); + screen->priv->matched_string = NULL; + return TRUE; /* don't do anything else such as select with the click */ + } } if ((event->button == 3) && !(event->state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK | GDK_MOD1_MASK))) { + screen->priv->matched_string = + terminal_widget_check_match (term, + event->x / char_width, + event->y / char_height); terminal_screen_do_popup (screen, event); return TRUE; }