[gimp] app: add gimp_tool_gui_set_focus_on_map() and use it
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: add gimp_tool_gui_set_focus_on_map() and use it
- Date: Sat, 8 Jun 2013 13:36:24 +0000 (UTC)
commit 25cc5922b658586947ce0c599779b70f2908ec9d
Author: Michael Natterer <mitch gimp org>
Date: Sat Jun 8 15:34:23 2013 +0200
app: add gimp_tool_gui_set_focus_on_map() and use it
app/display/gimptoolgui.c | 35 +++++++++++++++++++++++++++++++++++
app/display/gimptoolgui.h | 4 ++++
app/tools/gimpcolorpickertool.c | 12 +++---------
app/tools/gimpmeasuretool.c | 11 +++--------
4 files changed, 45 insertions(+), 17 deletions(-)
---
diff --git a/app/display/gimptoolgui.c b/app/display/gimptoolgui.c
index 52d42cc..28e1aff 100644
--- a/app/display/gimptoolgui.c
+++ b/app/display/gimptoolgui.c
@@ -65,6 +65,7 @@ struct _GimpToolGuiPrivate
gchar *description;
GList *response_entries;
gint default_response;
+ gboolean focus_on_map;
gboolean overlay;
@@ -133,6 +134,7 @@ gimp_tool_gui_init (GimpToolGui *gui)
GimpToolGuiPrivate *private = GET_PRIVATE (gui);
private->default_response = -1;
+ private->focus_on_map = TRUE;
private->vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
g_object_ref_sink (private->vbox);
@@ -434,6 +436,36 @@ gimp_tool_gui_get_overlay (GimpToolGui *gui)
}
void
+gimp_tool_gui_set_focus_on_map (GimpToolGui *gui,
+ gboolean focus_on_map)
+{
+ GimpToolGuiPrivate *private;
+
+ g_return_if_fail (GIMP_IS_TOOL_GUI (gui));
+
+ private = GET_PRIVATE (gui);
+
+ if (private->focus_on_map == focus_on_map)
+ return;
+
+ private->focus_on_map = focus_on_map ? TRUE : FALSE;
+
+ if (! private->overlay)
+ {
+ gtk_window_set_focus_on_map (GTK_WINDOW (private->dialog),
+ private->focus_on_map);
+ }
+}
+
+gboolean
+gimp_tool_gui_get_focus_on_map (GimpToolGui *gui)
+{
+ g_return_val_if_fail (GIMP_IS_TOOL_GUI (gui), FALSE);
+
+ return GET_PRIVATE (gui)->focus_on_map;
+}
+
+void
gimp_tool_gui_set_default_response (GimpToolGui *gui,
gint response_id)
{
@@ -589,6 +621,9 @@ gimp_tool_gui_create_dialog (GimpToolGui *gui)
gtk_dialog_set_default_response (GTK_DIALOG (private->dialog),
private->default_response);
+ gtk_window_set_focus_on_map (GTK_WINDOW (private->dialog),
+ private->focus_on_map);
+
gtk_container_set_border_width (GTK_CONTAINER (private->vbox), 6);
gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (private->dialog))),
private->vbox, TRUE, TRUE, 0);
diff --git a/app/display/gimptoolgui.h b/app/display/gimptoolgui.h
index 372eb40..b98eae2 100644
--- a/app/display/gimptoolgui.h
+++ b/app/display/gimptoolgui.h
@@ -75,6 +75,10 @@ void gimp_tool_gui_set_overlay (GimpToolGui *gui,
gboolean overlay);
gboolean gimp_tool_gui_get_overlay (GimpToolGui *gui);
+void gimp_tool_gui_set_focus_on_map (GimpToolGui *gui,
+ gboolean focus_on_map);
+gboolean gimp_tool_gui_get_focus_on_map (GimpToolGui *gui);
+
void gimp_tool_gui_set_default_response (GimpToolGui *gui,
gint response_id);
void gimp_tool_gui_set_response_sensitive (GimpToolGui *gui,
diff --git a/app/tools/gimpcolorpickertool.c b/app/tools/gimpcolorpickertool.c
index fe68851..debec15 100644
--- a/app/tools/gimpcolorpickertool.c
+++ b/app/tools/gimpcolorpickertool.c
@@ -301,8 +301,6 @@ static void
gimp_color_picker_tool_info_create (GimpColorPickerTool *picker_tool)
{
GimpTool *tool = GIMP_TOOL (picker_tool);
- GtkWidget *dialog;
- GtkWidget *vbox;
GtkWidget *hbox;
GtkWidget *frame;
GimpRGB color;
@@ -318,12 +316,7 @@ gimp_color_picker_tool_info_create (GimpColorPickerTool *picker_tool)
NULL);
- dialog = gimp_tool_gui_get_dialog (picker_tool->gui);
- vbox = gimp_tool_gui_get_vbox (picker_tool->gui);
-
- if (GTK_IS_DIALOG (dialog))
- gtk_window_set_focus_on_map (GTK_WINDOW (dialog), FALSE);
-
+ gimp_tool_gui_set_focus_on_map (picker_tool->gui, FALSE);
gimp_tool_gui_set_viewable (picker_tool->gui,
GIMP_VIEWABLE (tool->drawable));
@@ -332,7 +325,8 @@ gimp_color_picker_tool_info_create (GimpColorPickerTool *picker_tool)
picker_tool);
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
- gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (gimp_tool_gui_get_vbox (picker_tool->gui)),
+ hbox, FALSE, FALSE, 0);
gtk_widget_show (hbox);
picker_tool->color_frame1 = gimp_color_frame_new ();
diff --git a/app/tools/gimpmeasuretool.c b/app/tools/gimpmeasuretool.c
index bd24c36..6901352 100644
--- a/app/tools/gimpmeasuretool.c
+++ b/app/tools/gimpmeasuretool.c
@@ -1039,8 +1039,6 @@ gimp_measure_tool_dialog_new (GimpMeasureTool *measure)
{
GimpTool *tool = GIMP_TOOL (measure);
GimpToolGui *gui;
- GtkWidget *dialog;
- GtkWidget *vbox;
GtkWidget *table;
GtkWidget *label;
@@ -1052,11 +1050,7 @@ gimp_measure_tool_dialog_new (GimpMeasureTool *measure)
NULL);
- dialog = gimp_tool_gui_get_dialog (gui);
- vbox = gimp_tool_gui_get_vbox (gui);
-
- if (GTK_IS_DIALOG (dialog))
- gtk_window_set_focus_on_map (GTK_WINDOW (dialog), FALSE);
+ gimp_tool_gui_set_focus_on_map (gui, FALSE);
g_signal_connect (gui, "response",
G_CALLBACK (g_object_unref),
@@ -1065,7 +1059,8 @@ gimp_measure_tool_dialog_new (GimpMeasureTool *measure)
table = gtk_table_new (4, 5, TRUE);
gtk_table_set_col_spacings (GTK_TABLE (table), 6);
gtk_table_set_row_spacings (GTK_TABLE (table), 6);
- gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (gimp_tool_gui_get_vbox (gui)), table,
+ TRUE, TRUE, 0);
gtk_widget_show (table);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]