Changeset 103904 in webkit


Ignore:
Timestamp:
Jan 2, 2012 5:39:21 AM (12 years ago)
Author:
Carlos Garcia Campos
Message:

[GTK] Implement create/ready-to-show/close signals in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=74711

Reviewed by Philippe Normand.

  • MiniBrowser/gtk/BrowserWindow.c:

(webViewClose): Destroy the window.
(webViewReadyToShow): Use WindowProperties of the new view to
setup and show the window.
(webViewCreate): Create a new view and add it to a browser window.
(browser_window_init):
(browserWindowConstructed): Connect to WebKitWebView::create signal.

Location:
trunk/Tools
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r103866 r103904  
     12012-01-02  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK] Implement create/ready-to-show/close signals in MiniBrowser
     4        https://bugs.webkit.org/show_bug.cgi?id=74711
     5
     6        Reviewed by Philippe Normand.
     7
     8        * MiniBrowser/gtk/BrowserWindow.c:
     9        (webViewClose): Destroy the window.
     10        (webViewReadyToShow): Use WindowProperties of the new view to
     11        setup and show the window.
     12        (webViewCreate): Create a new view and add it to a browser window.
     13        (browser_window_init):
     14        (browserWindowConstructed): Connect to WebKitWebView::create signal.
     15
    1162011-12-31  Dan Bernstein  <mitz@apple.com>
    217
  • trunk/Tools/MiniBrowser/gtk/BrowserWindow.c

    r99275 r103904  
    3838
    3939    GtkWidget *mainBox;
     40    GtkWidget *toolbar;
    4041    GtkWidget *uriEntry;
    4142    GtkWidget *backItem;
     
    174175{
    175176    browserWindowUpdateNavigationActions(window, backForwadlist);
     177}
     178
     179static void webViewClose(WebKitWebView *webView, BrowserWindow *window)
     180{
     181    gtk_widget_destroy(GTK_WIDGET(window));
     182}
     183
     184static void webViewReadyToShow(WebKitWebView *webView, BrowserWindow *window)
     185{
     186    WebKitWindowProperties *windowProperties = webkit_web_view_get_window_properties(webView);
     187
     188    GdkRectangle geometry;
     189    webkit_window_properties_get_geometry(windowProperties, &geometry);
     190    if (geometry.x >= 0 && geometry.y >= 0)
     191        gtk_window_move(GTK_WINDOW(window), geometry.x, geometry.y);
     192    if (geometry.width > 0 && geometry.height > 0)
     193        gtk_window_resize(GTK_WINDOW(window), geometry.width, geometry.height);
     194
     195    if (!webkit_window_properties_get_toolbar_visible(windowProperties))
     196        gtk_widget_hide(window->toolbar);
     197    else if (!webkit_window_properties_get_locationbar_visible(windowProperties))
     198        gtk_widget_hide(window->uriEntry);
     199
     200    if (!webkit_window_properties_get_resizable(windowProperties))
     201        gtk_window_set_resizable(GTK_WINDOW(window), FALSE);
     202
     203    gtk_widget_show(GTK_WIDGET(window));
     204}
     205
     206static GtkWidget *webViewCreate(WebKitWebView *webView, BrowserWindow *window)
     207{
     208    WebKitWebView *newWebView = WEBKIT_WEB_VIEW(webkit_web_view_new_with_context(webkit_web_view_get_context(webView)));
     209    webkit_web_view_set_settings(newWebView, webkit_web_view_get_settings(webView));
     210
     211    GtkWidget *newWindow = browser_window_new(newWebView);
     212    g_signal_connect(newWebView, "ready-to-show", G_CALLBACK(webViewReadyToShow), newWindow);
     213    g_signal_connect(newWebView, "close", G_CALLBACK(webViewClose), newWindow);
     214    return GTK_WIDGET(newWebView);
    176215}
    177216
     
    221260
    222261    GtkWidget *toolbar = gtk_toolbar_new();
     262    window->toolbar = toolbar;
    223263    gtk_orientable_set_orientation(GTK_ORIENTABLE(toolbar), GTK_ORIENTATION_HORIZONTAL);
    224264    gtk_toolbar_set_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_BOTH_HORIZ);
     
    266306    g_signal_connect(window->webView, "notify::estimated-load-progress", G_CALLBACK(webViewLoadProgressChanged), window);
    267307    g_signal_connect(window->webView, "notify::title", G_CALLBACK(webViewTitleChanged), window);
     308    g_signal_connect(window->webView, "create", G_CALLBACK(webViewCreate), window);
    268309
    269310    WebKitBackForwardList *backForwadlist = webkit_web_view_get_back_forward_list(window->webView);
Note: See TracChangeset for help on using the changeset viewer.