Merge lp:~ivaldi/midori/outsource-webinspector into lp:midori

Proposed by André Stösel
Status: Work in progress
Proposed branch: lp:~ivaldi/midori/outsource-webinspector
Merge into: lp:midori
Diff against target: 490 lines (+126/-254)
3 files modified
extensions/webinspector.vala (+126/-0)
midori/midori-browser.c (+0/-75)
midori/midori-view.c (+0/-179)
To merge this branch: bzr merge lp:~ivaldi/midori/outsource-webinspector
Reviewer Review Type Date Requested Status
Cris Dywan Needs Fixing
Review via email: mp+194256@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Cris Dywan (kalikiana) wrote :

I dislike saving the hit test result because it is racy and you will eventually encounter a situation where it's not set, this is what happened before with regard to the URI below the mouse pointer and the selected text.

How about taking the hit test result in the context menu event and storing it in the action, in a subclass maybe, which is added to the menu?

review: Needs Fixing
6468. By André Stösel

use wrapper object to launch the web inspector

6469. By André Stösel

remove unused hit test property

Unmerged revisions

6469. By André Stösel

remove unused hit test property

6468. By André Stösel

use wrapper object to launch the web inspector

6467. By André Stösel

set coordinates for "inspect element"

6466. By André Stösel

add property for view->hit_test

6465. By André Stösel

new webinspector extension

6464. By André Stösel

remove webinspector from core

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== added file 'extensions/webinspector.vala'
--- extensions/webinspector.vala 1970-01-01 00:00:00 +0000
+++ extensions/webinspector.vala 2013-11-28 20:51:46 +0000
@@ -0,0 +1,126 @@
1/*
2 Copyright (C) 2013 André Stösel <andre@stoesel.de>
3
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) any later version.
8
9 See the file COPYING for the full license text.
10*/
11
12namespace WebInspector {
13 private class Launcher : GLib.Object {
14 private GLib.Value v;
15 private Midori.App app;
16
17 public Launcher (Midori.App app, WebKit.HitTestResult hit_test_result) {
18 this.app = app;
19 this.v = new GLib.Value (typeof (WebKit.HitTestResult));
20 this.v.set_object (hit_test_result);
21 }
22
23 public void inspect_element (Gtk.Action action) {
24 Midori.Browser browser = this.app.browser;
25 Midori.View view = browser.tab as Midori.View;
26
27 WebKit.WebInspector inspector = view.web_view.web_inspector;
28
29 WebKit.HitTestResult hit_test_result = this.v.get_object () as WebKit.HitTestResult;
30
31 int x, y;
32 hit_test_result.get("x", out x);
33 hit_test_result.get("y", out y);
34
35 inspector.inspect_coordinates (x, y);
36 inspector.show();
37
38 this.unref ();
39 }
40 }
41
42 private class Manager : Midori.Extension {
43 private unowned WebKit.WebView inspector_inspect_web_view (WebKit.WebView web_view) {
44 Gtk.Widget inspector_view = new WebKit.WebView ();
45 Gtk.Window window = new Gtk.Window ();
46 window.add (inspector_view);
47 window.show_all ();
48 return inspector_view as WebKit.WebView;
49 }
50
51 private bool inspector_show_window (WebKit.WebInspector inspector) {
52 Gtk.Widget inspector_view = inspector.web_view as Gtk.Widget;
53 Gtk.Widget window = inspector_view.get_toplevel ();
54 window.show ();
55 return true;
56 }
57
58 private void context_menu (WebKit.HitTestResult hit_test_result, Midori.ContextAction menu) {
59 Launcher launcher = new Launcher (this.get_app (), hit_test_result);
60 launcher.ref ();
61 menu.add_simple ("InspectElement", _("Inspect _Element"), null, null, launcher.inspect_element);
62 }
63
64 private void tab_added (Midori.Browser browser, Midori.View view) {
65 view.context_menu.connect (this.context_menu);
66
67 view.web_view.web_inspector.show_window.connect (this.inspector_show_window);
68 view.web_view.web_inspector.inspect_web_view.connect (this.inspector_inspect_web_view);
69 }
70
71 private void tab_removed (Midori.Browser browser, Midori.View view) {
72 view.context_menu.disconnect (this.context_menu);
73 }
74
75 private void browser_added (Midori.Browser browser) {
76 foreach (Midori.View tab in browser.get_tabs ()) {
77 this.tab_added (browser, tab);
78 }
79
80 browser.add_tab.connect (this.tab_added);
81 browser.remove_tab.connect (this.tab_removed);
82 }
83
84 private void browser_removed (Midori.Browser browser) {
85 foreach (Midori.View tab in browser.get_tabs ()) {
86 this.tab_removed (browser, tab);
87 }
88
89 browser.add_tab.disconnect (this.tab_added);
90 browser.remove_tab.disconnect (this.tab_removed);
91 }
92
93 private void activated (Midori.App app) {
94 foreach (Midori.Browser browser in app.get_browsers ()) {
95 this.browser_added (browser);
96 }
97
98 app.add_browser.connect (this.browser_added);
99 app.remove_browser.connect (this.browser_removed);
100 }
101
102 private void deactivated () {
103 Midori.App app = this.get_app ();
104 foreach (Midori.Browser browser in app.get_browsers ()) {
105 this.browser_removed (browser);
106 }
107
108 app.add_browser.disconnect (this.browser_added);
109 app.remove_browser.disconnect (this.browser_removed);
110 }
111
112 internal Manager () {
113 GLib.Object (name: _("WebInspector"),
114 description: _("WebInspector support"),
115 version: "0.1" + Midori.VERSION_SUFFIX,
116 authors: "André Stösel <andre@stoesel.de>");
117
118 this.activate.connect (this.activated);
119 this.deactivate.connect (this.deactivated);
120 }
121 }
122}
123
124public Midori.Extension extension_init () {
125 return new WebInspector.Manager ();
126}
0127
=== modified file 'midori/midori-browser.c'
--- midori/midori-browser.c 2013-11-27 09:47:37 +0000
+++ midori/midori-browser.c 2013-11-28 20:51:46 +0000
@@ -71,9 +71,6 @@
71 GtkWidget* panel;71 GtkWidget* panel;
72 GtkWidget* notebook;72 GtkWidget* notebook;
7373
74 GtkWidget* inspector;
75 GtkWidget* inspector_view;
76
77 GtkWidget* find;74 GtkWidget* find;
7875
79 GtkWidget* statusbar;76 GtkWidget* statusbar;
@@ -1401,41 +1398,6 @@
1401}1398}
14021399
1403static void1400static void
1404midori_view_attach_inspector_cb (GtkWidget* view,
1405 GtkWidget* inspector_view,
1406 MidoriBrowser* browser)
1407{
1408 GtkWidget* toplevel = gtk_widget_get_toplevel (inspector_view);
1409 GtkWidget* scrolled = gtk_widget_get_parent (browser->inspector_view);
1410 if (browser->inspector_view == inspector_view)
1411 return;
1412
1413 gtk_widget_hide (toplevel);
1414 gtk_widget_destroy (browser->inspector_view);
1415 gtk_widget_reparent (inspector_view, scrolled);
1416 gtk_widget_show_all (browser->inspector);
1417 browser->inspector_view = inspector_view;
1418 gtk_widget_destroy (toplevel);
1419 if (!katze_object_get_boolean (browser->settings, "last-inspector-attached"))
1420 g_object_set (browser->settings, "last-inspector-attached", TRUE, NULL);
1421}
1422
1423static void
1424midori_view_detach_inspector_cb (GtkWidget* view,
1425 GtkWidget* inspector_view,
1426 MidoriBrowser* browser)
1427{
1428 GtkWidget* scrolled = gtk_widget_get_parent (GTK_WIDGET (inspector_view));
1429 GtkWidget* paned = gtk_widget_get_parent (scrolled);
1430 browser->inspector_view = gtk_viewport_new (NULL, NULL);
1431 gtk_container_remove (GTK_CONTAINER (scrolled), GTK_WIDGET (inspector_view));
1432 gtk_container_add (GTK_CONTAINER (scrolled), browser->inspector_view);
1433 gtk_widget_hide (paned);
1434 if (katze_object_get_boolean (browser->settings, "last-inspector-attached"))
1435 g_object_set (browser->settings, "last-inspector-attached", FALSE, NULL);
1436}
1437
1438static void
1439midori_browser_view_copy_history (GtkWidget* view_to,1401midori_browser_view_copy_history (GtkWidget* view_to,
1440 GtkWidget* view_from,1402 GtkWidget* view_from,
1441 gboolean omit_last)1403 gboolean omit_last)
@@ -1904,10 +1866,6 @@
1904 midori_view_notify_zoom_level_cb, browser,1866 midori_view_notify_zoom_level_cb, browser,
1905 "signal::notify::statusbar-text",1867 "signal::notify::statusbar-text",
1906 midori_view_notify_statusbar_text_cb, browser,1868 midori_view_notify_statusbar_text_cb, browser,
1907 "signal::attach-inspector",
1908 midori_view_attach_inspector_cb, browser,
1909 "signal::detach-inspector",
1910 midori_view_detach_inspector_cb, browser,
1911 "signal::new-tab",1869 "signal::new-tab",
1912 midori_view_new_tab_cb, browser,1870 midori_view_new_tab_cb, browser,
1913 "signal::new-window",1871 "signal::new-window",
@@ -1979,10 +1937,6 @@
1979 midori_view_notify_zoom_level_cb, browser,1937 midori_view_notify_zoom_level_cb, browser,
1980 "any_signal",1938 "any_signal",
1981 midori_view_notify_statusbar_text_cb, browser,1939 midori_view_notify_statusbar_text_cb, browser,
1982 "any_signal::attach-inspector",
1983 midori_view_attach_inspector_cb, browser,
1984 "any_signal::detach-inspector",
1985 midori_view_detach_inspector_cb, browser,
1986 "any_signal::new-tab",1940 "any_signal::new-tab",
1987 midori_view_new_tab_cb, browser,1941 midori_view_new_tab_cb, browser,
1988 "any_signal::new-window",1942 "any_signal::new-window",
@@ -3227,7 +3181,6 @@
3227 midori_context_action_add_action_group (menu, browser->action_group);3181 midori_context_action_add_action_group (menu, browser->action_group);
3228 midori_context_action_add_by_name (menu, "ManageSearchEngines");3182 midori_context_action_add_by_name (menu, "ManageSearchEngines");
3229 midori_context_action_add_by_name (menu, "ClearPrivateData");3183 midori_context_action_add_by_name (menu, "ClearPrivateData");
3230 midori_context_action_add_by_name (menu, "InspectPage");
3231 g_signal_emit (browser, signals[POPULATE_TOOL_MENU], 0, default_menu);3184 g_signal_emit (browser, signals[POPULATE_TOOL_MENU], 0, default_menu);
3232 midori_context_action_add (menu, NULL);3185 midori_context_action_add (menu, NULL);
3233 gsize j = 0;3186 gsize j = 0;
@@ -4702,16 +4655,6 @@
4702}4655}
47034656
4704static void4657static void
4705_action_inspect_page_activate (GtkAction* action,
4706 MidoriBrowser* browser)
4707{
4708 GtkWidget* view = midori_browser_get_current_tab (browser);
4709 WebKitWebView* web_view = WEBKIT_WEB_VIEW (midori_view_get_web_view (MIDORI_VIEW (view)));
4710 WebKitWebInspector* inspector = webkit_web_view_get_inspector (web_view);
4711 webkit_web_inspector_show (inspector);
4712}
4713
4714static void
4715_action_tab_move_activate (GtkAction* action,4658_action_tab_move_activate (GtkAction* action,
4716 MidoriBrowser* browser)4659 MidoriBrowser* browser)
4717{4660{
@@ -5515,9 +5458,6 @@
5515 { "ClearPrivateData", NULL,5458 { "ClearPrivateData", NULL,
5516 N_("_Clear Private Data…"), "<Ctrl><Shift>Delete",5459 N_("_Clear Private Data…"), "<Ctrl><Shift>Delete",
5517 NULL, G_CALLBACK (_action_clear_private_data_activate) },5460 NULL, G_CALLBACK (_action_clear_private_data_activate) },
5518 { "InspectPage", NULL,
5519 N_("_Inspect Page"), "<Ctrl><Shift>i",
5520 NULL, G_CALLBACK (_action_inspect_page_activate) },
55215461
5522 { "TabPrevious", GTK_STOCK_GO_BACK,5462 { "TabPrevious", GTK_STOCK_GO_BACK,
5523 N_("_Previous Tab"), "<Ctrl>Page_Up",5463 N_("_Previous Tab"), "<Ctrl>Page_Up",
@@ -5893,7 +5833,6 @@
5893 "<menuitem action='UndoTabClose'/>"5833 "<menuitem action='UndoTabClose'/>"
5894 "<menuitem action='TrashEmpty'/>"5834 "<menuitem action='TrashEmpty'/>"
5895 "<menuitem action='Preferences'/>"5835 "<menuitem action='Preferences'/>"
5896 "<menuitem action='InspectPage'/>"
5897 "<menuitem action='ReloadUncached'/>"5836 "<menuitem action='ReloadUncached'/>"
5898 "<menuitem action='CaretBrowsing'/>"5837 "<menuitem action='CaretBrowsing'/>"
5899 "</menu>"5838 "</menu>"
@@ -6079,7 +6018,6 @@
6079 GtkSettings* gtk_settings;6018 GtkSettings* gtk_settings;
6080 GtkWidget* hpaned;6019 GtkWidget* hpaned;
6081 GtkWidget* vpaned;6020 GtkWidget* vpaned;
6082 GtkWidget* scrolled;
6083 KatzeArray* dummy_array;6021 KatzeArray* dummy_array;
60846022
6085 browser->settings = midori_web_settings_new ();6023 browser->settings = midori_web_settings_new ();
@@ -6464,19 +6402,6 @@
6464 #endif6402 #endif
6465 gtk_widget_show (browser->notebook);6403 gtk_widget_show (browser->notebook);
64666404
6467 /* Inspector container */
6468 browser->inspector = gtk_vbox_new (FALSE, 0);
6469 gtk_paned_pack2 (GTK_PANED (vpaned), browser->inspector, FALSE, FALSE);
6470 scrolled = gtk_scrolled_window_new (NULL, NULL);
6471 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled),
6472 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
6473 gtk_widget_set_can_focus (scrolled, TRUE);
6474 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled),
6475 GTK_SHADOW_ETCHED_IN);
6476 gtk_box_pack_start (GTK_BOX (browser->inspector), scrolled, TRUE, TRUE, 0);
6477 browser->inspector_view = gtk_viewport_new (NULL, NULL);
6478 gtk_container_add (GTK_CONTAINER (scrolled), browser->inspector_view);
6479
6480 /* Incremental findbar */6405 /* Incremental findbar */
6481 browser->find = g_object_new (MIDORI_TYPE_FINDBAR, NULL);6406 browser->find = g_object_new (MIDORI_TYPE_FINDBAR, NULL);
6482 gtk_box_pack_start (GTK_BOX (vbox), browser->find, FALSE, FALSE, 0);6407 gtk_box_pack_start (GTK_BOX (vbox), browser->find, FALSE, FALSE, 0);
64836408
=== modified file 'midori/midori-view.c'
--- midori/midori-view.c 2013-11-22 18:03:14 +0000
+++ midori/midori-view.c 2013-11-28 20:51:46 +0000
@@ -2300,21 +2300,6 @@
2300#endif2300#endif
23012301
2302static void2302static void
2303midori_view_inspect_element_activate_cb (GtkAction* action,
2304 gpointer user_data)
2305{
2306 MidoriView* view = user_data;
2307 WebKitWebInspector* inspector = webkit_web_view_get_inspector (WEBKIT_WEB_VIEW (view->web_view));
2308 #ifndef HAVE_WEBKIT2
2309 WebKitHitTestResult* hit_test_result = view->hit_test;
2310 gint x = katze_object_get_int (hit_test_result, "x");
2311 gint y = katze_object_get_int (hit_test_result, "y");
2312 webkit_web_inspector_inspect_coordinates (inspector, x, y);
2313 #endif
2314 webkit_web_inspector_show (inspector);
2315}
2316
2317static void
2318midori_view_add_search_engine_cb (GtkWidget* widget,2303midori_view_add_search_engine_cb (GtkWidget* widget,
2319 MidoriView* view)2304 MidoriView* view)
2320{2305{
@@ -2569,10 +2554,6 @@
2569 midori_context_action_add_by_name (menu, "Fullscreen");2554 midori_context_action_add_by_name (menu, "Fullscreen");
2570 }2555 }
25712556
2572 if (katze_object_get_boolean (view->settings, "enable-developer-extras"))
2573 midori_context_action_add_simple (menu, "InspectElement", _("Inspect _Element"), NULL, NULL,
2574 midori_view_inspect_element_activate_cb, view);
2575
2576 g_signal_emit_by_name (view, "context-menu", hit_test_result, menu);2557 g_signal_emit_by_name (view, "context-menu", hit_test_result, menu);
2577 return menu;2558 return menu;
2578}2559}
@@ -3383,152 +3364,6 @@
3383 return midori_tab_get_progress (MIDORI_TAB (view));3364 return midori_tab_get_progress (MIDORI_TAB (view));
3384}3365}
33853366
3386#ifndef HAVE_WEBKIT2
3387static gboolean
3388midori_view_inspector_window_key_press_event_cb (GtkWidget* window,
3389 GdkEventKey* event,
3390 gpointer user_data)
3391{
3392 /* Close window on Ctrl+W */
3393 if (event->keyval == 'w' && (event->state & GDK_CONTROL_MASK))
3394 gtk_widget_destroy (window);
3395
3396 return FALSE;
3397}
3398
3399static void
3400midori_view_web_inspector_construct_window (gpointer inspector,
3401 WebKitWebView* web_view,
3402 GtkWidget* inspector_view,
3403 MidoriView* view)
3404{
3405 gchar* title;
3406 const gchar* label;
3407 GtkWidget* window;
3408 GtkWidget* toplevel;
3409 const gchar* icon_name;
3410 GtkIconTheme* icon_theme;
3411 GdkPixbuf* icon;
3412 GdkPixbuf* gray_icon;
3413
3414 label = midori_view_get_display_title (view);
3415 title = g_strdup_printf (_("Inspect page - %s"), label);
3416 window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
3417 gtk_window_set_title (GTK_WINDOW (window), title);
3418 g_free (title);
3419
3420 toplevel = gtk_widget_get_toplevel (GTK_WIDGET (view));
3421 if (gtk_widget_is_toplevel (toplevel))
3422 {
3423 gtk_window_set_screen (GTK_WINDOW (window), gtk_window_get_screen (GTK_WINDOW (toplevel)));
3424 katze_window_set_sensible_default_size (GTK_WINDOW (window));
3425 }
3426
3427 /* Attempt to make a gray version of the icon on the fly */
3428 icon_name = gtk_window_get_icon_name (GTK_WINDOW (toplevel));
3429 icon_theme = gtk_icon_theme_get_for_screen (
3430 gtk_widget_get_screen (GTK_WIDGET (view)));
3431 icon = gtk_icon_theme_load_icon (icon_theme, icon_name, 32,
3432 GTK_ICON_LOOKUP_USE_BUILTIN, NULL);
3433 if (icon)
3434 {
3435 gray_icon = gdk_pixbuf_copy (icon);
3436 if (gray_icon)
3437 {
3438 gdk_pixbuf_saturate_and_pixelate (gray_icon, gray_icon, 0.1f, FALSE);
3439 gtk_window_set_icon (GTK_WINDOW (window), gray_icon);
3440 g_object_unref (gray_icon);
3441 }
3442 g_object_unref (icon);
3443 }
3444 else
3445 gtk_window_set_icon_name (GTK_WINDOW (window), icon_name);
3446 #if GTK_CHECK_VERSION (3, 4, 0)
3447 gtk_window_set_hide_titlebar_when_maximized (GTK_WINDOW (window), TRUE);
3448 #endif
3449 gtk_container_add (GTK_CONTAINER (window), inspector_view);
3450 gtk_widget_show_all (inspector_view);
3451
3452 g_signal_connect (window, "key-press-event",
3453 G_CALLBACK (midori_view_inspector_window_key_press_event_cb), NULL);
3454
3455 /* FIXME: Update window title with URI */
3456}
3457
3458static WebKitWebView*
3459midori_view_web_inspector_inspect_web_view_cb (gpointer inspector,
3460 WebKitWebView* web_view,
3461 MidoriView* view)
3462{
3463 GtkWidget* inspector_view = webkit_web_view_new ();
3464 midori_view_web_inspector_construct_window (inspector,
3465 web_view, inspector_view, view);
3466 return WEBKIT_WEB_VIEW (inspector_view);
3467}
3468
3469static gboolean
3470midori_view_web_inspector_show_window_cb (WebKitWebInspector* inspector,
3471 MidoriView* view)
3472{
3473 GtkWidget* inspector_view = GTK_WIDGET (webkit_web_inspector_get_web_view (inspector));
3474 GtkWidget* window = gtk_widget_get_toplevel (inspector_view);
3475 if (!window)
3476 return FALSE;
3477 if (katze_object_get_boolean (view->settings, "last-inspector-attached"))
3478 {
3479 gboolean handled = FALSE;
3480 g_signal_emit_by_name (inspector, "attach-window", &handled);
3481 }
3482 else
3483 {
3484 gtk_widget_show (window);
3485 gtk_window_present (GTK_WINDOW (window));
3486 }
3487 return TRUE;
3488}
3489
3490static gboolean
3491midori_view_web_inspector_attach_window_cb (gpointer inspector,
3492 MidoriView* view)
3493{
3494 GtkWidget* inspector_view = GTK_WIDGET (webkit_web_inspector_get_web_view (inspector));
3495 g_signal_emit_by_name (view, "attach-inspector", inspector_view);
3496 return TRUE;
3497}
3498
3499static gboolean
3500midori_view_web_inspector_detach_window_cb (gpointer inspector,
3501 MidoriView* view)
3502{
3503 GtkWidget* inspector_view = GTK_WIDGET (webkit_web_inspector_get_web_view (inspector));
3504 GtkWidget* parent = gtk_widget_get_parent (inspector_view);
3505 if (GTK_IS_WINDOW (parent))
3506 return FALSE;
3507
3508 gtk_widget_hide (parent);
3509 g_signal_emit_by_name (view, "detach-inspector", inspector_view);
3510 midori_view_web_inspector_construct_window (inspector,
3511 WEBKIT_WEB_VIEW (view->web_view), inspector_view, view);
3512 return TRUE;
3513}
3514
3515static gboolean
3516midori_view_web_inspector_close_window_cb (gpointer inspector,
3517 MidoriView* view)
3518{
3519 GtkWidget* inspector_view = GTK_WIDGET (webkit_web_inspector_get_web_view (inspector));
3520 #ifdef HAVE_WEBKIT2
3521 GtkWidget* scrolled = inspector_view;
3522 #else
3523 GtkWidget* scrolled = gtk_widget_get_parent (inspector_view);
3524 #endif
3525 if (!scrolled)
3526 return FALSE;
3527 gtk_widget_hide (gtk_widget_get_parent (scrolled));
3528 return TRUE;
3529}
3530#endif
3531
3532static GObject*3367static GObject*
3533midori_view_constructor (GType type,3368midori_view_constructor (GType type,
3534 guint n_construct_properties,3369 guint n_construct_properties,
@@ -3670,20 +3505,6 @@
36703505
3671 #ifndef HAVE_WEBKIT23506 #ifndef HAVE_WEBKIT2
3672 gtk_container_add (GTK_CONTAINER (view->scrolled_window), view->web_view);3507 gtk_container_add (GTK_CONTAINER (view->scrolled_window), view->web_view);
3673
3674 gpointer inspector = webkit_web_view_get_inspector ((WebKitWebView*)view->web_view);
3675 g_object_connect (inspector,
3676 "signal::inspect-web-view",
3677 midori_view_web_inspector_inspect_web_view_cb, view,
3678 "signal::show-window",
3679 midori_view_web_inspector_show_window_cb, view,
3680 "signal::attach-window",
3681 midori_view_web_inspector_attach_window_cb, view,
3682 "signal::detach-window",
3683 midori_view_web_inspector_detach_window_cb, view,
3684 "signal::close-window",
3685 midori_view_web_inspector_close_window_cb, view,
3686 NULL);
3687 #endif3508 #endif
3688 gtk_widget_show_all (view->scrolled_window);3509 gtk_widget_show_all (view->scrolled_window);
3689 return object;3510 return object;

Subscribers

People subscribed via source and target branches

to all changes: