[evolution] EMailBrowser: Cannot type some letters in the search entry
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution] EMailBrowser: Cannot type some letters in the search entry
- Date: Fri, 6 Mar 2020 09:04:49 +0000 (UTC)
commit 5b8792c29192eb695f67e451511738862767c43d
Author: Milan Crha <mcrha redhat com>
Date: Fri Mar 6 10:06:56 2020 +0100
EMailBrowser: Cannot type some letters in the search entry
When searching the message body, using Ctrl+Shift+F, letters and numbers
used as a single-letter shortcut could not be used, having the key press
being used like the shortcut.
This also removes (now) unneeded code from:
https://bugzilla.gnome.org/show_bug.cgi?id=787576
src/mail/e-mail-browser.c | 13 ++++++--
src/modules/mail/e-mail-shell-view-private.c | 45 ----------------------------
src/modules/mail/e-mail-shell-view-private.h | 4 ---
src/modules/mail/e-mail-shell-view.c | 2 --
4 files changed, 10 insertions(+), 54 deletions(-)
---
diff --git a/src/mail/e-mail-browser.c b/src/mail/e-mail-browser.c
index 5cd14cd51f..569406b32d 100644
--- a/src/mail/e-mail-browser.c
+++ b/src/mail/e-mail-browser.c
@@ -464,14 +464,21 @@ mail_browser_key_press_event_cb (GtkWindow *mail_browser,
mail_display = e_mail_reader_get_mail_display (E_MAIL_READER (mail_browser));
- if (!event || (event->state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK | GDK_MOD1_MASK)) != 0)
+ if (!event || (event->state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK | GDK_MOD1_MASK)) != 0 ||
+ event->keyval == GDK_KEY_Tab ||
+ event->keyval == GDK_KEY_Return ||
+ event->keyval == GDK_KEY_Escape ||
+ event->keyval == GDK_KEY_KP_Tab ||
+ event->keyval == GDK_KEY_KP_Enter)
return event && e_mail_display_need_key_event (mail_display, event);
focused = gtk_window_get_focus (mail_browser);
if (focused && (GTK_IS_ENTRY (focused) || GTK_IS_EDITABLE (focused) ||
- (GTK_IS_TREE_VIEW (focused) && gtk_tree_view_get_search_column (GTK_TREE_VIEW (focused)) >= 0)))
- return FALSE;
+ (GTK_IS_TREE_VIEW (focused) && gtk_tree_view_get_search_column (GTK_TREE_VIEW (focused)) >= 0))) {
+ gtk_widget_event (focused, (GdkEvent *) event);
+ return TRUE;
+ }
if (e_web_view_get_need_input (E_WEB_VIEW (mail_display)) &&
gtk_widget_has_focus (GTK_WIDGET (mail_display))) {
diff --git a/src/modules/mail/e-mail-shell-view-private.c b/src/modules/mail/e-mail-shell-view-private.c
index 1aa0ab691a..f5022176cb 100644
--- a/src/modules/mail/e-mail-shell-view-private.c
+++ b/src/modules/mail/e-mail-shell-view-private.c
@@ -548,10 +548,6 @@ e_mail_shell_view_private_constructed (EMailShellView *mail_shell_view)
e_shell_window_add_action_group (shell_window, "mail-labels");
e_shell_window_add_action_group (shell_window, "search-folders");
- g_signal_connect (
- shell_window, "set-focus",
- G_CALLBACK (e_mail_shell_view_update_labels_sensitivity), shell_view);
-
/* Cache these to avoid lots of awkward casting. */
priv->mail_shell_backend = g_object_ref (shell_backend);
priv->mail_shell_content = g_object_ref (shell_content);
@@ -1529,44 +1525,3 @@ e_mail_shell_view_update_send_receive_menus (EMailShellView *mail_shell_view)
GTK_MENU_TOOL_BUTTON (priv->send_receive_tool_item),
create_send_receive_submenu (mail_shell_view));
}
-
-void
-e_mail_shell_view_update_labels_sensitivity (EShellWindow *shell_window,
- GtkWidget *focused_widget,
- EMailShellView *mail_shell_view)
-{
- GtkActionGroup *action_group;
- GtkAction *action;
- GtkWidget *widget;
- EMailReader *reader;
- gboolean sensitive = FALSE;
-
- g_return_if_fail (E_IS_SHELL_WINDOW (shell_window));
- g_return_if_fail (E_IS_MAIL_SHELL_VIEW (mail_shell_view));
-
- /* It can be called also during the dispose of the GtkWindow,
- when the UI manager is already freed */
- if (!e_shell_window_get_ui_manager (shell_window))
- return;
-
- reader = E_MAIL_READER (e_mail_shell_content_get_mail_view
(mail_shell_view->priv->mail_shell_content));
-
- widget = focused_widget ? focused_widget : gtk_window_get_focus (GTK_WINDOW (shell_window));
-
- while (widget) {
- if (IS_MESSAGE_LIST (widget)) {
- sensitive = TRUE;
- break;
- }
-
- widget = gtk_widget_get_parent (widget);
- }
-
- action_group = e_mail_reader_get_action_group (reader, E_MAIL_READER_ACTION_GROUP_LABELS);
- if (action_group)
- gtk_action_group_set_sensitive (action_group, sensitive);
-
- action = e_mail_reader_get_action (reader, "mail-label-none");
- if (action)
- gtk_action_set_sensitive (action, sensitive);
-}
diff --git a/src/modules/mail/e-mail-shell-view-private.h b/src/modules/mail/e-mail-shell-view-private.h
index ecb7bbdf09..5d158c1244 100644
--- a/src/modules/mail/e-mail-shell-view-private.h
+++ b/src/modules/mail/e-mail-shell-view-private.h
@@ -165,10 +165,6 @@ void e_mail_shell_view_update_send_receive_menus
(EMailShellView *mail_shell_view);
GDBusProxy * e_mail_shell_view_get_web_extension_proxy
(EMailShellView *mail_shell_view);
-void e_mail_shell_view_update_labels_sensitivity
- (EShellWindow *shell_window,
- GtkWidget *focused_widget,
- EMailShellView *mail_shell_view);
G_END_DECLS
diff --git a/src/modules/mail/e-mail-shell-view.c b/src/modules/mail/e-mail-shell-view.c
index 4274751321..f63c1ff1dd 100644
--- a/src/modules/mail/e-mail-shell-view.c
+++ b/src/modules/mail/e-mail-shell-view.c
@@ -1570,8 +1570,6 @@ mail_shell_view_update_actions (EShellView *shell_view)
/* folder_is_store + folder_is_virtual == "Search Folders" */
action = ACTION (MAIL_VFOLDER_UNMATCHED_ENABLE);
gtk_action_set_visible (action, folder_is_store && folder_is_virtual);
-
- e_mail_shell_view_update_labels_sensitivity (shell_window, NULL, mail_shell_view);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]