Bug 775656 - Delete key mapping stops working ][

This commit is contained in:
Milan Crha
2017-01-18 16:01:33 +01:00
parent 03244380de
commit ac268fce9a

View File

@ -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);
}