app: add gimp_tool_gui_set_focus_on_map() and use it
This commit is contained in:
@ -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);
|
||||
@ -433,6 +435,36 @@ gimp_tool_gui_get_overlay (GimpToolGui *gui)
|
||||
return GET_PRIVATE (gui)->overlay;
|
||||
}
|
||||
|
||||
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);
|
||||
|
@ -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,
|
||||
|
@ -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 ();
|
||||
|
@ -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);
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user