[eog] Test for modifier keys correctly in EogWindow
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [eog] Test for modifier keys correctly in EogWindow
- Date: Wed, 29 Aug 2012 23:41:57 +0000 (UTC)
commit 32cc9464461ef0326d3ecb27a494b1af2d8101eb
Author: Federico Mena Quintero <federico gnome org>
Date: Wed Aug 29 17:38:11 2012 -0500
Test for modifier keys correctly in EogWindow
See http://developer.gnome.org/gtk3/stable/checklist-modifiers.html for an explanation
of how this works.
Signed-off-by: Federico Mena Quintero <federico gnome org>
https://bugzilla.gnome.org/show_bug.cgi?id=659830
src/eog-window.c | 13 ++++++++-----
1 files changed, 8 insertions(+), 5 deletions(-)
---
diff --git a/src/eog-window.c b/src/eog-window.c
index 2b974fc..a3a1e34 100644
--- a/src/eog-window.c
+++ b/src/eog-window.c
@@ -4891,22 +4891,25 @@ eog_window_key_press (GtkWidget *widget, GdkEventKey *event)
GtkContainer *tbcontainer = GTK_CONTAINER ((EOG_WINDOW (widget)->priv->toolbar));
gint result = FALSE;
gboolean handle_selection = FALSE;
+ GdkModifierType modifiers;
+
+ modifiers = gtk_accelerator_get_default_mod_mask ();
switch (event->keyval) {
case GDK_KEY_space:
- if (event->state & GDK_CONTROL_MASK) {
+ if ((event->state & modifiers) == GDK_CONTROL_MASK) {
handle_selection = TRUE;
break;
}
case GDK_KEY_Return:
if (gtk_container_get_focus_child (tbcontainer) == NULL) {
/* Image properties dialog case */
- if (event->state & GDK_MOD1_MASK) {
+ if ((event->state & modifiers) == GDK_MOD1_MASK) {
result = FALSE;
break;
}
- if (event->state & GDK_SHIFT_MASK) {
+ if ((event->state & modifiers) == GDK_SHIFT_MASK) {
eog_window_cmd_go_prev (NULL, EOG_WINDOW (widget));
} else {
eog_window_cmd_go_next (NULL, EOG_WINDOW (widget));
@@ -4936,7 +4939,7 @@ eog_window_key_press (GtkWidget *widget, GdkEventKey *event)
}
break;
case GDK_KEY_Left:
- if (event->state & GDK_MOD1_MASK) {
+ if ((event->state & modifiers) == GDK_MOD1_MASK) {
/* Alt+Left moves to previous image */
if (is_rtl) { /* move to next in RTL mode */
eog_window_cmd_go_next (NULL, EOG_WINDOW (widget));
@@ -4967,7 +4970,7 @@ eog_window_key_press (GtkWidget *widget, GdkEventKey *event)
break;
}
case GDK_KEY_Right:
- if (event->state & GDK_MOD1_MASK) {
+ if ((event->state & modifiers) == GDK_MOD1_MASK) {
/* Alt+Right moves to next image */
if (is_rtl) { /* move to previous in RTL mode */
eog_window_cmd_go_prev (NULL, EOG_WINDOW (widget));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]