Merge lp:~muktupavels/compiz/gwd-metacity-theme-type-setting into lp:compiz/0.9.12
- gwd-metacity-theme-type-setting
- Merge into 0.9.12
Proposed by
Alberts Muktupāvels
Status: | Merged |
---|---|
Approved by: | Marco Trevisan (Treviño) |
Approved revision: | 4058 |
Merged at revision: | 4053 |
Proposed branch: | lp:~muktupavels/compiz/gwd-metacity-theme-type-setting |
Merge into: | lp:compiz/0.9.12 |
Prerequisite: | lp:~muktupavels/compiz/gwd-improve-settings-storage |
Diff against target: |
575 lines (+104/-102) 9 files modified
gtk/window-decorator/gdk.c (+0/-9) gtk/window-decorator/gtk-window-decorator.c (+3/-2) gtk/window-decorator/gtk-window-decorator.h (+0/-3) gtk/window-decorator/gwd-settings-storage.c (+10/-6) gtk/window-decorator/gwd-settings.c (+52/-36) gtk/window-decorator/gwd-settings.h (+10/-5) gtk/window-decorator/gwd-theme-metacity.c (+18/-31) gtk/window-decorator/gwd-theme-metacity.h (+0/-2) gtk/window-decorator/tests/test_gwd_settings.cpp (+11/-8) |
To merge this branch: | bzr merge lp:~muktupavels/compiz/gwd-metacity-theme-type-setting |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Sam Spilsbury | Approve | ||
Review via email: mp+296256@code.launchpad.net |
Commit message
gtk-window-
Add new metacity-theme-type setting. Currently this is unused, but will be used with Metacity 3.20.
Description of the change
Add new metacity-theme-type setting. Currently this is unused, but will be used with Metacity 3.20.
To post a comment you must log in.
Revision history for this message
Sam Spilsbury (smspillaz) : | # |
Revision history for this message
Alberts Muktupāvels (muktupavels) wrote : | # |
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'gtk/window-decorator/gdk.c' | |||
2 | --- gtk/window-decorator/gdk.c 2016-06-02 03:25:46 +0000 | |||
3 | +++ gtk/window-decorator/gdk.c 2016-06-02 03:25:46 +0000 | |||
4 | @@ -21,15 +21,6 @@ | |||
5 | 21 | 21 | ||
6 | 22 | #include "gtk-window-decorator.h" | 22 | #include "gtk-window-decorator.h" |
7 | 23 | 23 | ||
8 | 24 | GdkWindow * | ||
9 | 25 | create_gdk_window (Window xframe) | ||
10 | 26 | { | ||
11 | 27 | GdkDisplay *display = gdk_display_get_default (); | ||
12 | 28 | GdkWindow *window = gdk_x11_window_foreign_new_for_display (display, xframe); | ||
13 | 29 | |||
14 | 30 | return window; | ||
15 | 31 | } | ||
16 | 32 | |||
17 | 33 | cairo_surface_t * | 24 | cairo_surface_t * |
18 | 34 | create_native_surface_and_wrap (int w, | 25 | create_native_surface_and_wrap (int w, |
19 | 35 | int h, | 26 | int h, |
20 | 36 | 27 | ||
21 | === modified file 'gtk/window-decorator/gtk-window-decorator.c' | |||
22 | --- gtk/window-decorator/gtk-window-decorator.c 2016-06-02 03:25:46 +0000 | |||
23 | +++ gtk/window-decorator/gtk-window-decorator.c 2016-06-02 03:25:46 +0000 | |||
24 | @@ -147,12 +147,13 @@ | |||
25 | 147 | 147 | ||
26 | 148 | static void | 148 | static void |
27 | 149 | update_metacity_theme_cb (GWDSettings *settings, | 149 | update_metacity_theme_cb (GWDSettings *settings, |
29 | 150 | const gchar *metacity_theme, | 150 | gint metacity_theme_type, |
30 | 151 | const gchar *metacity_theme_name, | ||
31 | 151 | gpointer user_data) | 152 | gpointer user_data) |
32 | 152 | { | 153 | { |
33 | 153 | GWDThemeType type = GWD_THEME_TYPE_CAIRO; | 154 | GWDThemeType type = GWD_THEME_TYPE_CAIRO; |
34 | 154 | 155 | ||
36 | 155 | if (metacity_theme != NULL) | 156 | if (metacity_theme_name != NULL) |
37 | 156 | type = GWD_THEME_TYPE_METACITY; | 157 | type = GWD_THEME_TYPE_METACITY; |
38 | 157 | 158 | ||
39 | 158 | g_set_object (&gwd_theme, gwd_theme_new (type, settings)); | 159 | g_set_object (&gwd_theme, gwd_theme_new (type, settings)); |
40 | 159 | 160 | ||
41 | === modified file 'gtk/window-decorator/gtk-window-decorator.h' | |||
42 | --- gtk/window-decorator/gtk-window-decorator.h 2016-06-02 03:25:46 +0000 | |||
43 | +++ gtk/window-decorator/gtk-window-decorator.h 2016-06-02 03:25:46 +0000 | |||
44 | @@ -493,9 +493,6 @@ | |||
45 | 493 | 493 | ||
46 | 494 | /* gdk.c */ | 494 | /* gdk.c */ |
47 | 495 | 495 | ||
48 | 496 | GdkWindow * | ||
49 | 497 | create_gdk_window (Window xframe); | ||
50 | 498 | |||
51 | 499 | cairo_surface_t * | 496 | cairo_surface_t * |
52 | 500 | create_surface (int w, | 497 | create_surface (int w, |
53 | 501 | int h, | 498 | int h, |
54 | 502 | 499 | ||
55 | === modified file 'gtk/window-decorator/gwd-settings-storage.c' | |||
56 | --- gtk/window-decorator/gwd-settings-storage.c 2016-06-02 03:25:46 +0000 | |||
57 | +++ gtk/window-decorator/gwd-settings-storage.c 2016-06-02 03:25:46 +0000 | |||
58 | @@ -185,25 +185,29 @@ | |||
59 | 185 | update_metacity_theme (GWDSettingsStorage *storage) | 185 | update_metacity_theme (GWDSettingsStorage *storage) |
60 | 186 | { | 186 | { |
61 | 187 | gboolean use_metacity_theme; | 187 | gboolean use_metacity_theme; |
63 | 188 | gchar *theme; | 188 | gint metacity_theme_type; |
64 | 189 | gchar *metacity_theme_name; | ||
65 | 189 | 190 | ||
66 | 190 | if (!storage->gwd) | 191 | if (!storage->gwd) |
67 | 191 | return; | 192 | return; |
68 | 192 | 193 | ||
69 | 193 | use_metacity_theme = g_settings_get_boolean (storage->gwd, ORG_COMPIZ_GWD_KEY_USE_METACITY_THEME); | 194 | use_metacity_theme = g_settings_get_boolean (storage->gwd, ORG_COMPIZ_GWD_KEY_USE_METACITY_THEME); |
70 | 195 | metacity_theme_type = METACITY_THEME_TYPE_DEFAULT; | ||
71 | 194 | 196 | ||
72 | 195 | if (storage->current_desktop == GWD_DESKTOP_MATE && storage->marco) { | 197 | if (storage->current_desktop == GWD_DESKTOP_MATE && storage->marco) { |
74 | 196 | theme = g_settings_get_string (storage->marco, ORG_MATE_MARCO_GENERAL_THEME); | 198 | metacity_theme_name = g_settings_get_string (storage->marco, ORG_MATE_MARCO_GENERAL_THEME); |
75 | 197 | } else if (storage->current_desktop == GWD_DESKTOP_GNOME_FLASHBACK && storage->metacity) { | 199 | } else if (storage->current_desktop == GWD_DESKTOP_GNOME_FLASHBACK && storage->metacity) { |
77 | 198 | theme = g_settings_get_string (storage->metacity, ORG_GNOME_METACITY_THEME); | 200 | metacity_theme_name = g_settings_get_string (storage->metacity, ORG_GNOME_METACITY_THEME); |
78 | 199 | } else if (storage->desktop) { | 201 | } else if (storage->desktop) { |
80 | 200 | theme = g_settings_get_string (storage->desktop, ORG_GNOME_DESKTOP_WM_PREFERENCES_THEME); | 202 | metacity_theme_name = g_settings_get_string (storage->desktop, ORG_GNOME_DESKTOP_WM_PREFERENCES_THEME); |
81 | 201 | } else { | 203 | } else { |
82 | 202 | return; | 204 | return; |
83 | 203 | } | 205 | } |
84 | 204 | 206 | ||
87 | 205 | gwd_settings_metacity_theme_changed (storage->settings, use_metacity_theme, theme); | 207 | gwd_settings_metacity_theme_changed (storage->settings, use_metacity_theme, |
88 | 206 | g_free (theme); | 208 | metacity_theme_type, metacity_theme_name); |
89 | 209 | |||
90 | 210 | g_free (metacity_theme_name); | ||
91 | 207 | } | 211 | } |
92 | 208 | 212 | ||
93 | 209 | void | 213 | void |
94 | 210 | 214 | ||
95 | === modified file 'gtk/window-decorator/gwd-settings.c' | |||
96 | --- gtk/window-decorator/gwd-settings.c 2016-05-21 20:34:55 +0000 | |||
97 | +++ gtk/window-decorator/gwd-settings.c 2016-06-02 03:25:46 +0000 | |||
98 | @@ -43,7 +43,8 @@ | |||
99 | 43 | 43 | ||
100 | 44 | const gint BLUR_TYPE_DEFAULT = BLUR_TYPE_NONE; | 44 | const gint BLUR_TYPE_DEFAULT = BLUR_TYPE_NONE; |
101 | 45 | 45 | ||
103 | 46 | const gchar *METACITY_THEME_DEFAULT = "Adwaita"; | 46 | const gchar *METACITY_THEME_NAME_DEFAULT = "Adwaita"; |
104 | 47 | const gint METACITY_THEME_TYPE_DEFAULT = -1; | ||
105 | 47 | const gdouble METACITY_ACTIVE_OPACITY_DEFAULT = 1.0; | 48 | const gdouble METACITY_ACTIVE_OPACITY_DEFAULT = 1.0; |
106 | 48 | const gdouble METACITY_INACTIVE_OPACITY_DEFAULT = 0.75; | 49 | const gdouble METACITY_INACTIVE_OPACITY_DEFAULT = 0.75; |
107 | 49 | const gboolean METACITY_ACTIVE_SHADE_OPACITY_DEFAULT = TRUE; | 50 | const gboolean METACITY_ACTIVE_SHADE_OPACITY_DEFAULT = TRUE; |
108 | @@ -71,7 +72,8 @@ | |||
109 | 71 | GObject parent; | 72 | GObject parent; |
110 | 72 | 73 | ||
111 | 73 | gint blur_type; | 74 | gint blur_type; |
113 | 74 | gchar *metacity_theme; | 75 | gchar *metacity_theme_name; |
114 | 76 | gint metacity_theme_type; | ||
115 | 75 | guint cmdline_opts; | 77 | guint cmdline_opts; |
116 | 76 | 78 | ||
117 | 77 | decor_shadow_options_t active_shadow; | 79 | decor_shadow_options_t active_shadow; |
118 | @@ -97,7 +99,7 @@ | |||
119 | 97 | PROP_0, | 99 | PROP_0, |
120 | 98 | 100 | ||
121 | 99 | PROP_BLUR_TYPE, | 101 | PROP_BLUR_TYPE, |
123 | 100 | PROP_METACITY_THEME, | 102 | PROP_METACITY_THEME_NAME, |
124 | 101 | PROP_CMDLINE_OPTIONS, | 103 | PROP_CMDLINE_OPTIONS, |
125 | 102 | 104 | ||
126 | 103 | LAST_PROP | 105 | LAST_PROP |
127 | @@ -134,8 +136,8 @@ | |||
128 | 134 | static void | 136 | static void |
129 | 135 | update_metacity_theme (GWDSettings *settings) | 137 | update_metacity_theme (GWDSettings *settings) |
130 | 136 | { | 138 | { |
133 | 137 | g_signal_emit (settings, settings_signals[UPDATE_METACITY_THEME], | 139 | g_signal_emit (settings, settings_signals[UPDATE_METACITY_THEME], 0, |
134 | 138 | 0, settings->metacity_theme); | 140 | settings->metacity_theme_type, settings->metacity_theme_name); |
135 | 139 | } | 141 | } |
136 | 140 | 142 | ||
137 | 141 | static void | 143 | static void |
138 | @@ -245,7 +247,7 @@ | |||
139 | 245 | 247 | ||
140 | 246 | settings = GWD_SETTINGS (object); | 248 | settings = GWD_SETTINGS (object); |
141 | 247 | 249 | ||
143 | 248 | g_clear_pointer (&settings->metacity_theme, g_free); | 250 | g_clear_pointer (&settings->metacity_theme_name, g_free); |
144 | 249 | g_clear_pointer (&settings->metacity_button_layout, g_free); | 251 | g_clear_pointer (&settings->metacity_button_layout, g_free); |
145 | 250 | g_clear_pointer (&settings->titlebar_font, g_free); | 252 | g_clear_pointer (&settings->titlebar_font, g_free); |
146 | 251 | 253 | ||
147 | @@ -271,9 +273,9 @@ | |||
148 | 271 | settings->blur_type = g_value_get_int (value); | 273 | settings->blur_type = g_value_get_int (value); |
149 | 272 | break; | 274 | break; |
150 | 273 | 275 | ||
154 | 274 | case PROP_METACITY_THEME: | 276 | case PROP_METACITY_THEME_NAME: |
155 | 275 | g_free (settings->metacity_theme); | 277 | g_free (settings->metacity_theme_name); |
156 | 276 | settings->metacity_theme = g_value_dup_string (value); | 278 | settings->metacity_theme_name = g_value_dup_string (value); |
157 | 277 | break; | 279 | break; |
158 | 278 | 280 | ||
159 | 279 | default: | 281 | default: |
160 | @@ -299,11 +301,11 @@ | |||
161 | 299 | BLUR_TYPE_NONE, | 301 | BLUR_TYPE_NONE, |
162 | 300 | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY); | 302 | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY); |
163 | 301 | 303 | ||
169 | 302 | properties[PROP_METACITY_THEME] = | 304 | properties[PROP_METACITY_THEME_NAME] = |
170 | 303 | g_param_spec_string ("metacity-theme", | 305 | g_param_spec_string ("metacity-theme-name", |
171 | 304 | "Metacity Theme", | 306 | "Metacity Theme Name", |
172 | 305 | "Metacity Theme Setting", | 307 | "Metacity Theme Name", |
173 | 306 | METACITY_THEME_DEFAULT, | 308 | METACITY_THEME_NAME_DEFAULT, |
174 | 307 | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY); | 309 | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY); |
175 | 308 | 310 | ||
176 | 309 | properties[PROP_CMDLINE_OPTIONS] = | 311 | properties[PROP_CMDLINE_OPTIONS] = |
177 | @@ -328,12 +330,14 @@ | |||
178 | 328 | settings_signals[UPDATE_METACITY_THEME] = | 330 | settings_signals[UPDATE_METACITY_THEME] = |
179 | 329 | g_signal_new ("update-metacity-theme", | 331 | g_signal_new ("update-metacity-theme", |
180 | 330 | GWD_TYPE_SETTINGS, G_SIGNAL_RUN_LAST, | 332 | GWD_TYPE_SETTINGS, G_SIGNAL_RUN_LAST, |
182 | 331 | 0, NULL, NULL, NULL, G_TYPE_NONE, 1, G_TYPE_STRING); | 333 | 0, NULL, NULL, NULL, G_TYPE_NONE, 2, |
183 | 334 | G_TYPE_INT, G_TYPE_STRING); | ||
184 | 332 | 335 | ||
185 | 333 | settings_signals[UPDATE_METACITY_BUTTON_LAYOUT] = | 336 | settings_signals[UPDATE_METACITY_BUTTON_LAYOUT] = |
186 | 334 | g_signal_new ("update-metacity-button-layout", | 337 | g_signal_new ("update-metacity-button-layout", |
187 | 335 | GWD_TYPE_SETTINGS, G_SIGNAL_RUN_LAST, | 338 | GWD_TYPE_SETTINGS, G_SIGNAL_RUN_LAST, |
189 | 336 | 0, NULL, NULL, NULL, G_TYPE_NONE, 1, G_TYPE_STRING); | 339 | 0, NULL, NULL, NULL, G_TYPE_NONE, 1, |
190 | 340 | G_TYPE_STRING); | ||
191 | 337 | } | 341 | } |
192 | 338 | 342 | ||
193 | 339 | static void | 343 | static void |
194 | @@ -355,7 +359,8 @@ | |||
195 | 355 | settings->inactive_shadow.shadow_color[1] = 0; | 359 | settings->inactive_shadow.shadow_color[1] = 0; |
196 | 356 | settings->inactive_shadow.shadow_color[2] = 0; | 360 | settings->inactive_shadow.shadow_color[2] = 0; |
197 | 357 | settings->blur_type = BLUR_TYPE_DEFAULT; | 361 | settings->blur_type = BLUR_TYPE_DEFAULT; |
199 | 358 | settings->metacity_theme = g_strdup (METACITY_THEME_DEFAULT); | 362 | settings->metacity_theme_name = g_strdup (METACITY_THEME_NAME_DEFAULT); |
200 | 363 | settings->metacity_theme_type = METACITY_THEME_TYPE_DEFAULT; | ||
201 | 359 | settings->metacity_active_opacity = METACITY_ACTIVE_OPACITY_DEFAULT; | 364 | settings->metacity_active_opacity = METACITY_ACTIVE_OPACITY_DEFAULT; |
202 | 360 | settings->metacity_inactive_opacity = METACITY_INACTIVE_OPACITY_DEFAULT; | 365 | settings->metacity_inactive_opacity = METACITY_INACTIVE_OPACITY_DEFAULT; |
203 | 361 | settings->metacity_active_shade_opacity = METACITY_ACTIVE_SHADE_OPACITY_DEFAULT; | 366 | settings->metacity_active_shade_opacity = METACITY_ACTIVE_SHADE_OPACITY_DEFAULT; |
204 | @@ -378,22 +383,24 @@ | |||
205 | 378 | } | 383 | } |
206 | 379 | 384 | ||
207 | 380 | GWDSettings * | 385 | GWDSettings * |
210 | 381 | gwd_settings_new (gint blur, | 386 | gwd_settings_new (gint blur_type, |
211 | 382 | const gchar *metacity_theme) | 387 | const gchar *metacity_theme_name) |
212 | 383 | { | 388 | { |
218 | 384 | guint cmdline_opts; | 389 | guint cmdline_opts = 0; |
219 | 385 | 390 | ||
220 | 386 | cmdline_opts = 0; | 391 | if (blur_type != BLUR_TYPE_UNSET) |
216 | 387 | |||
217 | 388 | if (blur != BLUR_TYPE_UNSET) | ||
221 | 389 | cmdline_opts |= CMDLINE_BLUR; | 392 | cmdline_opts |= CMDLINE_BLUR; |
222 | 393 | else | ||
223 | 394 | blur_type = BLUR_TYPE_DEFAULT; | ||
224 | 390 | 395 | ||
226 | 391 | if (metacity_theme != NULL) | 396 | if (metacity_theme_name != NULL) |
227 | 392 | cmdline_opts |= CMDLINE_THEME; | 397 | cmdline_opts |= CMDLINE_THEME; |
228 | 398 | else | ||
229 | 399 | metacity_theme_name = METACITY_THEME_NAME_DEFAULT; | ||
230 | 393 | 400 | ||
231 | 394 | return g_object_new (GWD_TYPE_SETTINGS, | 401 | return g_object_new (GWD_TYPE_SETTINGS, |
234 | 395 | "blur-type", blur != BLUR_TYPE_UNSET ? blur : BLUR_TYPE_DEFAULT, | 402 | "blur-type", blur_type, |
235 | 396 | "metacity-theme", metacity_theme ? metacity_theme : METACITY_THEME_DEFAULT, | 403 | "metacity-theme-name", metacity_theme_name, |
236 | 397 | "cmdline-options", cmdline_opts, | 404 | "cmdline-options", cmdline_opts, |
237 | 398 | NULL); | 405 | NULL); |
238 | 399 | } | 406 | } |
239 | @@ -411,9 +418,15 @@ | |||
240 | 411 | } | 418 | } |
241 | 412 | 419 | ||
242 | 413 | const gchar * | 420 | const gchar * |
246 | 414 | gwd_settings_get_metacity_theme (GWDSettings *settings) | 421 | gwd_settings_get_metacity_theme_name (GWDSettings *settings) |
247 | 415 | { | 422 | { |
248 | 416 | return settings->metacity_theme; | 423 | return settings->metacity_theme_name; |
249 | 424 | } | ||
250 | 425 | |||
251 | 426 | gint | ||
252 | 427 | gwd_settings_get_metacity_theme_type (GWDSettings *settings) | ||
253 | 428 | { | ||
254 | 429 | return settings->metacity_theme_type; | ||
255 | 417 | } | 430 | } |
256 | 418 | 431 | ||
257 | 419 | const gchar * | 432 | const gchar * |
258 | @@ -614,20 +627,23 @@ | |||
259 | 614 | gboolean | 627 | gboolean |
260 | 615 | gwd_settings_metacity_theme_changed (GWDSettings *settings, | 628 | gwd_settings_metacity_theme_changed (GWDSettings *settings, |
261 | 616 | gboolean use_metacity_theme, | 629 | gboolean use_metacity_theme, |
263 | 617 | const gchar *metacity_theme) | 630 | gint metacity_theme_type, |
264 | 631 | const gchar *metacity_theme_name) | ||
265 | 618 | { | 632 | { |
266 | 619 | if (settings->cmdline_opts & CMDLINE_THEME) | 633 | if (settings->cmdline_opts & CMDLINE_THEME) |
267 | 620 | return FALSE; | 634 | return FALSE; |
268 | 621 | 635 | ||
269 | 622 | if (use_metacity_theme) { | 636 | if (use_metacity_theme) { |
271 | 623 | if (g_strcmp0 (metacity_theme, settings->metacity_theme) == 0) | 637 | if (g_strcmp0 (metacity_theme_name, settings->metacity_theme_name) == 0 && |
272 | 638 | metacity_theme_type == settings->metacity_theme_type) | ||
273 | 624 | return FALSE; | 639 | return FALSE; |
274 | 625 | 640 | ||
277 | 626 | g_free (settings->metacity_theme); | 641 | g_free (settings->metacity_theme_name); |
278 | 627 | settings->metacity_theme = g_strdup (metacity_theme); | 642 | settings->metacity_theme_name = g_strdup (metacity_theme_name); |
279 | 643 | settings->metacity_theme_type = metacity_theme_type; | ||
280 | 628 | } else { | 644 | } else { |
283 | 629 | g_free (settings->metacity_theme); | 645 | g_free (settings->metacity_theme_name); |
284 | 630 | settings->metacity_theme = NULL; | 646 | settings->metacity_theme_name = NULL; |
285 | 631 | } | 647 | } |
286 | 632 | 648 | ||
287 | 633 | append_to_notify_funcs (settings, update_metacity_theme); | 649 | append_to_notify_funcs (settings, update_metacity_theme); |
288 | 634 | 650 | ||
289 | === modified file 'gtk/window-decorator/gwd-settings.h' | |||
290 | --- gtk/window-decorator/gwd-settings.h 2016-05-21 16:08:47 +0000 | |||
291 | +++ gtk/window-decorator/gwd-settings.h 2016-06-02 03:25:46 +0000 | |||
292 | @@ -69,7 +69,8 @@ | |||
293 | 69 | 69 | ||
294 | 70 | extern const gint BLUR_TYPE_DEFAULT; | 70 | extern const gint BLUR_TYPE_DEFAULT; |
295 | 71 | 71 | ||
297 | 72 | extern const gchar *METACITY_THEME_DEFAULT; | 72 | extern const gchar *METACITY_THEME_NAME_DEFAULT; |
298 | 73 | extern const gint METACITY_THEME_TYPE_DEFAULT; | ||
299 | 73 | extern const gdouble METACITY_ACTIVE_OPACITY_DEFAULT; | 74 | extern const gdouble METACITY_ACTIVE_OPACITY_DEFAULT; |
300 | 74 | extern const gdouble METACITY_INACTIVE_OPACITY_DEFAULT; | 75 | extern const gdouble METACITY_INACTIVE_OPACITY_DEFAULT; |
301 | 75 | extern const gboolean METACITY_ACTIVE_SHADE_OPACITY_DEFAULT; | 76 | extern const gboolean METACITY_ACTIVE_SHADE_OPACITY_DEFAULT; |
302 | @@ -88,8 +89,8 @@ | |||
303 | 88 | G_DECLARE_FINAL_TYPE (GWDSettings, gwd_settings, GWD, SETTINGS, GObject) | 89 | G_DECLARE_FINAL_TYPE (GWDSettings, gwd_settings, GWD, SETTINGS, GObject) |
304 | 89 | 90 | ||
305 | 90 | GWDSettings * | 91 | GWDSettings * |
308 | 91 | gwd_settings_new (gint blur, | 92 | gwd_settings_new (gint blur_type, |
309 | 92 | const gchar *metacity_theme); | 93 | const gchar *metacity_theme_name); |
310 | 93 | 94 | ||
311 | 94 | gint | 95 | gint |
312 | 95 | gwd_settings_get_blur_type (GWDSettings *settings); | 96 | gwd_settings_get_blur_type (GWDSettings *settings); |
313 | @@ -98,7 +99,10 @@ | |||
314 | 98 | gwd_settings_get_metacity_button_layout (GWDSettings *settings); | 99 | gwd_settings_get_metacity_button_layout (GWDSettings *settings); |
315 | 99 | 100 | ||
316 | 100 | const gchar * | 101 | const gchar * |
318 | 101 | gwd_settings_get_metacity_theme (GWDSettings *settings); | 102 | gwd_settings_get_metacity_theme_name (GWDSettings *settings); |
319 | 103 | |||
320 | 104 | gint | ||
321 | 105 | gwd_settings_get_metacity_theme_type (GWDSettings *settings); | ||
322 | 102 | 106 | ||
323 | 103 | const gchar * | 107 | const gchar * |
324 | 104 | gwd_settings_get_titlebar_font (GWDSettings *settings); | 108 | gwd_settings_get_titlebar_font (GWDSettings *settings); |
325 | @@ -166,7 +170,8 @@ | |||
326 | 166 | gboolean | 170 | gboolean |
327 | 167 | gwd_settings_metacity_theme_changed (GWDSettings *settings, | 171 | gwd_settings_metacity_theme_changed (GWDSettings *settings, |
328 | 168 | gboolean use_metacity_theme, | 172 | gboolean use_metacity_theme, |
330 | 169 | const gchar *metacity_theme); | 173 | gint metacity_theme_type, |
331 | 174 | const gchar *metacity_theme_name); | ||
332 | 170 | 175 | ||
333 | 171 | gboolean | 176 | gboolean |
334 | 172 | gwd_settings_opacity_changed (GWDSettings *settings, | 177 | gwd_settings_opacity_changed (GWDSettings *settings, |
335 | 173 | 178 | ||
336 | === modified file 'gtk/window-decorator/gwd-theme-metacity.c' | |||
337 | --- gtk/window-decorator/gwd-theme-metacity.c 2016-06-02 03:25:46 +0000 | |||
338 | +++ gtk/window-decorator/gwd-theme-metacity.c 2016-06-02 03:25:46 +0000 | |||
339 | @@ -27,6 +27,7 @@ | |||
340 | 27 | 27 | ||
341 | 28 | #include "config.h" | 28 | #include "config.h" |
342 | 29 | 29 | ||
343 | 30 | #include <metacity-private/theme.h> | ||
344 | 30 | #include <metacity-private/theme-parser.h> | 31 | #include <metacity-private/theme-parser.h> |
345 | 31 | 32 | ||
346 | 32 | #include "gtk-window-decorator.h" | 33 | #include "gtk-window-decorator.h" |
347 | @@ -196,7 +197,7 @@ | |||
348 | 196 | new_layout.right_buttons[i++] = f; | 197 | new_layout.right_buttons[i++] = f; |
349 | 197 | } else { | 198 | } else { |
350 | 198 | g_warning ("Ignoring unknown or already-used " | 199 | g_warning ("Ignoring unknown or already-used " |
352 | 199 | "button name \"%s\"", buttons[b]); | 200 | "button name \"%s\"", buttons[b]); |
353 | 200 | } | 201 | } |
354 | 201 | } | 202 | } |
355 | 202 | 203 | ||
356 | @@ -598,13 +599,10 @@ | |||
357 | 598 | 599 | ||
358 | 599 | /* Add the invisible grab area padding */ | 600 | /* Add the invisible grab area padding */ |
359 | 600 | { | 601 | { |
362 | 601 | GdkScreen *screen; | 602 | GdkScreen *screen = gtk_widget_get_screen (d->frame->style_window_rgba); |
363 | 602 | MetaStyleInfo *style_info; | 603 | MetaStyleInfo *style_info = meta_theme_create_style_info (screen, d->gtk_theme_variant); |
364 | 603 | MetaFrameBorders borders; | 604 | MetaFrameBorders borders; |
365 | 604 | 605 | ||
366 | 605 | screen = gtk_widget_get_screen (d->frame->style_window_rgba); | ||
367 | 606 | style_info = meta_theme_create_style_info (screen, d->gtk_theme_variant); | ||
368 | 607 | |||
369 | 608 | meta_theme_get_frame_borders (theme, style_info, type, | 606 | meta_theme_get_frame_borders (theme, style_info, type, |
370 | 609 | d->frame->text_height, | 607 | d->frame->text_height, |
371 | 610 | flags, &borders); | 608 | flags, &borders); |
372 | @@ -686,8 +684,8 @@ | |||
373 | 686 | MetaFrameGeometry *fgeom, | 684 | MetaFrameGeometry *fgeom, |
374 | 687 | MetaFrameType frame_type) | 685 | MetaFrameType frame_type) |
375 | 688 | { | 686 | { |
378 | 689 | GdkScreen *screen; | 687 | GdkScreen *screen = gtk_widget_get_screen (decor->frame->style_window_rgba); |
379 | 690 | MetaStyleInfo *style_info; | 688 | MetaStyleInfo *style_info = meta_theme_create_style_info (screen, decor->gtk_theme_variant); |
380 | 691 | gint client_width; | 689 | gint client_width; |
381 | 692 | gint client_height; | 690 | gint client_height; |
382 | 693 | 691 | ||
383 | @@ -750,9 +748,6 @@ | |||
384 | 750 | else | 748 | else |
385 | 751 | client_height = decor->border_layout.left.y2 - decor->border_layout.left.y1; | 749 | client_height = decor->border_layout.left.y2 - decor->border_layout.left.y1; |
386 | 752 | 750 | ||
387 | 753 | screen = gtk_widget_get_screen (decor->frame->style_window_rgba); | ||
388 | 754 | style_info = meta_theme_create_style_info (screen, decor->gtk_theme_variant); | ||
389 | 755 | |||
390 | 756 | meta_theme_calc_geometry (metacity->theme, style_info, frame_type, | 751 | meta_theme_calc_geometry (metacity->theme, style_info, frame_type, |
391 | 757 | decor->frame->text_height, *flags, client_width, | 752 | decor->frame->text_height, *flags, client_width, |
392 | 758 | client_height, &metacity->button_layout, fgeom); | 753 | client_height, &metacity->button_layout, fgeom); |
393 | @@ -858,19 +853,19 @@ | |||
394 | 858 | setup_theme (GWDThemeMetacity *metacity) | 853 | setup_theme (GWDThemeMetacity *metacity) |
395 | 859 | { | 854 | { |
396 | 860 | GWDSettings *settings = gwd_theme_get_settings (GWD_THEME (metacity)); | 855 | GWDSettings *settings = gwd_theme_get_settings (GWD_THEME (metacity)); |
398 | 861 | const gchar *metacity_theme = gwd_settings_get_metacity_theme (settings); | 856 | const gchar *metacity_theme_name = gwd_settings_get_metacity_theme_name (settings); |
399 | 862 | MetaTheme *theme; | 857 | MetaTheme *theme; |
400 | 863 | 858 | ||
401 | 864 | /* metacity_theme can be NULL only in one case - if user has disabled | 859 | /* metacity_theme can be NULL only in one case - if user has disabled |
402 | 865 | * metacity theme with use-metacity-theme setting. In that case | 860 | * metacity theme with use-metacity-theme setting. In that case |
403 | 866 | * GWDThemeCairo will be created / should be created. | 861 | * GWDThemeCairo will be created / should be created. |
404 | 867 | */ | 862 | */ |
406 | 868 | g_assert (metacity_theme != NULL); | 863 | g_assert (metacity_theme_name != NULL); |
407 | 869 | 864 | ||
408 | 870 | /* meta_theme_get_current returns the last good theme, so we will try to | 865 | /* meta_theme_get_current returns the last good theme, so we will try to |
409 | 871 | * load theme manually to know that theme is 100% valid. | 866 | * load theme manually to know that theme is 100% valid. |
410 | 872 | */ | 867 | */ |
412 | 873 | theme = meta_theme_load (metacity_theme, NULL); | 868 | theme = meta_theme_load (metacity_theme_name, NULL); |
413 | 874 | if (theme == NULL) | 869 | if (theme == NULL) |
414 | 875 | return FALSE; | 870 | return FALSE; |
415 | 876 | 871 | ||
416 | @@ -881,7 +876,7 @@ | |||
417 | 881 | meta_theme_free (theme); | 876 | meta_theme_free (theme); |
418 | 882 | 877 | ||
419 | 883 | /* If we are here then we know that this will not fail. */ | 878 | /* If we are here then we know that this will not fail. */ |
421 | 884 | meta_theme_set_current (metacity_theme, TRUE); | 879 | meta_theme_set_current (metacity_theme_name, TRUE); |
422 | 885 | metacity->theme = meta_theme_get_current (); | 880 | metacity->theme = meta_theme_get_current (); |
423 | 886 | 881 | ||
424 | 887 | return TRUE; | 882 | return TRUE; |
425 | @@ -934,17 +929,18 @@ | |||
426 | 934 | { | 929 | { |
427 | 935 | GWDThemeMetacity *metacity = GWD_THEME_METACITY (theme); | 930 | GWDThemeMetacity *metacity = GWD_THEME_METACITY (theme); |
428 | 936 | GWDSettings *settings = gwd_theme_get_settings (gwd_theme); | 931 | GWDSettings *settings = gwd_theme_get_settings (gwd_theme); |
432 | 937 | GdkDisplay *display; | 932 | GdkDisplay *display = gdk_display_get_default (); |
433 | 938 | GdkScreen *screen; | 933 | Display *xdisplay = gdk_x11_display_get_xdisplay (display); |
434 | 939 | Display *xdisplay; | 934 | GdkScreen *screen = gtk_widget_get_screen (decor->frame->style_window_rgba); |
435 | 935 | MetaStyleInfo *style_info = meta_theme_create_style_info (screen, decor->gtk_theme_variant); | ||
436 | 936 | GtkWidget *style_window = decor->frame->style_window_rgba; | ||
437 | 937 | GtkStyleContext *context = gtk_widget_get_style_context (style_window); | ||
438 | 940 | cairo_surface_t *surface; | 938 | cairo_surface_t *surface; |
439 | 941 | Picture src; | 939 | Picture src; |
440 | 942 | MetaButtonState button_states [META_BUTTON_TYPE_LAST]; | 940 | MetaButtonState button_states [META_BUTTON_TYPE_LAST]; |
441 | 943 | MetaFrameGeometry fgeom; | 941 | MetaFrameGeometry fgeom; |
442 | 944 | MetaFrameFlags flags; | 942 | MetaFrameFlags flags; |
443 | 945 | MetaFrameType frame_type; | 943 | MetaFrameType frame_type; |
444 | 946 | MetaStyleInfo *style_info; | ||
445 | 947 | GtkStyleContext *context; | ||
446 | 948 | cairo_t *cr; | 944 | cairo_t *cr; |
447 | 949 | gint i; | 945 | gint i; |
448 | 950 | Region top_region; | 946 | Region top_region; |
449 | @@ -954,15 +950,11 @@ | |||
450 | 954 | double alpha; | 950 | double alpha; |
451 | 955 | gboolean shade_alpha; | 951 | gboolean shade_alpha; |
452 | 956 | MetaFrameStyle *frame_style; | 952 | MetaFrameStyle *frame_style; |
453 | 957 | GtkWidget *style_window; | ||
454 | 958 | GdkRGBA bg_rgba; | 953 | GdkRGBA bg_rgba; |
455 | 959 | 954 | ||
456 | 960 | if (!decor->surface || !decor->picture) | 955 | if (!decor->surface || !decor->picture) |
457 | 961 | return; | 956 | return; |
458 | 962 | 957 | ||
459 | 963 | display = gdk_display_get_default (); | ||
460 | 964 | xdisplay = gdk_x11_display_get_xdisplay (display); | ||
461 | 965 | |||
462 | 966 | top_region = NULL; | 958 | top_region = NULL; |
463 | 967 | bottom_region = NULL; | 959 | bottom_region = NULL; |
464 | 968 | left_region = NULL; | 960 | left_region = NULL; |
465 | @@ -979,9 +971,6 @@ | |||
466 | 979 | if (decoration_alpha == 1.0) | 971 | if (decoration_alpha == 1.0) |
467 | 980 | alpha = 1.0; | 972 | alpha = 1.0; |
468 | 981 | 973 | ||
469 | 982 | style_window = decor->frame->style_window_rgba; | ||
470 | 983 | context = gtk_widget_get_style_context (style_window); | ||
471 | 984 | |||
472 | 985 | cr = cairo_create (decor->buffer_surface ? decor->buffer_surface : decor->surface); | 974 | cr = cairo_create (decor->buffer_surface ? decor->buffer_surface : decor->surface); |
473 | 986 | 975 | ||
474 | 987 | cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE); | 976 | cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE); |
475 | @@ -1023,16 +1012,14 @@ | |||
476 | 1023 | surface = create_surface (fgeom.width, fgeom.height, decor->frame->style_window_rgba); | 1012 | surface = create_surface (fgeom.width, fgeom.height, decor->frame->style_window_rgba); |
477 | 1024 | 1013 | ||
478 | 1025 | cr = cairo_create (surface); | 1014 | cr = cairo_create (surface); |
479 | 1015 | |||
480 | 1026 | gdk_cairo_set_source_rgba (cr, &bg_rgba); | 1016 | gdk_cairo_set_source_rgba (cr, &bg_rgba); |
481 | 1027 | cairo_set_operator (cr, CAIRO_OPERATOR_OVER); | 1017 | cairo_set_operator (cr, CAIRO_OPERATOR_OVER); |
482 | 1018 | cairo_paint (cr); | ||
483 | 1028 | 1019 | ||
484 | 1029 | src = XRenderCreatePicture (xdisplay, cairo_xlib_surface_get_drawable (surface), | 1020 | src = XRenderCreatePicture (xdisplay, cairo_xlib_surface_get_drawable (surface), |
485 | 1030 | xformat_rgba, 0, NULL); | 1021 | xformat_rgba, 0, NULL); |
486 | 1031 | 1022 | ||
487 | 1032 | screen = gtk_widget_get_screen (decor->frame->style_window_rgba); | ||
488 | 1033 | style_info = meta_theme_create_style_info (screen, decor->gtk_theme_variant); | ||
489 | 1034 | |||
490 | 1035 | cairo_paint (cr); | ||
491 | 1036 | meta_theme_draw_frame (metacity->theme, style_info, cr, frame_type, flags, | 1023 | meta_theme_draw_frame (metacity->theme, style_info, cr, frame_type, flags, |
492 | 1037 | fgeom.width - fgeom.borders.total.left - fgeom.borders.total.right, | 1024 | fgeom.width - fgeom.borders.total.left - fgeom.borders.total.right, |
493 | 1038 | fgeom.height - fgeom.borders.total.top - fgeom.borders.total.bottom, | 1025 | fgeom.height - fgeom.borders.total.top - fgeom.borders.total.bottom, |
494 | 1039 | 1026 | ||
495 | === modified file 'gtk/window-decorator/gwd-theme-metacity.h' | |||
496 | --- gtk/window-decorator/gwd-theme-metacity.h 2016-05-26 07:19:33 +0000 | |||
497 | +++ gtk/window-decorator/gwd-theme-metacity.h 2016-06-02 03:25:46 +0000 | |||
498 | @@ -20,8 +20,6 @@ | |||
499 | 20 | #ifndef GWD_THEME_METACITY_H | 20 | #ifndef GWD_THEME_METACITY_H |
500 | 21 | #define GWD_THEME_METACITY_H | 21 | #define GWD_THEME_METACITY_H |
501 | 22 | 22 | ||
502 | 23 | #include <metacity-private/theme.h> | ||
503 | 24 | |||
504 | 25 | #include "gwd-settings.h" | 23 | #include "gwd-settings.h" |
505 | 26 | #include "gwd-theme.h" | 24 | #include "gwd-theme.h" |
506 | 27 | 25 | ||
507 | 28 | 26 | ||
508 | === modified file 'gtk/window-decorator/tests/test_gwd_settings.cpp' | |||
509 | --- gtk/window-decorator/tests/test_gwd_settings.cpp 2016-06-02 03:25:46 +0000 | |||
510 | +++ gtk/window-decorator/tests/test_gwd_settings.cpp 2016-06-02 03:25:46 +0000 | |||
511 | @@ -39,8 +39,6 @@ | |||
512 | 39 | 39 | ||
513 | 40 | #include <gtest_unspecified_bool_type_matcher.h> | 40 | #include <gtest_unspecified_bool_type_matcher.h> |
514 | 41 | 41 | ||
515 | 42 | #include "compiz_gwd_tests.h" | ||
516 | 43 | |||
517 | 44 | #include "gwd-settings.h" | 42 | #include "gwd-settings.h" |
518 | 45 | 43 | ||
519 | 46 | using ::testing::Eq; | 44 | using ::testing::Eq; |
520 | @@ -166,7 +164,8 @@ | |||
521 | 166 | } | 164 | } |
522 | 167 | 165 | ||
523 | 168 | static void updateMetacityThemeCb (GWDSettings *settings, | 166 | static void updateMetacityThemeCb (GWDSettings *settings, |
525 | 169 | const gchar *metacity_theme, | 167 | gint metacity_theme_type, |
526 | 168 | const gchar *metacity_theme_name, | ||
527 | 170 | GWDMockSettingsNotifiedGMock *gmock) | 169 | GWDMockSettingsNotifiedGMock *gmock) |
528 | 171 | { | 170 | { |
529 | 172 | gmock->updateMetacityTheme (); | 171 | gmock->updateMetacityTheme (); |
530 | @@ -378,9 +377,10 @@ | |||
531 | 378 | EXPECT_CALL (*mGMockNotified, updateDecorations ()); | 377 | EXPECT_CALL (*mGMockNotified, updateDecorations ()); |
532 | 379 | EXPECT_TRUE (gwd_settings_metacity_theme_changed (mSettings.get (), | 378 | EXPECT_TRUE (gwd_settings_metacity_theme_changed (mSettings.get (), |
533 | 380 | testing_values::USE_METACITY_THEME_VALUE, | 379 | testing_values::USE_METACITY_THEME_VALUE, |
534 | 380 | METACITY_THEME_TYPE_DEFAULT, | ||
535 | 381 | testing_values::METACITY_THEME_VALUE.c_str ())); | 381 | testing_values::METACITY_THEME_VALUE.c_str ())); |
536 | 382 | 382 | ||
538 | 383 | EXPECT_THAT (gwd_settings_get_metacity_theme (mSettings.get ()), | 383 | EXPECT_THAT (gwd_settings_get_metacity_theme_name (mSettings.get ()), |
539 | 384 | IsStringsEqual (testing_values::METACITY_THEME_VALUE.c_str ())); | 384 | IsStringsEqual (testing_values::METACITY_THEME_VALUE.c_str ())); |
540 | 385 | } | 385 | } |
541 | 386 | 386 | ||
542 | @@ -391,9 +391,10 @@ | |||
543 | 391 | EXPECT_CALL (*mGMockNotified, updateMetacityTheme ()); | 391 | EXPECT_CALL (*mGMockNotified, updateMetacityTheme ()); |
544 | 392 | EXPECT_CALL (*mGMockNotified, updateDecorations ()); | 392 | EXPECT_CALL (*mGMockNotified, updateDecorations ()); |
545 | 393 | EXPECT_TRUE (gwd_settings_metacity_theme_changed (mSettings.get (), FALSE, | 393 | EXPECT_TRUE (gwd_settings_metacity_theme_changed (mSettings.get (), FALSE, |
547 | 394 | METACITY_THEME_DEFAULT)); | 394 | METACITY_THEME_TYPE_DEFAULT, |
548 | 395 | METACITY_THEME_NAME_DEFAULT)); | ||
549 | 395 | 396 | ||
551 | 396 | EXPECT_THAT (gwd_settings_get_metacity_theme (mSettings.get ()), | 397 | EXPECT_THAT (gwd_settings_get_metacity_theme_name (mSettings.get ()), |
552 | 397 | IsStringsEqual (metacityTheme)); | 398 | IsStringsEqual (metacityTheme)); |
553 | 398 | } | 399 | } |
554 | 399 | 400 | ||
555 | @@ -401,7 +402,8 @@ | |||
556 | 401 | { | 402 | { |
557 | 402 | EXPECT_FALSE (gwd_settings_metacity_theme_changed (mSettings.get (), | 403 | EXPECT_FALSE (gwd_settings_metacity_theme_changed (mSettings.get (), |
558 | 403 | testing_values::USE_METACITY_THEME_VALUE, | 404 | testing_values::USE_METACITY_THEME_VALUE, |
560 | 404 | METACITY_THEME_DEFAULT)); | 405 | METACITY_THEME_TYPE_DEFAULT, |
561 | 406 | METACITY_THEME_NAME_DEFAULT)); | ||
562 | 405 | } | 407 | } |
563 | 406 | 408 | ||
564 | 407 | TEST_F(GWDSettingsTest, TestMetacityThemeSetCommandLine) | 409 | TEST_F(GWDSettingsTest, TestMetacityThemeSetCommandLine) |
565 | @@ -413,9 +415,10 @@ | |||
566 | 413 | 415 | ||
567 | 414 | EXPECT_FALSE (gwd_settings_metacity_theme_changed (mSettings.get (), | 416 | EXPECT_FALSE (gwd_settings_metacity_theme_changed (mSettings.get (), |
568 | 415 | testing_values::USE_METACITY_THEME_VALUE, | 417 | testing_values::USE_METACITY_THEME_VALUE, |
569 | 418 | METACITY_THEME_TYPE_DEFAULT, | ||
570 | 416 | testing_values::METACITY_THEME_VALUE.c_str ())); | 419 | testing_values::METACITY_THEME_VALUE.c_str ())); |
571 | 417 | 420 | ||
573 | 418 | EXPECT_THAT (gwd_settings_get_metacity_theme (mSettings.get ()), | 421 | EXPECT_THAT (gwd_settings_get_metacity_theme_name (mSettings.get ()), |
574 | 419 | IsStringsEqual (metacityTheme)); | 422 | IsStringsEqual (metacityTheme)); |
575 | 420 | } | 423 | } |
576 | 421 | 424 |
Updated.