Move the GtkWidget::style_set() handler to GimpImageWindow
...and remove it from GimpDisplayShell completely.
This commit is contained in:
@ -123,8 +123,6 @@ static gboolean
|
|||||||
gimp_display_shell_window_state_event (GtkWidget *widget,
|
gimp_display_shell_window_state_event (GtkWidget *widget,
|
||||||
GdkEventWindowState *event);
|
GdkEventWindowState *event);
|
||||||
static gboolean gimp_display_shell_popup_menu (GtkWidget *widget);
|
static gboolean gimp_display_shell_popup_menu (GtkWidget *widget);
|
||||||
static void gimp_display_shell_style_set (GtkWidget *widget,
|
|
||||||
GtkStyle *prev_style);
|
|
||||||
|
|
||||||
static void gimp_display_shell_real_scaled (GimpDisplayShell *shell);
|
static void gimp_display_shell_real_scaled (GimpDisplayShell *shell);
|
||||||
|
|
||||||
@ -205,7 +203,6 @@ gimp_display_shell_class_init (GimpDisplayShellClass *klass)
|
|||||||
widget_class->configure_event = gimp_display_shell_configure_event;
|
widget_class->configure_event = gimp_display_shell_configure_event;
|
||||||
widget_class->window_state_event = gimp_display_shell_window_state_event;
|
widget_class->window_state_event = gimp_display_shell_window_state_event;
|
||||||
widget_class->popup_menu = gimp_display_shell_popup_menu;
|
widget_class->popup_menu = gimp_display_shell_popup_menu;
|
||||||
widget_class->style_set = gimp_display_shell_style_set;
|
|
||||||
|
|
||||||
klass->scaled = gimp_display_shell_real_scaled;
|
klass->scaled = gimp_display_shell_real_scaled;
|
||||||
klass->scrolled = NULL;
|
klass->scrolled = NULL;
|
||||||
@ -668,48 +665,6 @@ gimp_display_shell_popup_menu (GtkWidget *widget)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
gimp_display_shell_style_set (GtkWidget *widget,
|
|
||||||
GtkStyle *prev_style)
|
|
||||||
{
|
|
||||||
GimpDisplayShell *shell = GIMP_DISPLAY_SHELL (widget);
|
|
||||||
GtkRequisition requisition;
|
|
||||||
GdkGeometry geometry;
|
|
||||||
GdkWindowHints geometry_mask;
|
|
||||||
|
|
||||||
GTK_WIDGET_CLASS (parent_class)->style_set (widget, prev_style);
|
|
||||||
|
|
||||||
/* FIXME image window */
|
|
||||||
gtk_widget_size_request (GIMP_IMAGE_WINDOW (shell)->statusbar, &requisition);
|
|
||||||
|
|
||||||
geometry.min_height = 23;
|
|
||||||
|
|
||||||
geometry.min_width = requisition.width;
|
|
||||||
geometry.min_height += requisition.height;
|
|
||||||
|
|
||||||
/* FIXME image window */
|
|
||||||
if (GIMP_IMAGE_WINDOW (shell)->menubar)
|
|
||||||
{
|
|
||||||
gtk_widget_size_request (GIMP_IMAGE_WINDOW (shell)->menubar, &requisition);
|
|
||||||
|
|
||||||
geometry.min_height += requisition.height;
|
|
||||||
}
|
|
||||||
|
|
||||||
geometry_mask = GDK_HINT_MIN_SIZE;
|
|
||||||
|
|
||||||
/* Only set user pos on the empty display because it gets a pos
|
|
||||||
* set by gimp. All other displays should be placed by the window
|
|
||||||
* manager. See http://bugzilla.gnome.org/show_bug.cgi?id=559580
|
|
||||||
*/
|
|
||||||
if (! shell->display->image)
|
|
||||||
geometry_mask |= GDK_HINT_USER_POS;
|
|
||||||
|
|
||||||
gtk_window_set_geometry_hints (GTK_WINDOW (widget), NULL,
|
|
||||||
&geometry, geometry_mask);
|
|
||||||
|
|
||||||
gimp_dialog_factory_set_has_min_size (GTK_WINDOW (widget), TRUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gimp_display_shell_real_scaled (GimpDisplayShell *shell)
|
gimp_display_shell_real_scaled (GimpDisplayShell *shell)
|
||||||
{
|
{
|
||||||
|
@ -66,6 +66,8 @@ static void gimp_image_window_destroy (GtkObject *object);
|
|||||||
|
|
||||||
static gboolean gimp_image_window_window_state (GtkWidget *widget,
|
static gboolean gimp_image_window_window_state (GtkWidget *widget,
|
||||||
GdkEventWindowState *event);
|
GdkEventWindowState *event);
|
||||||
|
static void gimp_image_window_style_set (GtkWidget *widget,
|
||||||
|
GtkStyle *prev_style);
|
||||||
|
|
||||||
static void gimp_image_window_show_tooltip (GimpUIManager *manager,
|
static void gimp_image_window_show_tooltip (GimpUIManager *manager,
|
||||||
const gchar *tooltip,
|
const gchar *tooltip,
|
||||||
@ -102,6 +104,7 @@ gimp_image_window_class_init (GimpImageWindowClass *klass)
|
|||||||
gtk_object_class->destroy = gimp_image_window_destroy;
|
gtk_object_class->destroy = gimp_image_window_destroy;
|
||||||
|
|
||||||
widget_class->window_state_event = gimp_image_window_window_state;
|
widget_class->window_state_event = gimp_image_window_window_state;
|
||||||
|
widget_class->style_set = gimp_image_window_style_set;
|
||||||
|
|
||||||
g_object_class_install_property (object_class, PROP_MENU_FACTORY,
|
g_object_class_install_property (object_class, PROP_MENU_FACTORY,
|
||||||
g_param_spec_object ("menu-factory",
|
g_param_spec_object ("menu-factory",
|
||||||
@ -302,6 +305,46 @@ gimp_image_window_window_state (GtkWidget *widget,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gimp_image_window_style_set (GtkWidget *widget,
|
||||||
|
GtkStyle *prev_style)
|
||||||
|
{
|
||||||
|
GimpImageWindow *window = GIMP_IMAGE_WINDOW (widget);
|
||||||
|
GtkRequisition requisition;
|
||||||
|
GdkGeometry geometry;
|
||||||
|
GdkWindowHints geometry_mask;
|
||||||
|
|
||||||
|
GTK_WIDGET_CLASS (parent_class)->style_set (widget, prev_style);
|
||||||
|
|
||||||
|
gtk_widget_size_request (window->statusbar, &requisition);
|
||||||
|
|
||||||
|
geometry.min_height = 23;
|
||||||
|
|
||||||
|
geometry.min_width = requisition.width;
|
||||||
|
geometry.min_height += requisition.height;
|
||||||
|
|
||||||
|
if (window->menubar)
|
||||||
|
{
|
||||||
|
gtk_widget_size_request (window->menubar, &requisition);
|
||||||
|
|
||||||
|
geometry.min_height += requisition.height;
|
||||||
|
}
|
||||||
|
|
||||||
|
geometry_mask = GDK_HINT_MIN_SIZE;
|
||||||
|
|
||||||
|
/* Only set user pos on the empty display because it gets a pos
|
||||||
|
* set by gimp. All other displays should be placed by the window
|
||||||
|
* manager. See http://bugzilla.gnome.org/show_bug.cgi?id=559580
|
||||||
|
*/
|
||||||
|
if (! gimp_image_window_get_active_display (window)->image)
|
||||||
|
geometry_mask |= GDK_HINT_USER_POS;
|
||||||
|
|
||||||
|
gtk_window_set_geometry_hints (GTK_WINDOW (widget), NULL,
|
||||||
|
&geometry, geometry_mask);
|
||||||
|
|
||||||
|
gimp_dialog_factory_set_has_min_size (GTK_WINDOW (widget), TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* public functions */
|
/* public functions */
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user