aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormutantturkey <crazycal00@gmail.com>2010-05-29 01:00:25 -0400
committermutantturkey <crazycal00@gmail.com>2010-05-29 01:00:25 -0400
commitfeff583dbc4eda02fcdab6a4bad87d56512fd861 (patch)
treed720989ea354e44f04f39b4aaa663c0b77c881ac
parent7bdb580ab4b84b29651211888c6ac26f7decc8c9 (diff)
lots of focus bug fixes, converted the key_press_cb for CTRL to use case, much faster.
-rw-r--r--sb.c49
1 files changed, 38 insertions, 11 deletions
diff --git a/sb.c b/sb.c
index 2966f45..cf4f50a 100644
--- a/sb.c
+++ b/sb.c
@@ -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)) {