Bug 775656 - Delete key mapping stops working ][
This commit is contained in:
@ -22,6 +22,7 @@
|
||||
#include "e-alert-bar.h"
|
||||
#include "e-alert-dialog.h"
|
||||
#include "e-alert-sink.h"
|
||||
#include "e-misc-utils.h"
|
||||
|
||||
#define E_PREVIEW_PANE_GET_PRIVATE(obj) \
|
||||
(G_TYPE_INSTANCE_GET_PRIVATE \
|
||||
@ -68,6 +69,28 @@ preview_pane_web_view_new_activity_cb (EWebView *web_view,
|
||||
e_activity_set_alert_sink (activity, E_ALERT_SINK (preview_pane));
|
||||
}
|
||||
|
||||
static void
|
||||
preview_pane_alert_bar_visible_notify_cb (GtkWidget *alert_bar,
|
||||
GParamSpec *param,
|
||||
EPreviewPane *preview_pane)
|
||||
{
|
||||
GtkWidget *toplevel, *focused;
|
||||
|
||||
g_return_if_fail (E_IS_ALERT_BAR (alert_bar));
|
||||
g_return_if_fail (E_IS_PREVIEW_PANE (preview_pane));
|
||||
|
||||
if (gtk_widget_get_visible (alert_bar))
|
||||
return;
|
||||
|
||||
toplevel = gtk_widget_get_toplevel (GTK_WIDGET (preview_pane));
|
||||
focused = GTK_IS_WINDOW (toplevel) ? gtk_window_get_focus (GTK_WINDOW (toplevel)) : NULL;
|
||||
|
||||
if (!focused && preview_pane->priv->web_view &&
|
||||
gtk_widget_get_visible (preview_pane->priv->web_view)) {
|
||||
gtk_widget_grab_focus (preview_pane->priv->web_view);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
preview_pane_set_web_view (EPreviewPane *preview_pane,
|
||||
EWebView *web_view)
|
||||
@ -172,6 +195,9 @@ preview_pane_constructed (GObject *object)
|
||||
priv->search_bar = g_object_ref (widget);
|
||||
gtk_widget_hide (widget);
|
||||
|
||||
e_signal_connect_notify (priv->alert_bar, "notify::visible",
|
||||
G_CALLBACK (preview_pane_alert_bar_visible_notify_cb), object);
|
||||
|
||||
/* Chain up to parent's constructed() method. */
|
||||
G_OBJECT_CLASS (e_preview_pane_parent_class)->constructed (object);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user