aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--calendar/ChangeLog9
-rw-r--r--calendar/gncal-full-day.c56
-rw-r--r--calendar/gui/gncal-full-day.c56
-rw-r--r--calendar/gui/prop.c8
-rw-r--r--calendar/prop.c8
5 files changed, 89 insertions, 48 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog
index c795e58417..05753e6020 100644
--- a/calendar/ChangeLog
+++ b/calendar/ChangeLog
@@ -1,3 +1,12 @@
+1999-01-20 Nat Friedman <nat@nat.org>
+
+ * gncal-full-day.c (gncal_full_day_key_press): Only trap printable
+ characters such that hotkeys work.
+ (UNSELECT_TIMEOUT): Changed to 0. Much saner behavior.
+
+ * prop.c (properties): Connect gnome_help_pbox_display to the
+ GnomePropertyBox help button.
+
1999-01-19 Federico Mena Quintero <federico@nuclecu.unam.mx>
* quick-view.c (quick_view_do_popup): Do not grab the mouse here
diff --git a/calendar/gncal-full-day.c b/calendar/gncal-full-day.c
index 402c19acee..343eb1281c 100644
--- a/calendar/gncal-full-day.c
+++ b/calendar/gncal-full-day.c
@@ -24,7 +24,7 @@
#define HANDLE_SIZE 8
#define MIN_WIDTH 200
#define XOR_RECT_WIDTH 2
-#define UNSELECT_TIMEOUT 150 /* ms */
+#define UNSELECT_TIMEOUT 0 /* ms */
/* Size of the pixmaps */
#define DECOR_WIDTH 16
@@ -109,7 +109,6 @@ static void gncal_full_day_forall (GtkContainer *container,
static void range_activated (GncalFullDay *fullday);
-
static GtkContainerClass *parent_class;
static int fullday_signals[LAST_SIGNAL] = { 0 };
@@ -1816,10 +1815,10 @@ gncal_full_day_button_release (GtkWidget *widget, GdkEventButton *event)
break;
case DRAG_SELECT:
- if ((event->time - di->click_time) < UNSELECT_TIMEOUT)
- di->sel_rows_used = 0;
- else
- recompute_motion (fullday, y);
+ if ((event->time - di->click_time) < UNSELECT_TIMEOUT)
+ di->sel_rows_used = 0;
+ else
+ recompute_motion (fullday, y);
gdk_pointer_ungrab (event->time);
@@ -1960,28 +1959,37 @@ gncal_full_day_key_press (GtkWidget *widget, GdkEventKey *event)
return TRUE;
}
- if (event->length > 0) {
- /* This means some printable key was pressed */
-
- gtk_signal_emit (GTK_OBJECT (fullday), fullday_signals[RANGE_ACTIVATED]);
-
- /* Find the new child, which should hopefully be focused, and insert the keypress */
-
- for (children = fullday->children; children; children = children->next) {
- child = children->data;
+ /*
+ * If a non-printable key was pressed, bail. Otherwise, begin
+ * editing the appointment.
+ */
+ if ((event->keyval < 0x20) || (event->keyval > 0xFF)
+ || (event->length == 0) || (event->state & GDK_CONTROL_MASK)
+ || (event->state & GDK_MOD1_MASK))
+ return FALSE;
+
+ gtk_signal_emit (GTK_OBJECT (fullday),
+ fullday_signals[RANGE_ACTIVATED]);
+
+ /*
+ * Find the new child, which should hopefully be focused, and
+ * insert the keypress.
+ */
+ for (children = fullday->children; children; children = children->next)
+ {
+ child = children->data;
- if (GTK_WIDGET_HAS_FOCUS (child->widget)) {
- pos = gtk_text_get_length (GTK_TEXT (child->widget));
+ if (GTK_WIDGET_HAS_FOCUS (child->widget)) {
+ pos = gtk_text_get_length (GTK_TEXT (child->widget));
- gtk_editable_insert_text (GTK_EDITABLE (child->widget),
- event->string,
- event->length,
- &pos);
+ gtk_editable_insert_text (GTK_EDITABLE (child->widget),
+ event->string,
+ event->length,
+ &pos);
- return TRUE;
- }
+ return TRUE;
}
- }
+ }
return FALSE;
}
diff --git a/calendar/gui/gncal-full-day.c b/calendar/gui/gncal-full-day.c
index 402c19acee..343eb1281c 100644
--- a/calendar/gui/gncal-full-day.c
+++ b/calendar/gui/gncal-full-day.c
@@ -24,7 +24,7 @@
#define HANDLE_SIZE 8
#define MIN_WIDTH 200
#define XOR_RECT_WIDTH 2
-#define UNSELECT_TIMEOUT 150 /* ms */
+#define UNSELECT_TIMEOUT 0 /* ms */
/* Size of the pixmaps */
#define DECOR_WIDTH 16
@@ -109,7 +109,6 @@ static void gncal_full_day_forall (GtkContainer *container,
static void range_activated (GncalFullDay *fullday);
-
static GtkContainerClass *parent_class;
static int fullday_signals[LAST_SIGNAL] = { 0 };
@@ -1816,10 +1815,10 @@ gncal_full_day_button_release (GtkWidget *widget, GdkEventButton *event)
break;
case DRAG_SELECT:
- if ((event->time - di->click_time) < UNSELECT_TIMEOUT)
- di->sel_rows_used = 0;
- else
- recompute_motion (fullday, y);
+ if ((event->time - di->click_time) < UNSELECT_TIMEOUT)
+ di->sel_rows_used = 0;
+ else
+ recompute_motion (fullday, y);
gdk_pointer_ungrab (event->time);
@@ -1960,28 +1959,37 @@ gncal_full_day_key_press (GtkWidget *widget, GdkEventKey *event)
return TRUE;
}
- if (event->length > 0) {
- /* This means some printable key was pressed */
-
- gtk_signal_emit (GTK_OBJECT (fullday), fullday_signals[RANGE_ACTIVATED]);
-
- /* Find the new child, which should hopefully be focused, and insert the keypress */
-
- for (children = fullday->children; children; children = children->next) {
- child = children->data;
+ /*
+ * If a non-printable key was pressed, bail. Otherwise, begin
+ * editing the appointment.
+ */
+ if ((event->keyval < 0x20) || (event->keyval > 0xFF)
+ || (event->length == 0) || (event->state & GDK_CONTROL_MASK)
+ || (event->state & GDK_MOD1_MASK))
+ return FALSE;
+
+ gtk_signal_emit (GTK_OBJECT (fullday),
+ fullday_signals[RANGE_ACTIVATED]);
+
+ /*
+ * Find the new child, which should hopefully be focused, and
+ * insert the keypress.
+ */
+ for (children = fullday->children; children; children = children->next)
+ {
+ child = children->data;
- if (GTK_WIDGET_HAS_FOCUS (child->widget)) {
- pos = gtk_text_get_length (GTK_TEXT (child->widget));
+ if (GTK_WIDGET_HAS_FOCUS (child->widget)) {
+ pos = gtk_text_get_length (GTK_TEXT (child->widget));
- gtk_editable_insert_text (GTK_EDITABLE (child->widget),
- event->string,
- event->length,
- &pos);
+ gtk_editable_insert_text (GTK_EDITABLE (child->widget),
+ event->string,
+ event->length,
+ &pos);
- return TRUE;
- }
+ return TRUE;
}
- }
+ }
return FALSE;
}
diff --git a/calendar/gui/prop.c b/calendar/gui/prop.c
index 4ae7359f06..1e771812f9 100644
--- a/calendar/gui/prop.c
+++ b/calendar/gui/prop.c
@@ -498,6 +498,10 @@ create_colors_page (void)
void
properties (GtkWidget *toplevel)
{
+ static GnomeHelpMenuEntry help_entry = { NULL, "properties" };
+
+ help_entry.name = gnome_app_id;
+
if (prop_win)
return;
@@ -517,6 +521,10 @@ properties (GtkWidget *toplevel)
gtk_signal_connect (GTK_OBJECT (prop_win), "apply",
(GtkSignalFunc) prop_apply, NULL);
+ gtk_signal_connect (GTK_OBJECT (prop_win), "help",
+ GTK_SIGNAL_FUNC (gnome_help_pbox_display),
+ &help_entry);
+
gtk_widget_show_all (prop_win);
}
diff --git a/calendar/prop.c b/calendar/prop.c
index 4ae7359f06..1e771812f9 100644
--- a/calendar/prop.c
+++ b/calendar/prop.c
@@ -498,6 +498,10 @@ create_colors_page (void)
void
properties (GtkWidget *toplevel)
{
+ static GnomeHelpMenuEntry help_entry = { NULL, "properties" };
+
+ help_entry.name = gnome_app_id;
+
if (prop_win)
return;
@@ -517,6 +521,10 @@ properties (GtkWidget *toplevel)
gtk_signal_connect (GTK_OBJECT (prop_win), "apply",
(GtkSignalFunc) prop_apply, NULL);
+ gtk_signal_connect (GTK_OBJECT (prop_win), "help",
+ GTK_SIGNAL_FUNC (gnome_help_pbox_display),
+ &help_entry);
+
gtk_widget_show_all (prop_win);
}