Merge lp:~kalikiana/midori/externally into lp:midori

Proposed by Cris Dywan
Status: Merged
Approved by: André Stösel
Approved revision: 6228
Merged at revision: 6250
Proposed branch: lp:~kalikiana/midori/externally
Merge into: lp:midori
Diff against target: 122 lines (+49/-18)
2 files modified
midori/midori-browser.c (+27/-4)
midori/midori-view.c (+22/-14)
To merge this branch: bzr merge lp:~kalikiana/midori/externally
Reviewer Review Type Date Requested Status
André Stösel Approve
Review via email: mp+170913@code.launchpad.net

Commit message

Consistently open windows/ tabs in external browser/ new process

Description of the change

Consistently open windows/ tabs in external browser/ new process

To post a comment you must log in.
Revision history for this message
André Stösel (ivaldi) wrote :

The private mode part looks good and does work as I would expect, but the app mode part is kind of misleading.

If I'm using a none default profile, start some app and choose to open a link in a new window (in app mode), I woudln't expect midori do use my default profile to show this link.

Possible solutions:
 - detect which profiles are running and ask which one to use (especially when midori would start a new one)

PS: During testing there was a bug which causes midori to run the default profile twice, but I can't reproduce it -> I guess it was some kind of race condition in some lib

Revision history for this message
Cris Dywan (kalikiana) wrote :

My expectation was to always launch the default browser which doesn't strictly even have to be Midori. Further more we have no concept of an "active" profile, the default is - as of yet - always the original in ~/.config/midori .

Revision history for this message
Cris Dywan (kalikiana) wrote :

In fact I would consider this as a new feature if you want something like a profile dialog or switching - not to say those are bad ideas but I don't see that as a requirement for what I want to solve here.

Revision history for this message
André Stösel (ivaldi) wrote :

Hm... the caption is still misleading. We could change the text from "Open Link in New Window" to "Open Link" in app mode!?

lp:~kalikiana/midori/externally updated
6227. By Cris Dywan

Only show "Open Link in New Tab" in app mode

Revision history for this message
André Stösel (ivaldi) wrote :

The "in New Tab" part of the label is still confusing and we should change it to "Open Link".
(Same text as in the xfce terminal.)

review: Needs Fixing
lp:~kalikiana/midori/externally updated
6228. By Cris Dywan

Rename menu item to Open Link in app mode

Revision history for this message
André Stösel (ivaldi) wrote :

Looks good.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'midori/midori-browser.c'
--- midori/midori-browser.c 2013-07-01 20:20:53 +0000
+++ midori/midori-browser.c 2013-07-04 20:33:29 +0000
@@ -1318,12 +1318,29 @@
1318 }1318 }
1319}1319}
13201320
1321static bool
1322midori_view_forward_external (GtkWidget* view,
1323 const gchar* uri)
1324{
1325 if (midori_paths_get_runtime_mode () == MIDORI_RUNTIME_MODE_APP)
1326 return sokoke_show_uri (gtk_widget_get_screen (view), uri, 0, NULL);
1327 else if (midori_paths_get_runtime_mode () == MIDORI_RUNTIME_MODE_PRIVATE)
1328 {
1329 sokoke_spawn_app (uri, TRUE);
1330 return TRUE;
1331 }
1332 return FALSE;
1333}
1334
1321static void1335static void
1322midori_view_new_tab_cb (GtkWidget* view,1336midori_view_new_tab_cb (GtkWidget* view,
1323 const gchar* uri,1337 const gchar* uri,
1324 gboolean background,1338 gboolean background,
1325 MidoriBrowser* browser)1339 MidoriBrowser* browser)
1326{1340{
1341 if (midori_view_forward_external (view, uri))
1342 return;
1343
1327 GtkWidget* new_view = midori_browser_add_uri (browser, uri);1344 GtkWidget* new_view = midori_browser_add_uri (browser, uri);
1328 midori_browser_view_copy_history (new_view, view, FALSE);1345 midori_browser_view_copy_history (new_view, view, FALSE);
13291346
@@ -1338,12 +1355,13 @@
1338 const gchar* uri,1355 const gchar* uri,
1339 MidoriBrowser* browser)1356 MidoriBrowser* browser)
1340{1357{
1358 if (midori_view_forward_external (view, uri))
1359 return;
1360
1341 MidoriBrowser* new_browser;1361 MidoriBrowser* new_browser;
1342 g_signal_emit (browser, signals[NEW_WINDOW], 0, NULL, &new_browser);1362 g_signal_emit (browser, signals[NEW_WINDOW], 0, NULL, &new_browser);
1343 if (new_browser)1363 g_assert (new_browser != NULL);
1344 midori_browser_add_uri (new_browser, uri);1364 midori_view_new_tab_cb (view, uri, FALSE, new_browser);
1345 else /* No MidoriApp, so this is app or private mode */
1346 sokoke_spawn_app (uri, TRUE);
1347}1365}
13481366
1349static void1367static void
@@ -1353,11 +1371,16 @@
1353 gboolean user_initiated,1371 gboolean user_initiated,
1354 MidoriBrowser* browser)1372 MidoriBrowser* browser)
1355{1373{
1374 if (midori_view_forward_external (new_view,
1375 katze_item_get_uri (midori_view_get_proxy_item (MIDORI_VIEW (new_view)))))
1376 return;
1377
1356 midori_browser_view_copy_history (new_view, view, TRUE);1378 midori_browser_view_copy_history (new_view, view, TRUE);
1357 if (where == MIDORI_NEW_VIEW_WINDOW)1379 if (where == MIDORI_NEW_VIEW_WINDOW)
1358 {1380 {
1359 MidoriBrowser* new_browser;1381 MidoriBrowser* new_browser;
1360 g_signal_emit (browser, signals[NEW_WINDOW], 0, NULL, &new_browser);1382 g_signal_emit (browser, signals[NEW_WINDOW], 0, NULL, &new_browser);
1383 g_assert (new_browser != NULL);
1361 midori_browser_add_tab (new_browser, new_view);1384 midori_browser_add_tab (new_browser, new_view);
1362 midori_browser_set_current_tab (new_browser, new_view);1385 midori_browser_set_current_tab (new_browser, new_view);
1363 }1386 }
13641387
=== modified file 'midori/midori-view.c'
--- midori/midori-view.c 2013-07-01 20:20:33 +0000
+++ midori/midori-view.c 2013-07-04 20:33:29 +0000
@@ -2471,19 +2471,25 @@
2471 }2471 }
2472 if (view->link_uri)2472 if (view->link_uri)
2473 {2473 {
2474 if (!midori_view_always_same_tab (view->link_uri))2474 if (midori_paths_get_runtime_mode () == MIDORI_RUNTIME_MODE_APP)
2475 {2475 {
2476 midori_view_insert_menu_item (menu_shell, -1,2476 midori_view_insert_menu_item (menu_shell, -1,
2477 _("Open Link in New _Tab"), STOCK_TAB_NEW,2477 _("Open _Link"), STOCK_TAB_NEW,
2478 G_CALLBACK (midori_web_view_menu_new_tab_activate_cb), widget);2478 G_CALLBACK (midori_web_view_menu_new_tab_activate_cb), widget);
2479 midori_view_insert_menu_item (menu_shell, -1,2479 }
2480 view->open_tabs_in_the_background2480 else if (!midori_view_always_same_tab (view->link_uri))
2481 ? _("Open Link in _Foreground Tab")2481 {
2482 : _("Open Link in _Background Tab"), NULL,2482 midori_view_insert_menu_item (menu_shell, -1,
2483 G_CALLBACK (midori_web_view_menu_background_tab_activate_cb), widget);2483 _("Open Link in New _Tab"), STOCK_TAB_NEW,
2484 midori_view_insert_menu_item (menu_shell, -1,2484 G_CALLBACK (midori_web_view_menu_new_tab_activate_cb), widget);
2485 _("Open Link in New _Window"), STOCK_WINDOW_NEW,2485 midori_view_insert_menu_item (menu_shell, -1,
2486 G_CALLBACK (midori_web_view_menu_new_window_activate_cb), widget);2486 view->open_tabs_in_the_background
2487 ? _("Open Link in _Foreground Tab")
2488 : _("Open Link in _Background Tab"), NULL,
2489 G_CALLBACK (midori_web_view_menu_background_tab_activate_cb), widget);
2490 midori_view_insert_menu_item (menu_shell, -1,
2491 _("Open Link in New _Window"), STOCK_WINDOW_NEW,
2492 G_CALLBACK (midori_web_view_menu_new_window_activate_cb), widget);
2487 }2493 }
24882494
2489 midori_view_insert_menu_item (menu_shell, -1,2495 midori_view_insert_menu_item (menu_shell, -1,
@@ -2789,7 +2795,9 @@
2789 new_view = view;2795 new_view = view;
2790 else2796 else
2791 {2797 {
2792 new_view = (MidoriView*)midori_view_new_with_item (NULL, view->settings);2798 KatzeItem* item = katze_item_new ();
2799 item->uri = g_strdup (webkit_web_frame_get_uri (web_frame));
2800 new_view = (MidoriView*)midori_view_new_with_item (item, view->settings);
2793 g_signal_connect (new_view->web_view, "web-view-ready",2801 g_signal_connect (new_view->web_view, "web-view-ready",
2794 G_CALLBACK (webkit_web_view_web_view_ready_cb), view);2802 G_CALLBACK (webkit_web_view_web_view_ready_cb), view);
2795 }2803 }

Subscribers

People subscribed via source and target branches

to all changes: