[devhelp/wip/swilmet/misc: 3/3] window: various small code improvements
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [devhelp/wip/swilmet/misc: 3/3] window: various small code improvements
- Date: Sun, 15 Nov 2015 14:24:48 +0000 (UTC)
commit 41f3cf295e8ae31a1bb6d62b5f2deec661c9eecb
Author: Sébastien Wilmet <swilmet gnome org>
Date: Sun Nov 15 14:30:34 2015 +0100
window: various small code improvements
src/dh-window.c | 222 ++++++++++++++++++++++++++++++------------------------
1 files changed, 123 insertions(+), 99 deletions(-)
---
diff --git a/src/dh-window.c b/src/dh-window.c
index bfc597c..e38638d 100644
--- a/src/dh-window.c
+++ b/src/dh-window.c
@@ -141,7 +141,7 @@ static void window_tab_set_title (DhWindow *window,
const gchar *title);
static void window_close_tab (DhWindow *window,
gint page_num);
-static gboolean do_search (DhWindow *window);
+static void do_search (DhWindow *window);
G_DEFINE_TYPE_WITH_PRIVATE (DhWindow, dh_window, GTK_TYPE_APPLICATION_WINDOW);
@@ -182,12 +182,10 @@ window_close_tab (DhWindow *window,
pages = gtk_notebook_get_n_pages (GTK_NOTEBOOK (priv->notebook));
- if (pages == 0) {
+ if (pages == 0)
gtk_widget_destroy (GTK_WIDGET (window));
- }
- else if (pages == 1) {
+ else if (pages == 1)
gtk_notebook_set_show_tabs (GTK_NOTEBOOK (priv->notebook), FALSE);
- }
}
static void
@@ -226,7 +224,8 @@ copy_cb (GSimpleAction *action,
GtkClipboard *clipboard;
clipboard = gtk_widget_get_clipboard (widget, GDK_SELECTION_CLIPBOARD);
gtk_clipboard_set_text (clipboard,
- dh_link_get_name(priv->selected_search_link), -1);
+ dh_link_get_name (priv->selected_search_link),
+ -1);
} else {
WebKitWebView *web_view;
@@ -249,8 +248,9 @@ find_cb (GSimpleAction *action,
gtk_widget_grab_focus (priv->search_entry);
/* The behaviour for WebKit1 is to re-enable highlighting without
- starting a new search. WebKit2 API does not allow that
- without invoking a new search. */
+ * starting a new search. WebKit2 API does not allow that
+ * without invoking a new search.
+ */
do_search (window);
}
@@ -274,18 +274,18 @@ static int
window_get_current_zoom_level_index (DhWindow *window)
{
WebKitWebView *web_view;
- double previous, current, mean;
+ double previous;
double zoom_level = ZOOM_DEFAULT;
int i;
web_view = window_get_active_web_view (window);
- if (web_view)
+ if (web_view != NULL)
zoom_level = webkit_web_view_get_zoom_level (web_view);
previous = zoom_levels[0].level;
for (i = 1; i < n_zoom_levels; i++) {
- current = zoom_levels[i].level;
- mean = sqrt (previous * current);
+ double current = zoom_levels[i].level;
+ double mean = sqrt (previous * current);
if (zoom_level <= mean)
return i - 1;
@@ -300,36 +300,37 @@ static void
window_update_zoom_actions_state (DhWindow *window)
{
GAction *action;
- int zoom_level_idx;
+ int zoom_level_index;
gboolean enabled;
- zoom_level_idx = window_get_current_zoom_level_index (window);
+ zoom_level_index = window_get_current_zoom_level_index (window);
- enabled = zoom_levels[zoom_level_idx].level < ZOOM_MAXIMAL;
+ enabled = zoom_levels[zoom_level_index].level < ZOOM_MAXIMAL;
action = g_action_map_lookup_action (G_ACTION_MAP (window), "zoom-in");
g_simple_action_set_enabled (G_SIMPLE_ACTION (action), enabled);
- enabled = zoom_levels[zoom_level_idx].level > ZOOM_MINIMAL;
+ enabled = zoom_levels[zoom_level_index].level > ZOOM_MINIMAL;
action = g_action_map_lookup_action (G_ACTION_MAP (window), "zoom-out");
g_simple_action_set_enabled (G_SIMPLE_ACTION (action), enabled);
- enabled = zoom_levels[zoom_level_idx].level != ZOOM_DEFAULT;
+ enabled = zoom_levels[zoom_level_index].level != ZOOM_DEFAULT;
action = g_action_map_lookup_action (G_ACTION_MAP (window), "zoom-default");
g_simple_action_set_enabled (G_SIMPLE_ACTION (action), enabled);
}
static void
show_sidebar_cb (GSimpleAction *action,
- GVariant *parameter,
- gpointer user_data)
+ GVariant *parameter,
+ gpointer user_data)
{
DhWindow *window = user_data;
DhWindowPrivate *priv = dh_window_get_instance_private (window);
+ gboolean visible;
- gboolean visible = !gtk_widget_get_visible (priv->grid_sidebar);
+ visible = gtk_widget_get_visible (priv->grid_sidebar);
- g_simple_action_set_state (action, g_variant_new_boolean(visible));
- gtk_widget_set_visible (priv->grid_sidebar, visible);
+ g_simple_action_set_state (action, g_variant_new_boolean (!visible));
+ gtk_widget_set_visible (priv->grid_sidebar, !visible);
}
static void
@@ -338,14 +339,17 @@ zoom_in_cb (GSimpleAction *action,
gpointer user_data)
{
DhWindow *window = user_data;
- int zoom_level_idx;
+ int zoom_level_index;
- zoom_level_idx = window_get_current_zoom_level_index (window);
- if (zoom_levels[zoom_level_idx].level < ZOOM_MAXIMAL) {
+ zoom_level_index = window_get_current_zoom_level_index (window);
+ if (zoom_levels[zoom_level_index].level < ZOOM_MAXIMAL) {
+ double new_zoom_level;
WebKitWebView *web_view;
+ new_zoom_level = zoom_levels[zoom_level_index + 1].level;
+
web_view = window_get_active_web_view (window);
- webkit_web_view_set_zoom_level (web_view, zoom_levels[zoom_level_idx + 1].level);
+ webkit_web_view_set_zoom_level (web_view, new_zoom_level);
window_update_zoom_actions_state (window);
}
@@ -357,14 +361,17 @@ zoom_out_cb (GSimpleAction *action,
gpointer user_data)
{
DhWindow *window = user_data;
- int zoom_level_idx;
+ int zoom_level_index;
- zoom_level_idx = window_get_current_zoom_level_index (window);
- if (zoom_levels[zoom_level_idx].level > ZOOM_MINIMAL) {
+ zoom_level_index = window_get_current_zoom_level_index (window);
+ if (zoom_levels[zoom_level_index].level > ZOOM_MINIMAL) {
+ double new_zoom_level;
WebKitWebView *web_view;
+ new_zoom_level = zoom_levels[zoom_level_index - 1].level;
+
web_view = window_get_active_web_view (window);
- webkit_web_view_set_zoom_level (web_view, zoom_levels[zoom_level_idx - 1].level);
+ webkit_web_view_set_zoom_level (web_view, new_zoom_level);
window_update_zoom_actions_state (window);
}
}
@@ -402,14 +409,16 @@ go_back_cb (GSimpleAction *action,
{
DhWindow *window = user_data;
DhWindowPrivate *priv;
+ gint current_page_num;
WebKitWebView *web_view;
GtkWidget *frame;
priv = dh_window_get_instance_private (window);
- frame = gtk_notebook_get_nth_page (
- GTK_NOTEBOOK (priv->notebook),
- gtk_notebook_get_current_page (GTK_NOTEBOOK (priv->notebook)));
+ current_page_num = gtk_notebook_get_current_page (GTK_NOTEBOOK (priv->notebook));
+ frame = gtk_notebook_get_nth_page (GTK_NOTEBOOK (priv->notebook),
+ current_page_num);
+
web_view = g_object_get_data (G_OBJECT (frame), "web_view");
webkit_web_view_go_back (web_view);
@@ -422,13 +431,16 @@ go_forward_cb (GSimpleAction *action,
{
DhWindow *window = user_data;
DhWindowPrivate *priv;
+ gint current_page_num;
WebKitWebView *web_view;
GtkWidget *frame;
priv = dh_window_get_instance_private (window);
+ current_page_num = gtk_notebook_get_current_page (GTK_NOTEBOOK (priv->notebook));
frame = gtk_notebook_get_nth_page (GTK_NOTEBOOK (priv->notebook),
- gtk_notebook_get_current_page (GTK_NOTEBOOK (priv->notebook)));
+ current_page_num);
+
web_view = g_object_get_data (G_OBJECT (frame), "web_view");
webkit_web_view_go_forward (web_view);
@@ -448,46 +460,56 @@ gear_menu_cb (GSimpleAction *action,
}
static void
-window_open_link_cb (DhWindow *window,
- const char *location,
- DhOpenLinkFlags flags)
+window_open_link_cb (DhWindow *window,
+ const char *location,
+ DhOpenLinkFlags flags)
{
- if (flags & DH_OPEN_LINK_NEW_TAB) {
- window_open_new_tab (window, location, FALSE);
- }
- else if (flags & DH_OPEN_LINK_NEW_WINDOW) {
- dh_app_new_window (DH_APP (gtk_window_get_application (GTK_WINDOW (window))));
+ switch (flags) {
+ case DH_OPEN_LINK_NEW_WINDOW:
+ dh_app_new_window (DH_APP (gtk_window_get_application (GTK_WINDOW (window))));
+ break;
+
+ case DH_OPEN_LINK_NEW_TAB:
+ window_open_new_tab (window, location, FALSE);
+ break;
+
+ default:
+ g_assert_not_reached ();
}
}
static GActionEntry win_entries[] = {
/* file */
- { "new-tab", new_tab_cb, NULL, NULL, NULL },
- { "print", print_cb, NULL, NULL, NULL },
- { "close", close_cb, NULL, NULL, NULL },
+ { "new-tab", new_tab_cb },
+ { "print", print_cb },
+ { "close", close_cb },
+
/* edit */
- { "copy", copy_cb, NULL, NULL, NULL },
- { "find", find_cb, NULL, NULL, NULL },
- { "find-next", find_next_cb, NULL, NULL, NULL },
- { "find-previous", find_previous_cb, NULL, NULL, NULL },
+ { "copy", copy_cb },
+ { "find", find_cb },
+ { "find-previous", find_previous_cb },
+ { "find-next", find_next_cb },
+
/* view */
- { "show-sidebar", NULL, NULL, "false", show_sidebar_cb },
- { "zoom-in", zoom_in_cb, NULL, NULL, NULL },
- { "zoom-out", zoom_out_cb, NULL, NULL, NULL },
- { "zoom-default", zoom_default_cb, NULL, NULL, NULL },
- { "focus-search", focus_search_cb, NULL, NULL, NULL },
+ { "show-sidebar", NULL, NULL, "false", show_sidebar_cb },
+ { "zoom-in", zoom_in_cb },
+ { "zoom-out", zoom_out_cb },
+ { "zoom-default", zoom_default_cb },
+ { "focus-search", focus_search_cb },
+
/* go */
- { "go-back", go_back_cb, NULL, "false", NULL },
- { "go-forward", go_forward_cb, NULL, "false", NULL },
+ { "go-back", go_back_cb, NULL, "false" },
+ { "go-forward", go_forward_cb, NULL, "false" },
+
/* gear menu */
- { "gear-menu", gear_menu_cb, NULL, "false", NULL },
+ { "gear-menu", gear_menu_cb, NULL, "false" },
};
static void
-settings_fonts_changed_cb (DhSettings *settings,
+settings_fonts_changed_cb (DhSettings *settings,
const gchar *font_name_fixed,
const gchar *font_name_variable,
- gpointer user_data)
+ gpointer user_data)
{
DhWindow *window = DH_WINDOW (user_data);
DhWindowPrivate *priv;
@@ -497,7 +519,7 @@ settings_fonts_changed_cb (DhSettings *settings,
priv = dh_window_get_instance_private (window);
/* change font for all pages */
- for (i = 0; i < gtk_notebook_get_n_pages (GTK_NOTEBOOK(priv->notebook)); i++) {
+ for (i = 0; i < gtk_notebook_get_n_pages (GTK_NOTEBOOK (priv->notebook)); i++) {
GtkWidget *page = gtk_notebook_get_nth_page (GTK_NOTEBOOK (priv->notebook), i);
view = WEBKIT_WEB_VIEW (g_object_get_data (G_OBJECT (page), "web_view"));
dh_util_view_set_font (view, font_name_fixed, font_name_variable);
@@ -547,24 +569,29 @@ screen_changed_cb (GtkWidget *window,
GtkSettings *previous_settings = gtk_settings_get_for_screen (previous_screen);
GtkSettings *current_settings = gtk_widget_get_settings (window);
- /* if the screen has changed we need to re-retrieve the GtkSettings object,
- and disconnect the old signal handlers before re-connecting again */
+ /* If the screen has changed we need to re-retrieve the GtkSettings object,
+ * and disconnect the old signal handlers before re-connecting again.
+ */
if (current_settings != previous_settings) {
- if (priv->xft_dpi_changed_id) {
- if (priv->gtk_settings != NULL && g_signal_handler_is_connected (priv->gtk_settings,
priv->xft_dpi_changed_id))
+ if (priv->xft_dpi_changed_id != 0) {
+ if (priv->gtk_settings != NULL &&
+ g_signal_handler_is_connected (priv->gtk_settings, priv->xft_dpi_changed_id))
g_signal_handler_disconnect (priv->gtk_settings, priv->xft_dpi_changed_id);
priv->xft_dpi_changed_id = 0;
}
+
priv->gtk_settings = NULL;
}
- /* now store the new GtkSettings and (re)connect the signals if needed */
+ /* Now store the new GtkSettings and (re)connect the signals if needed. */
if (priv->gtk_settings == NULL) {
GdkScreen *screen = gtk_widget_get_screen (window);
priv->gtk_settings = gtk_settings_get_for_screen (screen);
priv->xft_dpi_changed_id =
- g_signal_connect (priv->gtk_settings, "notify::gtk-xft-dpi",
- G_CALLBACK (gtk_xft_dpi_changed_cb), window);
+ g_signal_connect (priv->gtk_settings,
+ "notify::gtk-xft-dpi",
+ G_CALLBACK (gtk_xft_dpi_changed_cb),
+ window);
}
@@ -572,20 +599,18 @@ screen_changed_cb (GtkWidget *window,
}
static gboolean
-window_configure_event_cb (GtkWidget *window,
- GdkEventConfigure *event,
- gpointer user_data)
+window_configure_event_cb (GtkWidget *window,
+ GdkEventConfigure *event)
{
- DhWindow *dhwindow;
- DhWindowPrivate *priv;
+ DhWindowPrivate *priv;
- dhwindow = DH_WINDOW (user_data);
- priv = dh_window_get_instance_private (dhwindow);
+ priv = dh_window_get_instance_private (DH_WINDOW (window));
- dh_util_window_settings_save (
- GTK_WINDOW (window),
- dh_settings_peek_window_settings (priv->settings), TRUE);
- return FALSE;
+ dh_util_window_settings_save (GTK_WINDOW (window),
+ dh_settings_peek_window_settings (priv->settings),
+ TRUE);
+
+ return GDK_EVENT_PROPAGATE;
}
static void
@@ -638,9 +663,9 @@ dh_window_init (DhWindow *window)
accel_group = gtk_accel_group_new ();
gtk_window_add_accel_group (GTK_WINDOW (window), accel_group);
for (i = 0; i < G_N_ELEMENTS (tab_accel_keys); i++) {
- closure = g_cclosure_new (G_CALLBACK (window_web_view_tab_accel_cb),
- window,
- NULL);
+ closure = g_cclosure_new (G_CALLBACK (window_web_view_tab_accel_cb),
+ window,
+ NULL);
gtk_accel_group_connect (accel_group,
tab_accel_keys[i],
GDK_MOD1_MASK,
@@ -657,15 +682,15 @@ dh_window_dispose (GObject *object)
priv = dh_window_get_instance_private (window);
- if (priv->xft_dpi_changed_id) {
- if (priv->gtk_settings != NULL && g_signal_handler_is_connected (priv->gtk_settings,
priv->xft_dpi_changed_id))
+ if (priv->xft_dpi_changed_id != 0) {
+ if (priv->gtk_settings != NULL &&
+ g_signal_handler_is_connected (priv->gtk_settings, priv->xft_dpi_changed_id))
g_signal_handler_disconnect (priv->gtk_settings, priv->xft_dpi_changed_id);
priv->xft_dpi_changed_id = 0;
}
g_clear_object (&priv->settings);
- /* Chain up to the parent class */
G_OBJECT_CLASS (dh_window_parent_class)->dispose (object);
}
@@ -708,10 +733,10 @@ dh_window_class_init (DhWindowClass *klass)
}
static void
-window_web_view_switch_page_cb (GtkNotebook *notebook,
- gpointer page,
- guint new_page_num,
- DhWindow *window)
+window_web_view_switch_page_cb (GtkNotebook *notebook,
+ gpointer page,
+ guint new_page_num,
+ DhWindow *window)
{
DhWindowPrivate *priv;
GtkWidget *new_page;
@@ -719,7 +744,7 @@ window_web_view_switch_page_cb (GtkNotebook *notebook,
priv = dh_window_get_instance_private (window);
new_page = gtk_notebook_get_nth_page (notebook, new_page_num);
- if (new_page) {
+ if (new_page != NULL) {
WebKitWebView *new_web_view;
const gchar *location;
@@ -728,7 +753,7 @@ window_web_view_switch_page_cb (GtkNotebook *notebook,
/* Sync the book tree */
location = webkit_web_view_get_uri (new_web_view);
- if (location)
+ if (location != NULL)
dh_sidebar_select_uri (DH_SIDEBAR (priv->sidebar), location);
window_check_history (window, new_web_view);
@@ -743,10 +768,10 @@ window_web_view_switch_page_cb (GtkNotebook *notebook,
}
static void
-window_web_view_switch_page_after_cb (GtkNotebook *notebook,
- gpointer page,
- guint new_page_num,
- DhWindow *window)
+window_web_view_switch_page_after_cb (GtkNotebook *notebook,
+ gpointer page,
+ guint new_page_num,
+ DhWindow *window)
{
window_update_zoom_actions_state (window);
}
@@ -1041,7 +1066,7 @@ window_web_view_button_press_event_cb (WebKitWebView *web_view,
return FALSE;
}
-static gboolean
+static void
do_search (DhWindow *window)
{
DhWindowPrivate *priv;
@@ -1057,8 +1082,6 @@ do_search (DhWindow *window)
search_text = gtk_entry_get_text (GTK_ENTRY (priv->search_entry));
webkit_find_controller_search (find_controller, search_text, find_options, G_MAXUINT);
-
- return FALSE;
}
static void
@@ -1454,9 +1477,10 @@ dh_window_new (DhApp *application)
window_populate (window);
- g_signal_connect (window, "configure-event",
+ g_signal_connect (window,
+ "configure-event",
G_CALLBACK (window_configure_event_cb),
- window);
+ NULL);
dh_util_window_settings_restore (
GTK_WINDOW (window),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]