]> git.armaanb.net Git - chorizo.git/blobdiff - browser.c
Make tab width customizable
[chorizo.git] / browser.c
index 7f8d3f79567933140f23647fa2cad7b6d4af6da9..ca8eb37485825635b4d7440f3cdb6f54aae1e8fc 100644 (file)
--- a/browser.c
+++ b/browser.c
@@ -96,6 +96,8 @@ static gchar *home_uri = "about:blank";
 static gboolean initial_wc_setup_done = FALSE;
 static GHashTable *keywords = NULL;
 static gchar *search_text = NULL;
+static GtkPositionType tab_pos = GTK_POS_TOP;
+static gint tab_width_chars = 20;
 static gchar *user_agent = NULL;
 
 
@@ -233,7 +235,7 @@ client_new(const gchar *uri, WebKitWebView *related_wv, gboolean show)
 
     c->tablabel = gtk_label_new(__NAME__);
     gtk_label_set_ellipsize(GTK_LABEL(c->tablabel), PANGO_ELLIPSIZE_END);
-    gtk_label_set_width_chars(GTK_LABEL(c->tablabel), 20);
+    gtk_label_set_width_chars(GTK_LABEL(c->tablabel), tab_width_chars);
 
     evbox = gtk_event_box_new();
     gtk_container_add(GTK_CONTAINER(evbox), c->tablabel);
@@ -676,6 +678,23 @@ grab_environment_configuration(void)
     if (e != NULL)
         home_uri = g_strdup(e);
 
+    e = g_getenv(__NAME_UPPERCASE__"_TAB_POS");
+    if (e != NULL)
+    {
+        if (strcmp(e, "top") == 0)
+            tab_pos = GTK_POS_TOP;
+        if (strcmp(e, "right") == 0)
+            tab_pos = GTK_POS_RIGHT;
+        if (strcmp(e, "bottom") == 0)
+            tab_pos = GTK_POS_BOTTOM;
+        if (strcmp(e, "left") == 0)
+            tab_pos = GTK_POS_LEFT;
+    }
+
+    e = g_getenv(__NAME_UPPERCASE__"_TAB_WIDTH_CHARS");
+    if (e != NULL)
+        tab_width_chars = atoi(e);
+
     e = g_getenv(__NAME_UPPERCASE__"_USER_AGENT");
     if (e != NULL)
         user_agent = g_strdup(e);
@@ -872,6 +891,12 @@ key_common(GtkWidget *widget, GdkEvent *event, gpointer data)
                         webkit_web_view_get_uri(WEBKIT_WEB_VIEW(c->web_view)));
                     external_handler_run(NULL, NULL, c);
                     return TRUE;
+                case GDK_KEY_a:  /* go one tab to the left (left hand) */
+                    gtk_notebook_prev_page(GTK_NOTEBOOK(mw.notebook));
+                    return TRUE;
+                case GDK_KEY_s:  /* go one tab to the right (left hand) */
+                    gtk_notebook_next_page(GTK_NOTEBOOK(mw.notebook));
+                    return TRUE;
             }
         }
         /* navigate backward (left hand) */
@@ -1078,11 +1103,10 @@ mainwindow_setup(void)
 
     mw.notebook = gtk_notebook_new();
     gtk_notebook_set_scrollable(GTK_NOTEBOOK(mw.notebook), TRUE);
+    gtk_notebook_set_tab_pos(GTK_NOTEBOOK(mw.notebook), tab_pos);
     gtk_container_add(GTK_CONTAINER(mw.win), mw.notebook);
     g_signal_connect(G_OBJECT(mw.notebook), "switch-page",
                      G_CALLBACK(mainwindow_title_before), NULL);
-
-    /* XXX Global hotkeys to change tabs are missing */
 }
 
 void