X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=libview%2Fev-view.c;h=bdf738f86b5e8cbc986ca0f5fa671a6d0d130d58;hb=2a00819aa000a7ac07ca4b8cb95dea5e522e0f59;hp=5edf89a48215b6afdca446392621f77695a41fa7;hpb=099e8b8997738788e45f94334fc986149b7a5f02;p=evince.git diff --git a/libview/ev-view.c b/libview/ev-view.c index 5edf89a4..bdf738f8 100644 --- a/libview/ev-view.c +++ b/libview/ev-view.c @@ -3134,6 +3134,30 @@ ev_view_size_request (GtkWidget *widget, *requisition = view->requisition; } +static void +ev_view_get_preferred_width (GtkWidget *widget, + gint *minimum, + gint *natural) +{ + GtkRequisition requisition; + + ev_view_size_request (widget, &requisition); + + *minimum = *natural = requisition.width; +} + +static void +ev_view_get_preferred_height (GtkWidget *widget, + gint *minimum, + gint *natural) +{ + GtkRequisition requisition; + + ev_view_size_request (widget, &requisition); + + *minimum = *natural = requisition.height; +} + static void ev_view_size_allocate (GtkWidget *widget, GtkAllocation *allocation) @@ -3189,7 +3213,7 @@ ev_view_size_allocate (GtkWidget *widget, form_field_mapping, field, &view_area); - gtk_widget_size_request (child, &child_requisition); + gtk_widget_get_preferred_size (child, &child_requisition, NULL); if (child_requisition.width != view_area.width || child_requisition.height != view_area.height) gtk_widget_set_size_request (child, view_area.width, view_area.height); @@ -4664,7 +4688,8 @@ ev_view_class_init (EvViewClass *class) widget_class->focus_in_event = ev_view_focus_in; widget_class->focus_out_event = ev_view_focus_out; widget_class->get_accessible = ev_view_get_accessible; - widget_class->size_request = ev_view_size_request; + widget_class->get_preferred_width = ev_view_get_preferred_width; + widget_class->get_preferred_height = ev_view_get_preferred_height; widget_class->size_allocate = ev_view_size_allocate; widget_class->scroll_event = ev_view_scroll_event; widget_class->enter_notify_event = ev_view_enter_notify_event; @@ -4775,6 +4800,8 @@ ev_view_init (EvView *view) { gtk_widget_set_has_window (GTK_WIDGET (view), TRUE); gtk_widget_set_can_focus (GTK_WIDGET (view), TRUE); + gtk_widget_set_redraw_on_allocate (GTK_WIDGET (view), FALSE); + gtk_container_set_resize_mode (GTK_CONTAINER (view), GTK_RESIZE_QUEUE); gtk_widget_set_events (GTK_WIDGET (view), GDK_EXPOSURE_MASK |