comparison src/glyphs-x.c @ 404:2f8bb876ab1d r21-2-32

Import from CVS: tag r21-2-32
author cvs
date Mon, 13 Aug 2007 11:16:07 +0200
parents 5a2589c672dc
children b8cc9ab3f761
comparison
equal deleted inserted replaced
403:9f011ab08d48 404:2f8bb876ab1d
2187 /* First get the items if they have changed since this is a 2187 /* First get the items if they have changed since this is a
2188 structural change. As such it will nuke all added values so we 2188 structural change. As such it will nuke all added values so we
2189 need to update most other things after the items have changed.*/ 2189 need to update most other things after the items have changed.*/
2190 if (IMAGE_INSTANCE_WIDGET_ITEMS_CHANGED (p)) 2190 if (IMAGE_INSTANCE_WIDGET_ITEMS_CHANGED (p))
2191 { 2191 {
2192 /* Pick up the items we recorded earlier. We do this here so
2193 that the callbacks get set up with the new items. */
2194 IMAGE_INSTANCE_WIDGET_ITEMS (p) =
2195 IMAGE_INSTANCE_WIDGET_PENDING_ITEMS (p);
2196 IMAGE_INSTANCE_WIDGET_PENDING_ITEMS (p) = Qnil;
2197
2192 wv = gui_items_to_widget_values 2198 wv = gui_items_to_widget_values
2193 (IMAGE_INSTANCE_WIDGET_ITEMS (p)); 2199 (IMAGE_INSTANCE_WIDGET_ITEMS (p));
2194 wv->change = STRUCTURAL_CHANGE; 2200 wv->change = STRUCTURAL_CHANGE;
2195 /* now modify the widget */ 2201 /* now modify the widget */
2196 lw_modify_all_widgets (IMAGE_INSTANCE_X_WIDGET_LWID (p), 2202 lw_modify_all_widgets (IMAGE_INSTANCE_X_WIDGET_LWID (p),
2198 free_widget_value_tree (wv); 2204 free_widget_value_tree (wv);
2199 } 2205 }
2200 2206
2201 /* Now do non structural updates. */ 2207 /* Now do non structural updates. */
2202 wv = lw_get_all_values (IMAGE_INSTANCE_X_WIDGET_LWID (p)); 2208 wv = lw_get_all_values (IMAGE_INSTANCE_X_WIDGET_LWID (p));
2209
2210 if (!wv)
2211 return;
2203 2212
2204 /* Possibly update the colors and font */ 2213 /* Possibly update the colors and font */
2205 if (IMAGE_INSTANCE_WIDGET_FACE_CHANGED (p) 2214 if (IMAGE_INSTANCE_WIDGET_FACE_CHANGED (p)
2206 || 2215 ||
2207 XFRAME (IMAGE_INSTANCE_SUBWINDOW_FRAME (p))->faces_changed 2216 XFRAME (IMAGE_INSTANCE_SUBWINDOW_FRAME (p))->faces_changed
2690 XFRAME (IMAGE_INSTANCE_SUBWINDOW_FRAME (ii))->faces_changed 2699 XFRAME (IMAGE_INSTANCE_SUBWINDOW_FRAME (ii))->faces_changed
2691 || 2700 ||
2692 IMAGE_INSTANCE_WIDGET_ITEMS_CHANGED (ii)) 2701 IMAGE_INSTANCE_WIDGET_ITEMS_CHANGED (ii))
2693 { 2702 {
2694 widget_value* wv = lw_get_all_values (IMAGE_INSTANCE_X_WIDGET_LWID (ii)); 2703 widget_value* wv = lw_get_all_values (IMAGE_INSTANCE_X_WIDGET_LWID (ii));
2704
2705 /* #### I don't know why this can occur. */
2706 if (!wv)
2707 return;
2708
2695 update_tab_widget_face (wv, ii, 2709 update_tab_widget_face (wv, ii,
2696 IMAGE_INSTANCE_SUBWINDOW_FRAME (ii)); 2710 IMAGE_INSTANCE_SUBWINDOW_FRAME (ii));
2697 2711
2698 lw_modify_all_widgets (IMAGE_INSTANCE_X_WIDGET_LWID (ii), wv, True); 2712 lw_modify_all_widgets (IMAGE_INSTANCE_X_WIDGET_LWID (ii), wv, True);
2699 } 2713 }