summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@netsurf-browser.org>2006-07-14 10:26:03 +0000
committerDaniel Silverstone <dsilvers@netsurf-browser.org>2006-07-14 10:26:03 +0000
commit7eb826bdd737f42477f2d68010a023f8491c5123 (patch)
treea5f73070689d35e2ff1a967af68ea3c1e7e85683 /gtk
parent1decf851aaeb7b4b34f6a999884edee8bba3c0d6 (diff)
downloadnetsurf-7eb826bdd737f42477f2d68010a023f8491c5123.tar.gz
netsurf-7eb826bdd737f42477f2d68010a023f8491c5123.tar.bz2
Basic multi-window support for nsgtk
svn path=/trunk/netsurf/; revision=2749
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtk_window.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/gtk/gtk_window.c b/gtk/gtk_window.c
index bb3e0a39d..0fa1f2865 100644
--- a/gtk/gtk_window.c
+++ b/gtk/gtk_window.c
@@ -64,6 +64,7 @@ GdkGC *current_gc;
#ifdef CAIRO_VERSION
cairo_t *current_cr;
#endif
+static open_windows = 0;
static void gui_window_zoomin_button_event(GtkWidget *widget, gpointer data);
static void gui_window_zoom100_button_event(GtkWidget *widget, gpointer data);
@@ -332,7 +333,8 @@ struct gui_window *gui_create_browser_window(struct browser_window *bw,
gesture_recogniser_set_count_threshold(gr, 20);
schedule(5, gtk_pass_mouse_position, g);
}
-
+
+ open_windows++;
return g;
}
@@ -376,7 +378,8 @@ void gui_window_destroy_event(GtkWidget *widget, gpointer data)
{
struct gui_window *g = data;
gui_window_destroy(g);
- netsurf_quit = true;
+ if (--open_windows == 0)
+ netsurf_quit = true;
}
void gui_window_back_button_event(GtkWidget *widget, gpointer data)
@@ -611,8 +614,16 @@ gboolean gui_window_button_press_event(GtkWidget *widget,
GdkEventButton *event, gpointer data)
{
struct gui_window *g = data;
-
- browser_window_mouse_click(g->bw, BROWSER_MOUSE_CLICK_1,
+ int button = BROWSER_MOUSE_CLICK_1;
+
+ LOG(("BUTTON PRESS: %d", event->button));
+
+ if (event->button == 2) /* 2 == middle button on X */
+ button = BROWSER_MOUSE_CLICK_2;
+ if (event->button == 3) /* 3 == right button on X */
+ return TRUE; /* Do nothing for right click for now */
+
+ browser_window_mouse_click(g->bw, button,
event->x, event->y);
return TRUE;