#include <JavaScriptCore/JavaScript.h>
-gboolean button_tablabel(GtkWidget *, GdkEvent *, gpointer);
void client_destroy(GtkWidget *, gpointer);
WebKitWebView *client_new(const gchar *, WebKitWebView *, gboolean,
gboolean);
gboolean key_common(GtkWidget *, GdkEvent *, gpointer);
gboolean key_downloadmanager(GtkWidget *, GdkEvent *, gpointer);
gboolean key_location(GtkWidget *, GdkEvent *, gpointer);
+gboolean key_tablabel(GtkWidget *, GdkEvent *, gpointer);
gboolean key_web_view(GtkWidget *, GdkEvent *, gpointer);
void mainwindow_setup(void);
gboolean menu_web_view(WebKitWebView *, WebKitContextMenu *, GdkEvent *,
gchar *user_agent = NULL;
-gboolean
-button_tablabel(GtkWidget *widget, GdkEvent *event, gpointer data)
-{
- if (event->type == GDK_BUTTON_RELEASE)
- {
- switch (((GdkEventButton *)event)->button)
- {
- case 2:
- client_destroy(NULL, data);
- return TRUE;
- }
- }
- return FALSE;
-}
-
void
client_destroy(GtkWidget *widget, gpointer data)
{
evbox = gtk_event_box_new();
gtk_container_add(GTK_CONTAINER(evbox), tabbox);
g_signal_connect(G_OBJECT(evbox), "button-release-event",
- G_CALLBACK(button_tablabel), c);
+ G_CALLBACK(key_tablabel), c);
+
+ gtk_widget_add_events(evbox, GDK_SCROLL_MASK);
+ g_signal_connect(G_OBJECT(evbox), "scroll-event",
+ G_CALLBACK(key_tablabel), c);
/* This only shows the event box and the label inside, nothing else.
* Needed because the evbox/label is "internal" to the notebook and
return FALSE;
}
+gboolean
+key_tablabel(GtkWidget *widget, GdkEvent *event, gpointer data)
+{
+ GdkScrollDirection direction;
+
+ if (event->type == GDK_BUTTON_RELEASE)
+ {
+ switch (((GdkEventButton *)event)->button)
+ {
+ case 2:
+ client_destroy(NULL, data);
+ return TRUE;
+ }
+ }
+ else if (event->type == GDK_SCROLL)
+ {
+ gdk_event_get_scroll_direction(event, &direction);
+ switch (direction)
+ {
+ case GDK_SCROLL_UP:
+ gtk_notebook_prev_page(GTK_NOTEBOOK(mw.notebook));
+ break;
+ case GDK_SCROLL_DOWN:
+ gtk_notebook_next_page(GTK_NOTEBOOK(mw.notebook));
+ break;
+ default:
+ break;
+ }
+ return TRUE;
+ }
+ return FALSE;
+}
+
gboolean
key_web_view(GtkWidget *widget, GdkEvent *event, gpointer data)
{