summaryrefslogtreecommitdiff
path: root/frontends/gtk
diff options
context:
space:
mode:
Diffstat (limited to 'frontends/gtk')
-rw-r--r--frontends/gtk/scaffolding.c8
-rw-r--r--frontends/gtk/window.c23
2 files changed, 21 insertions, 10 deletions
diff --git a/frontends/gtk/scaffolding.c b/frontends/gtk/scaffolding.c
index 8c46fd884..6b6f936ff 100644
--- a/frontends/gtk/scaffolding.c
+++ b/frontends/gtk/scaffolding.c
@@ -2715,10 +2715,14 @@ void nsgtk_scaffolding_context_menu(struct nsgtk_scaffolding *g,
gdouble y)
{
GtkMenu *gtkmenu;
+ struct browser_window *bw;
+ float scale;
+
+ bw = nsgtk_get_browser_window(g->top_level);
+ scale = browser_window_get_scale(bw);
/* update the global context menu features */
- browser_window_get_features(nsgtk_get_browser_window(g->top_level),
- x, y, &current_menu_features);
+ browser_window_get_features(bw, x/scale, y/scale, &current_menu_features);
if (current_menu_features.link != NULL) {
/* menu is opening over a link */
diff --git a/frontends/gtk/window.c b/frontends/gtk/window.c
index aab4597dc..341eb5db8 100644
--- a/frontends/gtk/window.c
+++ b/frontends/gtk/window.c
@@ -332,8 +332,13 @@ static gboolean nsgtk_window_motion_notify_event(GtkWidget *widget,
return TRUE;
}
-static gboolean nsgtk_window_button_press_event(GtkWidget *widget,
- GdkEventButton *event, gpointer data)
+/**
+ * GTK signal handler for button-press-event on layout
+ */
+static gboolean
+nsgtk_window_button_press_event(GtkWidget *widget,
+ GdkEventButton *event,
+ gpointer data)
{
struct gui_window *g = data;
@@ -341,8 +346,8 @@ static gboolean nsgtk_window_button_press_event(GtkWidget *widget,
gtk_widget_grab_focus(GTK_WIDGET(g->layout));
nsgtk_local_history_hide();
- g->mouse.pressed_x = event->x / browser_window_get_scale(g->bw);
- g->mouse.pressed_y = event->y / browser_window_get_scale(g->bw);
+ g->mouse.pressed_x = event->x;
+ g->mouse.pressed_y = event->y;
switch (event->button) {
case 1: /* Left button, usually. Pass to core as BUTTON 1. */
@@ -382,8 +387,10 @@ static gboolean nsgtk_window_button_press_event(GtkWidget *widget,
g->last_x = event->x;
g->last_y = event->y;
- browser_window_mouse_click(g->bw, g->mouse.state, g->mouse.pressed_x,
- g->mouse.pressed_y);
+ browser_window_mouse_click(g->bw,
+ g->mouse.state,
+ g->mouse.pressed_x,
+ g->mouse.pressed_y);
return TRUE;
}
@@ -410,8 +417,8 @@ static gboolean nsgtk_window_button_release_event(GtkWidget *widget,
if (g->mouse.state & (BROWSER_MOUSE_CLICK_1 | BROWSER_MOUSE_CLICK_2)) {
browser_window_mouse_click(g->bw, g->mouse.state,
- event->x / browser_window_get_scale(g->bw),
- event->y / browser_window_get_scale(g->bw));
+ event->x,
+ event->y);
} else {
browser_window_mouse_track(g->bw, 0,
event->x / browser_window_get_scale(g->bw),