[gcalctool] Don't override space and return when display area not selected (Bug #596645)
- From: Robert Ancell <rancell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gcalctool] Don't override space and return when display area not selected (Bug #596645)
- Date: Sun, 21 Feb 2010 23:41:05 +0000 (UTC)
commit 7b8efe4cd32ec0d349819baa0381c6f54ab3943f
Author: Robert Ancell <robert ancell gmail com>
Date: Mon Feb 22 10:22:25 2010 +1100
Don't override space and return when display area not selected (Bug #596645)
NEWS | 2 ++
src/gtk.c | 17 +++++++++++++----
2 files changed, 15 insertions(+), 4 deletions(-)
---
diff --git a/NEWS b/NEWS
index 6a7867a..74f6a59 100644
--- a/NEWS
+++ b/NEWS
@@ -10,6 +10,8 @@ Overview of changes in gcalctool 5.29.91
separator
* Make boolean operations work with zero, e.g. "0 XOR 5"
+
+ * Don't override space and return when display area not selected (Bug #596645)
* Make window non-resizable (Bug #602154)
diff --git a/src/gtk.c b/src/gtk.c
index 62f89f4..eab5357 100644
--- a/src/gtk.c
+++ b/src/gtk.c
@@ -1164,8 +1164,8 @@ gboolean
main_window_key_press_cb(GtkWidget *widget, GdkEventKey *event)
{
int i, state;
- const char *conversions[] = {"-", "*", "/", "\t", NULL};
- const char *conversion_values[] = {"â??", "Ã?", "÷", " ", };
+ const char *conversions[] = {"-", "*", "/", NULL};
+ const char *conversion_values[] = {"â??", "Ã?", "÷", NULL };
/* Only look at the modifiers we use */
state = event->state & (GDK_CONTROL_MASK | GDK_MOD1_MASK);
@@ -1300,8 +1300,13 @@ main_window_key_press_cb(GtkWidget *widget, GdkEventKey *event)
/* Solve */
if ((event->keyval == GDK_Return && state == 0) ||
(event->keyval == GDK_KP_Enter && state == 0)) {
- do_button(FN_CALCULATE, NULL);
- return TRUE;
+ if (gtk_widget_has_focus(X.display_item)) {
+ do_button(FN_CALCULATE, NULL);
+ return TRUE;
+ }
+ else {
+ return FALSE;
+ }
}
if (state != 0)
@@ -1338,6 +1343,10 @@ main_window_key_press_cb(GtkWidget *widget, GdkEventKey *event)
do_button(FN_CALCULATE, NULL);
return TRUE;
}
+
+ /* Don't override space - it is used in UI */
+ if (event->string[0] == ' ')
+ return FALSE;
if (event->string[0] != '\0') {
do_text(event->string);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]