summaryrefslogtreecommitdiff
path: root/src/gtkext
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2018-07-18 09:30:27 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2018-07-18 09:30:27 (GMT)
commitc7b064cf1470974aa304d181e1174f9a329d4d49 (patch)
tree2ef5c69b026c979a6496f03bc6ea6e9a923faf46 /src/gtkext
parentf225f8af4eff40b5096f512b699571554e54f097 (diff)
Disabled simple accelerators when a text entry gets focus.
Diffstat (limited to 'src/gtkext')
-rw-r--r--src/gtkext/easygtk.c53
-rw-r--r--src/gtkext/easygtk.h3
-rw-r--r--src/gtkext/gtkdockable.c3
-rw-r--r--src/gtkext/gtkstatusstack.c3
4 files changed, 6 insertions, 56 deletions
diff --git a/src/gtkext/easygtk.c b/src/gtkext/easygtk.c
index b86955f..05de12e 100644
--- a/src/gtkext/easygtk.c
+++ b/src/gtkext/easygtk.c
@@ -40,9 +40,6 @@ static gboolean handle_escape_on_menu(GtkWidget *, GdkEventKey *, GtkMenuItem *)
/* Assure que le menu parent est sélectionné comme attendu. */
static void show_parent_selection(GtkWidget *, GtkMenuItem *);
-/* Détermine si un élément de menu peut être actionné. */
-static gboolean enable_accel_all_the_time(GtkWidget *, guint, gpointer);
-
/******************************************************************************
@@ -1022,56 +1019,6 @@ GtkWidget *qck_create_radio_menu_item(GObject *object, const char *name, GSList
/******************************************************************************
* *
-* Paramètres : widget = composant graphique à analyser. *
-* signal_id = identifiant de signal. *
-* unused = adresse non utilisée ici. *
-* *
-* Description : Détermine si un élément de menu peut être actionné. *
-* *
-* Retour : TRUE si l'élément de menu est accessible. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static gboolean enable_accel_all_the_time(GtkWidget *widget, guint signal_id, gpointer unused)
-{
- return gtk_widget_is_sensitive(widget);
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : item = élément d'un menu à mettre à jour. *
-* accelerator = description sous forme de chaîne de caractères.*
-* group = groupe d'appartenance du raccourci. *
-* *
-* Description : Ajoute un accélérateur à un élément de menu existant. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-void add_accelerator_to_menu_item(GtkWidget *item, const char *accelerator, GtkAccelGroup *group)
-{
- guint key; /* Touche concernée */
- GdkModifierType mods; /* Eventuels modificateurs */
-
- gtk_accelerator_parse(accelerator, &key, &mods);
-
- g_signal_connect(item, "can-activate-accel", G_CALLBACK(enable_accel_all_the_time), NULL);
-
- gtk_widget_add_accelerator(item, "activate", group,
- key, mods, GTK_ACCEL_VISIBLE);
-
-}
-
-
-/******************************************************************************
-* *
* Paramètres : - *
* *
* Description : Crée et enregistre un composant 'GtkSeparatorMenuItem'. *
diff --git a/src/gtkext/easygtk.h b/src/gtkext/easygtk.h
index 1c732b0..5f02a72 100644
--- a/src/gtkext/easygtk.h
+++ b/src/gtkext/easygtk.h
@@ -104,9 +104,6 @@ GtkWidget *qck_create_check_menu_item(GObject *, const char *, const char *, GCa
/* Crée et enregistre un composant 'GtkRadioMenuItem'. */
GtkWidget *qck_create_radio_menu_item(GObject *, const char *, GSList *, const char *, GCallback, gpointer);
-/* Ajoute un accélérateur à un élément de menu existant. */
-void add_accelerator_to_menu_item(GtkWidget *, const char *, GtkAccelGroup *);
-
/* Crée et enregistre un composant 'GtkSeparatorMenuItem'. */
GtkWidget *qck_create_menu_separator(void);
diff --git a/src/gtkext/gtkdockable.c b/src/gtkext/gtkdockable.c
index 3056402..71c6826 100644
--- a/src/gtkext/gtkdockable.c
+++ b/src/gtkext/gtkdockable.c
@@ -34,6 +34,7 @@
#include "easygtk.h"
#include "gtkdockable-int.h"
#include "tmgt.h"
+#include "../gui/agroup.h"
@@ -390,6 +391,8 @@ static GtkWidget *build_search_area(GtkDockable *dockable, GtkWidget **search)
*search = gtk_search_entry_new();
g_signal_connect(*search, "search-changed", G_CALLBACK(on_dockable_search_changed), dockable);
+ g_signal_connect(*search, "focus-in-event", G_CALLBACK(track_focus_change_in_text_area), NULL);
+ g_signal_connect(*search, "focus-out-event", G_CALLBACK(track_focus_change_in_text_area), NULL);
gtk_widget_set_hexpand(*search, TRUE);
gtk_widget_show(*search);
gtk_grid_attach_next_to(GTK_GRID(result), *search, label, GTK_POS_RIGHT, 1, 1);
diff --git a/src/gtkext/gtkstatusstack.c b/src/gtkext/gtkstatusstack.c
index 0bcb903..1765eaf 100644
--- a/src/gtkext/gtkstatusstack.c
+++ b/src/gtkext/gtkstatusstack.c
@@ -35,6 +35,7 @@
#include "easygtk.h"
#include "../common/extstr.h"
+#include "../gui/agroup.h"
#include "../format/format.h"
@@ -414,6 +415,8 @@ static GtkWidget *build_assembly_status_stack(GtkStatusStack *stack)
zoom = qck_create_entry(ref, "zoom", "100%");
gtk_entry_set_icon_from_icon_name(GTK_ENTRY(zoom), GTK_ENTRY_ICON_SECONDARY, "go-up-symbolic");
+ g_signal_connect(zoom, "focus-in-event", G_CALLBACK(track_focus_change_in_text_area), NULL);
+ g_signal_connect(zoom, "focus-out-event", G_CALLBACK(track_focus_change_in_text_area), NULL);
g_signal_connect(zoom, "icon-press", G_CALLBACK(on_zoom_icon_press), stack);
gtk_box_pack_start(GTK_BOX(hbox), zoom, FALSE, TRUE, 0);