作図ソフト dia の改良版
Revision | 7c662571aa8906cdf796d920da4402bec4a5a1d0 (tree) |
---|---|
Time | 2004-05-18 05:08:09 |
Author | Hans Breuer <hans@breu...> |
Commiter | Hans Breuer |
don't 'failed to load external entity "NULL"' when the defaults file does
2004-05-17 Hans Breuer <hans@breuer.org>
* lib/object_defaults.c : don't 'failed to load external
entity "NULL"' when the defaults file does not exist,
bug #108764
* lib/widgets.c : fixed possible menu leak
* lib/dialinechooser.c lib/diaarrowchooser.c : finally
avoid finalization of floating references, bug #142307
@@ -1,3 +1,13 @@ | ||
1 | +2004-05-17 Hans Breuer <hans@breuer.org> | |
2 | + | |
3 | + * lib/object_defaults.c : don't 'failed to load external | |
4 | + entity "NULL"' when the defaults file does not exist, | |
5 | + bug #108764 | |
6 | + | |
7 | + * lib/widgets.c : fixed possible menu leak | |
8 | + * lib/dialinechooser.c lib/diaarrowchooser.c : finally | |
9 | + avoid finalization of floating references, bug #142307 | |
10 | + | |
1 | 11 | 2004-04-21 Tomasz Kłoczko <kloczek@pld.org.pl> |
2 | 12 | |
3 | 13 | * acinclude.m4: minor fixes (added missing [] quotation). |
@@ -289,6 +289,8 @@ dia_arrow_chooser_new(gboolean left, DiaChangeArrowCallback callback, | ||
289 | 289 | dia_arrow_chooser_dialog_new(NULL, chooser); |
290 | 290 | |
291 | 291 | menu = gtk_menu_new(); |
292 | + g_object_ref(G_OBJECT(menu)); | |
293 | + gtk_object_sink(GTK_OBJECT(menu)); | |
292 | 294 | gtk_object_set_data_full(GTK_OBJECT(chooser), button_menu_key, menu, |
293 | 295 | (GtkDestroyNotify)gtk_widget_unref); |
294 | 296 | for (i = 0; arrow_types[i].name != NULL; i++) { |
@@ -115,6 +115,7 @@ dia_line_preview_expose(GtkWidget *widget, GdkEventExpose *event) | ||
115 | 115 | GdkGC *gc; |
116 | 116 | GdkGCValues gcvalues; |
117 | 117 | char dash_list[6]; |
118 | + int line_width = 2; | |
118 | 119 | |
119 | 120 | if (GTK_WIDGET_DRAWABLE(widget)) { |
120 | 121 | width = widget->allocation.width - misc->xpad * 2; |
@@ -130,18 +131,18 @@ dia_line_preview_expose(GtkWidget *widget, GdkEventExpose *event) | ||
130 | 131 | gdk_gc_get_values(gc, &gcvalues); |
131 | 132 | switch (line->lstyle) { |
132 | 133 | case LINESTYLE_SOLID: |
133 | - gdk_gc_set_line_attributes(gc, 1, GDK_LINE_SOLID, | |
134 | + gdk_gc_set_line_attributes(gc, line_width, GDK_LINE_SOLID, | |
134 | 135 | gcvalues.cap_style, gcvalues.join_style); |
135 | 136 | break; |
136 | 137 | case LINESTYLE_DASHED: |
137 | - gdk_gc_set_line_attributes(gc, 1, GDK_LINE_ON_OFF_DASH, | |
138 | + gdk_gc_set_line_attributes(gc, line_width, GDK_LINE_ON_OFF_DASH, | |
138 | 139 | gcvalues.cap_style, gcvalues.join_style); |
139 | 140 | dash_list[0] = 10; |
140 | 141 | dash_list[1] = 10; |
141 | 142 | gdk_gc_set_dashes(gc, 0, dash_list, 2); |
142 | 143 | break; |
143 | 144 | case LINESTYLE_DASH_DOT: |
144 | - gdk_gc_set_line_attributes(gc, 1, GDK_LINE_ON_OFF_DASH, | |
145 | + gdk_gc_set_line_attributes(gc, line_width, GDK_LINE_ON_OFF_DASH, | |
145 | 146 | gcvalues.cap_style, gcvalues.join_style); |
146 | 147 | dash_list[0] = 10; |
147 | 148 | dash_list[1] = 4; |
@@ -150,7 +151,7 @@ dia_line_preview_expose(GtkWidget *widget, GdkEventExpose *event) | ||
150 | 151 | gdk_gc_set_dashes(gc, 0, dash_list, 4); |
151 | 152 | break; |
152 | 153 | case LINESTYLE_DASH_DOT_DOT: |
153 | - gdk_gc_set_line_attributes(gc, 1, GDK_LINE_ON_OFF_DASH, | |
154 | + gdk_gc_set_line_attributes(gc, line_width, GDK_LINE_ON_OFF_DASH, | |
154 | 155 | gcvalues.cap_style, gcvalues.join_style); |
155 | 156 | dash_list[0] = 10; |
156 | 157 | dash_list[1] = 2; |
@@ -161,7 +162,7 @@ dia_line_preview_expose(GtkWidget *widget, GdkEventExpose *event) | ||
161 | 162 | gdk_gc_set_dashes(gc, 0, dash_list, 6); |
162 | 163 | break; |
163 | 164 | case LINESTYLE_DOTTED: |
164 | - gdk_gc_set_line_attributes(gc, 1, GDK_LINE_ON_OFF_DASH, | |
165 | + gdk_gc_set_line_attributes(gc, line_width, GDK_LINE_ON_OFF_DASH, | |
165 | 166 | gcvalues.cap_style, gcvalues.join_style); |
166 | 167 | dash_list[0] = 2; |
167 | 168 | dash_list[1] = 2; |
@@ -305,6 +306,8 @@ dia_line_chooser_init (DiaLineChooser *lchooser) | ||
305 | 306 | lchooser->selector = DIALINESTYLESELECTOR(wid); |
306 | 307 | |
307 | 308 | menu = gtk_menu_new(); |
309 | + g_object_ref(G_OBJECT(menu)); | |
310 | + gtk_object_sink(GTK_OBJECT(menu)); | |
308 | 311 | g_object_set_data_full(G_OBJECT(lchooser), button_menu_key, menu, |
309 | 312 | (GDestroyNotify)gtk_widget_unref); |
310 | 313 | for (i = 0; i <= LINESTYLE_DOTTED; i++) { |
@@ -655,7 +655,7 @@ dia_font_selector_set_styles(DiaFontSelector *fs, FontSelectorEntry *fse, | ||
655 | 655 | int i=0, select = 0; |
656 | 656 | PangoFontFace **faces; |
657 | 657 | int nfaces; |
658 | - GtkWidget *menu = gtk_menu_new(); | |
658 | + GtkWidget *menu = NULL; | |
659 | 659 | long stylebits = 0; |
660 | 660 | int menu_item_nr = 0; |
661 | 661 | GSList *group = NULL; |
@@ -668,6 +668,7 @@ dia_font_selector_set_styles(DiaFontSelector *fs, FontSelectorEntry *fse, | ||
668 | 668 | return; |
669 | 669 | } |
670 | 670 | |
671 | + menu = gtk_menu_new (); | |
671 | 672 | pango_font_family_list_faces(fse->family, &faces, &nfaces); |
672 | 673 | |
673 | 674 | for (i = 0; i < nfaces; i++) { |