Changeset 157218 in webkit


Ignore:
Timestamp:
Oct 10, 2013 6:19:12 AM (11 years ago)
Author:
commit-queue@webkit.org
Message:

[GTK] Provide search functionality to MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=117631

Patch by Andres Gomez <Andres Gomez> on 2013-10-10
Reviewed by Carlos Garcia Campos.

Adds a search bar to MiniBrowser with the minimum functionality
and a new button to the toolbar for showing the new search
bar. Typical keyboard shortcuts are also added.

  • MiniBrowser/gtk/BrowserSearchBar.c: Added.

(doSearch):
(searchNext):
(searchPrevious):
(searchCloseButtonClickedCallback):
(searchEntryMenuIconPressedCallback):
(searchEntryClearIconReleasedCallback):
(searchEntryChangedCallback):
(searchEntryActivatedCallback):
(searchPrevButtonClickedCallback):
(searchNextButtonClickedCallback):
(searchMenuCheckButtonToggledCallback):
(browser_search_bar_init):
(browserSearchBarFinalize):
(browser_search_bar_class_init):
(browser_search_bar_new):
(browser_search_bar_add_accelerators):
(browser_search_bar_open):
(browser_search_bar_close):

  • MiniBrowser/gtk/BrowserSearchBar.h: Added.
  • MiniBrowser/gtk/BrowserWindow.c:

(webViewEnterFullScreen): Closes new search bar.
(webViewLeaveFullScreen): Opens new search bar if previously
visible.
(searchCallback): Added. Shows and hides the new search bar.
(browser_window_init): Added search button to the toolbar.
(browserWindowConstructed): Creates the new search bar.

  • MiniBrowser/gtk/GNUmakefile.am: Added new files to compilation.
Location:
trunk/Tools
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r157201 r157218  
     12013-10-10  Andres Gomez  <agomez@igalia.com>
     2
     3        [GTK] Provide search functionality to MiniBrowser
     4        https://bugs.webkit.org/show_bug.cgi?id=117631
     5
     6        Reviewed by Carlos Garcia Campos.
     7
     8        Adds a search bar to MiniBrowser with the minimum functionality
     9        and a new button to the toolbar for showing the new search
     10        bar. Typical keyboard shortcuts are also added.
     11
     12        * MiniBrowser/gtk/BrowserSearchBar.c: Added.
     13        (doSearch):
     14        (searchNext):
     15        (searchPrevious):
     16        (searchCloseButtonClickedCallback):
     17        (searchEntryMenuIconPressedCallback):
     18        (searchEntryClearIconReleasedCallback):
     19        (searchEntryChangedCallback):
     20        (searchEntryActivatedCallback):
     21        (searchPrevButtonClickedCallback):
     22        (searchNextButtonClickedCallback):
     23        (searchMenuCheckButtonToggledCallback):
     24        (browser_search_bar_init):
     25        (browserSearchBarFinalize):
     26        (browser_search_bar_class_init):
     27        (browser_search_bar_new):
     28        (browser_search_bar_add_accelerators):
     29        (browser_search_bar_open):
     30        (browser_search_bar_close):
     31        * MiniBrowser/gtk/BrowserSearchBar.h: Added.
     32        * MiniBrowser/gtk/BrowserWindow.c:
     33        (webViewEnterFullScreen): Closes new search bar.
     34        (webViewLeaveFullScreen): Opens new search bar if previously
     35        visible.
     36        (searchCallback): Added. Shows and hides the new search bar.
     37        (browser_window_init): Added search button to the toolbar.
     38        (browserWindowConstructed): Creates the new search bar.
     39        * MiniBrowser/gtk/GNUmakefile.am: Added new files to compilation.
     40
    1412013-10-09  Gustavo Noronha Silva  <gustavo.noronha@collabora.com>
    242
  • trunk/Tools/MiniBrowser/gtk/BrowserWindow.c

    r154594 r157218  
    2929
    3030#include "BrowserDownloadsBar.h"
     31#include "BrowserSearchBar.h"
    3132#include "BrowserSettingsDialog.h"
    3233#include <gdk/gdkkeysyms.h>
     
    4243    GtkWindow parent;
    4344
     45    GtkAccelGroup *accelGroup;
    4446    GtkWidget *mainBox;
    4547    GtkWidget *toolbar;
     
    5355    WebKitWebView *webView;
    5456    GtkWidget *downloadsBar;
     57    BrowserSearchBar *searchBar;
     58    gboolean searchBarVisible;
    5559    GdkPixbuf *favicon;
    5660    GtkWidget *reloadOrStopButton;
     
    309313    window->fullScreenMessageLabelId = g_timeout_add_seconds(2, (GSourceFunc)fullScreenMessageTimeoutCallback, window);
    310314    gtk_widget_hide(window->toolbar);
     315    window->searchBarVisible = gtk_widget_get_visible(GTK_WIDGET(window->searchBar));
     316    browser_search_bar_close(window->searchBar);
    311317
    312318    return FALSE;
     
    321327    gtk_widget_hide(window->fullScreenMessageLabel);
    322328    gtk_widget_show(window->toolbar);
     329    if (window->searchBarVisible) {
     330        // Opening the search bar steals the focus. Usually, we want
     331        // this but not when coming back from fullscreen.
     332        GtkWidget *focusWidget = gtk_window_get_focus(GTK_WINDOW(window));
     333        browser_search_bar_open(window->searchBar);
     334        gtk_window_set_focus(GTK_WINDOW(window), focusWidget);
     335    }
    323336
    324337    return FALSE;
     
    479492}
    480493
     494static void searchCallback(BrowserWindow *window)
     495{
     496    browser_search_bar_open(window->searchBar);
     497}
     498
    481499static void browserWindowFinalize(GObject *gObject)
    482500{
     
    485503        g_object_unref(window->favicon);
    486504        window->favicon = NULL;
     505    }
     506
     507    if (window->accelGroup) {
     508        g_object_unref(window->accelGroup);
     509        window->accelGroup = NULL;
    487510    }
    488511
     
    535558
    536559    /* Keyboard accelerators */
    537     GtkAccelGroup *accelGroup = gtk_accel_group_new();
    538     gtk_window_add_accel_group(GTK_WINDOW(window), accelGroup);
    539     g_object_unref(accelGroup);
     560    window->accelGroup = gtk_accel_group_new();
     561    gtk_window_add_accel_group(GTK_WINDOW(window), window->accelGroup);
    540562
    541563    GtkWidget *toolbar = gtk_toolbar_new();
     
    575597    gtk_widget_show(GTK_WIDGET(item));
    576598
     599    item = gtk_tool_button_new_from_stock(GTK_STOCK_FIND);
     600    g_signal_connect_swapped(item, "clicked", G_CALLBACK(searchCallback), window);
     601    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1);
     602    gtk_widget_add_accelerator(GTK_WIDGET(item), "clicked", window->accelGroup, GDK_KEY_F, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
     603    gtk_widget_show(GTK_WIDGET(item));
     604
    577605    item = gtk_tool_item_new();
    578606    gtk_tool_item_set_expand(item, TRUE);
     
    586614    g_signal_connect_swapped(item, "clicked", G_CALLBACK(reloadOrStopCallback), window);
    587615    gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1);
    588     gtk_widget_add_accelerator(window->reloadOrStopButton, "clicked", accelGroup, GDK_KEY_F5, 0, GTK_ACCEL_VISIBLE);
     616    gtk_widget_add_accelerator(window->reloadOrStopButton, "clicked", window->accelGroup, GDK_KEY_F5, 0, GTK_ACCEL_VISIBLE);
    589617    gtk_widget_show(window->reloadOrStopButton);
    590618
     
    620648    g_signal_connect(webkit_web_view_get_context(window->webView), "download-started", G_CALLBACK(downloadStarted), window);
    621649
     650    window->searchBar = BROWSER_SEARCH_BAR(browser_search_bar_new(window->webView));
     651    browser_search_bar_add_accelerators(window->searchBar, window->accelGroup);
     652    gtk_box_pack_start(GTK_BOX(window->mainBox), GTK_WIDGET(window->searchBar), FALSE, FALSE, 0);
     653
    622654    WebKitBackForwardList *backForwadlist = webkit_web_view_get_back_forward_list(window->webView);
    623655    g_signal_connect(backForwadlist, "changed", G_CALLBACK(backForwadlistChanged), window);
  • trunk/Tools/MiniBrowser/gtk/GNUmakefile.am

    r155945 r157218  
    2424        Tools/MiniBrowser/gtk/BrowserDownloadsBar.h \
    2525        Tools/MiniBrowser/gtk/BrowserDownloadsBar.c \
     26        Tools/MiniBrowser/gtk/BrowserSearchBar.h \
     27        Tools/MiniBrowser/gtk/BrowserSearchBar.c \
    2628        Tools/MiniBrowser/gtk/BrowserSettingsDialog.h \
    2729        Tools/MiniBrowser/gtk/BrowserSettingsDialog.c \
Note: See TracChangeset for help on using the changeset viewer.