[gtranslator] Grab focus on msg just when clicking
- From: Daniel Garcia Moreno <danigm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtranslator] Grab focus on msg just when clicking
- Date: Wed, 11 May 2022 18:37:25 +0000 (UTC)
commit ab01ab4cfe02af5f439484d9884ac20dcd8e3fd0
Author: Daniel GarcĂa Moreno <dani danigm net>
Date: Wed May 11 20:36:27 2022 +0200
Grab focus on msg just when clicking
Fix https://gitlab.gnome.org/GNOME/gtranslator/-/issues/158
src/gtr-actions-search.c | 4 ++--
src/gtr-tab.c | 24 +++++++++++++++++++++---
2 files changed, 23 insertions(+), 5 deletions(-)
---
diff --git a/src/gtr-actions-search.c b/src/gtr-actions-search.c
index f05934b2..e65f7d9f 100644
--- a/src/gtr-actions-search.c
+++ b/src/gtr-actions-search.c
@@ -204,7 +204,7 @@ find_in_list (GtrWindow * window,
found = run_search (GTR_VIEW (viewsaux->data), found);
if (found)
{
- gtr_tab_message_go_to (tab, l->data, FALSE, GTR_TAB_MOVE_NONE);
+ gtr_tab_message_go_to (tab, l->data, TRUE, GTR_TAB_MOVE_NONE);
run_search (GTR_VIEW (viewsaux->data), aux);
return TRUE;
}
@@ -303,7 +303,7 @@ do_find (GtrSearchBar * dialog, GtrWindow * window, gboolean search_backwards)
restore_last_searched_data (dialog, tab);
if (!found && current_msg)
- gtr_tab_message_go_to (tab, current_msg->data, FALSE, GTR_TAB_MOVE_NONE);
+ gtr_tab_message_go_to (tab, current_msg->data, TRUE, GTR_TAB_MOVE_NONE);
gtr_search_bar_set_found (dialog, found);
}
diff --git a/src/gtr-tab.c b/src/gtr-tab.c
index 93b9059b..e317c464 100644
--- a/src/gtr-tab.c
+++ b/src/gtr-tab.c
@@ -261,6 +261,15 @@ show_hide_revealer (GtkWidget *widget, GdkEvent *ev, GtrTab *tab)
return TRUE;
}
+static gboolean
+msg_grab_focus (GtrTab *tab)
+{
+ GtrTabPrivate *priv;
+ priv = gtr_tab_get_instance_private (tab);
+ gtk_widget_grab_focus (priv->trans_msgstr[0]);
+ return FALSE;
+}
+
static void
install_autosave_timeout (GtrTab * tab)
{
@@ -1182,7 +1191,9 @@ gtr_tab_get_all_views (GtrTab * tab, gboolean original, gboolean translated)
**/
void
gtr_tab_message_go_to (GtrTab * tab,
- GtrMsg * to_go, gboolean searching, GtrTabMove move)
+ GtrMsg * to_go,
+ gboolean searching,
+ GtrTabMove move)
{
static gboolean first_msg = TRUE;
GtrTabPrivate *priv;
@@ -1254,8 +1265,15 @@ gtr_tab_message_go_to (GtrTab * tab,
* Emitting showed-message signal
*/
if (!searching)
- g_signal_emit (G_OBJECT (tab), signals[SHOWED_MESSAGE], 0,
- GTR_MSG (to_go));
+ {
+ g_signal_emit (G_OBJECT (tab), signals[SHOWED_MESSAGE], 0,
+ GTR_MSG (to_go));
+
+ // Grabbing the focus in the GtrView to edit the message
+ // This is done in the idle add to avoid the focus grab from the
+ // message-table
+ g_idle_add((GSourceFunc)msg_grab_focus, tab);
+ }
}
/**
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]