Merge lp:~muktupavels/compiz/gwd-no-g-object-get-with-settings into lp:compiz/0.9.12

Proposed by Alberts Muktupāvels
Status: Merged
Approved by: Marco Trevisan (Treviño)
Approved revision: 4060
Merged at revision: 4043
Proposed branch: lp:~muktupavels/compiz/gwd-no-g-object-get-with-settings
Merge into: lp:compiz/0.9.12
Prerequisite: lp:~muktupavels/compiz/gwd-remove-cairo-window-decoration-util
Diff against target: 1553 lines (+355/-740)
10 files modified
gtk/window-decorator/blurprops.c (+1/-3)
gtk/window-decorator/decorator.c (+2/-2)
gtk/window-decorator/events.c (+7/-11)
gtk/window-decorator/frames.c (+2/-3)
gtk/window-decorator/gwd-settings.c (+93/-226)
gtk/window-decorator/gwd-settings.h (+103/-66)
gtk/window-decorator/gwd-theme-metacity.c (+7/-11)
gtk/window-decorator/gwd-theme.c (+4/-6)
gtk/window-decorator/tests/test_gwd_settings.cpp (+134/-410)
gtk/window-decorator/wnck.c (+2/-2)
To merge this branch: bzr merge lp:~muktupavels/compiz/gwd-no-g-object-get-with-settings
Reviewer Review Type Date Requested Status
Sam Spilsbury Approve
Review via email: mp+295389@code.launchpad.net

Commit message

gtk-window-decorator: Stop using g_object_get with GWDSettings.

Description of the change

Stop using g_object_get with GWDSettings.

As side effect this fixes few memory leaks. g_object_get returns newly allocated string that was never freed.

To post a comment you must log in.
Revision history for this message
Sam Spilsbury (smspillaz) wrote :

Looks really great! Thanks for simplifying all that. I've added some questions about nullability in the diff but other than LGTM!

review: Needs Information
Revision history for this message
Alberts Muktupāvels (muktupavels) wrote :

1) gwd_settings_button_layout_changed and gwd_settings_font_changed is only called with values from GSettings. Reason to remove NULL checks are simple - because button_layout and titlebar_font will be never NULL. g_settings_get_string always returns newly allocated string, it might be empty, but not NULL.

So removing these checks does not change function behaviour.

2) get_*_shadow will never return NULL. Also how could I add assert if shadow is no longer pointer?

Revision history for this message
Sam Spilsbury (smspillaz) wrote :

> 1) gwd_settings_button_layout_changed and gwd_settings_font_changed is only
> called with values from GSettings. Reason to remove NULL checks are simple -
> because button_layout and titlebar_font will be never NULL.
> g_settings_get_string always returns newly allocated string, it might be
> empty, but not NULL.
>
> So removing these checks does not change function behaviour.

Makes sense - thanks for clarifying :)

>
> 2) get_*_shadow will never return NULL. Also how could I add assert if shadow
> is no longer pointer?

Ah, I missed the part where it was converted to return the structure itself as opposed to a pointer.

In that case, there's no need to assert as you mentioned.

LGTM.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'gtk/window-decorator/blurprops.c'
--- gtk/window-decorator/blurprops.c 2016-05-21 20:35:23 +0000
+++ gtk/window-decorator/blurprops.c 2016-05-21 20:35:24 +0000
@@ -36,13 +36,11 @@
36 int right_offset)36 int right_offset)
37{37{
38 GWDSettings *settings = gwd_theme_get_settings (gwd_theme);38 GWDSettings *settings = gwd_theme_get_settings (gwd_theme);
39 gint blur_type = gwd_settings_get_blur_type (settings);
39 Display *xdisplay = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());40 Display *xdisplay = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
40 long *data = NULL;41 long *data = NULL;
41 int size = 0;42 int size = 0;
42 gint blur_type;
4343
44 g_object_get (settings, "blur", &blur_type, NULL);
45
46 if (blur_type != BLUR_TYPE_ALL)44 if (blur_type != BLUR_TYPE_ALL)
47 {45 {
48 bottom_region = NULL;46 bottom_region = NULL;
4947
=== modified file 'gtk/window-decorator/decorator.c'
--- gtk/window-decorator/decorator.c 2016-05-21 20:35:23 +0000
+++ gtk/window-decorator/decorator.c 2016-05-21 20:35:24 +0000
@@ -24,6 +24,7 @@
24 */24 */
2525
26#include "gtk-window-decorator.h"26#include "gtk-window-decorator.h"
27#include "gwd-settings.h"
27#include "gwd-theme-cairo.h"28#include "gwd-theme-cairo.h"
2829
29static void30static void
@@ -55,8 +56,7 @@
55get_titlebar_font (decor_frame_t *frame)56get_titlebar_font (decor_frame_t *frame)
56{57{
57 GWDSettings *settings = gwd_theme_get_settings (gwd_theme);58 GWDSettings *settings = gwd_theme_get_settings (gwd_theme);
58 const gchar *titlebar_font;59 const gchar *titlebar_font = gwd_settings_get_titlebar_font (settings);
59 g_object_get (settings, "titlebar-font", &titlebar_font, NULL);
6060
61 /* Using system font */61 /* Using system font */
62 if (!titlebar_font)62 if (!titlebar_font)
6363
=== modified file 'gtk/window-decorator/events.c'
--- gtk/window-decorator/events.c 2016-05-21 20:35:23 +0000
+++ gtk/window-decorator/events.c 2016-05-21 20:35:24 +0000
@@ -110,11 +110,9 @@
110 char *tooltip)110 char *tooltip)
111{111{
112 GWDSettings *settings = gwd_theme_get_settings (gwd_theme);112 GWDSettings *settings = gwd_theme_get_settings (gwd_theme);
113 gboolean use_tooltips = gwd_settings_get_use_tooltips (settings);
113 decor_t *d = g_object_get_data (G_OBJECT (win), "decor");114 decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
114 guint state = d->button_states[button];115 guint state = d->button_states[button];
115 gboolean use_tooltips = FALSE;
116
117 g_object_get (settings, "use-tooltips", &use_tooltips, NULL);
118116
119 if (use_tooltips)117 if (use_tooltips)
120 handle_tooltip_event (win, gtkwd_event, gtkwd_type, state, tooltip);118 handle_tooltip_event (win, gtkwd_event, gtkwd_type, state, tooltip);
@@ -459,9 +457,7 @@
459 unsigned int button)457 unsigned int button)
460{458{
461 GWDSettings *settings = gwd_theme_get_settings (gwd_theme);459 GWDSettings *settings = gwd_theme_get_settings (gwd_theme);
462 gint wheel_action = WHEEL_ACTION_NONE;460 gint wheel_action = gwd_settings_get_mouse_wheel_action (settings);
463
464 g_object_get (settings, "mouse-wheel-action", &wheel_action, NULL);
465461
466 switch (wheel_action) {462 switch (wheel_action) {
467 case WHEEL_ACTION_SHADE:463 case WHEEL_ACTION_SHADE:
@@ -514,7 +510,7 @@
514 dist (gtkwd_event->x, gtkwd_event->y,510 dist (gtkwd_event->x, gtkwd_event->y,
515 last_button_x, last_button_y) < DOUBLE_CLICK_DISTANCE)511 last_button_x, last_button_y) < DOUBLE_CLICK_DISTANCE)
516 {512 {
517 g_object_get (settings, "titlebar-double-click-action", &titlebar_action, NULL);513 titlebar_action = gwd_settings_get_titlebar_double_click_action (settings);
518 handle_title_button_event (win, titlebar_action,514 handle_title_button_event (win, titlebar_action,
519 gtkwd_event);515 gtkwd_event);
520516
@@ -539,13 +535,13 @@
539 }535 }
540 else if (gtkwd_event->button == 2)536 else if (gtkwd_event->button == 2)
541 {537 {
542 g_object_get (settings, "titlebar-middle-click-action", &titlebar_action, NULL);538 titlebar_action = gwd_settings_get_titlebar_middle_click_action (settings);
543 handle_title_button_event (win, titlebar_action,539 handle_title_button_event (win, titlebar_action,
544 gtkwd_event);540 gtkwd_event);
545 }541 }
546 else if (gtkwd_event->button == 3)542 else if (gtkwd_event->button == 3)
547 {543 {
548 g_object_get (settings, "titlebar-right-click-action", &titlebar_action, NULL);544 titlebar_action = gwd_settings_get_titlebar_right_click_action (settings);
549 handle_title_button_event (win, titlebar_action,545 handle_title_button_event (win, titlebar_action,
550 gtkwd_event);546 gtkwd_event);
551 }547 }
@@ -616,12 +612,12 @@
616 restack_window (win, Above);612 restack_window (win, Above);
617 break;613 break;
618 case 2:614 case 2:
619 g_object_get (settings, "titlebar-middle-click-action", &titlebar_action, NULL);615 titlebar_action = gwd_settings_get_titlebar_middle_click_action (settings);
620 handle_title_button_event (win, titlebar_action,616 handle_title_button_event (win, titlebar_action,
621 gtkwd_event);617 gtkwd_event);
622 break;618 break;
623 case 3:619 case 3:
624 g_object_get (settings, "titlebar-right-click-action", &titlebar_action, NULL);620 titlebar_action = gwd_settings_get_titlebar_right_click_action (settings);
625 handle_title_button_event (win, titlebar_action,621 handle_title_button_event (win, titlebar_action,
626 gtkwd_event);622 gtkwd_event);
627 break;623 break;
628624
=== modified file 'gtk/window-decorator/frames.c'
--- gtk/window-decorator/frames.c 2016-05-21 20:35:23 +0000
+++ gtk/window-decorator/frames.c 2016-05-21 20:35:24 +0000
@@ -21,6 +21,7 @@
21 */21 */
2222
23#include "gtk-window-decorator.h"23#include "gtk-window-decorator.h"
24#include "gwd-settings.h"
2425
25typedef struct _decor_frame_type_info26typedef struct _decor_frame_type_info
26{27{
@@ -264,17 +265,15 @@
264decor_frame_refresh (decor_frame_t *frame)265decor_frame_refresh (decor_frame_t *frame)
265{266{
266 GWDSettings *settings = gwd_theme_get_settings (gwd_theme);267 GWDSettings *settings = gwd_theme_get_settings (gwd_theme);
268 const gchar *titlebar_font = gwd_settings_get_titlebar_font (settings);
267 decor_shadow_options_t active_o, inactive_o;269 decor_shadow_options_t active_o, inactive_o;
268 decor_shadow_info_t *info;270 decor_shadow_info_t *info;
269 const gchar *titlebar_font = NULL;
270271
271 gwd_decor_frame_ref (frame);272 gwd_decor_frame_ref (frame);
272273
273 update_style (frame->style_window_rgba);274 update_style (frame->style_window_rgba);
274 update_style (frame->style_window_rgb);275 update_style (frame->style_window_rgb);
275276
276 g_object_get (settings, "titlebar-font", &titlebar_font, NULL);
277
278 set_frame_scale (frame, titlebar_font);277 set_frame_scale (frame, titlebar_font);
279278
280 titlebar_font = NULL;279 titlebar_font = NULL;
281280
=== modified file 'gtk/window-decorator/gwd-settings.c'
--- gtk/window-decorator/gwd-settings.c 2016-05-21 20:35:23 +0000
+++ gtk/window-decorator/gwd-settings.c 2016-05-21 20:35:24 +0000
@@ -26,7 +26,6 @@
26#include <stdio.h>26#include <stdio.h>
2727
28#include "gwd-settings.h"28#include "gwd-settings.h"
29#include "decoration.h"
3029
31const gboolean USE_TOOLTIPS_DEFAULT = FALSE;30const gboolean USE_TOOLTIPS_DEFAULT = FALSE;
3231
@@ -71,11 +70,13 @@
71{70{
72 GObject parent;71 GObject parent;
7372
73 gint blur_type;
74 gchar *metacity_theme;
75 guint cmdline_opts;
76
74 decor_shadow_options_t active_shadow;77 decor_shadow_options_t active_shadow;
75 decor_shadow_options_t inactive_shadow;78 decor_shadow_options_t inactive_shadow;
76 gboolean use_tooltips;79 gboolean use_tooltips;
77 gint blur_type;
78 gchar *metacity_theme;
79 gdouble metacity_active_opacity;80 gdouble metacity_active_opacity;
80 gdouble metacity_inactive_opacity;81 gdouble metacity_inactive_opacity;
81 gboolean metacity_active_shade_opacity;82 gboolean metacity_active_shade_opacity;
@@ -87,8 +88,6 @@
87 gint mouse_wheel_action;88 gint mouse_wheel_action;
88 gchar *titlebar_font;89 gchar *titlebar_font;
8990
90 guint cmdline_opts;
91
92 guint freeze_count;91 guint freeze_count;
93 GList *notify_funcs;92 GList *notify_funcs;
94};93};
@@ -97,27 +96,14 @@
97{96{
98 PROP_0,97 PROP_0,
9998
100 PROP_ACTIVE_SHADOW,99 PROP_BLUR_TYPE,
101 PROP_INACTIVE_SHADOW,
102 PROP_USE_TOOLTIPS,
103 PROP_BLUR,
104 PROP_METACITY_THEME,100 PROP_METACITY_THEME,
105 PROP_ACTIVE_OPACITY,
106 PROP_INACTIVE_OPACITY,
107 PROP_ACTIVE_SHADE_OPACITY,
108 PROP_INACTIVE_SHADE_OPACITY,
109 PROP_BUTTON_LAYOUT,
110 PROP_TITLEBAR_ACTION_DOUBLE_CLICK,
111 PROP_TITLEBAR_ACTION_MIDDLE_CLICK,
112 PROP_TITLEBAR_ACTION_RIGHT_CLICK,
113 PROP_MOUSE_WHEEL_ACTION,
114 PROP_TITLEBAR_FONT,
115 PROP_CMDLINE_OPTIONS,101 PROP_CMDLINE_OPTIONS,
116102
117 LAST_PROP103 LAST_PROP
118};104};
119105
120static GParamSpec *settings_properties[LAST_PROP] = { NULL };106static GParamSpec *properties[LAST_PROP] = { NULL };
121107
122enum108enum
123{109{
@@ -281,7 +267,7 @@
281 settings->cmdline_opts = g_value_get_int (value);267 settings->cmdline_opts = g_value_get_int (value);
282 break;268 break;
283269
284 case PROP_BLUR:270 case PROP_BLUR_TYPE:
285 settings->blur_type = g_value_get_int (value);271 settings->blur_type = g_value_get_int (value);
286 break;272 break;
287273
@@ -297,219 +283,37 @@
297}283}
298284
299static void285static void
300gwd_settings_get_property (GObject *object,
301 guint property_id,
302 GValue *value,
303 GParamSpec *pspec)
304{
305 GWDSettings *settings;
306
307 settings = GWD_SETTINGS (object);
308
309 switch (property_id) {
310 case PROP_ACTIVE_SHADOW:
311 g_value_set_pointer (value, &settings->active_shadow);
312 break;
313
314 case PROP_INACTIVE_SHADOW:
315 g_value_set_pointer (value, &settings->inactive_shadow);
316 break;
317
318 case PROP_USE_TOOLTIPS:
319 g_value_set_boolean (value, settings->use_tooltips);
320 break;
321
322 case PROP_BLUR:
323 g_value_set_int (value, settings->blur_type);
324 break;
325
326 case PROP_METACITY_THEME:
327 g_value_set_string (value, settings->metacity_theme);
328 break;
329
330 case PROP_ACTIVE_OPACITY:
331 g_value_set_double (value, settings->metacity_active_opacity);
332 break;
333
334 case PROP_INACTIVE_OPACITY:
335 g_value_set_double (value, settings->metacity_inactive_opacity);
336 break;
337
338 case PROP_ACTIVE_SHADE_OPACITY:
339 g_value_set_boolean (value, settings->metacity_active_shade_opacity);
340 break;
341
342 case PROP_INACTIVE_SHADE_OPACITY:
343 g_value_set_boolean (value, settings->metacity_inactive_shade_opacity);
344 break;
345
346 case PROP_BUTTON_LAYOUT:
347 g_value_set_string (value, settings->metacity_button_layout);
348 break;
349
350 case PROP_TITLEBAR_ACTION_DOUBLE_CLICK:
351 g_value_set_int (value, settings->titlebar_double_click_action);
352 break;
353
354 case PROP_TITLEBAR_ACTION_MIDDLE_CLICK:
355 g_value_set_int (value, settings->titlebar_middle_click_action);
356 break;
357
358 case PROP_TITLEBAR_ACTION_RIGHT_CLICK:
359 g_value_set_int (value, settings->titlebar_right_click_action);
360 break;
361
362 case PROP_MOUSE_WHEEL_ACTION:
363 g_value_set_int (value, settings->mouse_wheel_action);
364 break;
365
366 case PROP_TITLEBAR_FONT:
367 g_value_set_string (value, settings->titlebar_font);
368 break;
369
370 default:
371 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
372 break;
373 }
374}
375
376static void
377gwd_settings_class_init (GWDSettingsClass *settings_class)286gwd_settings_class_init (GWDSettingsClass *settings_class)
378{287{
379 GObjectClass *object_class;288 GObjectClass *object_class = G_OBJECT_CLASS (settings_class);
380
381 object_class = G_OBJECT_CLASS (settings_class);
382289
383 object_class->finalize = gwd_settings_finalize;290 object_class->finalize = gwd_settings_finalize;
384 object_class->get_property = gwd_settings_get_property;
385 object_class->set_property = gwd_settings_set_property;291 object_class->set_property = gwd_settings_set_property;
386292
387 settings_properties[PROP_ACTIVE_SHADOW] =293 properties[PROP_BLUR_TYPE] =
388 g_param_spec_pointer ("active-shadow",294 g_param_spec_int ("blur-type",
389 "Active Shadow",
390 "Active Shadow Settings",
391 G_PARAM_READABLE);
392
393 settings_properties[PROP_INACTIVE_SHADOW] =
394 g_param_spec_pointer ("inactive-shadow",
395 "Inactive Shadow",
396 "Inactive Shadow",
397 G_PARAM_READABLE);
398
399 settings_properties[PROP_USE_TOOLTIPS] =
400 g_param_spec_boolean ("use-tooltips",
401 "Use Tooltips",
402 "Use Tooltips Setting",
403 USE_TOOLTIPS_DEFAULT,
404 G_PARAM_READABLE);
405
406 settings_properties[PROP_BLUR] =
407 g_param_spec_int ("blur",
408 "Blur Type",295 "Blur Type",
409 "Blur type property",296 "Blur type property",
410 BLUR_TYPE_NONE,297 BLUR_TYPE_NONE,
411 BLUR_TYPE_ALL,298 BLUR_TYPE_ALL,
412 BLUR_TYPE_NONE,299 BLUR_TYPE_NONE,
413 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);300 G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY);
414301
415 settings_properties[PROP_METACITY_THEME] =302 properties[PROP_METACITY_THEME] =
416 g_param_spec_string ("metacity-theme",303 g_param_spec_string ("metacity-theme",
417 "Metacity Theme",304 "Metacity Theme",
418 "Metacity Theme Setting",305 "Metacity Theme Setting",
419 METACITY_THEME_DEFAULT,306 METACITY_THEME_DEFAULT,
420 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);307 G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY);
421308
422 settings_properties[PROP_ACTIVE_OPACITY] =309 properties[PROP_CMDLINE_OPTIONS] =
423 g_param_spec_double ("metacity-active-opacity",
424 "Metacity Active Opacity",
425 "Metacity Active Opacity",
426 0.0,
427 1.0,
428 METACITY_ACTIVE_OPACITY_DEFAULT,
429 G_PARAM_READABLE);
430
431 settings_properties[PROP_INACTIVE_OPACITY] =
432 g_param_spec_double ("metacity-inactive-opacity",
433 "Metacity Inactive Opacity",
434 "Metacity Inactive Opacity",
435 0.0,
436 1.0,
437 METACITY_INACTIVE_OPACITY_DEFAULT,
438 G_PARAM_READABLE);
439
440 settings_properties[PROP_ACTIVE_SHADE_OPACITY] =
441 g_param_spec_boolean ("metacity-active-shade-opacity",
442 "Metacity Active Shade Opacity",
443 "Metacity Active Shade Opacity",
444 METACITY_ACTIVE_SHADE_OPACITY_DEFAULT,
445 G_PARAM_READABLE);
446
447 settings_properties[PROP_INACTIVE_SHADE_OPACITY] =
448 g_param_spec_boolean ("metacity-inactive-shade-opacity",
449 "Metacity Inactive Shade Opacity",
450 "Metacity Inactive Shade Opacity",
451 METACITY_INACTIVE_SHADE_OPACITY_DEFAULT,
452 G_PARAM_READABLE);
453
454 settings_properties[PROP_BUTTON_LAYOUT] =
455 g_param_spec_string ("metacity-button-layout",
456 "Metacity Button Layout",
457 "Metacity Button Layout",
458 METACITY_BUTTON_LAYOUT_DEFAULT,
459 G_PARAM_READABLE);
460
461 settings_properties[PROP_TITLEBAR_ACTION_DOUBLE_CLICK] =
462 g_param_spec_int ("titlebar-double-click-action",
463 "Titlebar Action Double Click",
464 "Titlebar Action Double Click",
465 CLICK_ACTION_NONE,
466 CLICK_ACTION_MENU,
467 DOUBLE_CLICK_ACTION_DEFAULT,
468 G_PARAM_READABLE);
469
470 settings_properties[PROP_TITLEBAR_ACTION_MIDDLE_CLICK] =
471 g_param_spec_int ("titlebar-middle-click-action",
472 "Titlebar Action Middle Click",
473 "Titlebar Action Middle Click",
474 CLICK_ACTION_NONE,
475 CLICK_ACTION_MENU,
476 MIDDLE_CLICK_ACTION_DEFAULT,
477 G_PARAM_READABLE);
478
479 settings_properties[PROP_TITLEBAR_ACTION_RIGHT_CLICK] =
480 g_param_spec_int ("titlebar-right-click-action",
481 "Titlebar Action Right Click",
482 "Titlebar Action Right Click",
483 CLICK_ACTION_NONE,
484 CLICK_ACTION_MENU,
485 RIGHT_CLICK_ACTION_DEFAULT,
486 G_PARAM_READABLE);
487
488 settings_properties[PROP_MOUSE_WHEEL_ACTION] =
489 g_param_spec_int ("mouse-wheel-action",
490 "Mouse Wheel Action",
491 "Mouse Wheel Action",
492 WHEEL_ACTION_NONE,
493 WHEEL_ACTION_SHADE,
494 WHEEL_ACTION_DEFAULT,
495 G_PARAM_READABLE);
496
497 settings_properties[PROP_TITLEBAR_FONT] =
498 g_param_spec_string ("titlebar-font",
499 "Titlebar Font",
500 "Titlebar Font",
501 TITLEBAR_FONT_DEFAULT,
502 G_PARAM_READABLE);
503
504 settings_properties[PROP_CMDLINE_OPTIONS] =
505 g_param_spec_int ("cmdline-options",310 g_param_spec_int ("cmdline-options",
506 "Command line options",311 "Command line options",
507 "Which options were specified on the command line",312 "Which options were specified on the command line",
508 0, G_MAXINT32, 0,313 0, G_MAXINT32, 0,
509 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);314 G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY);
510315
511 g_object_class_install_properties (object_class, LAST_PROP,316 g_object_class_install_properties (object_class, LAST_PROP, properties);
512 settings_properties);
513317
514 settings_signals[UPDATE_DECORATIONS] =318 settings_signals[UPDATE_DECORATIONS] =
515 g_signal_new ("update-decorations",319 g_signal_new ("update-decorations",
@@ -588,12 +392,18 @@
588 cmdline_opts |= CMDLINE_THEME;392 cmdline_opts |= CMDLINE_THEME;
589393
590 return g_object_new (GWD_TYPE_SETTINGS,394 return g_object_new (GWD_TYPE_SETTINGS,
591 "blur", blur != BLUR_TYPE_UNSET ? blur : BLUR_TYPE_DEFAULT,395 "blur-type", blur != BLUR_TYPE_UNSET ? blur : BLUR_TYPE_DEFAULT,
592 "metacity-theme", metacity_theme ? metacity_theme : METACITY_THEME_DEFAULT,396 "metacity-theme", metacity_theme ? metacity_theme : METACITY_THEME_DEFAULT,
593 "cmdline-options", cmdline_opts,397 "cmdline-options", cmdline_opts,
594 NULL);398 NULL);
595}399}
596400
401gint
402gwd_settings_get_blur_type (GWDSettings *settings)
403{
404 return settings->blur_type;
405}
406
597const gchar *407const gchar *
598gwd_settings_get_metacity_button_layout (GWDSettings *settings)408gwd_settings_get_metacity_button_layout (GWDSettings *settings)
599{409{
@@ -612,6 +422,72 @@
612 return settings->titlebar_font;422 return settings->titlebar_font;
613}423}
614424
425decor_shadow_options_t
426gwd_settings_get_active_shadow (GWDSettings *settings)
427{
428 return settings->active_shadow;
429}
430
431decor_shadow_options_t
432gwd_settings_get_inactive_shadow (GWDSettings *settings)
433{
434 return settings->inactive_shadow;
435}
436
437gboolean
438gwd_settings_get_use_tooltips (GWDSettings *settings)
439{
440 return settings->use_tooltips;
441}
442
443gdouble
444gwd_settings_get_metacity_active_opacity (GWDSettings *settings)
445{
446 return settings->metacity_active_opacity;
447}
448
449gdouble
450gwd_settings_get_metacity_inactive_opacity (GWDSettings *settings)
451{
452 return settings->metacity_inactive_opacity;
453}
454
455gboolean
456gwd_settings_get_metacity_active_shade_opacity (GWDSettings *settings)
457{
458 return settings->metacity_active_shade_opacity;
459}
460
461gboolean
462gwd_settings_get_metacity_inactive_shade_opacity (GWDSettings *settings)
463{
464 return settings->metacity_inactive_shade_opacity;
465}
466
467gint
468gwd_settings_get_titlebar_double_click_action (GWDSettings *settings)
469{
470 return settings->titlebar_double_click_action;
471}
472
473gint
474gwd_settings_get_titlebar_middle_click_action (GWDSettings *settings)
475{
476 return settings->titlebar_middle_click_action;
477}
478
479gint
480gwd_settings_get_titlebar_right_click_action (GWDSettings *settings)
481{
482 return settings->titlebar_right_click_action;
483}
484
485gint
486gwd_settings_get_mouse_wheel_action (GWDSettings *settings)
487{
488 return settings->mouse_wheel_action;
489}
490
615void491void
616gwd_settings_freeze_updates (GWDSettings *settings)492gwd_settings_freeze_updates (GWDSettings *settings)
617{493{
@@ -789,9 +665,6 @@
789gwd_settings_button_layout_changed (GWDSettings *settings,665gwd_settings_button_layout_changed (GWDSettings *settings,
790 const gchar *button_layout)666 const gchar *button_layout)
791{667{
792 if (!button_layout)
793 return FALSE;
794
795 if (g_strcmp0 (settings->metacity_button_layout, button_layout) == 0)668 if (g_strcmp0 (settings->metacity_button_layout, button_layout) == 0)
796 return FALSE;669 return FALSE;
797670
@@ -810,22 +683,16 @@
810 gboolean titlebar_uses_system_font,683 gboolean titlebar_uses_system_font,
811 const gchar *titlebar_font)684 const gchar *titlebar_font)
812{685{
813 const gchar *no_font = NULL;686 const gchar *use_font = titlebar_font;
814 const gchar *use_font = NULL;
815
816 if (!titlebar_font)
817 return FALSE;
818687
819 if (titlebar_uses_system_font)688 if (titlebar_uses_system_font)
820 use_font = no_font;689 use_font = NULL;
821 else
822 use_font = titlebar_font;
823690
824 if (g_strcmp0 (settings->titlebar_font, use_font) == 0)691 if (g_strcmp0 (settings->titlebar_font, use_font) == 0)
825 return FALSE;692 return FALSE;
826693
827 g_free (settings->titlebar_font);694 g_free (settings->titlebar_font);
828 settings->titlebar_font = use_font ? g_strdup (use_font) : NULL;695 settings->titlebar_font = g_strdup (use_font);
829696
830 append_to_notify_funcs (settings, update_decorations);697 append_to_notify_funcs (settings, update_decorations);
831 append_to_notify_funcs (settings, update_frames);698 append_to_notify_funcs (settings, update_frames);
832699
=== modified file 'gtk/window-decorator/gwd-settings.h'
--- gtk/window-decorator/gwd-settings.h 2016-05-21 20:35:23 +0000
+++ gtk/window-decorator/gwd-settings.h 2016-05-21 20:35:24 +0000
@@ -23,6 +23,7 @@
23#ifndef GWD_SETTINGS_H23#ifndef GWD_SETTINGS_H
24#define GWD_SETTINGS_H24#define GWD_SETTINGS_H
2525
26#include <decoration.h>
26#include <glib-object.h>27#include <glib-object.h>
2728
28G_BEGIN_DECLS29G_BEGIN_DECLS
@@ -87,72 +88,108 @@
87G_DECLARE_FINAL_TYPE (GWDSettings, gwd_settings, GWD, SETTINGS, GObject)88G_DECLARE_FINAL_TYPE (GWDSettings, gwd_settings, GWD, SETTINGS, GObject)
8889
89GWDSettings *90GWDSettings *
90gwd_settings_new (gint blur,91gwd_settings_new (gint blur,
91 const gchar *metacity_theme);92 const gchar *metacity_theme);
9293
93const gchar *94gint
94gwd_settings_get_metacity_button_layout (GWDSettings *settings);95gwd_settings_get_blur_type (GWDSettings *settings);
9596
96const gchar *97const gchar *
97gwd_settings_get_metacity_theme (GWDSettings *settings);98gwd_settings_get_metacity_button_layout (GWDSettings *settings);
9899
99const gchar *100const gchar *
100gwd_settings_get_titlebar_font (GWDSettings *settings);101gwd_settings_get_metacity_theme (GWDSettings *settings);
101102
102void103const gchar *
103gwd_settings_freeze_updates (GWDSettings *settings);104gwd_settings_get_titlebar_font (GWDSettings *settings);
104105
105void106decor_shadow_options_t
106gwd_settings_thaw_updates (GWDSettings *settings);107gwd_settings_get_active_shadow (GWDSettings *settings);
107108
108gboolean109decor_shadow_options_t
109gwd_settings_shadow_property_changed (GWDSettings *settings,110gwd_settings_get_inactive_shadow (GWDSettings *settings);
110 gdouble active_shadow_radius,111
111 gdouble active_shadow_opacity,112gboolean
112 gdouble active_shadow_offset_x,113gwd_settings_get_use_tooltips (GWDSettings *settings);
113 gdouble active_shadow_offset_y,114
114 const gchar *active_shadow_color,115gdouble
115 gdouble inactive_shadow_radius,116gwd_settings_get_metacity_active_opacity (GWDSettings *settings);
116 gdouble inactive_shadow_opacity,117
117 gdouble inactive_shadow_offset_x,118gdouble
118 gdouble inactive_shadow_offset_y,119gwd_settings_get_metacity_inactive_opacity (GWDSettings *settings);
119 const gchar *inactive_shadow_color);120
120121gboolean
121gboolean122gwd_settings_get_metacity_active_shade_opacity (GWDSettings *settings);
122gwd_settings_use_tooltips_changed (GWDSettings *settings,123
123 gboolean use_tooltips);124gboolean
124125gwd_settings_get_metacity_inactive_shade_opacity (GWDSettings *settings);
125gboolean126
126gwd_settings_blur_changed (GWDSettings *settings,127gint
127 const gchar *blur_type);128gwd_settings_get_titlebar_double_click_action (GWDSettings *settings);
128129
129gboolean130gint
130gwd_settings_metacity_theme_changed (GWDSettings *settings,131gwd_settings_get_titlebar_middle_click_action (GWDSettings *settings);
131 gboolean use_metacity_theme,132
132 const gchar *metacity_theme);133gint
133134gwd_settings_get_titlebar_right_click_action (GWDSettings *settings);
134gboolean135
135gwd_settings_opacity_changed (GWDSettings *settings,136gint
136 gdouble active_opacity,137gwd_settings_get_mouse_wheel_action (GWDSettings *settings);
137 gdouble inactive_opacity,138
138 gboolean active_shade_opacity,139void
139 gboolean inactive_shade_opacity);140gwd_settings_freeze_updates (GWDSettings *settings);
140141
141gboolean142void
142gwd_settings_button_layout_changed (GWDSettings *settings,143gwd_settings_thaw_updates (GWDSettings *settings);
143 const gchar *button_layout);144
144145gboolean
145gboolean146gwd_settings_shadow_property_changed (GWDSettings *settings,
146gwd_settings_font_changed (GWDSettings *settings,147 gdouble active_shadow_radius,
147 gboolean titlebar_uses_system_font,148 gdouble active_shadow_opacity,
148 const gchar *titlebar_font);149 gdouble active_shadow_offset_x,
149150 gdouble active_shadow_offset_y,
150gboolean151 const gchar *active_shadow_color,
151gwd_settings_titlebar_actions_changed (GWDSettings *settings,152 gdouble inactive_shadow_radius,
152 const gchar *action_double_click_titlebar,153 gdouble inactive_shadow_opacity,
153 const gchar *action_middle_click_titlebar,154 gdouble inactive_shadow_offset_x,
154 const gchar *action_right_click_titlebar,155 gdouble inactive_shadow_offset_y,
155 const gchar *mouse_wheel_action);156 const gchar *inactive_shadow_color);
157
158gboolean
159gwd_settings_use_tooltips_changed (GWDSettings *settings,
160 gboolean use_tooltips);
161
162gboolean
163gwd_settings_blur_changed (GWDSettings *settings,
164 const gchar *blur_type);
165
166gboolean
167gwd_settings_metacity_theme_changed (GWDSettings *settings,
168 gboolean use_metacity_theme,
169 const gchar *metacity_theme);
170
171gboolean
172gwd_settings_opacity_changed (GWDSettings *settings,
173 gdouble active_opacity,
174 gdouble inactive_opacity,
175 gboolean active_shade_opacity,
176 gboolean inactive_shade_opacity);
177
178gboolean
179gwd_settings_button_layout_changed (GWDSettings *settings,
180 const gchar *button_layout);
181
182gboolean
183gwd_settings_font_changed (GWDSettings *settings,
184 gboolean titlebar_uses_system_font,
185 const gchar *titlebar_font);
186
187gboolean
188gwd_settings_titlebar_actions_changed (GWDSettings *settings,
189 const gchar *action_double_click_titlebar,
190 const gchar *action_middle_click_titlebar,
191 const gchar *action_right_click_titlebar,
192 const gchar *mouse_wheel_action);
156193
157G_END_DECLS194G_END_DECLS
158195
159196
=== modified file 'gtk/window-decorator/gwd-theme-metacity.c'
--- gtk/window-decorator/gwd-theme-metacity.c 2016-05-21 20:35:23 +0000
+++ gtk/window-decorator/gwd-theme-metacity.c 2016-05-21 20:35:24 +0000
@@ -941,10 +941,6 @@
941 Region bottom_region;941 Region bottom_region;
942 Region left_region;942 Region left_region;
943 Region right_region;943 Region right_region;
944 gdouble meta_active_opacity;
945 gdouble meta_inactive_opacity;
946 gboolean meta_active_shade_opacity;
947 gboolean meta_inactive_shade_opacity;
948 double alpha;944 double alpha;
949 gboolean shade_alpha;945 gboolean shade_alpha;
950 MetaFrameStyle *frame_style;946 MetaFrameStyle *frame_style;
@@ -962,13 +958,13 @@
962 left_region = NULL;958 left_region = NULL;
963 right_region = NULL;959 right_region = NULL;
964960
965 g_object_get (settings, "metacity-active-opacity", &meta_active_opacity, NULL);961 if (decor->active) {
966 g_object_get (settings, "metacity-inactive-opacity", &meta_inactive_opacity, NULL);962 alpha = gwd_settings_get_metacity_active_opacity (settings);
967 g_object_get (settings, "metacity-active-shade-opacity", &meta_active_shade_opacity, NULL);963 shade_alpha = gwd_settings_get_metacity_active_shade_opacity (settings);
968 g_object_get (settings, "metacity-inactive-shade-opacity", &meta_inactive_shade_opacity, NULL);964 } else {
969965 alpha = gwd_settings_get_metacity_inactive_opacity (settings);
970 alpha = (decor->active) ? meta_active_opacity : meta_inactive_opacity;966 shade_alpha = gwd_settings_get_metacity_inactive_shade_opacity (settings);
971 shade_alpha = (decor->active) ? meta_active_shade_opacity : meta_inactive_shade_opacity;967 }
972968
973 if (decoration_alpha == 1.0)969 if (decoration_alpha == 1.0)
974 alpha = 1.0;970 alpha = 1.0;
975971
=== modified file 'gtk/window-decorator/gwd-theme.c'
--- gtk/window-decorator/gwd-theme.c 2016-05-21 20:35:23 +0000
+++ gtk/window-decorator/gwd-theme.c 2016-05-21 20:35:24 +0000
@@ -111,18 +111,16 @@
111 gboolean active)111 gboolean active)
112{112{
113 GWDThemePrivate *priv;113 GWDThemePrivate *priv;
114 decor_shadow_options_t *shadow;114 decor_shadow_options_t shadow;
115115
116 priv = gwd_theme_get_instance_private (theme);116 priv = gwd_theme_get_instance_private (theme);
117 shadow = NULL;
118117
119 if (active)118 if (active)
120 g_object_get (priv->settings, "active-shadow", &shadow, NULL);119 shadow = gwd_settings_get_active_shadow (priv->settings);
121 else120 else
122 g_object_get (priv->settings, "inactive-shadow", &shadow, NULL);121 shadow = gwd_settings_get_inactive_shadow (priv->settings);
123122
124 if (shadow)123 memcpy (options, &shadow, sizeof (decor_shadow_options_t));
125 memcpy (options, shadow, sizeof (decor_shadow_options_t));
126}124}
127125
128static void126static void
129127
=== modified file 'gtk/window-decorator/tests/test_gwd_settings.cpp'
--- gtk/window-decorator/tests/test_gwd_settings.cpp 2016-05-21 20:35:23 +0000
+++ gtk/window-decorator/tests/test_gwd_settings.cpp 2016-05-21 20:35:24 +0000
@@ -44,130 +44,21 @@
44#include "gwd-settings.h"44#include "gwd-settings.h"
45#include "gwd-settings-storage.h"45#include "gwd-settings-storage.h"
4646
47#include "decoration.h"
48
49using ::testing::TestWithParam;
50using ::testing::Eq;47using ::testing::Eq;
51using ::testing::Return;
52using ::testing::InvokeWithoutArgs;
53using ::testing::IgnoreResult;
54using ::testing::MatcherInterface;
55using ::testing::MakeMatcher;
56using ::testing::MatchResultListener;
57using ::testing::Matcher;
58using ::testing::Action;48using ::testing::Action;
59using ::testing::ActionInterface;
60using ::testing::MakeAction;
61using ::testing::IsNull;
62using ::testing::Values;49using ::testing::Values;
63using ::testing::_;50using ::testing::_;
64using ::testing::StrictMock;51using ::testing::StrictMock;
65using ::testing::InSequence;52
6653MATCHER_P(IsShadowsEqual, element, "")
67template <class ValueCType>54{
68class GValueCmp55 return decor_shadow_options_cmp (&arg, &element);
69{56}
70 public:57
7158MATCHER_P(IsStringsEqual, element, "")
72 typedef ValueCType (*GetFunc) (const GValue *value);59{
7360 return g_strcmp0 (arg, element) == 0;
74 bool compare (const ValueCType &val,61}
75 GValue *value,
76 GetFunc get)
77 {
78 const ValueCType &valForValue = (*get) (value);
79 return valForValue == val;
80 }
81};
82
83template <>
84class GValueCmp <decor_shadow_options_t>
85{
86 public:
87
88 typedef gpointer (*GetFunc) (const GValue *value);
89
90 bool compare (const decor_shadow_options_t &val,
91 GValue *value,
92 GetFunc get)
93 {
94 gpointer shadowOptionsPtr = (*get) (value);
95 const decor_shadow_options_t &shadowOptions = *(reinterpret_cast <decor_shadow_options_t *> (shadowOptionsPtr));
96 if (decor_shadow_options_cmp (&val, &shadowOptions))
97 return true;
98 else
99 return false;
100 }
101};
102
103template <>
104class GValueCmp <std::string>
105{
106 public:
107
108 typedef const gchar * (*GetFunc) (const GValue *value);
109
110 bool compare (const std::string &val,
111 GValue *value,
112 GetFunc get)
113 {
114 const gchar *valueForValue = (*get) (value);
115 const std::string valueForValueStr (valueForValue);\
116
117 return val == valueForValueStr;
118 }
119};
120
121namespace
122{
123 std::ostream &
124 operator<< (std::ostream &os, const decor_shadow_options_t &options)
125 {
126 os << " radius: " << options.shadow_radius <<
127 " opacity: " << options.shadow_opacity <<
128 " offset: (" << options.shadow_offset_x << ", " << options.shadow_offset_y << ")" <<
129 " color: r: " << options.shadow_color[0] <<
130 " g: " << options.shadow_color[1] <<
131 " b: " << options.shadow_color[2];
132
133 return os;
134 }
135}
136
137template <class ValueCType>
138class GObjectPropertyMatcher :
139 public ::testing::MatcherInterface <GValue *>
140{
141 public:
142
143 GObjectPropertyMatcher (const ValueCType &value,
144 typename GValueCmp<ValueCType>::GetFunc func) :
145 mValue (value),
146 mGetFunc (func)
147 {
148 }
149 virtual ~GObjectPropertyMatcher () {}
150
151 virtual bool MatchAndExplain (GValue *value, MatchResultListener *listener) const
152 {
153 return GValueCmp <ValueCType> ().compare (mValue, value, mGetFunc);
154 }
155
156 virtual void DescribeTo (std::ostream *os) const
157 {
158 *os << "value contains " << mValue;
159 }
160
161 virtual void DescribeNegationTo (std::ostream *os) const
162 {
163 *os << "value does not contain " << mValue;
164 }
165
166 private:
167
168 const ValueCType &mValue;
169 typename GValueCmp<ValueCType>::GetFunc mGetFunc;
170};
17162
172namespace testing_values63namespace testing_values
173{64{
@@ -215,14 +106,6 @@
215 const std::string MOUSE_WHEEL_ACTION_SHADE ("shade");106 const std::string MOUSE_WHEEL_ACTION_SHADE ("shade");
216}107}
217108
218template <class ValueCType>
219inline Matcher<GValue *>
220GValueMatch (const ValueCType &value,
221 typename GValueCmp<ValueCType>::GetFunc func)
222{
223 return MakeMatcher (new GObjectPropertyMatcher <ValueCType> (value, func));
224}
225
226class GWDSettingsTestCommon :109class GWDSettingsTestCommon :
227 public ::testing::Test110 public ::testing::Test
228{111{
@@ -246,35 +129,6 @@
246 {129 {
247 g_object_unref (G_OBJECT (settings));130 g_object_unref (G_OBJECT (settings));
248 }131 }
249
250 class AutoUnsetGValue
251 {
252 public:
253
254 AutoUnsetGValue (GType type)
255 {
256 /* This is effectively G_VALUE_INIT, we can't use that here
257 * because this is not a C++11 project */
258 mValue.g_type = 0;
259 mValue.data[0].v_int = 0;
260 mValue.data[1].v_int = 0;
261 g_value_init (&mValue, type);
262 }
263
264 ~AutoUnsetGValue ()
265 {
266 g_value_unset (&mValue);
267 }
268
269 operator GValue & ()
270 {
271 return mValue;
272 }
273
274 private:
275
276 GValue mValue;
277 };
278}132}
279133
280class GWDMockSettingsNotifiedGMock134class GWDMockSettingsNotifiedGMock
@@ -407,8 +261,11 @@
407261
408TEST_F(GWDSettingsTest, TestShadowPropertyChanged)262TEST_F(GWDSettingsTest, TestShadowPropertyChanged)
409{263{
264 decor_shadow_options_t activeShadow;
265 decor_shadow_options_t inactiveShadow;
266
410 EXPECT_CALL (*mGMockNotified, updateDecorations ());267 EXPECT_CALL (*mGMockNotified, updateDecorations ());
411 EXPECT_THAT (gwd_settings_shadow_property_changed (mSettings.get (),268 EXPECT_TRUE (gwd_settings_shadow_property_changed (mSettings.get (),
412 testing_values::ACTIVE_SHADOW_OPACITY_VALUE,269 testing_values::ACTIVE_SHADOW_OPACITY_VALUE,
413 testing_values::ACTIVE_SHADOW_RADIUS_VALUE,270 testing_values::ACTIVE_SHADOW_RADIUS_VALUE,
414 testing_values::ACTIVE_SHADOW_OFFSET_X_VALUE,271 testing_values::ACTIVE_SHADOW_OFFSET_X_VALUE,
@@ -418,23 +275,7 @@
418 testing_values::INACTIVE_SHADOW_RADIUS_VALUE,275 testing_values::INACTIVE_SHADOW_RADIUS_VALUE,
419 testing_values::INACTIVE_SHADOW_OFFSET_X_VALUE,276 testing_values::INACTIVE_SHADOW_OFFSET_X_VALUE,
420 testing_values::INACTIVE_SHADOW_OFFSET_Y_VALUE,277 testing_values::INACTIVE_SHADOW_OFFSET_Y_VALUE,
421 testing_values::INACTIVE_SHADOW_COLOR_STR_VALUE.c_str ()), IsTrue ());278 testing_values::INACTIVE_SHADOW_COLOR_STR_VALUE.c_str ()));
422
423 AutoUnsetGValue activeShadowValue (G_TYPE_POINTER);
424 AutoUnsetGValue inactiveShadowValue (G_TYPE_POINTER);
425
426 GValue &activeShadowGValue = activeShadowValue;
427 GValue &inactiveShadowGValue = inactiveShadowValue;
428
429 g_object_get_property (G_OBJECT (mSettings.get ()),
430 "active-shadow",
431 &activeShadowGValue);
432
433 g_object_get_property (G_OBJECT (mSettings.get ()),
434 "inactive-shadow",
435 &inactiveShadowGValue);
436
437 decor_shadow_options_t activeShadow;
438279
439 activeShadow.shadow_opacity = testing_values::ACTIVE_SHADOW_OPACITY_VALUE;280 activeShadow.shadow_opacity = testing_values::ACTIVE_SHADOW_OPACITY_VALUE;
440 activeShadow.shadow_radius = testing_values::ACTIVE_SHADOW_RADIUS_VALUE;281 activeShadow.shadow_radius = testing_values::ACTIVE_SHADOW_RADIUS_VALUE;
@@ -444,8 +285,6 @@
444 activeShadow.shadow_color[1] = testing_values::ACTIVE_SHADOW_COLOR_VALUE[1];285 activeShadow.shadow_color[1] = testing_values::ACTIVE_SHADOW_COLOR_VALUE[1];
445 activeShadow.shadow_color[2] = testing_values::ACTIVE_SHADOW_COLOR_VALUE[2];286 activeShadow.shadow_color[2] = testing_values::ACTIVE_SHADOW_COLOR_VALUE[2];
446287
447 decor_shadow_options_t inactiveShadow;
448
449 inactiveShadow.shadow_opacity = testing_values::INACTIVE_SHADOW_OPACITY_VALUE;288 inactiveShadow.shadow_opacity = testing_values::INACTIVE_SHADOW_OPACITY_VALUE;
450 inactiveShadow.shadow_radius = testing_values::INACTIVE_SHADOW_RADIUS_VALUE;289 inactiveShadow.shadow_radius = testing_values::INACTIVE_SHADOW_RADIUS_VALUE;
451 inactiveShadow.shadow_offset_x = testing_values::INACTIVE_SHADOW_OFFSET_X_INT_VALUE;290 inactiveShadow.shadow_offset_x = testing_values::INACTIVE_SHADOW_OFFSET_X_INT_VALUE;
@@ -454,98 +293,71 @@
454 inactiveShadow.shadow_color[1] = testing_values::INACTIVE_SHADOW_COLOR_VALUE[1];293 inactiveShadow.shadow_color[1] = testing_values::INACTIVE_SHADOW_COLOR_VALUE[1];
455 inactiveShadow.shadow_color[2] = testing_values::INACTIVE_SHADOW_COLOR_VALUE[2];294 inactiveShadow.shadow_color[2] = testing_values::INACTIVE_SHADOW_COLOR_VALUE[2];
456295
457 EXPECT_THAT (&activeShadowGValue, GValueMatch <decor_shadow_options_t> (activeShadow,296 EXPECT_THAT (gwd_settings_get_active_shadow (mSettings.get ()),
458 g_value_get_pointer));297 IsShadowsEqual (activeShadow));
459 EXPECT_THAT (&inactiveShadowGValue, GValueMatch <decor_shadow_options_t> (inactiveShadow,298
460 g_value_get_pointer));299 EXPECT_THAT (gwd_settings_get_inactive_shadow (mSettings.get ()),
300 IsShadowsEqual (inactiveShadow));
461}301}
462302
463TEST_F(GWDSettingsTest, TestShadowPropertyChangedIsDefault)303TEST_F(GWDSettingsTest, TestShadowPropertyChangedIsDefault)
464{304{
465 EXPECT_THAT (gwd_settings_shadow_property_changed (mSettings.get (),305 EXPECT_FALSE (gwd_settings_shadow_property_changed (mSettings.get (),
466 ACTIVE_SHADOW_RADIUS_DEFAULT,306 ACTIVE_SHADOW_RADIUS_DEFAULT,
467 ACTIVE_SHADOW_OPACITY_DEFAULT,307 ACTIVE_SHADOW_OPACITY_DEFAULT,
468 ACTIVE_SHADOW_OFFSET_X_DEFAULT,308 ACTIVE_SHADOW_OFFSET_X_DEFAULT,
469 ACTIVE_SHADOW_OFFSET_Y_DEFAULT,309 ACTIVE_SHADOW_OFFSET_Y_DEFAULT,
470 ACTIVE_SHADOW_COLOR_DEFAULT,310 ACTIVE_SHADOW_COLOR_DEFAULT,
471 INACTIVE_SHADOW_RADIUS_DEFAULT,311 INACTIVE_SHADOW_RADIUS_DEFAULT,
472 INACTIVE_SHADOW_OPACITY_DEFAULT,312 INACTIVE_SHADOW_OPACITY_DEFAULT,
473 INACTIVE_SHADOW_OFFSET_X_DEFAULT,313 INACTIVE_SHADOW_OFFSET_X_DEFAULT,
474 INACTIVE_SHADOW_OFFSET_Y_DEFAULT,314 INACTIVE_SHADOW_OFFSET_Y_DEFAULT,
475 INACTIVE_SHADOW_COLOR_DEFAULT), IsFalse ());315 INACTIVE_SHADOW_COLOR_DEFAULT));
476}316}
477317
478TEST_F(GWDSettingsTest, TestUseTooltipsChanged)318TEST_F(GWDSettingsTest, TestUseTooltipsChanged)
479{319{
480 EXPECT_CALL (*mGMockNotified, updateDecorations ());320 EXPECT_CALL (*mGMockNotified, updateDecorations ());
481 EXPECT_THAT (gwd_settings_use_tooltips_changed (mSettings.get (),321 EXPECT_TRUE (gwd_settings_use_tooltips_changed (mSettings.get (),
482 testing_values::USE_TOOLTIPS_VALUE), IsTrue ());322 testing_values::USE_TOOLTIPS_VALUE));
483323
484 AutoUnsetGValue useTooltipsValue (G_TYPE_BOOLEAN);324 EXPECT_THAT (gwd_settings_get_use_tooltips (mSettings.get ()),
485 GValue &useTooltipsGValue = useTooltipsValue;325 Eq (testing_values::USE_TOOLTIPS_VALUE));
486
487 g_object_get_property (G_OBJECT (mSettings.get ()),
488 "use-tooltips",
489 &useTooltipsGValue);
490
491 EXPECT_THAT (&useTooltipsGValue, GValueMatch <gboolean> (testing_values::USE_TOOLTIPS_VALUE,
492 g_value_get_boolean));
493}326}
494327
495TEST_F(GWDSettingsTest, TestUseTooltipsChangedIsDefault)328TEST_F(GWDSettingsTest, TestUseTooltipsChangedIsDefault)
496{329{
497 EXPECT_THAT (gwd_settings_use_tooltips_changed (mSettings.get (),330 EXPECT_FALSE (gwd_settings_use_tooltips_changed (mSettings.get (),
498 USE_TOOLTIPS_DEFAULT), IsFalse ());331 USE_TOOLTIPS_DEFAULT));
499}332}
500333
501TEST_F(GWDSettingsTest, TestBlurChangedTitlebar)334TEST_F(GWDSettingsTest, TestBlurChangedTitlebar)
502{335{
503 EXPECT_CALL (*mGMockNotified, updateDecorations ());336 EXPECT_CALL (*mGMockNotified, updateDecorations ());
504 EXPECT_THAT (gwd_settings_blur_changed (mSettings.get (),337 EXPECT_TRUE (gwd_settings_blur_changed (mSettings.get (),
505 testing_values::BLUR_TYPE_TITLEBAR_VALUE.c_str ()), IsTrue ());338 testing_values::BLUR_TYPE_TITLEBAR_VALUE.c_str ()));
506339
507 AutoUnsetGValue blurValue (G_TYPE_INT);340 EXPECT_THAT (gwd_settings_get_blur_type (mSettings.get ()),
508 GValue &blurGValue = blurValue;341 Eq (testing_values::BLUR_TYPE_TITLEBAR_INT_VALUE));
509
510 g_object_get_property (G_OBJECT (mSettings.get ()),
511 "blur",
512 &blurGValue);
513
514 EXPECT_THAT (&blurGValue, GValueMatch <gint> (testing_values::BLUR_TYPE_TITLEBAR_INT_VALUE,
515 g_value_get_int));
516}342}
517343
518TEST_F(GWDSettingsTest, TestBlurChangedAll)344TEST_F(GWDSettingsTest, TestBlurChangedAll)
519{345{
520 EXPECT_CALL (*mGMockNotified, updateDecorations ());346 EXPECT_CALL (*mGMockNotified, updateDecorations ());
521 EXPECT_THAT (gwd_settings_blur_changed (mSettings.get (),347 EXPECT_TRUE (gwd_settings_blur_changed (mSettings.get (),
522 testing_values::BLUR_TYPE_ALL_VALUE.c_str ()), IsTrue ());348 testing_values::BLUR_TYPE_ALL_VALUE.c_str ()));
523349
524 AutoUnsetGValue blurValue (G_TYPE_INT);350 EXPECT_THAT (gwd_settings_get_blur_type (mSettings.get ()),
525 GValue &blurGValue = blurValue;351 Eq (testing_values::BLUR_TYPE_ALL_INT_VALUE));
526
527 g_object_get_property (G_OBJECT (mSettings.get ()),
528 "blur",
529 &blurGValue);
530
531 EXPECT_THAT (&blurGValue, GValueMatch <gint> (testing_values::BLUR_TYPE_ALL_INT_VALUE,
532 g_value_get_int));
533}352}
534353
535TEST_F(GWDSettingsTest, TestBlurChangedNone)354TEST_F(GWDSettingsTest, TestBlurChangedNone)
536{355{
537 EXPECT_THAT (gwd_settings_blur_changed (mSettings.get (),356 EXPECT_FALSE (gwd_settings_blur_changed (mSettings.get (),
538 testing_values::BLUR_TYPE_NONE_VALUE.c_str ()), IsFalse ());357 testing_values::BLUR_TYPE_NONE_VALUE.c_str ()));
539358
540 AutoUnsetGValue blurValue (G_TYPE_INT);359 EXPECT_THAT (gwd_settings_get_blur_type (mSettings.get ()),
541 GValue &blurGValue = blurValue;360 Eq (testing_values::BLUR_TYPE_NONE_INT_VALUE));
542
543 g_object_get_property (G_OBJECT (mSettings.get ()),
544 "blur",
545 &blurGValue);
546
547 EXPECT_THAT (&blurGValue, GValueMatch <gint> (testing_values::BLUR_TYPE_NONE_INT_VALUE,
548 g_value_get_int));
549}361}
550362
551TEST_F(GWDSettingsTest, TestBlurSetCommandLine)363TEST_F(GWDSettingsTest, TestBlurSetCommandLine)
@@ -553,62 +365,44 @@
553 gint blurType = testing_values::BLUR_TYPE_ALL_INT_VALUE;365 gint blurType = testing_values::BLUR_TYPE_ALL_INT_VALUE;
554366
555 mSettings.reset (gwd_settings_new (blurType, NULL),367 mSettings.reset (gwd_settings_new (blurType, NULL),
556 boost::bind (gwd_settings_unref, _1));368 boost::bind (gwd_settings_unref, _1));
557369
558 EXPECT_THAT (gwd_settings_blur_changed (mSettings.get (),370 EXPECT_FALSE (gwd_settings_blur_changed (mSettings.get (),
559 testing_values::BLUR_TYPE_NONE_VALUE.c_str ()), IsFalse ());371 testing_values::BLUR_TYPE_NONE_VALUE.c_str ()));
560372
561 AutoUnsetGValue blurValue (G_TYPE_INT);373 EXPECT_THAT (gwd_settings_get_blur_type (mSettings.get ()), Eq (blurType));
562 GValue &blurGValue = blurValue;
563
564 g_object_get_property (G_OBJECT (mSettings.get ()),
565 "blur",
566 &blurGValue);
567
568 EXPECT_THAT (&blurGValue, GValueMatch <gint> (testing_values::BLUR_TYPE_ALL_INT_VALUE,
569 g_value_get_int));
570}374}
571375
572TEST_F(GWDSettingsTest, TestMetacityThemeChanged)376TEST_F(GWDSettingsTest, TestMetacityThemeChanged)
573{377{
574 EXPECT_CALL (*mGMockNotified, updateMetacityTheme ());378 EXPECT_CALL (*mGMockNotified, updateMetacityTheme ());
575 EXPECT_CALL (*mGMockNotified, updateDecorations ());379 EXPECT_CALL (*mGMockNotified, updateDecorations ());
576 EXPECT_THAT (gwd_settings_metacity_theme_changed (mSettings.get (),380 EXPECT_TRUE (gwd_settings_metacity_theme_changed (mSettings.get (),
577 testing_values::USE_METACITY_THEME_VALUE,381 testing_values::USE_METACITY_THEME_VALUE,
578 testing_values::METACITY_THEME_VALUE.c_str ()), IsTrue ());382 testing_values::METACITY_THEME_VALUE.c_str ()));
579383
580 AutoUnsetGValue metacityThemeValue (G_TYPE_STRING);384 EXPECT_THAT (gwd_settings_get_metacity_theme (mSettings.get ()),
581 GValue &metacityThemeGValue = metacityThemeValue;385 IsStringsEqual (testing_values::METACITY_THEME_VALUE.c_str ()));
582
583 g_object_get_property (G_OBJECT (mSettings.get ()),
584 "metacity-theme",
585 &metacityThemeGValue);
586
587 EXPECT_THAT (&metacityThemeGValue, GValueMatch <std::string> (testing_values::METACITY_THEME_VALUE,
588 g_value_get_string));
589}386}
590387
591TEST_F(GWDSettingsTest, TestMetacityThemeChangedNoUseMetacityTheme)388TEST_F(GWDSettingsTest, TestMetacityThemeChangedNoUseMetacityTheme)
592{389{
390 const gchar *metacityTheme = NULL;
391
593 EXPECT_CALL (*mGMockNotified, updateMetacityTheme ());392 EXPECT_CALL (*mGMockNotified, updateMetacityTheme ());
594 EXPECT_CALL (*mGMockNotified, updateDecorations ());393 EXPECT_CALL (*mGMockNotified, updateDecorations ());
595 EXPECT_THAT (gwd_settings_metacity_theme_changed (mSettings.get (), FALSE, NULL), IsTrue ());394 EXPECT_TRUE (gwd_settings_metacity_theme_changed (mSettings.get (), FALSE,
596395 METACITY_THEME_DEFAULT));
597 AutoUnsetGValue metacityThemeValue (G_TYPE_STRING);396
598 GValue &metacityThemeGValue = metacityThemeValue;397 EXPECT_THAT (gwd_settings_get_metacity_theme (mSettings.get ()),
599398 IsStringsEqual (metacityTheme));
600 g_object_get_property (G_OBJECT (mSettings.get ()),
601 "metacity-theme",
602 &metacityThemeGValue);
603
604 EXPECT_THAT (&metacityThemeGValue, GValueMatch <const gchar *> (NULL, g_value_get_string));
605}399}
606400
607TEST_F(GWDSettingsTest, TestMetacityThemeChangedIsDefault)401TEST_F(GWDSettingsTest, TestMetacityThemeChangedIsDefault)
608{402{
609 EXPECT_THAT (gwd_settings_metacity_theme_changed (mSettings.get (),403 EXPECT_FALSE (gwd_settings_metacity_theme_changed (mSettings.get (),
610 testing_values::USE_METACITY_THEME_VALUE,404 testing_values::USE_METACITY_THEME_VALUE,
611 METACITY_THEME_DEFAULT), IsFalse ());405 METACITY_THEME_DEFAULT));
612}406}
613407
614TEST_F(GWDSettingsTest, TestMetacityThemeSetCommandLine)408TEST_F(GWDSettingsTest, TestMetacityThemeSetCommandLine)
@@ -616,142 +410,95 @@
616 const gchar *metacityTheme = "Ambiance";410 const gchar *metacityTheme = "Ambiance";
617411
618 mSettings.reset (gwd_settings_new (BLUR_TYPE_UNSET, metacityTheme),412 mSettings.reset (gwd_settings_new (BLUR_TYPE_UNSET, metacityTheme),
619 boost::bind (gwd_settings_unref, _1));413 boost::bind (gwd_settings_unref, _1));
620414
621 EXPECT_THAT (gwd_settings_metacity_theme_changed (mSettings.get (),415 EXPECT_FALSE (gwd_settings_metacity_theme_changed (mSettings.get (),
622 testing_values::USE_METACITY_THEME_VALUE,416 testing_values::USE_METACITY_THEME_VALUE,
623 testing_values::METACITY_THEME_VALUE.c_str ()), IsFalse ());417 testing_values::METACITY_THEME_VALUE.c_str ()));
624418
625 AutoUnsetGValue metacityThemeValue (G_TYPE_STRING);419 EXPECT_THAT (gwd_settings_get_metacity_theme (mSettings.get ()),
626 GValue &metacityThemeGValue = metacityThemeValue;420 IsStringsEqual (metacityTheme));
627
628 g_object_get_property (G_OBJECT (mSettings.get ()),
629 "metacity-theme",
630 &metacityThemeGValue);
631
632 EXPECT_THAT (&metacityThemeGValue, GValueMatch <std::string> (std::string (metacityTheme),
633 g_value_get_string));
634}421}
635422
636TEST_F(GWDSettingsTest, TestMetacityOpacityChanged)423TEST_F(GWDSettingsTest, TestMetacityOpacityChanged)
637{424{
638 EXPECT_CALL (*mGMockNotified, updateDecorations ());425 EXPECT_CALL (*mGMockNotified, updateDecorations ());
639 EXPECT_THAT (gwd_settings_opacity_changed (mSettings.get (),426 EXPECT_TRUE (gwd_settings_opacity_changed (mSettings.get (),
640 testing_values::ACTIVE_OPACITY_VALUE,427 testing_values::ACTIVE_OPACITY_VALUE,
641 testing_values::INACTIVE_OPACITY_VALUE,428 testing_values::INACTIVE_OPACITY_VALUE,
642 testing_values::ACTIVE_SHADE_OPACITY_VALUE,429 testing_values::ACTIVE_SHADE_OPACITY_VALUE,
643 testing_values::INACTIVE_SHADE_OPACITY_VALUE), IsTrue ());430 testing_values::INACTIVE_SHADE_OPACITY_VALUE));
644431
645 AutoUnsetGValue metacityInactiveOpacityValue (G_TYPE_DOUBLE);432 EXPECT_THAT (gwd_settings_get_metacity_inactive_opacity (mSettings.get ()),
646 AutoUnsetGValue metacityActiveOpacityValue (G_TYPE_DOUBLE);433 Eq (testing_values::INACTIVE_OPACITY_VALUE));
647 AutoUnsetGValue metacityInactiveShadeOpacityValue (G_TYPE_BOOLEAN);434
648 AutoUnsetGValue metacityActiveShadeOpacityValue (G_TYPE_BOOLEAN);435 EXPECT_THAT (gwd_settings_get_metacity_active_opacity (mSettings.get ()),
649436 Eq (testing_values::ACTIVE_OPACITY_VALUE));
650 GValue &metacityInactiveOpacityGValue = metacityInactiveOpacityValue;437
651 GValue &metacityActiveOpacityGValue = metacityActiveOpacityValue;438 EXPECT_THAT (gwd_settings_get_metacity_inactive_shade_opacity (mSettings.get ()),
652 GValue &metacityInactiveShadeOpacityGValue = metacityInactiveShadeOpacityValue;439 Eq (testing_values::INACTIVE_SHADE_OPACITY_VALUE));
653 GValue &metacityActiveShadeOpacityGValue = metacityActiveShadeOpacityValue;440
654441 EXPECT_THAT (gwd_settings_get_metacity_active_shade_opacity (mSettings.get ()),
655 g_object_get_property (G_OBJECT (mSettings.get ()),442 Eq (testing_values::ACTIVE_SHADE_OPACITY_VALUE));
656 "metacity-inactive-opacity",
657 &metacityInactiveOpacityGValue);
658 g_object_get_property (G_OBJECT (mSettings.get ()),
659 "metacity-active-opacity",
660 &metacityActiveOpacityGValue);
661 g_object_get_property (G_OBJECT (mSettings.get ()),
662 "metacity-inactive-shade-opacity",
663 &metacityInactiveShadeOpacityGValue);
664 g_object_get_property (G_OBJECT (mSettings.get ()),
665 "metacity-active-shade-opacity",
666 &metacityActiveShadeOpacityGValue);
667
668 EXPECT_THAT (&metacityInactiveOpacityGValue, GValueMatch <gdouble> (testing_values::INACTIVE_OPACITY_VALUE,
669 g_value_get_double));
670 EXPECT_THAT (&metacityActiveOpacityGValue, GValueMatch <gdouble> (testing_values::ACTIVE_OPACITY_VALUE,
671 g_value_get_double));
672 EXPECT_THAT (&metacityInactiveShadeOpacityGValue, GValueMatch <gboolean> (testing_values::INACTIVE_SHADE_OPACITY_VALUE,
673 g_value_get_boolean));
674 EXPECT_THAT (&metacityActiveShadeOpacityGValue, GValueMatch <gboolean> (testing_values::ACTIVE_SHADE_OPACITY_VALUE,
675 g_value_get_boolean));
676}443}
677444
678TEST_F(GWDSettingsTest, TestMetacityOpacityChangedIsDefault)445TEST_F(GWDSettingsTest, TestMetacityOpacityChangedIsDefault)
679{446{
680 EXPECT_THAT (gwd_settings_opacity_changed (mSettings.get (),447 EXPECT_FALSE (gwd_settings_opacity_changed (mSettings.get (),
681 METACITY_ACTIVE_OPACITY_DEFAULT,448 METACITY_ACTIVE_OPACITY_DEFAULT,
682 METACITY_INACTIVE_OPACITY_DEFAULT,449 METACITY_INACTIVE_OPACITY_DEFAULT,
683 METACITY_ACTIVE_SHADE_OPACITY_DEFAULT,450 METACITY_ACTIVE_SHADE_OPACITY_DEFAULT,
684 METACITY_INACTIVE_SHADE_OPACITY_DEFAULT), IsFalse ());451 METACITY_INACTIVE_SHADE_OPACITY_DEFAULT));
685}452}
686453
687TEST_F(GWDSettingsTest, TestButtonLayoutChanged)454TEST_F(GWDSettingsTest, TestButtonLayoutChanged)
688{455{
689 EXPECT_CALL (*mGMockNotified, updateMetacityButtonLayout ());456 EXPECT_CALL (*mGMockNotified, updateMetacityButtonLayout ());
690 EXPECT_CALL (*mGMockNotified, updateDecorations ());457 EXPECT_CALL (*mGMockNotified, updateDecorations ());
691 EXPECT_THAT (gwd_settings_button_layout_changed (mSettings.get (),458 EXPECT_TRUE (gwd_settings_button_layout_changed (mSettings.get (),
692 testing_values::BUTTON_LAYOUT_VALUE.c_str ()), IsTrue ());459 testing_values::BUTTON_LAYOUT_VALUE.c_str ()));
693460
694 AutoUnsetGValue buttonLayoutValue (G_TYPE_STRING);461 EXPECT_THAT (gwd_settings_get_metacity_button_layout (mSettings.get ()),
695 GValue &buttonLayoutGValue = buttonLayoutValue;462 IsStringsEqual (testing_values::BUTTON_LAYOUT_VALUE.c_str ()));
696
697 g_object_get_property (G_OBJECT (mSettings.get ()),
698 "metacity-button-layout",
699 &buttonLayoutGValue);
700
701 EXPECT_THAT (&buttonLayoutGValue, GValueMatch <std::string> (testing_values::BUTTON_LAYOUT_VALUE,
702 g_value_get_string));
703}463}
704464
705TEST_F(GWDSettingsTest, TestButtonLayoutChangedIsDefault)465TEST_F(GWDSettingsTest, TestButtonLayoutChangedIsDefault)
706{466{
707 EXPECT_THAT (gwd_settings_button_layout_changed (mSettings.get (),467 EXPECT_FALSE (gwd_settings_button_layout_changed (mSettings.get (),
708 METACITY_BUTTON_LAYOUT_DEFAULT), IsFalse ());468 METACITY_BUTTON_LAYOUT_DEFAULT));
709}469}
710470
711TEST_F(GWDSettingsTest, TestTitlebarFontChanged)471TEST_F(GWDSettingsTest, TestTitlebarFontChanged)
712{472{
713 EXPECT_CALL (*mGMockNotified, updateFrames ());473 EXPECT_CALL (*mGMockNotified, updateFrames ());
714 EXPECT_CALL (*mGMockNotified, updateDecorations ());474 EXPECT_CALL (*mGMockNotified, updateDecorations ());
715 EXPECT_THAT (gwd_settings_font_changed (mSettings.get (),475 EXPECT_TRUE (gwd_settings_font_changed (mSettings.get (),
716 testing_values::NO_USE_SYSTEM_FONT_VALUE,476 testing_values::NO_USE_SYSTEM_FONT_VALUE,
717 testing_values::TITLEBAR_FONT_VALUE.c_str ()), IsTrue ());477 testing_values::TITLEBAR_FONT_VALUE.c_str ()));
718478
719 AutoUnsetGValue fontValue (G_TYPE_STRING);479 EXPECT_THAT (gwd_settings_get_titlebar_font (mSettings.get ()),
720 GValue &fontGValue = fontValue;480 IsStringsEqual (testing_values::TITLEBAR_FONT_VALUE.c_str ()));
721
722 g_object_get_property (G_OBJECT (mSettings.get ()),
723 "titlebar-font",
724 &fontGValue);
725
726 EXPECT_THAT (&fontGValue, GValueMatch <std::string> (testing_values::TITLEBAR_FONT_VALUE.c_str (),
727 g_value_get_string));
728}481}
729482
730TEST_F(GWDSettingsTest, TestTitlebarFontChangedUseSystemFont)483TEST_F(GWDSettingsTest, TestTitlebarFontChangedUseSystemFont)
731{484{
485 const gchar *titlebarFont = NULL;
486
732 EXPECT_CALL (*mGMockNotified, updateFrames ());487 EXPECT_CALL (*mGMockNotified, updateFrames ());
733 EXPECT_CALL (*mGMockNotified, updateDecorations ());488 EXPECT_CALL (*mGMockNotified, updateDecorations ());
734 EXPECT_THAT (gwd_settings_font_changed (mSettings.get (),489 EXPECT_TRUE (gwd_settings_font_changed (mSettings.get (),
735 testing_values::USE_SYSTEM_FONT_VALUE,490 testing_values::USE_SYSTEM_FONT_VALUE,
736 testing_values::TITLEBAR_FONT_VALUE.c_str ()), IsTrue ());491 testing_values::TITLEBAR_FONT_VALUE.c_str ()));
737492
738 AutoUnsetGValue fontValue (G_TYPE_STRING);493 EXPECT_THAT (gwd_settings_get_titlebar_font (mSettings.get ()),
739 GValue &fontGValue = fontValue;494 IsStringsEqual (titlebarFont));
740
741 g_object_get_property (G_OBJECT (mSettings.get ()),
742 "titlebar-font",
743 &fontGValue);
744
745 EXPECT_THAT (&fontGValue, GValueMatch <const gchar *> (NULL,
746 g_value_get_string));
747}495}
748496
749
750TEST_F(GWDSettingsTest, TestTitlebarFontChangedIsDefault)497TEST_F(GWDSettingsTest, TestTitlebarFontChangedIsDefault)
751{498{
752 EXPECT_THAT (gwd_settings_font_changed (mSettings.get (),499 EXPECT_FALSE (gwd_settings_font_changed (mSettings.get (),
753 testing_values::NO_USE_SYSTEM_FONT_VALUE,500 testing_values::NO_USE_SYSTEM_FONT_VALUE,
754 TITLEBAR_FONT_DEFAULT), IsFalse ());501 TITLEBAR_FONT_DEFAULT));
755}502}
756503
757namespace504namespace
@@ -811,40 +558,17 @@
811 GetParam ().titlebarAction ().c_str (),558 GetParam ().titlebarAction ().c_str (),
812 GetParam ().mouseWheelAction ().c_str ());559 GetParam ().mouseWheelAction ().c_str ());
813560
814 AutoUnsetGValue doubleClickActionValue (G_TYPE_INT);561 EXPECT_THAT (gwd_settings_get_titlebar_double_click_action (mSettings.get ()),
815 AutoUnsetGValue middleClickActionValue (G_TYPE_INT);562 Eq (GetParam ().titlebarActionId ()));
816 AutoUnsetGValue rightClickActionValue (G_TYPE_INT);563
817 AutoUnsetGValue mouseWheelActionValue (G_TYPE_INT);564 EXPECT_THAT (gwd_settings_get_titlebar_middle_click_action (mSettings.get ()),
818565 Eq (GetParam ().titlebarActionId ()));
819 GValue &doubleClickActionGValue = doubleClickActionValue;566
820 GValue &middleClickActionGValue = middleClickActionValue;567 EXPECT_THAT (gwd_settings_get_titlebar_right_click_action (mSettings.get ()),
821 GValue &rightClickActionGValue = rightClickActionValue;568 Eq (GetParam ().titlebarActionId ()));
822 GValue &mouseWheelActionGValue = mouseWheelActionValue;569
823570 EXPECT_THAT (gwd_settings_get_mouse_wheel_action (mSettings.get ()),
824 g_object_get_property (G_OBJECT (mSettings.get ()),571 Eq (GetParam ().mouseWheelActionId ()));
825 "titlebar-double-click-action",
826 &doubleClickActionGValue);
827
828 g_object_get_property (G_OBJECT (mSettings.get ()),
829 "titlebar-middle-click-action",
830 &middleClickActionGValue);
831
832 g_object_get_property (G_OBJECT (mSettings.get ()),
833 "titlebar-right-click-action",
834 &rightClickActionGValue);
835
836 g_object_get_property (G_OBJECT (mSettings.get ()),
837 "mouse-wheel-action",
838 &mouseWheelActionGValue);
839
840 EXPECT_THAT (&doubleClickActionGValue, GValueMatch <gint> (GetParam ().titlebarActionId (),
841 g_value_get_int));
842 EXPECT_THAT (&middleClickActionGValue, GValueMatch <gint> (GetParam ().titlebarActionId (),
843 g_value_get_int));
844 EXPECT_THAT (&rightClickActionGValue, GValueMatch <gint> (GetParam ().titlebarActionId (),
845 g_value_get_int));
846 EXPECT_THAT (&mouseWheelActionGValue, GValueMatch <gint> (GetParam ().mouseWheelActionId (),
847 g_value_get_int));
848}572}
849573
850INSTANTIATE_TEST_CASE_P (MouseActions, GWDSettingsTestClickActions,574INSTANTIATE_TEST_CASE_P (MouseActions, GWDSettingsTestClickActions,
851575
=== modified file 'gtk/window-decorator/wnck.c'
--- gtk/window-decorator/wnck.c 2016-05-21 20:35:23 +0000
+++ gtk/window-decorator/wnck.c 2016-05-21 20:35:24 +0000
@@ -24,6 +24,7 @@
24 */24 */
2525
26#include "gtk-window-decorator.h"26#include "gtk-window-decorator.h"
27#include "gwd-settings.h"
2728
28static void29static void
29draw_window_decoration (decor_t *decor)30draw_window_decoration (decor_t *decor)
@@ -190,8 +191,7 @@
190 gdkscreen = gdk_display_get_default_screen (gdkdisplay);191 gdkscreen = gdk_display_get_default_screen (gdkdisplay);
191192
192 GWDSettings *settings = gwd_theme_get_settings (gwd_theme);193 GWDSettings *settings = gwd_theme_get_settings (gwd_theme);
193 const gchar *titlebar_font = NULL;194 const gchar *titlebar_font = gwd_settings_get_titlebar_font (settings);
194 g_object_get (settings, "titlebar-font", &titlebar_font, NULL);
195195
196 gwd_frames_foreach (set_frames_scales, (gpointer) titlebar_font);196 gwd_frames_foreach (set_frames_scales, (gpointer) titlebar_font);
197197

Subscribers

People subscribed via source and target branches