[epiphany] Fix alt+navigation keys shortcuts
- From: Jan-Michael Brummer <jbrummer src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [epiphany] Fix alt+navigation keys shortcuts
- Date: Wed, 31 Jul 2019 05:06:42 +0000 (UTC)
commit 4b16224c66c9b6b79bb0a26412bf184a14ce4387
Author: Jan-Michael Brummer <jan brummer tabos org>
Date: Tue Jul 30 23:00:25 2019 +0200
Fix alt+navigation keys shortcuts
lib/ephy-gui.c | 5 ++++-
lib/ephy-gui.h | 3 ++-
src/ephy-link.c | 11 +++++++----
3 files changed, 13 insertions(+), 6 deletions(-)
---
diff --git a/lib/ephy-gui.c b/lib/ephy-gui.c
index 989012fc5..c342b23a0 100644
--- a/lib/ephy-gui.c
+++ b/lib/ephy-gui.c
@@ -85,7 +85,8 @@ ephy_gui_help (GtkWidget *parent,
void
ephy_gui_get_current_event (GdkEventType *otype,
guint *ostate,
- guint *obutton)
+ guint *obutton,
+ guint *keyval)
{
GdkEvent *event;
GdkEventType type = GDK_NOTHING;
@@ -98,6 +99,8 @@ ephy_gui_get_current_event (GdkEventType *otype,
if (type == GDK_KEY_PRESS ||
type == GDK_KEY_RELEASE) {
state = event->key.state;
+ if (keyval)
+ *keyval = event->key.keyval;
} else if (type == GDK_BUTTON_PRESS ||
type == GDK_BUTTON_RELEASE ||
type == GDK_2BUTTON_PRESS ||
diff --git a/lib/ephy-gui.h b/lib/ephy-gui.h
index 6283e7352..4092f0d64 100644
--- a/lib/ephy-gui.h
+++ b/lib/ephy-gui.h
@@ -28,7 +28,8 @@ GtkWindowGroup *ephy_gui_ensure_window_group (GtkWindow *window);
void ephy_gui_get_current_event (GdkEventType *type,
guint *state,
- guint *button);
+ guint *button,
+ guint *keyval);
void ephy_gui_help (GtkWidget *parent,
const char *page);
diff --git a/src/ephy-link.c b/src/ephy-link.c
index 5bc2a75dd..9f7191f5f 100644
--- a/src/ephy-link.c
+++ b/src/ephy-link.c
@@ -98,10 +98,10 @@ EphyLinkFlags
ephy_link_flags_from_current_event (void)
{
GdkEventType type = GDK_NOTHING;
- guint state = 0, button = (guint) - 1;
+ guint state = 0, button = (guint) - 1, keyval = (guint) - 1;
EphyLinkFlags flags = 0;
- ephy_gui_get_current_event (&type, &state, &button);
+ ephy_gui_get_current_event (&type, &state, &button, &keyval);
if (button == 2 && (type == GDK_BUTTON_PRESS || type == GDK_BUTTON_RELEASE)) {
if (state == GDK_SHIFT_MASK) {
@@ -110,9 +110,12 @@ ephy_link_flags_from_current_event (void)
flags = EPHY_LINK_NEW_TAB | EPHY_LINK_NEW_TAB_APPEND_AFTER;
}
} else {
- if (state == (GDK_MOD1_MASK | GDK_SHIFT_MASK)) {
+ gboolean navigation_keys = (keyval == GDK_KEY_Left) || (keyval == GDK_KEY_Right);
+
+ if (((state == (GDK_MOD1_MASK | GDK_SHIFT_MASK)) && !navigation_keys) ||
+ (state == (GDK_CONTROL_MASK | GDK_SHIFT_MASK))) {
flags = EPHY_LINK_NEW_WINDOW;
- } else if (state == GDK_MOD1_MASK) {
+ } else if (((state == GDK_MOD1_MASK) && !navigation_keys) || (state == GDK_CONTROL_MASK)) {
flags = EPHY_LINK_NEW_TAB | EPHY_LINK_NEW_TAB_APPEND_AFTER | EPHY_LINK_JUMP_TO;
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]