mirror of https://github.com/GNOME/gimp.git
app/display/gimpdisplayshell-appearance.c app/display/gimpdisplayshell.c
2004-12-01 Michael Natterer <mitch@gimp.org> * app/display/gimpdisplayshell-appearance.c * app/display/gimpdisplayshell.c * app/widgets/gimpdockable.c * app/widgets/gimptexteditor.c * app/widgets/gimptoolbox.c: check if gimp_ui_manager_ui_get() actually returns something. Prevents crashes caused by missing ui manager xml files. Fixes bug #159346.
This commit is contained in:
parent
495963276a
commit
841efd0e2e
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
|||
2004-12-01 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* app/display/gimpdisplayshell-appearance.c
|
||||
* app/display/gimpdisplayshell.c
|
||||
* app/widgets/gimpdockable.c
|
||||
* app/widgets/gimptexteditor.c
|
||||
* app/widgets/gimptoolbox.c: check if gimp_ui_manager_ui_get()
|
||||
actually returns something. Prevents crashes caused by missing
|
||||
ui manager xml files. Fixes bug #159346.
|
||||
|
||||
2004-12-01 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* app/widgets/gimptoolview.c (gimp_tool_view_select_item): no need
|
||||
|
|
|
@ -101,10 +101,13 @@ gimp_display_shell_set_show_menubar (GimpDisplayShell *shell,
|
|||
|
||||
vbox = GTK_CONTAINER (shell->qmask_button->parent->parent);
|
||||
|
||||
if (show)
|
||||
gtk_widget_show (shell->menubar);
|
||||
else
|
||||
gtk_widget_hide (shell->menubar);
|
||||
if (shell->menubar)
|
||||
{
|
||||
if (show)
|
||||
gtk_widget_show (shell->menubar);
|
||||
else
|
||||
gtk_widget_hide (shell->menubar);
|
||||
}
|
||||
|
||||
if (options->show_menubar || options->show_statusbar)
|
||||
gtk_container_set_border_width (vbox, 2);
|
||||
|
|
|
@ -755,30 +755,34 @@ gimp_display_shell_new (GimpDisplay *gdisp,
|
|||
|
||||
shell->menubar = gimp_ui_manager_ui_get (shell->menubar_manager,
|
||||
"/image-menubar");
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), shell->menubar, FALSE, FALSE, 0);
|
||||
|
||||
if (shell->options->show_menubar)
|
||||
gtk_widget_show (shell->menubar);
|
||||
else
|
||||
gtk_widget_hide (shell->menubar);
|
||||
if (shell->menubar)
|
||||
{
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), shell->menubar, FALSE, FALSE, 0);
|
||||
|
||||
/* make sure we can activate accels even if the menubar is invisible
|
||||
* (see http://bugzilla.gnome.org/show_bug.cgi?id=137151)
|
||||
*/
|
||||
g_signal_connect (shell->menubar, "can-activate-accel",
|
||||
G_CALLBACK (gtk_true),
|
||||
NULL);
|
||||
if (shell->options->show_menubar)
|
||||
gtk_widget_show (shell->menubar);
|
||||
else
|
||||
gtk_widget_hide (shell->menubar);
|
||||
|
||||
/* active display callback */
|
||||
g_signal_connect (shell->menubar, "button_press_event",
|
||||
G_CALLBACK (gimp_display_shell_events),
|
||||
shell);
|
||||
g_signal_connect (shell->menubar, "button_release_event",
|
||||
G_CALLBACK (gimp_display_shell_events),
|
||||
shell);
|
||||
g_signal_connect (shell->menubar, "key_press_event",
|
||||
G_CALLBACK (gimp_display_shell_events),
|
||||
shell);
|
||||
/* make sure we can activate accels even if the menubar is invisible
|
||||
* (see http://bugzilla.gnome.org/show_bug.cgi?id=137151)
|
||||
*/
|
||||
g_signal_connect (shell->menubar, "can-activate-accel",
|
||||
G_CALLBACK (gtk_true),
|
||||
NULL);
|
||||
|
||||
/* active display callback */
|
||||
g_signal_connect (shell->menubar, "button_press_event",
|
||||
G_CALLBACK (gimp_display_shell_events),
|
||||
shell);
|
||||
g_signal_connect (shell->menubar, "button_release_event",
|
||||
G_CALLBACK (gimp_display_shell_events),
|
||||
shell);
|
||||
g_signal_connect (shell->menubar, "key_press_event",
|
||||
G_CALLBACK (gimp_display_shell_events),
|
||||
shell);
|
||||
}
|
||||
|
||||
/* another vbox for everything except the statusbar */
|
||||
disp_vbox = gtk_vbox_new (FALSE, 1);
|
||||
|
|
|
@ -939,7 +939,9 @@ gimp_dockable_menu_end (GimpDockable *dockable)
|
|||
|
||||
child_menu_widget = gimp_ui_manager_ui_get (dialog_ui_manager,
|
||||
dialog_ui_path);
|
||||
gtk_menu_detach (GTK_MENU (child_menu_widget));
|
||||
|
||||
if (child_menu_widget)
|
||||
gtk_menu_detach (GTK_MENU (child_menu_widget));
|
||||
}
|
||||
|
||||
/* release gimp_dockable_show_menu()'s references */
|
||||
|
@ -968,6 +970,9 @@ gimp_dockable_show_menu (GimpDockable *dockable)
|
|||
gtk_ui_manager_get_action (GTK_UI_MANAGER (dockbook_ui_manager),
|
||||
"/dockable-popup/dockable-menu");
|
||||
|
||||
if (! parent_menu_widget || ! parent_menu_action)
|
||||
return FALSE;
|
||||
|
||||
dialog_ui_manager = gimp_dockable_get_menu (dockable,
|
||||
&dialog_ui_path,
|
||||
&dialog_popup_data);
|
||||
|
@ -985,6 +990,9 @@ gimp_dockable_show_menu (GimpDockable *dockable)
|
|||
gtk_ui_manager_get_action (GTK_UI_MANAGER (dialog_ui_manager),
|
||||
dialog_ui_path);
|
||||
|
||||
if (! child_menu_widget || ! child_menu_action)
|
||||
return FALSE;
|
||||
|
||||
g_object_get (child_menu_action,
|
||||
"label", &label,
|
||||
NULL);
|
||||
|
|
|
@ -165,9 +165,13 @@ gimp_text_editor_new (const gchar *title,
|
|||
|
||||
toolbar = gimp_ui_manager_ui_get (editor->ui_manager,
|
||||
"/text-editor-toolbar");
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (editor)->vbox), toolbar,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (toolbar);
|
||||
|
||||
if (toolbar)
|
||||
{
|
||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (editor)->vbox), toolbar,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_widget_show (toolbar);
|
||||
}
|
||||
|
||||
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
|
|
|
@ -221,8 +221,12 @@ gimp_toolbox_constructor (GType type,
|
|||
manager = gimp_ui_managers_from_name ("<Image>")->data;
|
||||
|
||||
toolbox->menu_bar = gimp_ui_manager_ui_get (manager, "/toolbox-menubar");
|
||||
gtk_box_pack_start (GTK_BOX (vbox), toolbox->menu_bar, FALSE, FALSE, 0);
|
||||
gtk_widget_show (toolbox->menu_bar);
|
||||
|
||||
if (toolbox->menu_bar)
|
||||
{
|
||||
gtk_box_pack_start (GTK_BOX (vbox), toolbox->menu_bar, FALSE, FALSE, 0);
|
||||
gtk_widget_show (toolbox->menu_bar);
|
||||
}
|
||||
|
||||
gtk_window_add_accel_group (GTK_WINDOW (toolbox),
|
||||
gtk_ui_manager_get_accel_group (GTK_UI_MANAGER (manager)));
|
||||
|
@ -512,15 +516,17 @@ gimp_toolbox_set_geometry (GimpToolbox *toolbox)
|
|||
if (tool_button)
|
||||
{
|
||||
GtkWidget *main_vbox;
|
||||
GtkRequisition menubar_requisition;
|
||||
GtkRequisition menubar_requisition = { 0, 0 };
|
||||
GtkRequisition button_requisition;
|
||||
gint border_width;
|
||||
GdkGeometry geometry;
|
||||
|
||||
main_vbox = GIMP_DOCK (toolbox)->main_vbox;
|
||||
|
||||
gtk_widget_size_request (toolbox->menu_bar, &menubar_requisition);
|
||||
gtk_widget_size_request (tool_button, &button_requisition);
|
||||
if (toolbox->menu_bar)
|
||||
gtk_widget_size_request (toolbox->menu_bar, &menubar_requisition);
|
||||
|
||||
gtk_widget_size_request (tool_button, &button_requisition);
|
||||
|
||||
border_width = gtk_container_get_border_width (GTK_CONTAINER (main_vbox));
|
||||
|
||||
|
|
Loading…
Reference in New Issue