diff options
-rw-r--r-- | e-util/ChangeLog | 6 | ||||
-rw-r--r-- | e-util/e-canvas.c | 4 | ||||
-rw-r--r-- | widgets/misc/e-canvas.c | 4 |
3 files changed, 14 insertions, 0 deletions
diff --git a/e-util/ChangeLog b/e-util/ChangeLog index f70ca5ec1c..e01604b3b7 100644 --- a/e-util/ChangeLog +++ b/e-util/ChangeLog @@ -1,3 +1,9 @@ +2000-05-02 Damon Chaplin <damon@helixcode.com> + + * e-canvas.c (e_canvas_focus_in): + (e_canvas_focus_out): set and reset the GTK_HAS_FOCUS flag. We now get + focus_out events correctly. + 2000-05-02 NotZed <NotZed@HelixCode.com> * e-sexp.c (e_sexp_finalise): Free the parse tree if we have one. diff --git a/e-util/e-canvas.c b/e-util/e-canvas.c index ad0819e3dd..8ca7d0f9b1 100644 --- a/e-util/e-canvas.c +++ b/e-util/e-canvas.c @@ -313,6 +313,8 @@ e_canvas_focus_in (GtkWidget *widget, GdkEventFocus *event) canvas = GNOME_CANVAS (widget); + GTK_WIDGET_SET_FLAGS (widget, GTK_HAS_FOCUS); + if (canvas->focused_item) return emit_event (canvas, (GdkEvent *) event); else @@ -327,6 +329,8 @@ e_canvas_focus_out (GtkWidget *widget, GdkEventFocus *event) canvas = GNOME_CANVAS (widget); + GTK_WIDGET_UNSET_FLAGS (widget, GTK_HAS_FOCUS); + if (canvas->focused_item) return emit_event (canvas, (GdkEvent *) event); else diff --git a/widgets/misc/e-canvas.c b/widgets/misc/e-canvas.c index ad0819e3dd..8ca7d0f9b1 100644 --- a/widgets/misc/e-canvas.c +++ b/widgets/misc/e-canvas.c @@ -313,6 +313,8 @@ e_canvas_focus_in (GtkWidget *widget, GdkEventFocus *event) canvas = GNOME_CANVAS (widget); + GTK_WIDGET_SET_FLAGS (widget, GTK_HAS_FOCUS); + if (canvas->focused_item) return emit_event (canvas, (GdkEvent *) event); else @@ -327,6 +329,8 @@ e_canvas_focus_out (GtkWidget *widget, GdkEventFocus *event) canvas = GNOME_CANVAS (widget); + GTK_WIDGET_UNSET_FLAGS (widget, GTK_HAS_FOCUS); + if (canvas->focused_item) return emit_event (canvas, (GdkEvent *) event); else |