diff options
Diffstat (limited to 'sb.c')
-rw-r--r-- | sb.c | 49 |
1 files changed, 38 insertions, 11 deletions
@@ -34,6 +34,7 @@ static void search(GtkEntry *entry, gboolean b); static void toggle(); static void show_search(gboolean b); static void tab_view_source(); +static void focus_view(); WebKitWebView * tab_new_requested(WebKitWebView *v, WebKitWebFrame *f); static void tab_switch(gboolean b); gboolean key_press_cb(GtkWidget *widget, GdkEventKey *event); @@ -123,14 +124,14 @@ gtk_widget_hide(w.status); gtk_notebook_set_show_tabs(GTK_NOTEBOOK(w.notebook), FALSE); } else { gtk_widget_show_all(w.vbox); -gtk_notebook_set_show_tabs(GTK_NOTEBOOK(w.notebook), TRUE); +gtk_widget_hide(w.search); +if (gtk_notebook_get_n_pages(GTK_NOTEBOOK(w.notebook)) == 1) { } else { gtk_notebook_set_show_tabs(GTK_NOTEBOOK(w.notebook), TRUE);} } } static void tab_switch(gboolean b) { gint(current) = gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook)); -printf("%d \n", current); if(b) { if (current == gtk_notebook_get_n_pages(GTK_NOTEBOOK(w.notebook)) -1 ) { current = 0; } @@ -173,7 +174,7 @@ gtk_container_add(GTK_CONTAINER(t->scroll), GTK_WIDGET(t->view)); int index = gtk_notebook_append_page(GTK_NOTEBOOK(w.notebook), t->scroll, t->label); gtk_notebook_set_tab_reorderable(GTK_NOTEBOOK(w.notebook), t->scroll, TRUE); -if ( gtk_notebook_get_n_pages(GTK_NOTEBOOK(w.notebook)) == 1) { } +//if ( gtk_notebook_get_n_pages(GTK_NOTEBOOK(w.notebook)) == 1) { } if (index == 0) { gtk_notebook_set_show_tabs(GTK_NOTEBOOK(w.notebook), FALSE); } else { gtk_notebook_set_show_tabs(GTK_NOTEBOOK(w.notebook), TRUE); } @@ -206,7 +207,6 @@ gtk_notebook_set_current_page(GTK_NOTEBOOK(w.notebook), index); static void tab_focus(GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, gpointer user_data) { struct tab *t = get_tab(NULL, page_num); const char *url = webkit_web_view_get_uri(t->view); -gtk_entry_set_text(GTK_ENTRY(w.bar), url); const char *title = webkit_web_view_get_title(t->view); if (title == NULL && url == NULL) { @@ -214,9 +214,13 @@ title = "sb"; url = ""; } gtk_window_set_title(GTK_WINDOW(w.win), title); - +gtk_entry_set_text(GTK_ENTRY(w.bar), url); } +static void focus_view() { + struct tab *t = get_tab(NULL, gtk_notebook_get_current_page(GTK_NOTEBOOK(w.notebook))); + gtk_widget_grab_focus(GTK_WIDGET(t->view)); +} static void config() { term_data_id = g_quark_from_static_string("sb"); @@ -265,22 +269,45 @@ gtk_widget_grab_focus(w.bar); gboolean key_press_cb (GtkWidget *widget, GdkEventKey *event) { guint(g) = event->keyval; -if ( (event->state & GDK_CONTROL_MASK)== GDK_CONTROL_MASK) { +if ( (event->state & GDK_CONTROL_MASK) == GDK_CONTROL_MASK ) { +switch(g) { + case GDK_l: gtk_widget_grab_focus(GTK_WIDGET(w.bar)); return TRUE; break; + case GDK_f: show_search(TRUE); return TRUE; break; + case GDK_j: go_cb(FALSE); return TRUE; break; + case GDK_k: go_cb(TRUE); return TRUE; break; + case GDK_h: toggle(); focus_view(); return TRUE; break; + case GDK_Page_Up: tab_switch(FALSE); return TRUE; break; + case GDK_Page_Down: tab_switch(TRUE); return TRUE; break; + case GDK_t: tab_new(); return TRUE; break; + case GDK_w: tab_close(); focus_view(); return TRUE; break; + case GDK_bracketright: tab_zoom(TRUE); return TRUE; break; + case GDK_bracketleft: tab_zoom(FALSE); return TRUE; break; + case GDK_r: reload(); return TRUE; break; + case GDK_s: tab_view_source(); return TRUE; break; + case GDK_Return: load_uri(g_strconcat(defaultsearchengine, gtk_entry_get_text(GTK_ENTRY(w.bar)), NULL)); return TRUE; break; + default: return FALSE; break; +} +} + +/*f ( (event->state & GDK_CONTROL_MASK)== GDK_CONTROL_MASK) { if(g == GDK_l) {gtk_widget_grab_focus(GTK_WIDGET(w.bar)); return TRUE; } if(g == GDK_f) { show_search(TRUE); return TRUE; } if (g == GDK_j) { go_cb(FALSE); return TRUE; } if (g == GDK_k) { go_cb(TRUE); return TRUE; } -if (g == GDK_h) { toggle(); } +if (g == GDK_h) { toggle(); return TRUE; } if (g == GDK_Page_Up) { tab_switch(FALSE); } if (g == GDK_Page_Down) { tab_switch(TRUE); } if (g == GDK_t) { tab_new(); return TRUE; } -if (g == GDK_w) { tab_close(); gtk_widget_grab_focus(w.bar); return TRUE; } +if (g == GDK_w) { tab_close(); gtk_widget_grab_focus(w.notebook); return TRUE; } if (g == GDK_bracketright) { tab_zoom(TRUE); return TRUE; } if (g == GDK_bracketleft) { tab_zoom(FALSE); return TRUE; } if (g == GDK_r) { reload(); return TRUE; } -if (g == GDK_s) { tab_view_source(); } -if (g == GDK_Return) { load_uri(g_strconcat(defaultsearchengine, gtk_entry_get_text(GTK_ENTRY(w.bar)), NULL)); return TRUE; } else { return FALSE; } -} +if (g == GDK_s) { tab_view_source(); return TRUE; } +if (g == GDK_Return) { + load_uri(g_strconcat(defaultsearchengine, gtk_entry_get_text(GTK_ENTRY(w.bar)), NULL)); + return TRUE; } + else { return FALSE; } +}*/ if (gtk_widget_has_focus(w.bar) && g == GDK_Escape) { gtk_widget_grab_focus(GTK_WIDGET(w.notebook)); return TRUE; } if (gtk_widget_has_focus(w.search)) { |