|
216 | 216 | PROP_PROGRESS, |
217 | 217 | PROP_PROGRESS_PULSE, |
218 | 218 | PROP_TILE_MODE, |
| 219 | + PROP_OPACITY, |
219 | 220 | PROP_LAST, |
220 | 221 | }; |
221 | 222 |
|
@@ -447,6 +448,9 @@ meta_window_get_property(GObject *object, |
447 | 448 | case PROP_TILE_MODE: |
448 | 449 | g_value_set_enum (value, win->tile_mode); |
449 | 450 | break; |
| 451 | + case PROP_OPACITY: |
| 452 | + g_value_set_uint (value, win->opacity); |
| 453 | + break; |
450 | 454 | default: |
451 | 455 | G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); |
452 | 456 | break; |
@@ -659,6 +663,15 @@ meta_window_class_init (MetaWindowClass *klass) |
659 | 663 | META_TILE_NONE, |
660 | 664 | G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); |
661 | 665 |
|
| 666 | + obj_props[PROP_OPACITY] = |
| 667 | + g_param_spec_uint ("opacity", |
| 668 | + "Opacity", |
| 669 | + "The window's 'real' opacity (not the current opacity of the window actor", |
| 670 | + 0, |
| 671 | + 0xFF, |
| 672 | + 0xFF, |
| 673 | + G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); |
| 674 | + |
662 | 675 | g_object_class_install_properties (object_class, PROP_LAST, obj_props); |
663 | 676 |
|
664 | 677 | window_signals[WORKSPACE_CHANGED] = |
@@ -8618,9 +8631,21 @@ void |
8618 | 8631 | meta_window_set_opacity (MetaWindow *window, |
8619 | 8632 | guint8 opacity) |
8620 | 8633 | { |
| 8634 | + g_return_if_fail (META_IS_WINDOW (window)); |
| 8635 | + |
8621 | 8636 | window->opacity = opacity; |
8622 | 8637 |
|
8623 | 8638 | meta_compositor_window_opacity_changed (window->display->compositor, window); |
| 8639 | + |
| 8640 | + g_object_notify_by_pspec (G_OBJECT (window), obj_props[PROP_OPACITY]); |
| 8641 | +} |
| 8642 | + |
| 8643 | +guint8 |
| 8644 | +meta_window_get_opacity (MetaWindow *window) |
| 8645 | +{ |
| 8646 | + g_return_val_if_fail (META_IS_WINDOW (window), 0xFF); |
| 8647 | + |
| 8648 | + return window->opacity; |
8624 | 8649 | } |
8625 | 8650 |
|
8626 | 8651 | #define OPACITY_STEP 32 |
|
0 commit comments