gtk/quartz default font woe, and gtk-font-name
- Date: Wed, 22 Jun 2016 18:03:55 +0000 (UTC)
- From: Hin-Tak Leung <htl10@xxxxxxxxxxxxxxxxxxxxx>
- Subject: gtk/quartz default font woe, and gtk-font-name
I have been staring at this particular section of code for a few days, and seem to be having problem with it:
Try setting the default font, might need to tweak this.
2008-05-26 Richard Hult <richard@xxxxxxxxxxx>
* gdk/quartz/gdkevents-quartz.c: (gdk_screen_get_setting): Try
setting the default font, might need to tweak this.
svn path=/trunk/; revision=20181
What I have is this error and this stack dump - which seems to come from "name = [[NSFont systemFontOfSize:0] familyName];" -
although the message is somewhat different, but there is only one thing in gdk_screen_get_setting which does fonts, so that must be it -
I think __NSGetMetaFontInstance is some sort of backend code to "[[NSFont systemFontOfSize:0] familyName]".
-[__NSCFType symbolicTraits]: unrecognized selector sent to instance 0x7c9a7000
0 CoreFoundation 0x9569c471 __raiseError + 193
1 libobjc.A.dylib 0x92ad6091 objc_exception_throw + 162
2 CoreFoundation 0x956a0cb3 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
3 CoreFoundation 0x955ec522 ___forwarding___ + 1010
4 CoreFoundation 0x955ec10e _CF_forwarding_prep_0 + 14
5 AppKit 0x90dfee7e -[__NSFontTypefaceInfo _postscriptName] + 331
6 AppKit 0x90dfe86e +[__NSFontTypefaceInfo typefaceInfoForPostscriptName:] + 914
7 AppKit 0x90dfddf5 __NSGetMetaFontInstance + 592
8 libgdk-quartz-2.0.0.dylib 0x0732befa gdk_screen_get_setting + 474
9 libgtk-quartz-2.0.0.dylib 0x08ac31d6 gtk_settings_get_property + 438
10 libgobject-2.0.0.dylib 0x0782af08 object_get_property + 248
11 libgobject-2.0.0.dylib 0x0782ab02 g_object_get_valist + 658
12 libgobject-2.0.0.dylib 0x0782b115 g_object_get + 245
13 libgtk-quartz-2.0.0.dylib 0x08a7894a gtk_rc_context_get + 314
14 libgtk-quartz-2.0.0.dylib 0x08a78e9d gtk_rc_reparse_all_for_settings + 285
15 libgtk-quartz-2.0.0.dylib 0x08abad27 gtk_settings_get_for_screen + 423
16 libgtk-quartz-2.0.0.dylib 0x08abafb6 gtk_settings_get_default + 38
17 libgtk-quartz-2.0.0.dylib 0x08ada27b gtk_style_init + 27
18 libgobject-2.0.0.dylib 0x07847f3e g_type_create_instance + 558
19 libgobject-2.0.0.dylib 0x07829c44 g_object_constructor + 36
20 libgobject-2.0.0.dylib 0x07828fc2 g_object_newv + 354
21 libgobject-2.0.0.dylib 0x07828e1d g_object_new + 157
22 libgtk-quartz-2.0.0.dylib 0x08ada993 gtk_style_new + 35
23 libgtk-quartz-2.0.0.dylib 0x08c144f4 gtk_widget_get_default_style + 36
24 libgtk-quartz-2.0.0.dylib 0x08c06b5e gtk_widget_init + 478
25 libgobject-2.0.0.dylib 0x07847ed9 g_type_create_instance + 457
26 libgobject-2.0.0.dylib 0x07829c44 g_object_constructor + 36
27 libgobject-2.0.0.dylib 0x078293af g_object_newv + 1359
28 libglibsharpglue-2.so 0x07588e64 gtksharp_object_newv + 228
FWIW, I am trying to embed a gtk scrolledwindow inside a carbon application. The gtk scrolledwindow in turn, has another foreign Cocoa widget inside.
I mainly have two questions:
- I think the error I am seeing is that a "strange" non-Cocoa window doesn't let me get at Cocoa's default NS system fonts. I am tempted to reverse that patch (and hard-coding a particular font name) to see if I am right. Is there any caveate for trying to do that, or is there a better way of improving this change? or is there any way I can give my widget more of a Cocoa attributes/properties to make it happen? The problem is that the error is happening at gtk_widget_init, and I am at a loss at how I can insert anything "earlier" than the constructor.
- supposedly setting "gtk-font-name" should bypass that code - but I ran dtruss against my app and it never tried to read ~/.gtkrc-20, any of the rc files in the gtk directory, etc. Is that a known quirk of gtk/quartz ? That it ignores ~/.gtkrc, GTK2_RC_FILES and friends? I don't think that's always the case since Monodevelop and Banshee both ships some sort of theming rc's. But it just seem that gtk_widget_init then gtk_style_init, never read those files, for some reason? this behavior seems to be poorly documented.
(you can probably tell from that gtksharp_object_newv I am using gtksharp).
gtk-devel-list mailing list