Fix broken logic in mg_word_clicked(). fixes #522

This commit is contained in:
RichardHitt 2013-04-15 12:05:53 -07:00
parent f0d0f90e13
commit a5eb7784c6
1 changed files with 19 additions and 14 deletions

View File

@ -2236,25 +2236,28 @@ mg_word_clicked (GtkWidget *xtext, char *word, GdkEventButton *even)
int word_type, start, end;
char *tmp;
if (word == NULL)
if (word)
{
if (even->button == 1) /* left button */
mg_focus (sess);
return;
word_type = mg_word_check (xtext, word);
url_last (&start, &end);
}
word_type = mg_word_check (xtext, word);
url_last (&start, &end);
if (even->button == 1 && (even->state & 13) == prefs.hex_gui_url_mod)
if (even->button == 1) /* left button */
{
switch (word_type)
if (word == NULL)
{
case WORD_URL:
case WORD_HOST:
word[end] = 0;
word += start;
fe_open_url (word);
mg_focus (sess);
return;
}
if ((even->state & 13) == prefs.hex_gui_url_mod)
{
switch (word_type)
{
case WORD_URL:
case WORD_HOST:
fe_open_url (word);
}
}
return;
}
@ -2267,6 +2270,8 @@ mg_word_clicked (GtkWidget *xtext, char *word, GdkEventButton *even)
userlist_select (sess, word);
return;
}
if (word == NULL)
return;
switch (word_type)
{