summaryrefslogtreecommitdiff
path: root/src/gtkext/gtkviewpanel.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2015-04-20 23:09:13 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2015-04-20 23:09:13 (GMT)
commitea40f74566cd813722f49ae740ca3df04e522bb2 (patch)
tree7a61557efa0a80fcf3b58df9626f7fad9bd61455 /src/gtkext/gtkviewpanel.c
parent874b812e720a8f9fb6248cb54e76bd8ab2b2a250 (diff)
Transmitted the focus when a limit has been reached while using he keyboard.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@514 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/gtkext/gtkviewpanel.c')
-rw-r--r--src/gtkext/gtkviewpanel.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/gtkext/gtkviewpanel.c b/src/gtkext/gtkviewpanel.c
index 7f29574..e36da71 100644
--- a/src/gtkext/gtkviewpanel.c
+++ b/src/gtkext/gtkviewpanel.c
@@ -297,6 +297,7 @@ static void gtk_view_panel_realize(GtkWidget *widget)
attributes.event_mask = gtk_widget_get_events(widget)
| GDK_EXPOSURE_MASK
| GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK
+ | GDK_FOCUS_CHANGE_MASK
| GDK_SCROLL_MASK | GDK_SMOOTH_SCROLL_MASK;
attributes_mask = GDK_WA_X | GDK_WA_Y;
@@ -792,6 +793,8 @@ static void on_view_panel_binary_display_change(GLoadedBinary *binary, BinaryVie
GLoadedBinary *gtk_view_panel_get_binary(const GtkViewPanel *panel)
{
+ /* TODO : ref */
+
return panel->binary;
}
@@ -836,6 +839,7 @@ bool gtk_view_panel_contain_address(const GtkViewPanel *panel, vmpa_t addr)
void gtk_view_panel_scroll_to_address(GtkViewPanel *panel, const vmpa2t *addr, ScrollPositionTweak tweak)
{
+ GtkWidget *parent; /* Support parent à valider */
gint x; /* Abscisse à garantir */
gint y; /* Ordonnée à garantir */
GtkWidget *viewport; /* Parent avec défilement */
@@ -844,6 +848,25 @@ void gtk_view_panel_scroll_to_address(GtkViewPanel *panel, const vmpa2t *addr, S
gdouble page_size; /* Taille de l'affichage */
double value; /* Valeur courante */
+ /**
+ * Si une vue partielle se déplacer via cette fonction, il faut potentiellement
+ * rediriger l'appel vers la vue en graphiques parente.
+ */
+
+ parent = gtk_widget_get_parent(GTK_WIDGET(panel));
+ parent = gtk_widget_get_parent(GTK_WIDGET(parent));
+
+ printf(" Widgets : %s -> %s\n",
+ G_OBJECT_TYPE_NAME(parent), G_OBJECT_TYPE_NAME(panel));
+
+ if (GTK_IS_VIEW_PANEL(parent))
+ {
+ printf("reparent !\n");
+ panel = GTK_VIEW_PANEL(parent);
+ }
+ else
+ printf("no need reparent !\n");
+
if (GTK_VIEW_PANEL_GET_CLASS(panel)->define != NULL)
GTK_VIEW_PANEL_GET_CLASS(panel)->define(panel, addr);