[gtk+] GtkInspector: Add a function to select the widget under the pointer
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] GtkInspector: Add a function to select the widget under the pointer
- Date: Mon, 7 Jul 2014 03:12:18 +0000 (UTC)
commit b0390a334914c1239c37e5d3eb52019ae875331f
Author: Matthias Clasen <mclasen redhat com>
Date: Sun Jul 6 17:03:53 2014 -0400
GtkInspector: Add a function to select the widget under the pointer
gtk/inspector/inspect-button.c | 47 +++++++++++++++++++++++++++++----------
gtk/inspector/window.h | 3 ++
2 files changed, 38 insertions(+), 12 deletions(-)
---
diff --git a/gtk/inspector/inspect-button.c b/gtk/inspector/inspect-button.c
index db88a8c..f55874b 100644
--- a/gtk/inspector/inspect-button.c
+++ b/gtk/inspector/inspect-button.c
@@ -201,6 +201,21 @@ start_flash (GtkInspectorWindow *iw,
}
static void
+select_widget (GtkInspectorWindow *iw,
+ GtkWidget *widget)
+{
+ iw->selected_widget = widget;
+
+ gtk_notebook_set_current_page (GTK_NOTEBOOK (iw->top_notebook), 0);
+
+ gtk_inspector_widget_tree_scan (GTK_INSPECTOR_WIDGET_TREE (iw->widget_tree),
+ gtk_widget_get_toplevel (widget));
+
+ gtk_inspector_widget_tree_select_object (GTK_INSPECTOR_WIDGET_TREE (iw->widget_tree),
+ G_OBJECT (widget));
+}
+
+static void
on_inspect_widget (GtkWidget *button,
GdkEvent *event,
GtkInspectorWindow *iw)
@@ -213,18 +228,8 @@ on_inspect_widget (GtkWidget *button,
widget = find_widget_at_pointer (gdk_event_get_device (event));
- if (widget == NULL)
- return;
-
- iw->selected_widget = widget;
-
- gtk_notebook_set_current_page (GTK_NOTEBOOK (iw->top_notebook), 0);
-
- gtk_inspector_widget_tree_scan (GTK_INSPECTOR_WIDGET_TREE (iw->widget_tree),
- gtk_widget_get_toplevel (widget));
-
- gtk_inspector_widget_tree_select_object (GTK_INSPECTOR_WIDGET_TREE (iw->widget_tree),
- G_OBJECT (widget));
+ if (widget)
+ select_widget (iw, widget);
}
static void
@@ -401,4 +406,22 @@ gtk_inspector_stop_highlight (GtkWidget *widget)
gtk_widget_queue_draw (widget);
}
+void
+gtk_inspector_window_select_widget_under_pointer (GtkInspectorWindow *iw)
+{
+ GdkDisplay *display;
+ GdkDeviceManager *dm;
+ GdkDevice *device;
+ GtkWidget *widget;
+
+ display = gtk_widget_get_display (GTK_WIDGET (iw));
+ dm = gdk_display_get_device_manager (display);
+ device = gdk_device_manager_get_client_pointer (dm);
+
+ widget = find_widget_at_pointer (device);
+
+ if (widget)
+ select_widget (iw, widget);
+}
+
/* vim: set et sw=2 ts=2: */
diff --git a/gtk/inspector/window.h b/gtk/inspector/window.h
index 42a8828..6256832 100644
--- a/gtk/inspector/window.h
+++ b/gtk/inspector/window.h
@@ -83,6 +83,9 @@ void gtk_inspector_flash_widget (GtkInspectorWindow *iw,
GtkWidget *widget);
void gtk_inspector_start_highlight (GtkWidget *widget);
void gtk_inspector_stop_highlight (GtkWidget *widget);
+
+void gtk_inspector_window_select_widget_under_pointer (GtkInspectorWindow *iw);
+
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]