Now any printable keystroke (not just Return) will activate the selected
1998-04-20 Federico Mena Quintero <federico@nuclecu.unam.mx> * gncal-full-day.c (gncal_full_day_key_press): Now any printable keystroke (not just Return) will activate the selected range. svn path=/trunk/; revision=172
This commit is contained in:

committed by
Arturo Espinosa

parent
65dbe3a385
commit
d57e1662cf
@ -1,5 +1,8 @@
|
|||||||
1998-04-20 Federico Mena Quintero <federico@nuclecu.unam.mx>
|
1998-04-20 Federico Mena Quintero <federico@nuclecu.unam.mx>
|
||||||
|
|
||||||
|
* gncal-full-day.c (gncal_full_day_key_press): Now any printable
|
||||||
|
keystroke (not just Return) will activate the selected range.
|
||||||
|
|
||||||
* gncal-full-day.c (paint_back): Made it use the new paint_row
|
* gncal-full-day.c (paint_back): Made it use the new paint_row
|
||||||
function instead of painting everything directly. We calculate
|
function instead of painting everything directly. We calculate
|
||||||
areas in a smarter way so there is even less flicker than before,
|
areas in a smarter way so there is even less flicker than before,
|
||||||
|
@ -1031,7 +1031,7 @@ paint_row (GncalFullDay *fullday, int row, struct paint_info *p)
|
|||||||
text_gc = p->widget->style->fg_gc[GTK_STATE_SELECTED];
|
text_gc = p->widget->style->fg_gc[GTK_STATE_SELECTED];
|
||||||
} else if ((row < begin_row) || (row >= end_row)) {
|
} else if ((row < begin_row) || (row >= end_row)) {
|
||||||
left_gc = p->widget->style->bg_gc[GTK_STATE_NORMAL];
|
left_gc = p->widget->style->bg_gc[GTK_STATE_NORMAL];
|
||||||
right_gc = left_gc;
|
right_gc = p->widget->style->bg_gc[GTK_STATE_ACTIVE];
|
||||||
text_gc = p->widget->style->fg_gc[GTK_STATE_NORMAL];
|
text_gc = p->widget->style->fg_gc[GTK_STATE_NORMAL];
|
||||||
} else {
|
} else {
|
||||||
left_gc = p->widget->style->bg_gc[GTK_STATE_NORMAL];
|
left_gc = p->widget->style->bg_gc[GTK_STATE_NORMAL];
|
||||||
@ -1810,6 +1810,8 @@ gncal_full_day_key_press (GtkWidget *widget, GdkEventKey *event)
|
|||||||
{
|
{
|
||||||
GncalFullDay *fullday;
|
GncalFullDay *fullday;
|
||||||
struct drag_info *di;
|
struct drag_info *di;
|
||||||
|
GList *children;
|
||||||
|
Child *child;
|
||||||
|
|
||||||
g_return_val_if_fail (widget != NULL, FALSE);
|
g_return_val_if_fail (widget != NULL, FALSE);
|
||||||
g_return_val_if_fail (GNCAL_IS_FULL_DAY (widget), FALSE);
|
g_return_val_if_fail (GNCAL_IS_FULL_DAY (widget), FALSE);
|
||||||
@ -1823,10 +1825,31 @@ gncal_full_day_key_press (GtkWidget *widget, GdkEventKey *event)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
if (event->keyval == GDK_Return) {
|
if (event->keyval == GDK_Return) {
|
||||||
gtk_signal_emit (GTK_OBJECT (fullday), fullday_signals [RANGE_ACTIVATED]);
|
gtk_signal_emit (GTK_OBJECT (fullday), fullday_signals[RANGE_ACTIVATED]);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (event->length > 0) {
|
||||||
|
/* This means some printable key was pressed */
|
||||||
|
|
||||||
|
gtk_signal_emit (GTK_OBJECT (fullday), fullday_signals[RANGE_ACTIVATED]);
|
||||||
|
|
||||||
|
/* This is sort of a hack. We find the focused child, if it exists, and
|
||||||
|
* we re-send the keystroke to it.
|
||||||
|
*/
|
||||||
|
|
||||||
|
for (children = fullday->children; children; children = children->next) {
|
||||||
|
child = children->data;
|
||||||
|
|
||||||
|
if (GTK_WIDGET_HAS_FOCUS (child->widget)) {
|
||||||
|
event->window = GTK_TEXT (child->widget)->text_area;
|
||||||
|
gtk_widget_event (widget, (GdkEvent *) event);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1031,7 +1031,7 @@ paint_row (GncalFullDay *fullday, int row, struct paint_info *p)
|
|||||||
text_gc = p->widget->style->fg_gc[GTK_STATE_SELECTED];
|
text_gc = p->widget->style->fg_gc[GTK_STATE_SELECTED];
|
||||||
} else if ((row < begin_row) || (row >= end_row)) {
|
} else if ((row < begin_row) || (row >= end_row)) {
|
||||||
left_gc = p->widget->style->bg_gc[GTK_STATE_NORMAL];
|
left_gc = p->widget->style->bg_gc[GTK_STATE_NORMAL];
|
||||||
right_gc = left_gc;
|
right_gc = p->widget->style->bg_gc[GTK_STATE_ACTIVE];
|
||||||
text_gc = p->widget->style->fg_gc[GTK_STATE_NORMAL];
|
text_gc = p->widget->style->fg_gc[GTK_STATE_NORMAL];
|
||||||
} else {
|
} else {
|
||||||
left_gc = p->widget->style->bg_gc[GTK_STATE_NORMAL];
|
left_gc = p->widget->style->bg_gc[GTK_STATE_NORMAL];
|
||||||
@ -1810,6 +1810,8 @@ gncal_full_day_key_press (GtkWidget *widget, GdkEventKey *event)
|
|||||||
{
|
{
|
||||||
GncalFullDay *fullday;
|
GncalFullDay *fullday;
|
||||||
struct drag_info *di;
|
struct drag_info *di;
|
||||||
|
GList *children;
|
||||||
|
Child *child;
|
||||||
|
|
||||||
g_return_val_if_fail (widget != NULL, FALSE);
|
g_return_val_if_fail (widget != NULL, FALSE);
|
||||||
g_return_val_if_fail (GNCAL_IS_FULL_DAY (widget), FALSE);
|
g_return_val_if_fail (GNCAL_IS_FULL_DAY (widget), FALSE);
|
||||||
@ -1823,10 +1825,31 @@ gncal_full_day_key_press (GtkWidget *widget, GdkEventKey *event)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
if (event->keyval == GDK_Return) {
|
if (event->keyval == GDK_Return) {
|
||||||
gtk_signal_emit (GTK_OBJECT (fullday), fullday_signals [RANGE_ACTIVATED]);
|
gtk_signal_emit (GTK_OBJECT (fullday), fullday_signals[RANGE_ACTIVATED]);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (event->length > 0) {
|
||||||
|
/* This means some printable key was pressed */
|
||||||
|
|
||||||
|
gtk_signal_emit (GTK_OBJECT (fullday), fullday_signals[RANGE_ACTIVATED]);
|
||||||
|
|
||||||
|
/* This is sort of a hack. We find the focused child, if it exists, and
|
||||||
|
* we re-send the keystroke to it.
|
||||||
|
*/
|
||||||
|
|
||||||
|
for (children = fullday->children; children; children = children->next) {
|
||||||
|
child = children->data;
|
||||||
|
|
||||||
|
if (GTK_WIDGET_HAS_FOCUS (child->widget)) {
|
||||||
|
event->window = GTK_TEXT (child->widget)->text_area;
|
||||||
|
gtk_widget_event (widget, (GdkEvent *) event);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user