Ctrl + middle click is handled twice
Ctrl middle click set the zoom level to 0 but it is supposed to open a link (selected text) in a new tab, too If a link is selected it should open and otherwise set the zoom level to 1.0. So if you click on a link with Ctrl + middle click you get a new tab and your zoom isn't changed.
This commit is contained in:
parent
357187e264
commit
a695a91410
1 changed files with 51 additions and 49 deletions
|
@ -1782,12 +1782,7 @@ midori_view_web_view_button_press_event_cb (WebKitWebView* web_view,
|
||||||
view->button_press_handled = TRUE;
|
view->button_press_handled = TRUE;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
else if (MIDORI_MOD_SCROLL (event->state))
|
if (view->middle_click_opens_selection)
|
||||||
{
|
|
||||||
midori_view_set_zoom_level (MIDORI_VIEW (view), 1.0);
|
|
||||||
return FALSE; /* Allow Ctrl + Middle click */
|
|
||||||
}
|
|
||||||
else if (view->middle_click_opens_selection)
|
|
||||||
{
|
{
|
||||||
gboolean is_editable;
|
gboolean is_editable;
|
||||||
WebKitHitTestResult* result;
|
WebKitHitTestResult* result;
|
||||||
|
@ -1797,56 +1792,63 @@ midori_view_web_view_button_press_event_cb (WebKitWebView* web_view,
|
||||||
context = katze_object_get_int (result, "context");
|
context = katze_object_get_int (result, "context");
|
||||||
is_editable = context & WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE;
|
is_editable = context & WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE;
|
||||||
g_object_unref (result);
|
g_object_unref (result);
|
||||||
if (is_editable)
|
if (!is_editable)
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
clipboard = gtk_clipboard_get_for_display (
|
|
||||||
gtk_widget_get_display (GTK_WIDGET (view)),
|
|
||||||
GDK_SELECTION_PRIMARY);
|
|
||||||
if ((uri = gtk_clipboard_wait_for_text (clipboard)))
|
|
||||||
{
|
{
|
||||||
guint i = 0;
|
clipboard = gtk_clipboard_get_for_display (
|
||||||
while (uri[i++] != '\0')
|
gtk_widget_get_display (GTK_WIDGET (view)),
|
||||||
if (uri[i] == '\n' || uri[i] == '\r')
|
GDK_SELECTION_PRIMARY);
|
||||||
uri[i] = ' ';
|
if ((uri = gtk_clipboard_wait_for_text (clipboard)))
|
||||||
g_strstrip (uri);
|
|
||||||
|
|
||||||
/* Hold Alt to search for the selected word */
|
|
||||||
if (event->state & GDK_MOD1_MASK)
|
|
||||||
{
|
{
|
||||||
new_uri = sokoke_magic_uri (uri);
|
guint i = 0;
|
||||||
if (!new_uri)
|
while (uri[i++] != '\0')
|
||||||
|
if (uri[i] == '\n' || uri[i] == '\r')
|
||||||
|
uri[i] = ' ';
|
||||||
|
g_strstrip (uri);
|
||||||
|
|
||||||
|
/* Hold Alt to search for the selected word */
|
||||||
|
if (event->state & GDK_MOD1_MASK)
|
||||||
{
|
{
|
||||||
gchar* search = katze_object_get_string (
|
new_uri = sokoke_magic_uri (uri);
|
||||||
view->settings, "location-entry-search");
|
if (!new_uri)
|
||||||
new_uri = midori_uri_for_search (search, uri);
|
{
|
||||||
g_free (search);
|
gchar* search = katze_object_get_string (
|
||||||
|
view->settings, "location-entry-search");
|
||||||
|
new_uri = midori_uri_for_search (search, uri);
|
||||||
|
g_free (search);
|
||||||
|
}
|
||||||
|
katze_assign (uri, new_uri);
|
||||||
|
}
|
||||||
|
else if (midori_uri_is_location (uri))
|
||||||
|
{
|
||||||
|
if (MIDORI_MOD_NEW_TAB (event->state))
|
||||||
|
{
|
||||||
|
background = view->open_tabs_in_the_background;
|
||||||
|
if (MIDORI_MOD_BACKGROUND (event->state))
|
||||||
|
background = !background;
|
||||||
|
g_signal_emit (view, signals[NEW_TAB], 0, uri, background);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
midori_view_set_uri (MIDORI_VIEW (view), uri);
|
||||||
|
gtk_widget_grab_focus (GTK_WIDGET (view));
|
||||||
|
}
|
||||||
|
g_free (uri);
|
||||||
|
view->button_press_handled = TRUE;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
g_free (uri);
|
||||||
}
|
}
|
||||||
katze_assign (uri, new_uri);
|
|
||||||
}
|
}
|
||||||
else if (!midori_uri_is_location (uri))
|
|
||||||
{
|
|
||||||
g_free (uri);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (MIDORI_MOD_NEW_TAB (event->state))
|
|
||||||
{
|
|
||||||
background = view->open_tabs_in_the_background;
|
|
||||||
if (MIDORI_MOD_BACKGROUND (event->state))
|
|
||||||
background = !background;
|
|
||||||
g_signal_emit (view, signals[NEW_TAB], 0, uri, background);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
midori_view_set_uri (MIDORI_VIEW (view), uri);
|
|
||||||
gtk_widget_grab_focus (GTK_WIDGET (view));
|
|
||||||
}
|
|
||||||
g_free (uri);
|
|
||||||
view->button_press_handled = TRUE;
|
|
||||||
return TRUE;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (MIDORI_MOD_SCROLL (event->state))
|
||||||
|
{
|
||||||
|
midori_view_set_zoom_level (MIDORI_VIEW (view), 1.0);
|
||||||
|
return FALSE; /* Allow Ctrl + Middle click */
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
if (event->state & GDK_CONTROL_MASK)
|
if (event->state & GDK_CONTROL_MASK)
|
||||||
|
|
Loading…
Reference in a new issue