OLD | NEW |
1 # Linux GTK Theme Integration | 1 # Linux GTK Theme Integration |
2 | 2 |
3 The GTK+ port of Chromium has a mode where we try to match the user's GTK theme | 3 The GTK+ port of Chromium has a mode where we try to match the user's GTK theme |
4 (which can be enabled under Wrench -> Options -> Personal Stuff -> Set to GTK+ | 4 (which can be enabled under Wrench -> Options -> Personal Stuff -> Set to GTK+ |
5 theme). The heuristics often don't pick good colors due to a lack of information | 5 theme). The heuristics often don't pick good colors due to a lack of information |
6 in the GTK themes. | 6 in the GTK themes. |
7 | 7 |
8 Starting in Chrome 9, we're providing a new way for theme authors to control our | 8 Starting in Chrome 9, we're providing a new way for theme authors to control our |
9 GTK+ theming mode. I am not sure of the earliest build these showed up in, but I | 9 GTK+ theming mode. I am not sure of the earliest build these showed up in, but I |
10 know 9.0.597 works. | 10 know 9.0.597 works. |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 | 99 |
100 I am at the very least hoping we can get Radiance and Ambiance patches since we | 100 I am at the very least hoping we can get Radiance and Ambiance patches since we |
101 make very poor frame decisions on those themes, and hopefully a few others. | 101 make very poor frame decisions on those themes, and hopefully a few others. |
102 | 102 |
103 ### How about control over the min/max/close buttons? | 103 ### How about control over the min/max/close buttons? |
104 | 104 |
105 I actually tried this locally. There's a sort of uncanny valley effect going on; | 105 I actually tried this locally. There's a sort of uncanny valley effect going on; |
106 as the frame looks more native, it's more obvious that it isn't behaving like a | 106 as the frame looks more native, it's more obvious that it isn't behaving like a |
107 native frame. (Also my implementation added a startup time hit.) | 107 native frame. (Also my implementation added a startup time hit.) |
108 | 108 |
109 ### Why use style properties instead of (i.e.) `bg[STATE]`? | 109 ### Why use style properties instead of (i.e.) bg[STATE]? |
110 | 110 |
111 There's no way to distinguish between colors set on different classes. Using | 111 There's no way to distinguish between colors set on different classes. Using |
112 style properties allows us to be backwards compatible and maintain the | 112 style properties allows us to be backwards compatible and maintain the |
113 heuristics since not everyone is going to modify their themes for chromium (and | 113 heuristics since not everyone is going to modify their themes for chromium (and |
114 the heuristics do a reasonable job). | 114 the heuristics do a reasonable job). |
115 | 115 |
116 ### Why now? | 116 ### Why now? |
117 | 117 |
118 * I (erg@) was putting off major changes to the window frame stuff in | 118 * I (erg@) was putting off major changes to the window frame stuff in |
119 anticipation of finally being able to use GTK+'s theme rendering for the | 119 anticipation of finally being able to use GTK+'s theme rendering for the |
120 window border with client side decorations, but client side decorations | 120 window border with client side decorations, but client side decorations |
121 either isn't happening or isn't happening anytime soon, so there's no | 121 either isn't happening or isn't happening anytime soon, so there's no |
122 justification for pushing this task off into the future. | 122 justification for pushing this task off into the future. |
123 * Chrome looks pretty bad under Ambiance on Maverick. | 123 * Chrome looks pretty bad under Ambiance on Maverick. |
124 | 124 |
125 ### Details about `MetaFrames` and `ChromeGtkFrame` relationship and history? | 125 ### Details about `MetaFrames` and `ChromeGtkFrame` relationship and history? |
126 | 126 |
127 `MetaFrames` is a class that was used in metacity to communicate color | 127 `MetaFrames` is a class that was used in metacity to communicate color |
128 information to the window manager. During the Hardy Heron days, we slurped up | 128 information to the window manager. During the Hardy Heron days, we slurped up |
129 the data and used it as a key part of our heuristics. At least on my Lucid Lynx | 129 the data and used it as a key part of our heuristics. At least on my Lucid Lynx |
130 machine, none of the GNOME GTK+ themes have `MetaFrames` styling. (As mentioned | 130 machine, none of the GNOME GTK+ themes have `MetaFrames` styling. (As mentioned |
131 above, several of the XFCE themes do, though.) | 131 above, several of the XFCE themes do, though.) |
132 | 132 |
133 Internally to chrome, our `ChromeGtkFrame` class inherits from `MetaFrames` | 133 Internally to chrome, our `ChromeGtkFrame` class inherits from `MetaFrames` |
134 (again, which inherits from `GtkWindow`) so any old themes that style the | 134 (again, which inherits from `GtkWindow`) so any old themes that style the |
135 `MetaFrames` class are backwards compatible. | 135 `MetaFrames` class are backwards compatible. |
OLD | NEW |