├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug_report.yml │ └── feature_request.yml └── workflows │ └── build.yml ├── .gitignore ├── CODEOWNERS ├── COPYING ├── HACKING.md ├── NEWS ├── README.md ├── check-style.py ├── clutter ├── .gitignore ├── clutter │ ├── cally │ │ ├── ChangeLog.pre-cally-merge │ │ ├── cally-actor-private.h │ │ ├── cally-actor.c │ │ ├── cally-actor.h │ │ ├── cally-clone.c │ │ ├── cally-clone.h │ │ ├── cally-factory.h │ │ ├── cally-main.h │ │ ├── cally-root.c │ │ ├── cally-root.h │ │ ├── cally-stage.c │ │ ├── cally-stage.h │ │ ├── cally-text.c │ │ ├── cally-text.h │ │ ├── cally-util.c │ │ ├── cally-util.h │ │ ├── cally.c │ │ └── cally.h │ ├── clutter-action-private.h │ ├── clutter-action.c │ ├── clutter-action.h │ ├── clutter-actor-box-private.h │ ├── clutter-actor-box.c │ ├── clutter-actor-meta-private.h │ ├── clutter-actor-meta.c │ ├── clutter-actor-meta.h │ ├── clutter-actor-private.h │ ├── clutter-actor.c │ ├── clutter-actor.h │ ├── clutter-align-constraint.c │ ├── clutter-align-constraint.h │ ├── clutter-animatable.c │ ├── clutter-animatable.h │ ├── clutter-autocleanups.h │ ├── clutter-backend-private.h │ ├── clutter-backend.c │ ├── clutter-backend.h │ ├── clutter-base-types.c │ ├── clutter-bezier.c │ ├── clutter-bezier.h │ ├── clutter-bin-layout.c │ ├── clutter-bin-layout.h │ ├── clutter-bind-constraint.c │ ├── clutter-bind-constraint.h │ ├── clutter-binding-pool.c │ ├── clutter-binding-pool.h │ ├── clutter-blur-effect.c │ ├── clutter-blur-effect.h │ ├── clutter-blur-private.h │ ├── clutter-blur.c │ ├── clutter-box-layout.c │ ├── clutter-box-layout.h │ ├── clutter-brightness-contrast-effect.c │ ├── clutter-brightness-contrast-effect.h │ ├── clutter-build-config.h.meson │ ├── clutter-cairo.c │ ├── clutter-cairo.h │ ├── clutter-canvas.c │ ├── clutter-canvas.h │ ├── clutter-child-meta.c │ ├── clutter-child-meta.h │ ├── clutter-click-action.c │ ├── clutter-click-action.h │ ├── clutter-clone.c │ ├── clutter-clone.h │ ├── clutter-color-state.c │ ├── clutter-color-state.h │ ├── clutter-color-static.h │ ├── clutter-color.c │ ├── clutter-color.h │ ├── clutter-colorize-effect.c │ ├── clutter-colorize-effect.h │ ├── clutter-constraint-private.h │ ├── clutter-constraint.c │ ├── clutter-constraint.h │ ├── clutter-container-private.h │ ├── clutter-container.c │ ├── clutter-container.h │ ├── clutter-content-private.h │ ├── clutter-content.c │ ├── clutter-content.h │ ├── clutter-damage-history.c │ ├── clutter-damage-history.h │ ├── clutter-debug.h │ ├── clutter-deform-effect.c │ ├── clutter-deform-effect.h │ ├── clutter-deprecated.h │ ├── clutter-desaturate-effect.c │ ├── clutter-desaturate-effect.h │ ├── clutter-easing.c │ ├── clutter-easing.h │ ├── clutter-effect-private.h │ ├── clutter-effect.c │ ├── clutter-effect.h │ ├── clutter-enum-types.c.in │ ├── clutter-enum-types.h.in │ ├── clutter-enums.h │ ├── clutter-event-private.h │ ├── clutter-event.c │ ├── clutter-event.h │ ├── clutter-feature.c │ ├── clutter-fixed-layout.c │ ├── clutter-fixed-layout.h │ ├── clutter-flatten-effect.c │ ├── clutter-flatten-effect.h │ ├── clutter-flow-layout.c │ ├── clutter-flow-layout.h │ ├── clutter-frame-clock.c │ ├── clutter-frame-clock.h │ ├── clutter-frame-private.h │ ├── clutter-frame.c │ ├── clutter-frame.h │ ├── clutter-gesture-action-private.h │ ├── clutter-gesture-action.c │ ├── clutter-gesture-action.h │ ├── clutter-grab.h │ ├── clutter-graphene.c │ ├── clutter-graphene.h │ ├── clutter-grid-layout.c │ ├── clutter-grid-layout.h │ ├── clutter-id-pool.c │ ├── clutter-id-pool.h │ ├── clutter-image.c │ ├── clutter-image.h │ ├── clutter-input-device-private.h │ ├── clutter-input-device-tool.c │ ├── clutter-input-device-tool.h │ ├── clutter-input-device.c │ ├── clutter-input-device.h │ ├── clutter-input-focus-private.h │ ├── clutter-input-focus.c │ ├── clutter-input-focus.h │ ├── clutter-input-method-private.h │ ├── clutter-input-method.c │ ├── clutter-input-method.h │ ├── clutter-input-pointer-a11y-private.h │ ├── clutter-input-pointer-a11y.c │ ├── clutter-interval.c │ ├── clutter-interval.h │ ├── clutter-keyframe-transition.c │ ├── clutter-keyframe-transition.h │ ├── clutter-keymap-private.h │ ├── clutter-keymap.c │ ├── clutter-keymap.h │ ├── clutter-keysyms-table.c │ ├── clutter-keysyms-update.pl │ ├── clutter-keysyms.h │ ├── clutter-layout-manager.c │ ├── clutter-layout-manager.h │ ├── clutter-layout-meta.c │ ├── clutter-layout-meta.h │ ├── clutter-macros.h │ ├── clutter-main.c │ ├── clutter-main.h │ ├── clutter-marshal.list │ ├── clutter-mutter.h │ ├── clutter-offscreen-effect-private.h │ ├── clutter-offscreen-effect.c │ ├── clutter-offscreen-effect.h │ ├── clutter-page-turn-effect.c │ ├── clutter-page-turn-effect.h │ ├── clutter-paint-context-private.h │ ├── clutter-paint-context.c │ ├── clutter-paint-context.h │ ├── clutter-paint-node-private.h │ ├── clutter-paint-node.c │ ├── clutter-paint-node.h │ ├── clutter-paint-nodes.c │ ├── clutter-paint-nodes.h │ ├── clutter-paint-volume-private.h │ ├── clutter-paint-volume.c │ ├── clutter-pan-action.c │ ├── clutter-pan-action.h │ ├── clutter-path-constraint.c │ ├── clutter-path-constraint.h │ ├── clutter-path.c │ ├── clutter-path.h │ ├── clutter-pick-context-private.h │ ├── clutter-pick-context.c │ ├── clutter-pick-context.h │ ├── clutter-pick-stack-private.h │ ├── clutter-pick-stack.c │ ├── clutter-private.h │ ├── clutter-property-transition.c │ ├── clutter-property-transition.h │ ├── clutter-rotate-action.c │ ├── clutter-rotate-action.h │ ├── clutter-script-parser.c │ ├── clutter-script-private.h │ ├── clutter-script.c │ ├── clutter-script.h │ ├── clutter-scriptable.c │ ├── clutter-scriptable.h │ ├── clutter-scroll-actor.c │ ├── clutter-scroll-actor.h │ ├── clutter-seat-private.h │ ├── clutter-seat.c │ ├── clutter-seat.h │ ├── clutter-settings-private.h │ ├── clutter-settings.c │ ├── clutter-settings.h │ ├── clutter-shader-effect.c │ ├── clutter-shader-effect.h │ ├── clutter-shader-types.c │ ├── clutter-shader-types.h │ ├── clutter-snap-constraint.c │ ├── clutter-snap-constraint.h │ ├── clutter-stage-manager-private.h │ ├── clutter-stage-manager.c │ ├── clutter-stage-manager.h │ ├── clutter-stage-private.h │ ├── clutter-stage-view-private.h │ ├── clutter-stage-view.c │ ├── clutter-stage-view.h │ ├── clutter-stage-window.c │ ├── clutter-stage-window.h │ ├── clutter-stage.c │ ├── clutter-stage.h │ ├── clutter-swipe-action.c │ ├── clutter-swipe-action.h │ ├── clutter-tap-action.c │ ├── clutter-tap-action.h │ ├── clutter-text-buffer.c │ ├── clutter-text-buffer.h │ ├── clutter-text.c │ ├── clutter-text.h │ ├── clutter-texture-content.c │ ├── clutter-texture-content.h │ ├── clutter-timeline-private.h │ ├── clutter-timeline.c │ ├── clutter-timeline.h │ ├── clutter-transition-group.c │ ├── clutter-transition-group.h │ ├── clutter-transition.c │ ├── clutter-transition.h │ ├── clutter-types.h │ ├── clutter-units.c │ ├── clutter-units.h │ ├── clutter-util.c │ ├── clutter-virtual-input-device.c │ ├── clutter-virtual-input-device.h │ ├── clutter-zoom-action.c │ ├── clutter-zoom-action.h │ ├── clutter.h │ ├── deprecated │ │ ├── clutter-box-layout.h │ │ ├── clutter-container.h │ │ └── clutter-timeline.h │ ├── meson.build │ └── mutter-clutter.pc.in └── meson.build ├── cogl ├── .gitignore ├── cogl-config.h.meson ├── cogl-mutter-config.h.in ├── cogl-pango │ ├── cogl-pango-display-list.c │ ├── cogl-pango-display-list.h │ ├── cogl-pango-fontmap.c │ ├── cogl-pango-glyph-cache.c │ ├── cogl-pango-glyph-cache.h │ ├── cogl-pango-pipeline-cache.c │ ├── cogl-pango-pipeline-cache.h │ ├── cogl-pango-private.h │ ├── cogl-pango-render.c │ ├── cogl-pango.h │ ├── cogl-pango.symbols │ ├── meson.build │ └── mutter-cogl-pango.pc.in ├── cogl │ ├── cogl-atlas-texture-private.h │ ├── cogl-atlas-texture.c │ ├── cogl-atlas-texture.h │ ├── cogl-atlas.c │ ├── cogl-atlas.h │ ├── cogl-attribute-buffer-private.h │ ├── cogl-attribute-buffer.c │ ├── cogl-attribute-buffer.h │ ├── cogl-attribute-private.h │ ├── cogl-attribute.c │ ├── cogl-attribute.h │ ├── cogl-bitmap-conversion.c │ ├── cogl-bitmap-packing.h │ ├── cogl-bitmap-pixbuf.c │ ├── cogl-bitmap-private.h │ ├── cogl-bitmap.c │ ├── cogl-bitmap.h │ ├── cogl-bitmask.c │ ├── cogl-bitmask.h │ ├── cogl-blend-string.c │ ├── cogl-blend-string.h │ ├── cogl-blit.c │ ├── cogl-blit.h │ ├── cogl-boxed-value.c │ ├── cogl-boxed-value.h │ ├── cogl-buffer-private.h │ ├── cogl-buffer.c │ ├── cogl-buffer.h │ ├── cogl-clip-stack.c │ ├── cogl-clip-stack.h │ ├── cogl-closure-list-private.h │ ├── cogl-closure-list.c │ ├── cogl-color-private.h │ ├── cogl-color.c │ ├── cogl-color.h │ ├── cogl-context-private.h │ ├── cogl-context.c │ ├── cogl-context.h │ ├── cogl-debug-options.h │ ├── cogl-debug.c │ ├── cogl-debug.h │ ├── cogl-defines.h.in │ ├── cogl-defines.h.meson │ ├── cogl-depth-state-private.h │ ├── cogl-depth-state.c │ ├── cogl-depth-state.h │ ├── cogl-display-private.h │ ├── cogl-display.c │ ├── cogl-display.h │ ├── cogl-dma-buf-handle.c │ ├── cogl-dma-buf-handle.h │ ├── cogl-driver.h │ ├── cogl-egl-defines.h.in │ ├── cogl-egl-private.h │ ├── cogl-egl.h │ ├── cogl-feature-private.c │ ├── cogl-feature-private.h │ ├── cogl-fence-private.h │ ├── cogl-fence.c │ ├── cogl-fence.h │ ├── cogl-flags.h │ ├── cogl-frame-info-private.h │ ├── cogl-frame-info.c │ ├── cogl-frame-info.h │ ├── cogl-framebuffer-driver.c │ ├── cogl-framebuffer-driver.h │ ├── cogl-framebuffer-private.h │ ├── cogl-framebuffer.c │ ├── cogl-framebuffer.h │ ├── cogl-gl-header.h.in │ ├── cogl-glib-source.c │ ├── cogl-glib-source.h │ ├── cogl-glsl-shader-boilerplate.h │ ├── cogl-graphene.c │ ├── cogl-graphene.h │ ├── cogl-gtype-private.h │ ├── cogl-gtype.c │ ├── cogl-i18n-private.h │ ├── cogl-index-buffer-private.h │ ├── cogl-index-buffer.c │ ├── cogl-index-buffer.h │ ├── cogl-indices-private.h │ ├── cogl-indices.c │ ├── cogl-indices.h │ ├── cogl-journal-private.h │ ├── cogl-journal.c │ ├── cogl-list.c │ ├── cogl-list.h │ ├── cogl-macros.h │ ├── cogl-magazine-private.h │ ├── cogl-magazine.c │ ├── cogl-matrix-stack-private.h │ ├── cogl-matrix-stack.c │ ├── cogl-matrix-stack.h │ ├── cogl-memory-stack-private.h │ ├── cogl-memory-stack.c │ ├── cogl-meta-texture.c │ ├── cogl-meta-texture.h │ ├── cogl-mutter.h │ ├── cogl-node-private.h │ ├── cogl-node.c │ ├── cogl-object-private.h │ ├── cogl-object.c │ ├── cogl-object.h │ ├── cogl-offscreen-private.h │ ├── cogl-offscreen.c │ ├── cogl-offscreen.h │ ├── cogl-onscreen-private.h │ ├── cogl-onscreen-template-private.h │ ├── cogl-onscreen-template.c │ ├── cogl-onscreen-template.h │ ├── cogl-onscreen.c │ ├── cogl-onscreen.h │ ├── cogl-output-private.h │ ├── cogl-output.c │ ├── cogl-output.h │ ├── cogl-pipeline-cache-private.h │ ├── cogl-pipeline-cache.c │ ├── cogl-pipeline-cache.h │ ├── cogl-pipeline-debug.c │ ├── cogl-pipeline-hash-table.c │ ├── cogl-pipeline-hash-table.h │ ├── cogl-pipeline-layer-private.h │ ├── cogl-pipeline-layer-state-private.h │ ├── cogl-pipeline-layer-state.c │ ├── cogl-pipeline-layer-state.h │ ├── cogl-pipeline-layer.c │ ├── cogl-pipeline-private.h │ ├── cogl-pipeline-snippet-private.h │ ├── cogl-pipeline-snippet.c │ ├── cogl-pipeline-state-private.h │ ├── cogl-pipeline-state.c │ ├── cogl-pipeline-state.h │ ├── cogl-pipeline.c │ ├── cogl-pipeline.h │ ├── cogl-pixel-buffer-private.h │ ├── cogl-pixel-buffer.c │ ├── cogl-pixel-buffer.h │ ├── cogl-pixel-format.c │ ├── cogl-pixel-format.h │ ├── cogl-point-in-poly-private.h │ ├── cogl-point-in-poly.c │ ├── cogl-poll-private.h │ ├── cogl-poll.c │ ├── cogl-poll.h │ ├── cogl-primitive-private.h │ ├── cogl-primitive-texture.c │ ├── cogl-primitive-texture.h │ ├── cogl-primitive.c │ ├── cogl-primitive.h │ ├── cogl-primitives-private.h │ ├── cogl-primitives.c │ ├── cogl-private.h │ ├── cogl-profile.c │ ├── cogl-profile.h │ ├── cogl-rectangle-map.c │ ├── cogl-rectangle-map.h │ ├── cogl-renderer-private.h │ ├── cogl-renderer.c │ ├── cogl-renderer.h │ ├── cogl-sampler-cache-private.h │ ├── cogl-sampler-cache.c │ ├── cogl-scanout.c │ ├── cogl-scanout.h │ ├── cogl-snippet-private.h │ ├── cogl-snippet.c │ ├── cogl-snippet.h │ ├── cogl-spans.c │ ├── cogl-spans.h │ ├── cogl-sub-texture-private.h │ ├── cogl-sub-texture.c │ ├── cogl-sub-texture.h │ ├── cogl-swap-chain-private.h │ ├── cogl-swap-chain.c │ ├── cogl-swap-chain.h │ ├── cogl-texture-2d-private.h │ ├── cogl-texture-2d-sliced-private.h │ ├── cogl-texture-2d-sliced.c │ ├── cogl-texture-2d-sliced.h │ ├── cogl-texture-2d.c │ ├── cogl-texture-2d.h │ ├── cogl-texture-driver.h │ ├── cogl-texture-private.h │ ├── cogl-texture.c │ ├── cogl-texture.h │ ├── cogl-trace.c │ ├── cogl-trace.h │ ├── cogl-types.h │ ├── cogl-util.c │ ├── cogl-util.h │ ├── cogl-x11-onscreen.c │ ├── cogl-x11-onscreen.h │ ├── cogl-x11-renderer-private.h │ ├── cogl-xlib-private.h │ ├── cogl-xlib-renderer-private.h │ ├── cogl-xlib-renderer.c │ ├── cogl-xlib-renderer.h │ ├── cogl-xlib.h │ ├── cogl.c │ ├── cogl.h │ ├── cogl1-context.h │ ├── deprecated │ │ ├── cogl-clutter.c │ │ ├── cogl-clutter.h │ │ ├── cogl-program-private.h │ │ ├── cogl-program.c │ │ ├── cogl-shader-private.h │ │ ├── cogl-shader.c │ │ ├── cogl-shader.h │ │ └── cogl-type-casts.h │ ├── driver │ │ ├── gl │ │ │ ├── cogl-attribute-gl-private.h │ │ │ ├── cogl-attribute-gl.c │ │ │ ├── cogl-bitmap-gl-private.h │ │ │ ├── cogl-bitmap-gl.c │ │ │ ├── cogl-buffer-gl-private.h │ │ │ ├── cogl-buffer-gl.c │ │ │ ├── cogl-clip-stack-gl-private.h │ │ │ ├── cogl-clip-stack-gl.c │ │ │ ├── cogl-framebuffer-gl-private.h │ │ │ ├── cogl-framebuffer-gl.c │ │ │ ├── cogl-gl-framebuffer-back.c │ │ │ ├── cogl-gl-framebuffer-back.h │ │ │ ├── cogl-gl-framebuffer-fbo.c │ │ │ ├── cogl-gl-framebuffer-fbo.h │ │ │ ├── cogl-pipeline-fragend-glsl-private.h │ │ │ ├── cogl-pipeline-fragend-glsl.c │ │ │ ├── cogl-pipeline-opengl-private.h │ │ │ ├── cogl-pipeline-opengl.c │ │ │ ├── cogl-pipeline-progend-glsl-private.h │ │ │ ├── cogl-pipeline-progend-glsl.c │ │ │ ├── cogl-pipeline-vertend-glsl-private.h │ │ │ ├── cogl-pipeline-vertend-glsl.c │ │ │ ├── cogl-texture-2d-gl-private.h │ │ │ ├── cogl-texture-2d-gl.c │ │ │ ├── cogl-texture-gl-private.h │ │ │ ├── cogl-texture-gl.c │ │ │ ├── cogl-util-gl-private.h │ │ │ ├── cogl-util-gl.c │ │ │ ├── gl │ │ │ │ ├── cogl-driver-gl.c │ │ │ │ └── cogl-texture-driver-gl.c │ │ │ └── gles │ │ │ │ ├── cogl-driver-gles.c │ │ │ │ └── cogl-texture-driver-gles.c │ │ └── nop │ │ │ ├── cogl-attribute-nop-private.h │ │ │ ├── cogl-attribute-nop.c │ │ │ ├── cogl-clip-stack-nop-private.h │ │ │ ├── cogl-clip-stack-nop.c │ │ │ ├── cogl-driver-nop.c │ │ │ ├── cogl-nop-framebuffer.c │ │ │ ├── cogl-nop-framebuffer.h │ │ │ ├── cogl-texture-2d-nop-private.h │ │ │ └── cogl-texture-2d-nop.c │ ├── gl-prototypes │ │ ├── cogl-all-functions.h │ │ ├── cogl-core-functions.h │ │ ├── cogl-gles2-functions.h │ │ ├── cogl-glsl-functions.h │ │ ├── cogl-in-gles-core-functions.h │ │ └── cogl-in-gles2-core-functions.h │ ├── meson.build │ ├── mutter-cogl.pc.in │ └── winsys │ │ ├── cogl-glx-display-private.h │ │ ├── cogl-glx-renderer-private.h │ │ ├── cogl-glx.h │ │ ├── cogl-onscreen-egl.c │ │ ├── cogl-onscreen-egl.h │ │ ├── cogl-onscreen-glx.c │ │ ├── cogl-onscreen-glx.h │ │ ├── cogl-onscreen-xlib.c │ │ ├── cogl-onscreen-xlib.h │ │ ├── cogl-texture-pixmap-x11-private.h │ │ ├── cogl-texture-pixmap-x11.c │ │ ├── cogl-texture-pixmap-x11.h │ │ ├── cogl-winsys-egl-feature-functions.h │ │ ├── cogl-winsys-egl-private.h │ │ ├── cogl-winsys-egl-x11-private.h │ │ ├── cogl-winsys-egl-x11.c │ │ ├── cogl-winsys-egl.c │ │ ├── cogl-winsys-glx-feature-functions.h │ │ ├── cogl-winsys-glx-private.h │ │ ├── cogl-winsys-glx.c │ │ ├── cogl-winsys-private.h │ │ └── cogl-winsys.c ├── config-custom.h └── meson.build ├── config.h.meson ├── data ├── 50-mutter-navigation.xml ├── 50-mutter-system.xml ├── 50-mutter-wayland.xml ├── 50-mutter-windows.xml ├── 61-magpie.rules ├── 61-mutter.rules ├── dbus-interfaces │ ├── meson.build │ ├── org.freedesktop.RealtimeKit1.xml │ ├── org.freedesktop.login1.xml │ ├── org.gnome.Mutter.DisplayConfig.xml │ ├── org.gnome.Mutter.IdleMonitor.xml │ ├── org.gnome.Mutter.InputMapping.xml │ ├── org.gnome.Mutter.RemoteDesktop.xml │ ├── org.gnome.Mutter.ScreenCast.xml │ ├── org.gnome.Mutter.X11.xml │ ├── org.gnome.SettingsDaemon.Color.xml │ └── org.gnome.SettingsDaemon.Power.Screen.xml ├── default_icon.png ├── magpie-schemas.convert ├── magpie.desktop.in ├── meson.build ├── mutter-schemas.convert ├── org.gnome.mutter.gschema.xml.in └── org.gnome.mutter.wayland.gschema.xml.in ├── doc ├── code-overview.txt ├── compositor-control.txt ├── dialogs.txt ├── how-constraints-works.txt ├── how-to-get-focus-right.txt ├── man │ ├── magpie-restart-helper.1 │ ├── magpie.1 │ └── meson.build ├── monitor-configuration.md ├── rationales.txt ├── reference │ ├── cally │ │ ├── cally.toml.in │ │ ├── meson.build │ │ └── urlmap.js │ ├── clutter │ │ ├── clutter.toml.in │ │ ├── meson.build │ │ └── urlmap.js │ ├── cogl-pango │ │ ├── cogl-pango.toml.in │ │ ├── meson.build │ │ └── urlmap.js │ ├── cogl │ │ ├── cogl.toml.in │ │ ├── meson.build │ │ └── urlmap.js │ ├── meson.build │ └── meta │ │ ├── meson.build │ │ ├── meta.toml.in │ │ └── urlmap.js └── strut-and-related-updating.txt ├── meson.build ├── meson_options.txt ├── mutter.doap ├── po ├── LINGUAS ├── POTFILES.in ├── POTFILES.skip ├── ab.po ├── am.po ├── ar.po ├── as.po ├── ast.po ├── az.po ├── be.po ├── be@latin.po ├── bg.po ├── bn.po ├── bn_IN.po ├── br.po ├── bs.po ├── ca.po ├── ca@valencia.po ├── cs.po ├── cy.po ├── da.po ├── de.po ├── dz.po ├── el.po ├── en_CA.po ├── en_GB.po ├── eo.po ├── es.po ├── et.po ├── eu.po ├── fa.po ├── fi.po ├── fr.po ├── fur.po ├── ga.po ├── gd.po ├── gl.po ├── gu.po ├── ha.po ├── he.po ├── hi.po ├── hr.po ├── hu.po ├── hy.po ├── id.po ├── ig.po ├── is.po ├── it.po ├── ja.po ├── ka.po ├── kk.po ├── kn.po ├── ko.po ├── ku.po ├── la.po ├── lt.po ├── lv.po ├── mai.po ├── meson.build ├── mg.po ├── mk.po ├── ml.po ├── mn.po ├── mr.po ├── ms.po ├── nb.po ├── nds.po ├── ne.po ├── nl.po ├── nn.po ├── oc.po ├── or.po ├── pa.po ├── pl.po ├── pt.po ├── pt_BR.po ├── ro.po ├── ru.po ├── rw.po ├── si.po ├── sk.po ├── sl.po ├── sq.po ├── sr.po ├── sr@latin.po ├── sv.po ├── ta.po ├── te.po ├── tg.po ├── th.po ├── tk.po ├── tr.po ├── ug.po ├── uk.po ├── vi.po ├── wa.po ├── xh.po ├── yo.po ├── zh_CN.po ├── zh_HK.po └── zh_TW.po ├── scripts ├── mesonPostInstall.sh └── mkRelease.sh ├── src ├── backends │ ├── edid-parse.c │ ├── edid.h │ ├── gsm-inhibitor-flag.h │ ├── meta-backend-private.h │ ├── meta-backend-types.h │ ├── meta-backend.c │ ├── meta-barrier-private.h │ ├── meta-barrier.c │ ├── meta-color-device.c │ ├── meta-color-device.h │ ├── meta-color-manager-private.h │ ├── meta-color-manager.c │ ├── meta-color-manager.h │ ├── meta-color-profile.c │ ├── meta-color-profile.h │ ├── meta-color-store.c │ ├── meta-color-store.h │ ├── meta-crtc-mode.c │ ├── meta-crtc-mode.h │ ├── meta-crtc.c │ ├── meta-crtc.h │ ├── meta-cursor-renderer.c │ ├── meta-cursor-renderer.h │ ├── meta-cursor-sprite-xcursor.c │ ├── meta-cursor-sprite-xcursor.h │ ├── meta-cursor-tracker-private.h │ ├── meta-cursor-tracker.c │ ├── meta-cursor.c │ ├── meta-cursor.h │ ├── meta-dbus-session-watcher.c │ ├── meta-dbus-session-watcher.h │ ├── meta-display-config-shared.h │ ├── meta-dnd-private.h │ ├── meta-egl-ext.h │ ├── meta-egl.c │ ├── meta-egl.h │ ├── meta-gles3-table.h │ ├── meta-gles3.c │ ├── meta-gles3.h │ ├── meta-gpu.c │ ├── meta-gpu.h │ ├── meta-idle-manager.c │ ├── meta-idle-manager.h │ ├── meta-idle-monitor-private.h │ ├── meta-idle-monitor.c │ ├── meta-input-device-private.h │ ├── meta-input-device.c │ ├── meta-input-mapper-private.h │ ├── meta-input-mapper.c │ ├── meta-input-settings-dummy.c │ ├── meta-input-settings-dummy.h │ ├── meta-input-settings-private.h │ ├── meta-input-settings.c │ ├── meta-keymap-utils.c │ ├── meta-keymap-utils.h │ ├── meta-logical-monitor.c │ ├── meta-logical-monitor.h │ ├── meta-monitor-config-manager.c │ ├── meta-monitor-config-manager.h │ ├── meta-monitor-config-migration.c │ ├── meta-monitor-config-migration.h │ ├── meta-monitor-config-store.c │ ├── meta-monitor-config-store.h │ ├── meta-monitor-manager-dummy.c │ ├── meta-monitor-manager-dummy.h │ ├── meta-monitor-manager-private.h │ ├── meta-monitor-manager.c │ ├── meta-monitor-transform.c │ ├── meta-monitor-transform.h │ ├── meta-monitor.c │ ├── meta-monitor.h │ ├── meta-orientation-manager.c │ ├── meta-orientation-manager.h │ ├── meta-output.c │ ├── meta-output.h │ ├── meta-pointer-constraint.c │ ├── meta-pointer-constraint.h │ ├── meta-remote-access-controller-private.h │ ├── meta-remote-access-controller.c │ ├── meta-remote-desktop-session.c │ ├── meta-remote-desktop-session.h │ ├── meta-remote-desktop.c │ ├── meta-remote-desktop.h │ ├── meta-renderer-view.c │ ├── meta-renderer-view.h │ ├── meta-renderer.c │ ├── meta-renderer.h │ ├── meta-screen-cast-area-stream-src.c │ ├── meta-screen-cast-area-stream-src.h │ ├── meta-screen-cast-area-stream.c │ ├── meta-screen-cast-area-stream.h │ ├── meta-screen-cast-monitor-stream-src.c │ ├── meta-screen-cast-monitor-stream-src.h │ ├── meta-screen-cast-monitor-stream.c │ ├── meta-screen-cast-monitor-stream.h │ ├── meta-screen-cast-session.c │ ├── meta-screen-cast-session.h │ ├── meta-screen-cast-stream-src.c │ ├── meta-screen-cast-stream-src.h │ ├── meta-screen-cast-stream.c │ ├── meta-screen-cast-stream.h │ ├── meta-screen-cast-virtual-stream-src.c │ ├── meta-screen-cast-virtual-stream-src.h │ ├── meta-screen-cast-virtual-stream.c │ ├── meta-screen-cast-virtual-stream.h │ ├── meta-screen-cast-window-stream-src.c │ ├── meta-screen-cast-window-stream-src.h │ ├── meta-screen-cast-window-stream.c │ ├── meta-screen-cast-window-stream.h │ ├── meta-screen-cast-window.c │ ├── meta-screen-cast-window.h │ ├── meta-screen-cast.c │ ├── meta-screen-cast.h │ ├── meta-settings-private.h │ ├── meta-settings.c │ ├── meta-stage-impl-private.h │ ├── meta-stage-impl.c │ ├── meta-stage-private.h │ ├── meta-stage-view-private.h │ ├── meta-stage-view.c │ ├── meta-stage.c │ ├── meta-viewport-info.c │ ├── meta-viewport-info.h │ ├── meta-virtual-monitor.c │ ├── meta-virtual-monitor.h │ ├── native │ │ ├── dbus-utils.c │ │ ├── dbus-utils.h │ │ ├── gen-default-modes.py │ │ ├── meta-backend-native-private.h │ │ ├── meta-backend-native-types.h │ │ ├── meta-backend-native.c │ │ ├── meta-backend-native.h │ │ ├── meta-barrier-native.c │ │ ├── meta-barrier-native.h │ │ ├── meta-clutter-backend-native.c │ │ ├── meta-clutter-backend-native.h │ │ ├── meta-cogl-utils.c │ │ ├── meta-cogl-utils.h │ │ ├── meta-crtc-kms.c │ │ ├── meta-crtc-kms.h │ │ ├── meta-crtc-mode-kms.c │ │ ├── meta-crtc-mode-kms.h │ │ ├── meta-crtc-mode-virtual.c │ │ ├── meta-crtc-mode-virtual.h │ │ ├── meta-crtc-native.c │ │ ├── meta-crtc-native.h │ │ ├── meta-crtc-virtual.c │ │ ├── meta-crtc-virtual.h │ │ ├── meta-cursor-renderer-native.c │ │ ├── meta-cursor-renderer-native.h │ │ ├── meta-device-pool-private.h │ │ ├── meta-device-pool.c │ │ ├── meta-device-pool.h │ │ ├── meta-drm-buffer-dumb.c │ │ ├── meta-drm-buffer-dumb.h │ │ ├── meta-drm-buffer-gbm.c │ │ ├── meta-drm-buffer-gbm.h │ │ ├── meta-drm-buffer-import.c │ │ ├── meta-drm-buffer-import.h │ │ ├── meta-drm-buffer-private.h │ │ ├── meta-drm-buffer.c │ │ ├── meta-drm-buffer.h │ │ ├── meta-gpu-kms.c │ │ ├── meta-gpu-kms.h │ │ ├── meta-input-device-native.c │ │ ├── meta-input-device-native.h │ │ ├── meta-input-device-tool-native.c │ │ ├── meta-input-device-tool-native.h │ │ ├── meta-input-settings-native.c │ │ ├── meta-input-settings-native.h │ │ ├── meta-input-thread.h │ │ ├── meta-keymap-native.c │ │ ├── meta-keymap-native.h │ │ ├── meta-kms-connector-private.h │ │ ├── meta-kms-connector.c │ │ ├── meta-kms-connector.h │ │ ├── meta-kms-crtc-private.h │ │ ├── meta-kms-crtc.c │ │ ├── meta-kms-crtc.h │ │ ├── meta-kms-device-private.h │ │ ├── meta-kms-device.c │ │ ├── meta-kms-device.h │ │ ├── meta-kms-impl-device-atomic.c │ │ ├── meta-kms-impl-device-atomic.h │ │ ├── meta-kms-impl-device-dummy.c │ │ ├── meta-kms-impl-device-dummy.h │ │ ├── meta-kms-impl-device-simple.c │ │ ├── meta-kms-impl-device-simple.h │ │ ├── meta-kms-impl-device.c │ │ ├── meta-kms-impl-device.h │ │ ├── meta-kms-impl.c │ │ ├── meta-kms-impl.h │ │ ├── meta-kms-mode-private.h │ │ ├── meta-kms-mode.c │ │ ├── meta-kms-mode.h │ │ ├── meta-kms-page-flip-private.h │ │ ├── meta-kms-page-flip.c │ │ ├── meta-kms-plane-private.h │ │ ├── meta-kms-plane.c │ │ ├── meta-kms-plane.h │ │ ├── meta-kms-private.h │ │ ├── meta-kms-types.h │ │ ├── meta-kms-update-private.h │ │ ├── meta-kms-update.c │ │ ├── meta-kms-update.h │ │ ├── meta-kms-utils.c │ │ ├── meta-kms-utils.h │ │ ├── meta-kms.c │ │ ├── meta-kms.h │ │ ├── meta-launcher.c │ │ ├── meta-launcher.h │ │ ├── meta-monitor-manager-native.c │ │ ├── meta-monitor-manager-native.h │ │ ├── meta-onscreen-native.c │ │ ├── meta-onscreen-native.h │ │ ├── meta-output-kms.c │ │ ├── meta-output-kms.h │ │ ├── meta-output-native.c │ │ ├── meta-output-native.h │ │ ├── meta-output-virtual.c │ │ ├── meta-output-virtual.h │ │ ├── meta-pointer-constraint-native.c │ │ ├── meta-pointer-constraint-native.h │ │ ├── meta-render-device-egl-stream.c │ │ ├── meta-render-device-egl-stream.h │ │ ├── meta-render-device-gbm.c │ │ ├── meta-render-device-gbm.h │ │ ├── meta-render-device-private.h │ │ ├── meta-render-device-surfaceless.c │ │ ├── meta-render-device-surfaceless.h │ │ ├── meta-render-device.c │ │ ├── meta-render-device.h │ │ ├── meta-renderer-native-gles3.c │ │ ├── meta-renderer-native-gles3.h │ │ ├── meta-renderer-native-private.h │ │ ├── meta-renderer-native.c │ │ ├── meta-renderer-native.h │ │ ├── meta-seat-impl.c │ │ ├── meta-seat-impl.h │ │ ├── meta-seat-native.c │ │ ├── meta-seat-native.h │ │ ├── meta-stage-native.c │ │ ├── meta-stage-native.h │ │ ├── meta-udev.c │ │ ├── meta-udev.h │ │ ├── meta-virtual-input-device-native.c │ │ ├── meta-virtual-input-device-native.h │ │ ├── meta-virtual-monitor-native.c │ │ ├── meta-virtual-monitor-native.h │ │ ├── meta-xkb-utils.c │ │ └── meta-xkb-utils.h │ └── x11 │ │ ├── cm │ │ ├── meta-backend-x11-cm.c │ │ ├── meta-backend-x11-cm.h │ │ ├── meta-cursor-sprite-xfixes.c │ │ ├── meta-cursor-sprite-xfixes.h │ │ ├── meta-renderer-x11-cm.c │ │ └── meta-renderer-x11-cm.h │ │ ├── meta-backend-x11-types.h │ │ ├── meta-backend-x11.c │ │ ├── meta-backend-x11.h │ │ ├── meta-barrier-x11.c │ │ ├── meta-barrier-x11.h │ │ ├── meta-clutter-backend-x11.c │ │ ├── meta-clutter-backend-x11.h │ │ ├── meta-color-manager-x11.c │ │ ├── meta-color-manager-x11.h │ │ ├── meta-crtc-xrandr.c │ │ ├── meta-crtc-xrandr.h │ │ ├── meta-cursor-renderer-x11.c │ │ ├── meta-cursor-renderer-x11.h │ │ ├── meta-cursor-tracker-x11.c │ │ ├── meta-cursor-tracker-x11.h │ │ ├── meta-event-x11.c │ │ ├── meta-event-x11.h │ │ ├── meta-gpu-xrandr.c │ │ ├── meta-gpu-xrandr.h │ │ ├── meta-input-device-tool-x11.c │ │ ├── meta-input-device-tool-x11.h │ │ ├── meta-input-device-x11.c │ │ ├── meta-input-device-x11.h │ │ ├── meta-input-settings-x11.c │ │ ├── meta-input-settings-x11.h │ │ ├── meta-keymap-x11.c │ │ ├── meta-keymap-x11.h │ │ ├── meta-monitor-manager-xrandr.c │ │ ├── meta-monitor-manager-xrandr.h │ │ ├── meta-output-xrandr.c │ │ ├── meta-output-xrandr.h │ │ ├── meta-renderer-x11.c │ │ ├── meta-renderer-x11.h │ │ ├── meta-seat-x11.c │ │ ├── meta-seat-x11.h │ │ ├── meta-stage-x11.c │ │ ├── meta-stage-x11.h │ │ ├── meta-virtual-input-device-x11.c │ │ ├── meta-virtual-input-device-x11.h │ │ ├── meta-xkb-a11y-x11.c │ │ ├── meta-xkb-a11y-x11.h │ │ └── nested │ │ ├── meta-backend-x11-nested.c │ │ ├── meta-backend-x11-nested.h │ │ ├── meta-cursor-renderer-x11-nested.c │ │ ├── meta-cursor-renderer-x11-nested.h │ │ ├── meta-renderer-x11-nested.c │ │ ├── meta-renderer-x11-nested.h │ │ ├── meta-stage-x11-nested.c │ │ └── meta-stage-x11-nested.h ├── compositor │ ├── README │ ├── clutter-utils.c │ ├── clutter-utils.h │ ├── cogl-utils.c │ ├── cogl-utils.h │ ├── compositor-private.h │ ├── compositor.c │ ├── meta-background-actor-private.h │ ├── meta-background-actor.c │ ├── meta-background-content-private.h │ ├── meta-background-content.c │ ├── meta-background-group.c │ ├── meta-background-image.c │ ├── meta-background-private.h │ ├── meta-background.c │ ├── meta-compositor-native.c │ ├── meta-compositor-native.h │ ├── meta-compositor-server.c │ ├── meta-compositor-server.h │ ├── meta-compositor-view-native.c │ ├── meta-compositor-view-native.h │ ├── meta-compositor-view.c │ ├── meta-compositor-view.h │ ├── meta-compositor-x11.c │ ├── meta-compositor-x11.h │ ├── meta-cullable.c │ ├── meta-cullable.h │ ├── meta-dnd-actor-private.h │ ├── meta-dnd-actor.c │ ├── meta-dnd.c │ ├── meta-feedback-actor-private.h │ ├── meta-feedback-actor.c │ ├── meta-later-private.h │ ├── meta-later.c │ ├── meta-module.c │ ├── meta-module.h │ ├── meta-plugin-manager.c │ ├── meta-plugin-manager.h │ ├── meta-plugin.c │ ├── meta-shadow-factory.c │ ├── meta-shaped-texture-private.h │ ├── meta-shaped-texture.c │ ├── meta-surface-actor-wayland.c │ ├── meta-surface-actor-wayland.h │ ├── meta-surface-actor-x11.c │ ├── meta-surface-actor-x11.h │ ├── meta-surface-actor.c │ ├── meta-surface-actor.h │ ├── meta-sync-ring.c │ ├── meta-sync-ring.h │ ├── meta-texture-mipmap.c │ ├── meta-texture-mipmap.h │ ├── meta-window-actor-private.h │ ├── meta-window-actor-wayland.c │ ├── meta-window-actor-wayland.h │ ├── meta-window-actor-x11.c │ ├── meta-window-actor-x11.h │ ├── meta-window-actor.c │ ├── meta-window-group-private.h │ ├── meta-window-group.c │ ├── meta-window-shape.c │ ├── plugins │ │ ├── default.c │ │ └── meson.build │ ├── region-utils.c │ └── region-utils.h ├── core │ ├── bell.c │ ├── bell.h │ ├── boxes-private.h │ ├── boxes.c │ ├── constraints.c │ ├── constraints.h │ ├── delete.c │ ├── display-private.h │ ├── display.c │ ├── edge-resistance.c │ ├── edge-resistance.h │ ├── events.c │ ├── events.h │ ├── frame.c │ ├── frame.h │ ├── keybindings-private.h │ ├── keybindings.c │ ├── meta-accel-parse.c │ ├── meta-accel-parse.h │ ├── meta-anonymous-file.c │ ├── meta-anonymous-file.h │ ├── meta-border.c │ ├── meta-border.h │ ├── meta-clipboard-manager.c │ ├── meta-clipboard-manager.h │ ├── meta-close-dialog.c │ ├── meta-context-main.c │ ├── meta-context-main.h │ ├── meta-context-private.h │ ├── meta-context.c │ ├── meta-fraction.c │ ├── meta-fraction.h │ ├── meta-gesture-tracker-private.h │ ├── meta-gesture-tracker.c │ ├── meta-inhibit-shortcuts-dialog-default-private.h │ ├── meta-inhibit-shortcuts-dialog-default.c │ ├── meta-inhibit-shortcuts-dialog.c │ ├── meta-launch-context.c │ ├── meta-pad-action-mapper.c │ ├── meta-pad-action-mapper.h │ ├── meta-private-enums.h │ ├── meta-profiler.c │ ├── meta-profiler.h │ ├── meta-selection-private.h │ ├── meta-selection-source-memory.c │ ├── meta-selection-source-remote.c │ ├── meta-selection-source-remote.h │ ├── meta-selection-source.c │ ├── meta-selection.c │ ├── meta-sound-player.c │ ├── meta-workspace-manager-private.h │ ├── meta-workspace-manager.c │ ├── mutter.c │ ├── place.c │ ├── place.h │ ├── prefs-private.h │ ├── prefs.c │ ├── restart-helper.c │ ├── restart.c │ ├── stack-tracker.c │ ├── stack-tracker.h │ ├── stack.c │ ├── stack.h │ ├── startup-notification-private.h │ ├── startup-notification.c │ ├── util-private.h │ ├── util.c │ ├── window-private.h │ ├── window.c │ ├── workspace-private.h │ └── workspace.c ├── libmutter.pc.in ├── meson.build ├── meta-private-enum-types.c.in ├── meta-private-enum-types.h.in ├── meta │ ├── barrier.h │ ├── boxes.h │ ├── common.h │ ├── compositor-mutter.h │ ├── compositor.h │ ├── display.h │ ├── group.h │ ├── keybindings.h │ ├── main.h │ ├── meson.build │ ├── meta-backend.h │ ├── meta-background-actor.h │ ├── meta-background-content.h │ ├── meta-background-group.h │ ├── meta-background-image.h │ ├── meta-background.h │ ├── meta-close-dialog.h │ ├── meta-context.h │ ├── meta-cursor-tracker.h │ ├── meta-dnd.h │ ├── meta-enum-types.c.in │ ├── meta-enum-types.h.in │ ├── meta-enums.h │ ├── meta-idle-monitor.h │ ├── meta-inhibit-shortcuts-dialog.h │ ├── meta-later.h │ ├── meta-launch-context.h │ ├── meta-monitor-manager.h │ ├── meta-plugin.h │ ├── meta-remote-access-controller.h │ ├── meta-selection-source-memory.h │ ├── meta-selection-source.h │ ├── meta-selection.h │ ├── meta-settings.h │ ├── meta-shadow-factory.h │ ├── meta-shaped-texture.h │ ├── meta-sound-player.h │ ├── meta-stage.h │ ├── meta-startup-notification.h │ ├── meta-wayland-client.h │ ├── meta-window-actor.h │ ├── meta-window-group.h │ ├── meta-window-shape.h │ ├── meta-workspace-manager.h │ ├── meta-x11-display.h │ ├── meta-x11-errors.h │ ├── prefs.h │ ├── theme.h │ ├── types.h │ ├── util.h │ ├── window.h │ └── workspace.h ├── tests │ ├── README │ ├── anonymous-file.c │ ├── boxes-tests.c │ ├── boxes-tests.h │ ├── clutter-test-utils.c │ ├── clutter-test-utils.h │ ├── clutter │ │ ├── README │ │ ├── accessibility │ │ │ ├── cally-atkcomponent-example.c │ │ │ ├── cally-atkeditabletext-example.c │ │ │ ├── cally-atkevents-example.c │ │ │ ├── cally-atktext-example.c │ │ │ ├── cally-clone-example.c │ │ │ ├── cally-examples-util.c │ │ │ ├── cally-examples-util.h │ │ │ └── meson.build │ │ ├── clutter-1.0.suppressions │ │ ├── conform │ │ │ ├── actor-clone.c │ │ │ ├── actor-color-state.c │ │ │ ├── actor-destroy.c │ │ │ ├── actor-event-hold.c │ │ │ ├── actor-graph.c │ │ │ ├── actor-invariants.c │ │ │ ├── actor-iter.c │ │ │ ├── actor-layout.c │ │ │ ├── actor-meta.c │ │ │ ├── actor-offscreen-redirect.c │ │ │ ├── actor-paint-opacity.c │ │ │ ├── actor-pick.c │ │ │ ├── actor-pivot-point.c │ │ │ ├── actor-shader-effect.c │ │ │ ├── actor-size.c │ │ │ ├── binding-pool.c │ │ │ ├── cally-text.c │ │ │ ├── color.c │ │ │ ├── frame-clock-timeline.c │ │ │ ├── frame-clock.c │ │ │ ├── grab.c │ │ │ ├── interval.c │ │ │ ├── meson.build │ │ │ ├── path.c │ │ │ ├── script-parser.c │ │ │ ├── scripts │ │ │ │ ├── test-script-child.json │ │ │ │ ├── test-script-interval.json │ │ │ │ ├── test-script-margin.json │ │ │ │ ├── test-script-model.json │ │ │ │ ├── test-script-named-object.json │ │ │ │ ├── test-script-object-property.json │ │ │ │ ├── test-script-single.json │ │ │ │ └── test-script-timeline-markers.json │ │ │ ├── text-cache.c │ │ │ ├── text.c │ │ │ ├── texture-fbo.c │ │ │ ├── timeline-interpolate.c │ │ │ ├── timeline-progress.c │ │ │ ├── timeline-rewind.c │ │ │ ├── timeline.c │ │ │ └── units.c │ │ ├── interactive │ │ │ ├── light0.png │ │ │ ├── meson.build │ │ │ ├── meson │ │ │ │ └── gen-test-unit-names.sh │ │ │ ├── redhand.png │ │ │ ├── redhand_alpha.png │ │ │ ├── test-actors.c │ │ │ ├── test-animation.c │ │ │ ├── test-bind-constraint.c │ │ │ ├── test-binding-pool.c │ │ │ ├── test-cairo-clock.c │ │ │ ├── test-cairo-flowers.c │ │ │ ├── test-cogl-multitexture.c │ │ │ ├── test-cogl-offscreen.c │ │ │ ├── test-cogl-point-sprites.c │ │ │ ├── test-cogl-shader-glsl.c │ │ │ ├── test-cogl-tex-polygon.c │ │ │ ├── test-cogl-tex-tile.c │ │ │ ├── test-content.c │ │ │ ├── test-devices.c │ │ │ ├── test-easing.c │ │ │ ├── test-events.c │ │ │ ├── test-grab.c │ │ │ ├── test-image.c │ │ │ ├── test-keyframe-transition.c │ │ │ ├── test-layout.c │ │ │ ├── test-main.c │ │ │ ├── test-path-constraint.c │ │ │ ├── test-rotate-zoom.c │ │ │ ├── test-script.c │ │ │ ├── test-script.json │ │ │ ├── test-shader-effects.c │ │ │ ├── test-stage-sizing.c │ │ │ ├── test-state-script.c │ │ │ ├── test-swipe-action.c │ │ │ ├── test-text-field.c │ │ │ ├── test-text.c │ │ │ ├── test-touch-events.c │ │ │ └── wrapper.sh.in │ │ ├── meson.build │ │ ├── micro-bench │ │ │ ├── meson.build │ │ │ ├── test-cogl-perf.c │ │ │ ├── test-picking.c │ │ │ ├── test-random-text.c │ │ │ ├── test-text-perf.c │ │ │ └── test-text.c │ │ ├── performance │ │ │ ├── create-report.rb │ │ │ ├── joblist │ │ │ ├── makejobs.rb │ │ │ ├── meson.build │ │ │ ├── test-common.h │ │ │ ├── test-picking.c │ │ │ └── test-text-perf.c │ │ └── test-utils.h │ ├── cogl-test-utils.c │ ├── cogl-test-utils.h │ ├── cogl │ │ ├── conform │ │ │ ├── meson.build │ │ │ ├── test-alpha-test.c │ │ │ ├── test-alpha-textures.c │ │ │ ├── test-atlas-migration.c │ │ │ ├── test-backface-culling.c │ │ │ ├── test-blend-strings.c │ │ │ ├── test-blend.c │ │ │ ├── test-color-hsl.c │ │ │ ├── test-copy-replace-texture.c │ │ │ ├── test-custom-attributes.c │ │ │ ├── test-depth-test.c │ │ │ ├── test-fence.c │ │ │ ├── test-framebuffer-get-bits.c │ │ │ ├── test-journal.c │ │ │ ├── test-just-vertex-shader.c │ │ │ ├── test-layer-remove.c │ │ │ ├── test-map-buffer-range.c │ │ │ ├── test-multitexture.c │ │ │ ├── test-no-gl-header.c │ │ │ ├── test-npot-texture.c │ │ │ ├── test-object.c │ │ │ ├── test-offscreen.c │ │ │ ├── test-pipeline-cache-unrefs-texture.c │ │ │ ├── test-pipeline-shader-state.c │ │ │ ├── test-pipeline-uniforms.c │ │ │ ├── test-pipeline-user-matrix.c │ │ │ ├── test-pixel-buffer.c │ │ │ ├── test-point-size-attribute.c │ │ │ ├── test-point-size.c │ │ │ ├── test-point-sprite-known-failure.c │ │ │ ├── test-point-sprite.c │ │ │ ├── test-premult.c │ │ │ ├── test-primitive-and-journal.c │ │ │ ├── test-primitive.c │ │ │ ├── test-read-texture-formats.c │ │ │ ├── test-readpixels.c │ │ │ ├── test-snippets.c │ │ │ ├── test-sparse-pipeline.c │ │ │ ├── test-sub-texture.c │ │ │ ├── test-texture-get-set-data.c │ │ │ ├── test-texture-mipmaps.c │ │ │ ├── test-texture-no-allocate.c │ │ │ ├── test-texture-pixmap-x11.c │ │ │ ├── test-texture-rg.c │ │ │ ├── test-viewport.c │ │ │ ├── test-wrap-modes.c │ │ │ └── test-write-texture-formats.c │ │ ├── meson.build │ │ └── unit │ │ │ ├── meson.build │ │ │ ├── test-bitmask.c │ │ │ ├── test-pipeline-cache.c │ │ │ ├── test-pipeline-glsl.c │ │ │ ├── test-pipeline-state-known-failure.c │ │ │ ├── test-pipeline-state.c │ │ │ └── test-pipeline-vertend-glsl.c │ ├── color-management-profile-conflict-test.c │ ├── color-management-tests.c │ ├── dbusmock-templates │ │ ├── colord.py │ │ ├── gsd-color.py │ │ ├── iio-sensors-proxy.py │ │ ├── localed.py │ │ └── meta-mocks-manager.py │ ├── edid-tests.c │ ├── headless-start-test.c │ ├── icc-profiles │ │ ├── sRGB.icc │ │ └── vx239-calibrated.icc │ ├── kms-utils-unit-tests.c │ ├── kvm │ │ ├── README.md │ │ ├── build-linux.sh │ │ ├── kernel-version.txt │ │ ├── meson.build │ │ ├── run-kvm-test.sh │ │ └── virtme-run.sh │ ├── meson.build │ ├── meta-backend-test.c │ ├── meta-backend-test.h │ ├── meta-context-test.c │ ├── meta-dbus-runner.py │ ├── meta-gpu-test.c │ ├── meta-gpu-test.h │ ├── meta-kms-test-utils.c │ ├── meta-kms-test-utils.h │ ├── meta-monitor-manager-test.c │ ├── meta-monitor-manager-test.h │ ├── meta-monitor-test-utils.c │ ├── meta-monitor-test-utils.h │ ├── meta-ref-test.c │ ├── meta-ref-test.h │ ├── meta-sensors-proxy-mock.c │ ├── meta-sensors-proxy-mock.h │ ├── meta-test-utils-private.h │ ├── meta-test-utils.c │ ├── meta-test-utils.h │ ├── meta-test │ │ ├── meson.build │ │ └── meta-context-test.h │ ├── meta-wayland-test-driver.c │ ├── meta-wayland-test-driver.h │ ├── meta-wayland-test-utils.c │ ├── meta-wayland-test-utils.h │ ├── migration │ │ ├── basic-new.xml │ │ ├── basic-old.xml │ │ ├── first-rotated-new.xml │ │ ├── first-rotated-old.xml │ │ ├── oneoff-new-finished.xml │ │ ├── oneoff-new.xml │ │ ├── oneoff-old.xml │ │ ├── rotated-new-finished.xml │ │ ├── rotated-new.xml │ │ ├── rotated-old.xml │ │ ├── tiled-new.xml │ │ ├── tiled-old.xml │ │ ├── wiggle-new-discarded.xml │ │ ├── wiggle-new-finished.xml │ │ ├── wiggle-new.xml │ │ └── wiggle-old.xml │ ├── monitor-config-migration-unit-tests.c │ ├── monitor-config-migration-unit-tests.h │ ├── monitor-configs │ │ ├── first-rotated.xml │ │ ├── fractional-scale.xml │ │ ├── high-precision-fractional-scale.xml │ │ ├── interlaced.xml │ │ ├── kms-cursor-hotplug-off.xml │ │ ├── kms-cursor-hotplug-on.xml │ │ ├── lid-scale.xml │ │ ├── lid-switch.xml │ │ ├── max-bpc.xml │ │ ├── mirrored.xml │ │ ├── non-preferred-tiled-custom-resolution.xml │ │ ├── oneoff.xml │ │ ├── pointer-constraint.xml │ │ ├── policy-dbus-invalid.xml │ │ ├── policy-dbus.xml │ │ ├── policy-duplicate.xml │ │ ├── policy-empty.xml │ │ ├── policy-invalid.xml │ │ ├── policy-multiple.xml │ │ ├── policy.xml │ │ ├── primary.xml │ │ ├── scale.xml │ │ ├── second-rotated-tiled.xml │ │ ├── second-rotated.xml │ │ ├── single.xml │ │ ├── switch-remember-scale.xml │ │ ├── system │ │ │ └── monitors.xml │ │ ├── tiled-custom-resolution.xml │ │ ├── tiled.xml │ │ ├── underscanning.xml │ │ ├── unknown-elements.xml │ │ ├── user │ │ │ └── monitors.xml │ │ └── vertical.xml │ ├── monitor-store-unit-tests.c │ ├── monitor-store-unit-tests.h │ ├── monitor-transform-tests.c │ ├── monitor-transform-tests.h │ ├── monitor-unit-tests.c │ ├── monitor-util-tests.c │ ├── mutter-all.test.in │ ├── mutter-installed-dbus-session.py.in │ ├── mutter_dbusrunner.py │ ├── native-headless.c │ ├── native-kms-cursor-hotplug.c │ ├── native-kms-device.c │ ├── native-kms-force-atomic-sanity.c │ ├── native-kms-force-simple-sanity.c │ ├── native-kms-render.c │ ├── native-kms-updates.c │ ├── native-persistent-virtual-monitor.c │ ├── native-pointer-constraints.c │ ├── native-screen-cast.c │ ├── native-screen-cast.h │ ├── native-virtual-monitor.c │ ├── native-virtual-monitor.h │ ├── orientation-manager-unit-tests.c │ ├── orientation-manager-unit-tests.h │ ├── ref-test-sanity.c │ ├── ref-tests │ │ ├── backends_native_virtual-monitor_create_0.ref.png │ │ ├── backends_native_virtual-monitor_create_1.ref.png │ │ ├── tests_ref-test_sanity_0.ref.png │ │ ├── tests_ref-test_sanity_1.ref.png │ │ ├── wayland_buffer_single_pixel_buffer_0.ref.png │ │ ├── wayland_buffer_single_pixel_buffer_1.ref.png │ │ ├── wayland_buffer_single_pixel_buffer_2.ref.png │ │ ├── wayland_buffer_single_pixel_buffer_3.ref.png │ │ ├── wayland_buffer_single_pixel_buffer_4.ref.png │ │ ├── wayland_buffer_single_pixel_buffer_5.ref.png │ │ ├── wayland_buffer_single_pixel_buffer_6.ref.png │ │ ├── wayland_buffer_transform_0.ref.png │ │ ├── wayland_buffer_transform_1.ref.png │ │ ├── wayland_buffer_transform_2.ref.png │ │ ├── wayland_buffer_transform_3.ref.png │ │ ├── wayland_buffer_transform_4.ref.png │ │ ├── wayland_buffer_transform_5.ref.png │ │ ├── wayland_buffer_transform_6.ref.png │ │ ├── wayland_buffer_transform_7.ref.png │ │ ├── wayland_toplevel_fullscreen-ref-test_1.ref.png │ │ ├── wayland_toplevel_fullscreen-ref-test_2.ref.png │ │ └── wayland_toplevel_fullscreen-ref-test_3.ref.png │ ├── screen-cast-client.c │ ├── share │ │ └── icc │ │ │ └── vx239-calibrated.icc │ ├── stacking │ │ ├── always-on-top.metatest │ │ ├── basic-wayland.metatest │ │ ├── basic-x11.metatest │ │ ├── client-resize-respect-constraints.metatest │ │ ├── client-side-decorated.metatest │ │ ├── closed-transient-no-default-focus.metatest │ │ ├── closed-transient-no-input-no-take-focus-parent.metatest │ │ ├── closed-transient-no-input-no-take-focus-parents.metatest │ │ ├── closed-transient-no-input-parent-delayed-focus-default-cancelled.metatest │ │ ├── closed-transient-no-input-parent.metatest │ │ ├── closed-transient-no-input-parents-queued-default-focus-destroyed.metatest │ │ ├── closed-transient-no-input-parents.metatest │ │ ├── closed-transient-only-take-focus-parents.metatest │ │ ├── closed-transient.metatest │ │ ├── default-size.metatest │ │ ├── focus-default-window-globally-active-input.metatest │ │ ├── fullscreen-maximize.metatest │ │ ├── map-fixed-size.metatest │ │ ├── map-on-hotplug.metatest │ │ ├── minimized.metatest │ │ ├── mixed-windows.metatest │ │ ├── modals.metatest │ │ ├── override-redirect.metatest │ │ ├── restore-position.metatest │ │ ├── restore-size.metatest │ │ ├── set-override-redirect-parent.metatest │ │ ├── set-parent-exported.metatest │ │ ├── set-parent.metatest │ │ ├── unfullscreen-strut-change.metatest │ │ ├── unmaximize-new-size.metatest │ │ ├── workspace-basic.metatest │ │ └── workspace-test.metatest │ ├── stage-view-tests.c │ ├── test-client.c │ ├── test-runner.c │ ├── unit-tests.c │ ├── unit-tests.h │ ├── wayland-fullscreen-test.c │ ├── wayland-test-clients │ │ ├── buffer-transform.c │ │ ├── dma-buf-scanout.c │ │ ├── fullscreen.c │ │ ├── invalid-subsurfaces.c │ │ ├── invalid-xdg-shell-actions.c │ │ ├── kms-cursor-hotplug-helper.c │ │ ├── meson.build │ │ ├── single-pixel-buffer.c │ │ ├── subsurface-parent-unmapped.c │ │ ├── subsurface-remap-toplevel.c │ │ ├── subsurface-reparenting.c │ │ ├── test-driver.xml │ │ ├── wayland-test-client-utils.c │ │ ├── wayland-test-client-utils.h │ │ ├── xdg-activation.c │ │ ├── xdg-apply-limits.c │ │ └── xdg-toplevel-bounds.c │ ├── wayland-unit-tests.c │ ├── x11-test.sh │ └── xwayland-tests.c ├── ui │ ├── frames.c │ ├── frames.h │ ├── theme-private.h │ ├── theme.c │ ├── ui.c │ └── ui.h ├── wayland │ ├── meta-cursor-sprite-wayland.c │ ├── meta-cursor-sprite-wayland.h │ ├── meta-pointer-confinement-wayland.c │ ├── meta-pointer-confinement-wayland.h │ ├── meta-pointer-lock-wayland.c │ ├── meta-pointer-lock-wayland.h │ ├── meta-selection-source-wayland-private.h │ ├── meta-selection-source-wayland.c │ ├── meta-wayland-activation.c │ ├── meta-wayland-activation.h │ ├── meta-wayland-actor-surface.c │ ├── meta-wayland-actor-surface.h │ ├── meta-wayland-buffer.c │ ├── meta-wayland-buffer.h │ ├── meta-wayland-client.c │ ├── meta-wayland-cursor-surface.c │ ├── meta-wayland-cursor-surface.h │ ├── meta-wayland-data-device-primary.c │ ├── meta-wayland-data-device-primary.h │ ├── meta-wayland-data-device.c │ ├── meta-wayland-data-device.h │ ├── meta-wayland-data-offer-primary.c │ ├── meta-wayland-data-offer-primary.h │ ├── meta-wayland-data-offer.c │ ├── meta-wayland-data-offer.h │ ├── meta-wayland-data-source-primary.c │ ├── meta-wayland-data-source-primary.h │ ├── meta-wayland-data-source.c │ ├── meta-wayland-data-source.h │ ├── meta-wayland-dma-buf.c │ ├── meta-wayland-dma-buf.h │ ├── meta-wayland-dnd-surface.c │ ├── meta-wayland-dnd-surface.h │ ├── meta-wayland-egl-stream.c │ ├── meta-wayland-egl-stream.h │ ├── meta-wayland-gtk-shell.c │ ├── meta-wayland-gtk-shell.h │ ├── meta-wayland-inhibit-shortcuts-dialog.c │ ├── meta-wayland-inhibit-shortcuts-dialog.h │ ├── meta-wayland-inhibit-shortcuts.c │ ├── meta-wayland-inhibit-shortcuts.h │ ├── meta-wayland-input-device.c │ ├── meta-wayland-input-device.h │ ├── meta-wayland-keyboard.c │ ├── meta-wayland-keyboard.h │ ├── meta-wayland-outputs.c │ ├── meta-wayland-outputs.h │ ├── meta-wayland-pointer-constraints.c │ ├── meta-wayland-pointer-constraints.h │ ├── meta-wayland-pointer-gesture-hold.c │ ├── meta-wayland-pointer-gesture-hold.h │ ├── meta-wayland-pointer-gesture-pinch.c │ ├── meta-wayland-pointer-gesture-pinch.h │ ├── meta-wayland-pointer-gesture-swipe.c │ ├── meta-wayland-pointer-gesture-swipe.h │ ├── meta-wayland-pointer-gestures.c │ ├── meta-wayland-pointer-gestures.h │ ├── meta-wayland-pointer.c │ ├── meta-wayland-pointer.h │ ├── meta-wayland-popup.c │ ├── meta-wayland-popup.h │ ├── meta-wayland-presentation-time-private.h │ ├── meta-wayland-presentation-time.c │ ├── meta-wayland-private.h │ ├── meta-wayland-region.c │ ├── meta-wayland-region.h │ ├── meta-wayland-seat.c │ ├── meta-wayland-seat.h │ ├── meta-wayland-shell-surface.c │ ├── meta-wayland-shell-surface.h │ ├── meta-wayland-single-pixel-buffer.c │ ├── meta-wayland-single-pixel-buffer.h │ ├── meta-wayland-subsurface.c │ ├── meta-wayland-subsurface.h │ ├── meta-wayland-surface.c │ ├── meta-wayland-surface.h │ ├── meta-wayland-tablet-cursor-surface.c │ ├── meta-wayland-tablet-cursor-surface.h │ ├── meta-wayland-tablet-manager.c │ ├── meta-wayland-tablet-manager.h │ ├── meta-wayland-tablet-pad-group.c │ ├── meta-wayland-tablet-pad-group.h │ ├── meta-wayland-tablet-pad-ring.c │ ├── meta-wayland-tablet-pad-ring.h │ ├── meta-wayland-tablet-pad-strip.c │ ├── meta-wayland-tablet-pad-strip.h │ ├── meta-wayland-tablet-pad.c │ ├── meta-wayland-tablet-pad.h │ ├── meta-wayland-tablet-seat.c │ ├── meta-wayland-tablet-seat.h │ ├── meta-wayland-tablet-tool.c │ ├── meta-wayland-tablet-tool.h │ ├── meta-wayland-tablet.c │ ├── meta-wayland-tablet.h │ ├── meta-wayland-text-input.c │ ├── meta-wayland-text-input.h │ ├── meta-wayland-touch.c │ ├── meta-wayland-touch.h │ ├── meta-wayland-types.h │ ├── meta-wayland-versions.h │ ├── meta-wayland-viewporter.c │ ├── meta-wayland-viewporter.h │ ├── meta-wayland-window-configuration.c │ ├── meta-wayland-window-configuration.h │ ├── meta-wayland-xdg-foreign.c │ ├── meta-wayland-xdg-foreign.h │ ├── meta-wayland-xdg-shell.c │ ├── meta-wayland-xdg-shell.h │ ├── meta-wayland.c │ ├── meta-wayland.h │ ├── meta-window-wayland.c │ ├── meta-window-wayland.h │ ├── meta-window-xwayland.c │ ├── meta-window-xwayland.h │ ├── meta-xwayland-dnd-private.h │ ├── meta-xwayland-dnd.c │ ├── meta-xwayland-grab-keyboard.c │ ├── meta-xwayland-grab-keyboard.h │ ├── meta-xwayland-private.h │ ├── meta-xwayland-surface.c │ ├── meta-xwayland-surface.h │ ├── meta-xwayland.c │ ├── meta-xwayland.h │ └── protocol │ │ └── gtk-shell.xml └── x11 │ ├── atomnames.h │ ├── events.c │ ├── events.h │ ├── group-private.h │ ├── group-props.c │ ├── group-props.h │ ├── group.c │ ├── iconcache.c │ ├── iconcache.h │ ├── meta-selection-source-x11-private.h │ ├── meta-selection-source-x11.c │ ├── meta-startup-notification-x11.c │ ├── meta-startup-notification-x11.h │ ├── meta-x11-display-private.h │ ├── meta-x11-display.c │ ├── meta-x11-errors.c │ ├── meta-x11-selection-input-stream-private.h │ ├── meta-x11-selection-input-stream.c │ ├── meta-x11-selection-output-stream-private.h │ ├── meta-x11-selection-output-stream.c │ ├── meta-x11-selection-private.h │ ├── meta-x11-selection.c │ ├── meta-x11-stack-private.h │ ├── meta-x11-stack.c │ ├── meta-x11-window-control.c │ ├── meta-x11-window-control.h │ ├── mutter-Xatomtype.h │ ├── session.c │ ├── session.h │ ├── window-props.c │ ├── window-props.h │ ├── window-x11-private.h │ ├── window-x11.c │ ├── window-x11.h │ ├── xprops.c │ └── xprops.h ├── subprojects └── sysprof.wrap └── tools ├── announce-wrangler.py ├── commit-wrangler.py ├── get-state.py ├── meson.build ├── patch-wrangler.py ├── release-wrangler.py └── uncrustify.cfg /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | open_collective: buddies-of-budgie 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.yml: -------------------------------------------------------------------------------- 1 | name: Feature request 2 | description: Suggest a new feature or other enhancement. 3 | title: "[Request] " 4 | body: 5 | - type: input 6 | id: version 7 | attributes: 8 | label: Magpie version 9 | description: To provide the exact version of your Magpie installation, check the package version. 10 | validations: 11 | required: true 12 | 13 | - type: textarea 14 | id: cases 15 | attributes: 16 | label: Use-cases 17 | description: In order to properly evaluate a feature request, it is necessary to understand the use-cases for it. Please describe below the end goal you are trying to achieve that has led you to request this feature. 18 | validations: 19 | required: true 20 | 21 | - type: textarea 22 | id: proposal 23 | attributes: 24 | label: Proposal 25 | description: If you have any idea on how it could be addressed, please note it below. 26 | 27 | - type: textarea 28 | id: references 29 | attributes: 30 | label: References 31 | description: Are there any other GitHub issues, whether open or closed, that are related to the problem you've described above or to the suggested solution? If so, please add them below. 32 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Build on Ubuntu 22.04 2 | on: 3 | push: 4 | branches: 5 | - main 6 | pull_request: 7 | branches: 8 | - main 9 | jobs: 10 | ubuntu: 11 | runs-on: ubuntu-22.04 12 | steps: 13 | - uses: actions/checkout@v1 14 | - run: sudo apt update 15 | - run: sudo apt install meson ninja-build gettext gsettings-desktop-schemas-dev libcanberra-dev libcolord-dev libdrm-dev libgbm-dev libgraphene-1.0-dev libgtk-3-dev libgudev-1.0-dev libinput-dev libjson-glib-dev liblcms2-dev libpipewire-0.3-dev libstartup-notification0-dev libsysprof-4-dev libsystemd-dev libudev-dev libx11-xcb-dev libxcb-randr0-dev libxcb-res0-dev libxkbcommon-x11-dev libxkbfile-dev sysprof udev xcvt 16 | - run: meson setup build 17 | - run: meson compile -C build 18 | -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | # Global rule, if anything matches after this then that rule takes precedent 2 | * @fossfreedom @BuddiesOfBudgie/best-buds -------------------------------------------------------------------------------- /clutter/clutter/cally/ChangeLog.pre-cally-merge: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/clutter/clutter/cally/ChangeLog.pre-cally-merge -------------------------------------------------------------------------------- /clutter/clutter/cally/cally.h: -------------------------------------------------------------------------------- 1 | /* CALLY - The Clutter Accessibility Implementation Library 2 | * 3 | * Copyright (C) 2008 Igalia, S.L. 4 | * 5 | * Author: Alejandro Piñeiro Iglesias 6 | * 7 | * This library is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU Lesser General Public 9 | * License as published by the Free Software Foundation; either 10 | * version 2 of the License, or (at your option) any later version. 11 | * 12 | * This library is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | * Lesser General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public 18 | * License along with this library. If not, see . 19 | */ 20 | 21 | #ifndef __CALLY_H__ 22 | #define __CALLY_H__ 23 | 24 | #define __CALLY_H_INSIDE__ 25 | 26 | #include "cally-actor.h" 27 | #include "cally-clone.h" 28 | #include "cally-factory.h" 29 | #include "cally-main.h" 30 | #include "cally-root.h" 31 | #include "cally-stage.h" 32 | #include "cally-text.h" 33 | #include "cally-util.h" 34 | 35 | #undef __CALLY_H_INSIDE__ 36 | 37 | #endif /* __CALLY_H__ */ 38 | -------------------------------------------------------------------------------- /clutter/clutter/clutter-actor-box-private.h: -------------------------------------------------------------------------------- 1 | #ifndef __CLUTTER_ACTOR_BOX_PRIVATE_H__ 2 | #define __CLUTTER_ACTOR_BOX_PRIVATE_H__ 3 | 4 | #include 5 | 6 | G_BEGIN_DECLS 7 | 8 | void _clutter_actor_box_enlarge_for_effects (ClutterActorBox *box); 9 | 10 | G_END_DECLS 11 | 12 | #endif /* __CLUTTER_ACTOR_BOX_PRIVATE_H__ */ 13 | -------------------------------------------------------------------------------- /clutter/clutter/clutter-blur-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2020 Endless OS Foundation, LLC 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with this library. If not, see . 16 | */ 17 | 18 | #ifndef CLUTTER_BLUR_PRIVATE_H 19 | #define CLUTTER_BLUR_PRIVATE_H 20 | 21 | #include 22 | 23 | #include 24 | 25 | G_BEGIN_DECLS 26 | 27 | typedef struct _ClutterBlur ClutterBlur; 28 | 29 | ClutterBlur * clutter_blur_new (CoglTexture *texture, 30 | float sigma); 31 | 32 | void clutter_blur_apply (ClutterBlur *blur); 33 | 34 | CoglTexture * clutter_blur_get_texture (ClutterBlur *blur); 35 | 36 | void clutter_blur_free (ClutterBlur *blur); 37 | 38 | G_END_DECLS 39 | 40 | #endif /* CLUTTER_BLUR_PRIVATE_H */ 41 | -------------------------------------------------------------------------------- /clutter/clutter/clutter-build-config.h.meson: -------------------------------------------------------------------------------- 1 | /* Mutter version */ 2 | #mesondefine MUTTER_VERSION 3 | 4 | /* List of Cogl drivers */ 5 | #mesondefine CLUTTER_DRIVERS 6 | 7 | /* Supports PangoFt2 */ 8 | #mesondefine HAVE_PANGO_FT2 9 | -------------------------------------------------------------------------------- /clutter/clutter/clutter-constraint-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Clutter. 3 | * 4 | * An OpenGL based 'interactive canvas' library. 5 | * 6 | * Copyright (C) 2010 Intel Corporation. 7 | * 8 | * This library is free software; you can redistribute it and/or 9 | * modify it under the terms of the GNU Lesser General Public 10 | * License as published by the Free Software Foundation; either 11 | * version 2 of the License, or (at your option) any later version. 12 | * 13 | * This library is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | * Lesser General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU Lesser General Public 19 | * License along with this library. If not, see . 20 | */ 21 | 22 | #ifndef __CLUTTER_CONSTRAINT_PRIVATE_H__ 23 | #define __CLUTTER_CONSTRAINT_PRIVATE_H__ 24 | 25 | #include "clutter-constraint.h" 26 | 27 | G_BEGIN_DECLS 28 | 29 | gboolean clutter_constraint_update_allocation (ClutterConstraint *constraint, 30 | ClutterActor *actor, 31 | ClutterActorBox *allocation); 32 | 33 | G_END_DECLS 34 | 35 | #endif /* __CLUTTER_CONSTRAINT_PRIVATE_H__ */ 36 | -------------------------------------------------------------------------------- /clutter/clutter/clutter-deprecated.h: -------------------------------------------------------------------------------- 1 | #ifndef __CLUTTER_DEPRECATED_H__ 2 | #define __CLUTTER_DEPRECATED_H__ 3 | 4 | #define __CLUTTER_DEPRECATED_H_INSIDE__ 5 | 6 | #include "deprecated/clutter-box-layout.h" 7 | #include "deprecated/clutter-container.h" 8 | 9 | #undef __CLUTTER_DEPRECATED_H_INSIDE__ 10 | 11 | #endif /* __CLUTTER_DEPRECATED_H__ */ 12 | -------------------------------------------------------------------------------- /clutter/clutter/clutter-effect-private.h: -------------------------------------------------------------------------------- 1 | #ifndef __CLUTTER_EFFECT_PRIVATE_H__ 2 | #define __CLUTTER_EFFECT_PRIVATE_H__ 3 | 4 | #include 5 | 6 | G_BEGIN_DECLS 7 | 8 | gboolean _clutter_effect_modify_paint_volume (ClutterEffect *effect, 9 | ClutterPaintVolume *volume); 10 | gboolean _clutter_effect_has_custom_paint_volume (ClutterEffect *effect); 11 | void _clutter_effect_paint (ClutterEffect *effect, 12 | ClutterPaintNode *node, 13 | ClutterPaintContext *paint_context, 14 | ClutterEffectPaintFlags flags); 15 | void _clutter_effect_pick (ClutterEffect *effect, 16 | ClutterPickContext *pick_context); 17 | 18 | G_END_DECLS 19 | 20 | #endif /* __CLUTTER_EFFECT_PRIVATE_H__ */ 21 | -------------------------------------------------------------------------------- /clutter/clutter/clutter-enum-types.c.in: -------------------------------------------------------------------------------- 1 | /*** BEGIN file-header ***/ 2 | #include "clutter-build-config.h" 3 | #include "clutter-enum-types.h" 4 | /*** END file-header ***/ 5 | 6 | /*** BEGIN file-production ***/ 7 | 8 | /* enumerations from "@filename@" */ 9 | #include "@filename@" 10 | 11 | /*** END file-production ***/ 12 | 13 | /*** BEGIN value-header ***/ 14 | GType 15 | @enum_name@_get_type (void) 16 | { 17 | static size_t g_enum_type_id = 0; 18 | 19 | if (g_once_init_enter (&g_enum_type_id)) 20 | { 21 | static const G@Type@Value values[] = { 22 | /*** END value-header ***/ 23 | 24 | /*** BEGIN value-production ***/ 25 | { @VALUENAME@, "@VALUENAME@", "@valuenick@" }, 26 | /*** END value-production ***/ 27 | 28 | /*** BEGIN value-tail ***/ 29 | { 0, NULL, NULL } 30 | }; 31 | GType id; 32 | 33 | id = g_@type@_register_static (g_intern_static_string ("@EnumName@"), values); 34 | 35 | g_once_init_leave (&g_enum_type_id, id); 36 | } 37 | 38 | return g_enum_type_id; 39 | } 40 | /*** END value-tail ***/ 41 | -------------------------------------------------------------------------------- /clutter/clutter/clutter-enum-types.h.in: -------------------------------------------------------------------------------- 1 | /*** BEGIN file-header ***/ 2 | #ifndef __CLUTTER_ENUM_TYPES_H__ 3 | #define __CLUTTER_ENUM_TYPES_H__ 4 | 5 | #if !defined(__CLUTTER_H_INSIDE__) && !defined(CLUTTER_COMPILATION) 6 | #error "Only can be included directly." 7 | #endif 8 | 9 | #include 10 | 11 | G_BEGIN_DECLS 12 | 13 | /*** END file-header ***/ 14 | 15 | /*** BEGIN file-production ***/ 16 | /* enumerations from "@basename@" */ 17 | /*** END file-production ***/ 18 | 19 | /*** BEGIN value-header ***/ 20 | CLUTTER_EXPORT GType @enum_name@_get_type (void) G_GNUC_CONST; 21 | #define CLUTTER_TYPE_@ENUMSHORT@ (@enum_name@_get_type()) 22 | 23 | /*** END value-header ***/ 24 | 25 | /*** BEGIN file-tail ***/ 26 | G_END_DECLS 27 | 28 | #endif /* !__CLUTTER_ENUM_TYPES_H__ */ 29 | /*** END file-tail ***/ 30 | -------------------------------------------------------------------------------- /clutter/clutter/clutter-frame-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2020 Red Hat Inc. 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with this library. If not, see . 16 | */ 17 | 18 | #ifndef CLUTTER_FRAME_PRIVATE_H 19 | #define CLUTTER_FRAME_PRIVATE_H 20 | 21 | #include "clutter/clutter-frame.h" 22 | 23 | struct _ClutterFrame 24 | { 25 | gboolean has_result; 26 | ClutterFrameResult result; 27 | ClutterFrameHint hints; 28 | }; 29 | 30 | #define CLUTTER_FRAME_INIT ((ClutterFrame) { 0 }) 31 | 32 | ClutterFrameResult clutter_frame_get_result (ClutterFrame *frame); 33 | 34 | #endif /* CLUTTER_FRAME_PRIVATE_H */ 35 | -------------------------------------------------------------------------------- /clutter/clutter/clutter-gesture-action-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Clutter. 3 | * 4 | * An OpenGL based 'interactive canvas' library. 5 | * 6 | * Copyright (C) 2012 Collabora Ltd.. 7 | * 8 | * This library is free software; you can redistribute it and/or 9 | * modify it under the terms of the GNU Lesser General Public 10 | * License as published by the Free Software Foundation; either 11 | * version 2 of the License, or (at your option) any later version. 12 | * 13 | * This library is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | * Lesser General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU Lesser General Public 19 | * License along with this library. If not, see . 20 | */ 21 | 22 | #ifndef __CLUTTER_GESTURE_ACTION_PRIVATE_H__ 23 | #define __CLUTTER_GESTURE_ACTION_PRIVATE_H__ 24 | 25 | #include 26 | 27 | G_BEGIN_DECLS 28 | 29 | G_END_DECLS 30 | 31 | #endif /* __CLUTTER_GESTURE_ACTION_PRIVATE_H__ */ 32 | -------------------------------------------------------------------------------- /clutter/clutter/clutter-graphene.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Clutter. 3 | * 4 | * An OpenGL based 'interactive canvas' library. 5 | * 6 | * Authored By Georges Basile Stavracas Neto 7 | * 8 | * Copyright (C) 2019 Endless, Inc 9 | * Copyright (C) 2009, 2010 Intel Corp 10 | * 11 | * This library is free software; you can redistribute it and/or 12 | * modify it under the terms of the GNU Lesser General Public 13 | * License as published by the Free Software Foundation; either 14 | * version 2 of the License, or (at your option) any later version. 15 | * 16 | * This library is distributed in the hope that it will be useful, 17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 19 | * Lesser General Public License for more details. 20 | * 21 | * You should have received a copy of the GNU Lesser General Public 22 | * License along with this library. If not, see . 23 | */ 24 | 25 | #ifndef CLUTTER_GRAPHENE_H 26 | #define CLUTTER_GRAPHENE_H 27 | 28 | void clutter_graphene_init (void); 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /clutter/clutter/clutter-keymap-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021 Red Hat 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 17 | * 02111-1307, USA. 18 | * 19 | */ 20 | 21 | #ifndef CLUTTER_KEYMAP_PRIVATE_H 22 | #define CLUTTER_KEYMAP_PRIVATE_H 23 | 24 | #include "clutter/clutter-keymap.h" 25 | 26 | CLUTTER_EXPORT 27 | void clutter_keymap_set_lock_modifier_state (ClutterKeymap *keymap, 28 | gboolean caps_lock_state, 29 | gboolean num_lock_state); 30 | 31 | #endif /* CLUTTER_KEYMAP_PRIVATE_H */ 32 | -------------------------------------------------------------------------------- /clutter/clutter/clutter-marshal.list: -------------------------------------------------------------------------------- 1 | BOOLEAN:BOXED 2 | BOOLEAN:BOXED,INT,INT 3 | BOOLEAN:OBJECT,BOOLEAN 4 | BOOLEAN:OBJECT,BOXED 5 | BOOLEAN:OBJECT,BOXED,DOUBLE 6 | BOOLEAN:OBJECT,DOUBLE 7 | BOOLEAN:OBJECT,ENUM 8 | BOOLEAN:OBJECT,FLAGS 9 | BOOLEAN:STRING,UINT,FLAGS 10 | BOOLEAN:OBJECT 11 | BOOLEAN:OBJECT,FLOAT,FLOAT 12 | BOXED:UINT,UINT 13 | DOUBLE:VOID 14 | UINT:VOID 15 | VOID:BOXED,FLAGS 16 | VOID:INT64,INT64,FLOAT,BOOLEAN 17 | VOID:INT,INT 18 | VOID:INT,POINTER 19 | VOID:FLOAT,FLOAT 20 | VOID:INT,INT,INT,INT 21 | VOID:OBJECT,FLAGS 22 | VOID:OBJECT,FLAGS,BOOLEAN 23 | VOID:OBJECT,FLAGS,UINT 24 | VOID:OBJECT,FLOAT,FLOAT 25 | VOID:OBJECT,FLOAT,FLOAT,FLAGS 26 | VOID:OBJECT,OBJECT 27 | VOID:OBJECT,PARAM 28 | VOID:OBJECT,POINTER 29 | VOID:OBJECT,UINT 30 | VOID:STRING,BOOLEAN 31 | VOID:STRING,BOOLEAN,BOOLEAN 32 | VOID:STRING,INT 33 | VOID:UINT,STRING,UINT 34 | VOID:UINT,UINT 35 | VOID:STRING,INT,POINTER 36 | -------------------------------------------------------------------------------- /clutter/clutter/clutter-offscreen-effect-private.h: -------------------------------------------------------------------------------- 1 | #ifndef __CLUTTER_OFFSCREEN_EFFECT_PRIVATE_H__ 2 | #define __CLUTTER_OFFSCREEN_EFFECT_PRIVATE_H__ 3 | 4 | #include 5 | 6 | G_BEGIN_DECLS 7 | 8 | G_END_DECLS 9 | 10 | #endif /* __CLUTTER_OFFSCREEN_EFFECT_PRIVATE_H__ */ 11 | -------------------------------------------------------------------------------- /clutter/clutter/clutter-seat-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Clutter. 3 | * 4 | * An OpenGL based 'interactive canvas' library. 5 | * 6 | * Copyright (C) 2021 Red Hat Inc. 7 | * 8 | * This library is free software; you can redistribute it and/or 9 | * modify it under the terms of the GNU Lesser General Public 10 | * License as published by the Free Software Foundation; either 11 | * version 2 of the License, or (at your option) any later version. 12 | * 13 | * This library is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | * Lesser General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU Lesser General Public 19 | * License along with this library. If not, see . 20 | * 21 | */ 22 | 23 | #ifndef CLUTTER_SEAT_PRIVATE_H 24 | #define CLUTTER_SEAT_PRIVATE_H 25 | 26 | #include "clutter/clutter-types.h" 27 | 28 | CLUTTER_EXPORT 29 | void clutter_seat_destroy (ClutterSeat *seat); 30 | 31 | ClutterGrabState clutter_seat_grab (ClutterSeat *seat, 32 | uint32_t time); 33 | void clutter_seat_ungrab (ClutterSeat *seat, 34 | uint32_t time); 35 | 36 | #endif /* CLUTTER_SEAT_PRIVATE_H */ 37 | -------------------------------------------------------------------------------- /clutter/clutter/clutter-settings-private.h: -------------------------------------------------------------------------------- 1 | #ifndef __CLUTTER_SETTINGS_PRIVATE_H__ 2 | #define __CLUTTER_SETTINGS_PRIVATE_H__ 3 | 4 | #include 5 | #include 6 | 7 | G_BEGIN_DECLS 8 | 9 | void _clutter_settings_set_backend (ClutterSettings *settings, 10 | ClutterBackend *backend); 11 | 12 | void clutter_settings_set_property_internal (ClutterSettings *settings, 13 | const char *property, 14 | GValue *value); 15 | 16 | void clutter_settings_ensure_pointer_a11y_settings (ClutterSettings *settings, 17 | ClutterSeat *seat); 18 | 19 | G_END_DECLS 20 | 21 | #endif /* __CLUTTER_SETTINGS_PRIVATE_H__ */ 22 | -------------------------------------------------------------------------------- /clutter/clutter/clutter-settings.h: -------------------------------------------------------------------------------- 1 | #ifndef __CLUTTER_SETTINGS_H__ 2 | #define __CLUTTER_SETTINGS_H__ 3 | 4 | #if !defined(__CLUTTER_H_INSIDE__) && !defined(CLUTTER_COMPILATION) 5 | #error "Only can be included directly." 6 | #endif 7 | 8 | #include 9 | 10 | G_BEGIN_DECLS 11 | 12 | #define CLUTTER_TYPE_SETTINGS (clutter_settings_get_type ()) 13 | #define CLUTTER_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_SETTINGS, ClutterSettings)) 14 | #define CLUTTER_IS_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_SETTINGS)) 15 | 16 | typedef struct _ClutterSettings ClutterSettings; 17 | typedef struct _ClutterSettingsClass ClutterSettingsClass; 18 | 19 | CLUTTER_EXPORT 20 | GType clutter_settings_get_type (void) G_GNUC_CONST; 21 | 22 | CLUTTER_EXPORT 23 | ClutterSettings *clutter_settings_get_default (void); 24 | 25 | G_END_DECLS 26 | 27 | #endif /* __CLUTTER_SETTINGS_H__ */ 28 | -------------------------------------------------------------------------------- /clutter/clutter/deprecated/clutter-timeline.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Clutter. 3 | * 4 | * An OpenGL based 'interactive canvas' library. 5 | * 6 | * Copyright (C) 2012 Intel Corp 7 | * 8 | * This library is free software; you can redistribute it and/or 9 | * modify it under the terms of the GNU Lesser General Public 10 | * License as published by the Free Software Foundation; either 11 | * version 2 of the License, or (at your option) any later version. 12 | * 13 | * This library is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | * Lesser General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU Lesser General Public 19 | * License along with this library. If not, see . 20 | */ 21 | 22 | #ifndef __CLUTTER_TIMELINE_PRIVATE_H__ 23 | #define __CLUTTER_TIMELINE_PRIVATE_H__ 24 | 25 | #include 26 | 27 | G_BEGIN_DECLS 28 | 29 | CLUTTER_DEPRECATED_FOR(clutter_timeline_new_for_actor) 30 | ClutterTimeline * clutter_timeline_new (guint duration_ms); 31 | 32 | G_END_DECLS 33 | 34 | #endif /* __CLUTTER_TIMELINE_PRIVATE_H__ */ 35 | -------------------------------------------------------------------------------- /clutter/clutter/mutter-clutter.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | apiversion=@LIBMUTTER_API_VERSION@ 4 | libdir=@libdir@/mutter-${apiversion} 5 | includedir=@includedir@/mutter-${apiversion} 6 | 7 | requires=@CLUTTER_REQUIRES@ mutter-cogl-${apiversion} 8 | requires_private=@CLUTTER_REQUIRES_PRIVATE@ 9 | backends=@CLUTTER_BACKENDS@ 10 | 11 | # only kept for backward compatibility 12 | soname_infix=@CLUTTER_SONAME_INFIX@ 13 | winsys=@CLUTTER_WINSYS@ 14 | backend=@CLUTTER_WINSYS@ 15 | cogl=deprecated 16 | cogl_driver=deprecated 17 | 18 | Name: Mutter Clutter 19 | Description: Mutter's Clutter Private Library 20 | Version: @MUTTER_VERSION@ 21 | Libs: -L${libdir} -lmutter-clutter-${apiversion} 22 | Cflags: -I${includedir}/clutter 23 | Requires: ${requires} 24 | Requires.private: ${requires_private} 25 | -------------------------------------------------------------------------------- /cogl/cogl-config.h.meson: -------------------------------------------------------------------------------- 1 | /* Have GL for rendering */ 2 | #mesondefine HAVE_COGL_GL 3 | 4 | /* Have GLES 2.0 for rendering */ 5 | #mesondefine HAVE_COGL_GLES2 6 | 7 | /* Building with Sysprof profiling support */ 8 | #mesondefine HAVE_TRACING 9 | 10 | /* Enable unit tests */ 11 | #mesondefine ENABLE_UNIT_TESTS 12 | 13 | /* Default COGL driver */ 14 | #mesondefine COGL_DEFAULT_DRIVER 15 | 16 | #define COGL_CONFIG_H_INCLUDED 1 17 | -------------------------------------------------------------------------------- /cogl/cogl-mutter-config.h.in: -------------------------------------------------------------------------------- 1 | /* Have GL for rendering */ 2 | #undef HAVE_COGL_GL 3 | 4 | /* Have GLES 2.0 for rendering */ 5 | #undef HAVE_COGL_GLES2 6 | 7 | #define COGL_CONFIG_H_INCLUDED 1 8 | -------------------------------------------------------------------------------- /cogl/cogl-pango/cogl-pango.symbols: -------------------------------------------------------------------------------- 1 | cogl_pango_ensure_glyph_cache_for_layout 2 | cogl_pango_font_map_clear_glyph_cache 3 | cogl_pango_font_map_create_context 4 | cogl_pango_font_map_get_renderer 5 | cogl_pango_font_map_get_use_mipmapping 6 | cogl_pango_font_map_new 7 | cogl_pango_font_map_set_resolution 8 | cogl_pango_font_map_set_use_mipmapping 9 | cogl_pango_renderer_get_type 10 | -------------------------------------------------------------------------------- /cogl/cogl-pango/mutter-cogl-pango.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | apiversion=@LIBMUTTER_API_VERSION@ 4 | libdir=@libdir@/mutter-${apiversion} 5 | includedir=@includedir@/mutter-${apiversion} 6 | requires=@COGL_PKG_REQUIRES@ mutter-cogl-${apiversion} 7 | 8 | Name: Cogl 9 | Description: An object oriented GL/GLES Abstraction/Utility Layer 10 | Version: @MUTTER_VERSION@ 11 | Libs: -L${libdir} -lmutter-cogl-pango-${apiversion} 12 | Cflags: -I${includedir}/cogl 13 | Requires: ${requires} 14 | -------------------------------------------------------------------------------- /cogl/cogl/cogl-x11-onscreen.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2020 Red Hat Inc. 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 17 | * 02111-1307, USA. 18 | * 19 | */ 20 | 21 | #include "cogl-config.h" 22 | 23 | #include "cogl-x11-onscreen.h" 24 | 25 | G_DEFINE_INTERFACE (CoglX11Onscreen, cogl_x11_onscreen, 26 | G_TYPE_OBJECT) 27 | 28 | Window 29 | cogl_x11_onscreen_get_x11_window (CoglX11Onscreen *x11_onscreen) 30 | { 31 | CoglX11OnscreenInterface *iface = 32 | COGL_X11_ONSCREEN_GET_IFACE (x11_onscreen); 33 | 34 | return iface->get_x11_window (x11_onscreen); 35 | } 36 | 37 | static void 38 | cogl_x11_onscreen_default_init (CoglX11OnscreenInterface *iface) 39 | { 40 | } 41 | -------------------------------------------------------------------------------- /cogl/cogl/mutter-cogl.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | apiversion=@LIBMUTTER_API_VERSION@ 4 | libdir=@libdir@/mutter-${apiversion} 5 | includedir=@includedir@/mutter-${apiversion} 6 | requires=@COGL_PKG_REQUIRES@ 7 | 8 | Name: Cogl 9 | Description: An object oriented GL/GLES Abstraction/Utility Layer 10 | Version: @MUTTER_VERSION@ 11 | Libs: -L${libdir} -lmutter-cogl-${apiversion} 12 | Cflags: -I${includedir}/cogl 13 | Requires: ${requires} 14 | -------------------------------------------------------------------------------- /data/50-mutter-system.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /data/50-mutter-wayland.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /data/dbus-interfaces/meson.build: -------------------------------------------------------------------------------- 1 | dbus_interfaces_dir = meson.current_source_dir() 2 | -------------------------------------------------------------------------------- /data/dbus-interfaces/org.gnome.Mutter.IdleMonitor.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /data/dbus-interfaces/org.gnome.Mutter.InputMapping.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /data/dbus-interfaces/org.gnome.Mutter.X11.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /data/dbus-interfaces/org.gnome.SettingsDaemon.Color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /data/dbus-interfaces/org.gnome.SettingsDaemon.Power.Screen.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /data/default_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/data/default_icon.png -------------------------------------------------------------------------------- /data/magpie-schemas.convert: -------------------------------------------------------------------------------- 1 | [org.buddiesofbudgie.magpie] 2 | overlay-key = /apps/magpie/general/overlay_key 3 | attach-modal-dialogs = /apps/magpie/general/attach_modal_dialogs 4 | workspaces-only-on-primary = /apps/magpie/general/workspaces_only_on_primary 5 | draggable-border-width = /apps/magpie/general/draggable_border_width 6 | -------------------------------------------------------------------------------- /data/magpie.desktop.in: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Name=Magpie` 4 | Exec=magpie 5 | NoDisplay=true 6 | # name of loadable control center module 7 | X-GNOME-WMSettingsModule=metacity 8 | # name we put on the WM spec check window 9 | X-GNOME-WMName=Magpie 10 | # back compat only 11 | X-GnomeWMSettingsLibrary=metacity 12 | XX-GNOME-Autostart-Phase=WindowManager 13 | X-GNOME-Provides=windowmanager 14 | X-GNOME-Autostart-Notify=true 15 | -------------------------------------------------------------------------------- /data/mutter-schemas.convert: -------------------------------------------------------------------------------- 1 | [org.gnome.mutter] 2 | overlay-key = /apps/mutter/general/overlay_key 3 | attach-modal-dialogs = /apps/mutter/general/attach_modal_dialogs 4 | workspaces-only-on-primary = /apps/mutter/general/workspaces_only_on_primary 5 | draggable-border-width = /apps/mutter/general/draggable_border_width 6 | -------------------------------------------------------------------------------- /doc/dialogs.txt: -------------------------------------------------------------------------------- 1 | Dialogs which have no transient parent or root window being 2 | their tranisent parent are the ones which will be visible in 3 | the tasklist. 4 | 5 | All such dialogs will be *always* on top of the window 6 | group i.e they would transients for the whole group. 7 | 8 | 9 | 1) Modal dialogs 10 | 11 | 12 | * If you wish to open another window from a modal dialog 13 | 14 | open *only* a modal dialog and set it's transient parent. 15 | 16 | 17 | 2) Normal dialog 18 | 19 | 20 | without transient parent 21 | 22 | * If you wish to open another window from a normal dialog 23 | 24 | open either a normal dialog or a modal dialog only. 25 | Set the transient parent for the child dialog if you do not 26 | want them to be transient for all the other windows in the group. 27 | 28 | with transient parent 29 | 30 | * If you wish to open another window from a normal dialog 31 | 32 | you could open any type of window. 33 | -------------------------------------------------------------------------------- /doc/man/magpie-restart-helper.1: -------------------------------------------------------------------------------- 1 | .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.4. 2 | .TH MAGPIE-RESTART-HELPER "1" "June 2023" "magpie-restart-helper 0.9.1" "User Commands" 3 | .SH NAME 4 | magpie-restart-helper \- app to help magpie automatically restart 5 | .SH DESCRIPTION 6 | .SS "Usage:" 7 | .IP 8 | magpie\-restart\-helper [OPTION?] 9 | .SS "Help Options:" 10 | .TP 11 | \fB\-h\fR, \fB\-\-help\fR 12 | Show help options 13 | .TP 14 | \fB\-\-help\-all\fR 15 | Show all help options 16 | .TP 17 | \fB\-\-help\-gapplication\fR 18 | Show GApplication options 19 | .TP 20 | \fB\-\-help\-gtk\fR 21 | Show GTK+ Options 22 | .SS "Application Options:" 23 | .TP 24 | \fB\-\-display\fR=\fI\,DISPLAY\/\fR 25 | X display to use 26 | -------------------------------------------------------------------------------- /doc/man/meson.build: -------------------------------------------------------------------------------- 1 | install_man('magpie.1') 2 | install_man('magpie-restart-helper.1') -------------------------------------------------------------------------------- /doc/reference/cally/cally.toml.in: -------------------------------------------------------------------------------- 1 | [library] 2 | version = "@version@" 3 | browse_url = "https://gitlab.gnome.org/GNOME/mutter/" 4 | repository_url = "https://gitlab.gnome.org/GNOME/mutter.git" 5 | website_url = "https://blogs.gnome.org/shell-dev/" 6 | docs_url = "https://docs.gtk.org/" 7 | authors = "Mutter Development Team" 8 | license = "GPL-2.0-or-later" 9 | description = "The Clutter Accessibility Implementation Library" 10 | dependencies = [ "GObject-2.0", "Atk-1.0" ] 11 | devhelp = true 12 | search_index = true 13 | 14 | [dependencies."GObject-2.0"] 15 | name = "GObject" 16 | description = "The base type system library" 17 | docs_url = "https://docs.gtk.org/gobject/" 18 | 19 | [dependencies."Atk-1.0"] 20 | name = "Atk" 21 | description = "The Accessibility toolkit" 22 | docs_url = "https://docs.gtk.org/atk/" 23 | 24 | [theme] 25 | name = "basic" 26 | show_index_summary = true 27 | show_class_hierarchy = true 28 | 29 | [source-location] 30 | base_url = "https://gitlab.gnome.org/GNOME/mutter/-/blob/@vcs_tag@/" 31 | 32 | [extra] 33 | # The same order will be used when generating the index 34 | content_files = [ 35 | ] 36 | content_images = [ 37 | ] 38 | urlmap_file = "urlmap.js" 39 | 40 | -------------------------------------------------------------------------------- /doc/reference/cally/meson.build: -------------------------------------------------------------------------------- 1 | 2 | cally_toml = configure_file( 3 | input: 'cally.toml.in', 4 | output: 'cally.toml', 5 | configuration: toml_conf, 6 | install: true, 7 | install_dir: docs_dir / 'cally', 8 | ) 9 | 10 | custom_target('cally-doc', 11 | input: [ cally_toml, libmutter_cally_gir[0] ], 12 | output: 'cally', 13 | command: [ 14 | gidocgen, 15 | 'generate', 16 | gidocgen_common_args, 17 | '--add-include-path=@0@'.format(meson.current_build_dir() / '../../../cogl/cogl'), 18 | '--add-include-path=@0@'.format(meson.current_build_dir() / '../../../cogl/cogl-pango'), 19 | '--add-include-path=@0@'.format(meson.current_build_dir() / '../../../clutter/clutter'), 20 | '--config=@INPUT0@', 21 | '--output-dir=@OUTPUT@', 22 | '--content-dir=@0@'.format(meson.current_source_dir()), 23 | '@INPUT1@', 24 | ], 25 | depends: [ 26 | libmutter_cogl_gir[0], 27 | libmutter_cogl_pango_gir[0], 28 | libmutter_clutter_gir[0], 29 | ], 30 | build_by_default: true, 31 | install: true, 32 | install_dir: docs_dir, 33 | ) 34 | -------------------------------------------------------------------------------- /doc/reference/cally/urlmap.js: -------------------------------------------------------------------------------- 1 | // SPDX-FileCopyrightText: 2021 GNOME Foundation 2 | // SPDX-License-Identifier: LGPL-2.1-or-later 3 | 4 | // A map between namespaces and base URLs for their online documentation 5 | baseURLs = [ 6 | [ 'GLib', 'https://docs.gtk.org/glib/' ], 7 | [ 'GObject', 'https://docs.gtk.org/gobject/' ], 8 | [ 'Gio', 'https://docs.gtk.org/gio/' ], 9 | [ 'Atk', 'https://docs.gtk.org/atk/' ], 10 | [ 'Gdk', 'https://docs.gtk.org/gdk3/' ], 11 | [ 'Gtk', 'https://docs.gtk.org/gtk3/' ], 12 | [ 'Pango', 'https://docs.gtk.org/Pango/' ], 13 | [ 'PangoCairo', 'https://docs.gtk.org/PangoCairo/' ], 14 | [ 'GdkPixbuf', 'https://docs.gtk.org/gdk-pixbuf/' ], 15 | ] 16 | -------------------------------------------------------------------------------- /doc/reference/clutter/meson.build: -------------------------------------------------------------------------------- 1 | 2 | clutter_toml = configure_file( 3 | input: 'clutter.toml.in', 4 | output: 'clutter.toml', 5 | configuration: toml_conf, 6 | install: true, 7 | install_dir: docs_dir / 'clutter', 8 | ) 9 | 10 | custom_target('clutter-doc', 11 | input: [ clutter_toml, libmutter_clutter_gir[0] ], 12 | output: 'clutter', 13 | command: [ 14 | gidocgen, 15 | 'generate', 16 | gidocgen_common_args, 17 | '--add-include-path=@0@'.format(meson.current_build_dir() / '../../../cogl/cogl'), 18 | '--add-include-path=@0@'.format(meson.current_build_dir() / '../../../cogl/cogl-pango'), 19 | '--config=@INPUT0@', 20 | '--output-dir=@OUTPUT@', 21 | '--content-dir=@0@'.format(meson.current_source_dir()), 22 | '@INPUT1@', 23 | ], 24 | depends: [ 25 | libmutter_cogl_pango_gir[0], 26 | libmutter_cogl_gir[0], 27 | ], 28 | build_by_default: true, 29 | install: true, 30 | install_dir: docs_dir, 31 | ) 32 | -------------------------------------------------------------------------------- /doc/reference/clutter/urlmap.js: -------------------------------------------------------------------------------- 1 | // SPDX-FileCopyrightText: 2021 GNOME Foundation 2 | // SPDX-License-Identifier: LGPL-2.1-or-later 3 | 4 | // A map between namespaces and base URLs for their online documentation 5 | baseURLs = [ 6 | [ 'GLib', 'https://docs.gtk.org/glib/' ], 7 | [ 'GObject', 'https://docs.gtk.org/gobject/' ], 8 | [ 'Gio', 'https://docs.gtk.org/gio/' ], 9 | [ 'Atk', 'https://docs.gtk.org/atk/' ], 10 | [ 'Gdk', 'https://docs.gtk.org/gdk3/' ], 11 | [ 'Gtk', 'https://docs.gtk.org/gtk3/' ], 12 | [ 'Pango', 'https://docs.gtk.org/Pango/' ], 13 | [ 'PangoCairo', 'https://docs.gtk.org/PangoCairo/' ], 14 | [ 'GdkPixbuf', 'https://docs.gtk.org/gdk-pixbuf/' ], 15 | ] 16 | -------------------------------------------------------------------------------- /doc/reference/cogl-pango/cogl-pango.toml.in: -------------------------------------------------------------------------------- 1 | [library] 2 | version = "@version@" 3 | browse_url = "https://gitlab.gnome.org/GNOME/mutter/" 4 | repository_url = "https://gitlab.gnome.org/GNOME/mutter.git" 5 | website_url = "https://blogs.gnome.org/shell-dev/" 6 | docs_url = "https://docs.gtk.org/" 7 | authors = "Mutter Development Team" 8 | license = "GPL-2.0-or-later" 9 | description = "A Low Level GPU Graphics and Utilities API" 10 | dependencies = [ "GObject-2.0", "Pango-1.0", "PangoCairo-1.0" ] 11 | devhelp = true 12 | search_index = true 13 | 14 | [dependencies."GObject-2.0"] 15 | name = "GObject" 16 | description = "The base type system library" 17 | docs_url = "https://docs.gtk.org/gobject/" 18 | 19 | [dependencies."Pango-1.0"] 20 | name = "Pango" 21 | description = "Text shaping and rendering" 22 | docs_url = "https://docs.gtk.org/Pango/" 23 | 24 | [dependencies."PangoCairo-1.0"] 25 | name = "PangoCairo" 26 | description = "Cairo support for Pango" 27 | docs_url = "https://docs.gtk.org/PangoCairo/" 28 | 29 | [theme] 30 | name = "basic" 31 | show_index_summary = true 32 | show_class_hierarchy = true 33 | 34 | [source-location] 35 | base_url = "https://gitlab.gnome.org/GNOME/mutter/-/blob/@vcs_tag@/" 36 | 37 | [extra] 38 | # The same order will be used when generating the index 39 | content_files = [ 40 | ] 41 | content_images = [ 42 | ] 43 | urlmap_file = "urlmap.js" 44 | 45 | -------------------------------------------------------------------------------- /doc/reference/cogl-pango/meson.build: -------------------------------------------------------------------------------- 1 | 2 | cogl_pango_toml = configure_file( 3 | input: 'cogl-pango.toml.in', 4 | output: 'cogl-pango.toml', 5 | configuration: toml_conf, 6 | install: true, 7 | install_dir: docs_dir / 'cogl-pango', 8 | ) 9 | 10 | custom_target('cogl-pango-doc', 11 | input: [ cogl_pango_toml, libmutter_cogl_pango_gir[0] ], 12 | output: 'cogl-pango', 13 | command: [ 14 | gidocgen, 15 | 'generate', 16 | gidocgen_common_args, 17 | '--add-include-path=@0@'.format(meson.current_build_dir() / '../../../cogl/cogl'), 18 | '--config=@INPUT0@', 19 | '--output-dir=@OUTPUT@', 20 | '--content-dir=@0@'.format(meson.current_source_dir()), 21 | '@INPUT1@', 22 | ], 23 | depends: [ 24 | libmutter_cogl_gir[0], 25 | ], 26 | build_by_default: true, 27 | install: true, 28 | install_dir: docs_dir, 29 | ) 30 | -------------------------------------------------------------------------------- /doc/reference/cogl-pango/urlmap.js: -------------------------------------------------------------------------------- 1 | // SPDX-FileCopyrightText: 2021 GNOME Foundation 2 | // SPDX-License-Identifier: LGPL-2.1-or-later 3 | 4 | // A map between namespaces and base URLs for their online documentation 5 | baseURLs = [ 6 | [ 'GLib', 'https://docs.gtk.org/glib/' ], 7 | [ 'GObject', 'https://docs.gtk.org/gobject/' ], 8 | [ 'Gio', 'https://docs.gtk.org/gio/' ], 9 | [ 'Atk', 'https://docs.gtk.org/atk/' ], 10 | [ 'Gdk', 'https://docs.gtk.org/gdk3/' ], 11 | [ 'Gtk', 'https://docs.gtk.org/gtk3/' ], 12 | [ 'Pango', 'https://docs.gtk.org/Pango/' ], 13 | [ 'PangoCairo', 'https://docs.gtk.org/PangoCairo/' ], 14 | [ 'GdkPixbuf', 'https://docs.gtk.org/gdk-pixbuf/' ], 15 | ] 16 | -------------------------------------------------------------------------------- /doc/reference/cogl/meson.build: -------------------------------------------------------------------------------- 1 | 2 | cogl_toml = configure_file( 3 | input: 'cogl.toml.in', 4 | output: 'cogl.toml', 5 | configuration: toml_conf, 6 | install: true, 7 | install_dir: docs_dir / 'cogl', 8 | ) 9 | 10 | custom_target('cogl-doc', 11 | input: [ cogl_toml, libmutter_cogl_gir[0] ], 12 | output: 'cogl', 13 | command: [ 14 | gidocgen, 15 | 'generate', 16 | gidocgen_common_args, 17 | '--config=@INPUT0@', 18 | '--output-dir=@OUTPUT@', 19 | '--content-dir=@0@'.format(meson.current_source_dir()), 20 | '@INPUT1@', 21 | ], 22 | build_by_default: true, 23 | install: true, 24 | install_dir: docs_dir, 25 | ) 26 | -------------------------------------------------------------------------------- /doc/reference/cogl/urlmap.js: -------------------------------------------------------------------------------- 1 | // SPDX-FileCopyrightText: 2021 GNOME Foundation 2 | // SPDX-License-Identifier: LGPL-2.1-or-later 3 | 4 | // A map between namespaces and base URLs for their online documentation 5 | baseURLs = [ 6 | [ 'GLib', 'https://docs.gtk.org/glib/' ], 7 | [ 'GObject', 'https://docs.gtk.org/gobject/' ], 8 | [ 'Gio', 'https://docs.gtk.org/gio/' ], 9 | [ 'Atk', 'https://docs.gtk.org/atk/' ], 10 | [ 'Gdk', 'https://docs.gtk.org/gdk3/' ], 11 | [ 'Gtk', 'https://docs.gtk.org/gtk3/' ], 12 | [ 'Pango', 'https://docs.gtk.org/Pango/' ], 13 | [ 'PangoCairo', 'https://docs.gtk.org/PangoCairo/' ], 14 | [ 'GdkPixbuf', 'https://docs.gtk.org/gdk-pixbuf/' ], 15 | ] 16 | -------------------------------------------------------------------------------- /doc/reference/meson.build: -------------------------------------------------------------------------------- 1 | if not have_introspection 2 | error('API reference requires introspection.') 3 | endif 4 | 5 | 6 | toml_conf = configuration_data() 7 | toml_conf.set('version', libmutter_api_version) 8 | toml_conf.set('vcs_tag', 'main') 9 | 10 | gidocgen = find_program('gi-docgen') 11 | 12 | gidocgen_common_args = [ 13 | '--quiet', 14 | '--no-namespace-dir', 15 | ] 16 | 17 | if get_option('werror') 18 | gidocgen_common_args += ['--fatal-warnings'] 19 | endif 20 | 21 | docs_dir = pkgdatadir / 'doc' 22 | 23 | subdir('cally') 24 | subdir('clutter') 25 | subdir('cogl') 26 | subdir('cogl-pango') 27 | subdir('meta') 28 | -------------------------------------------------------------------------------- /doc/reference/meta/meson.build: -------------------------------------------------------------------------------- 1 | 2 | meta_toml = configure_file( 3 | input: 'meta.toml.in', 4 | output: 'meta.toml', 5 | configuration: toml_conf, 6 | install: true, 7 | install_dir: docs_dir / 'meta', 8 | ) 9 | 10 | custom_target('meta-doc', 11 | input: [ meta_toml, libmutter_gir[0] ], 12 | output: 'meta', 13 | command: [ 14 | gidocgen, 15 | 'generate', 16 | gidocgen_common_args, 17 | '--add-include-path=@0@'.format(meson.current_build_dir() / '../../../clutter/clutter'), 18 | '--add-include-path=@0@'.format(meson.current_build_dir() / '../../../cogl/cogl'), 19 | '--add-include-path=@0@'.format(meson.current_build_dir() / '../../../cogl/cogl-pango'), 20 | '--config=@INPUT0@', 21 | '--output-dir=@OUTPUT@', 22 | '--content-dir=@0@'.format(meson.current_source_dir()), 23 | '@INPUT1@', 24 | ], 25 | depends: [ 26 | libmutter_clutter_gir[0], 27 | libmutter_cally_gir[0], 28 | libmutter_cogl_pango_gir[0], 29 | libmutter_cogl_gir[0], 30 | ], 31 | build_by_default: true, 32 | install: true, 33 | install_dir: docs_dir, 34 | ) 35 | -------------------------------------------------------------------------------- /doc/reference/meta/meta.toml.in: -------------------------------------------------------------------------------- 1 | [library] 2 | version = "@version@" 3 | browse_url = "https://gitlab.gnome.org/GNOME/mutter/" 4 | repository_url = "https://gitlab.gnome.org/GNOME/mutter.git" 5 | website_url = "https://blogs.gnome.org/shell-dev/" 6 | docs_url = "https://docs.gtk.org/" 7 | authors = "Mutter Development Team" 8 | license = "GPL-2.0-or-later" 9 | description = "The Mutter display server, window manager and compositor library" 10 | dependencies = [ "GObject-2.0", "Gdk-3.0", "Gtk-3.0" ] 11 | devhelp = true 12 | search_index = true 13 | 14 | [dependencies."GObject-2.0"] 15 | name = "GObject" 16 | description = "The base type system library" 17 | docs_url = "https://docs.gtk.org/gobject/" 18 | 19 | [dependencies."Gdk-3.0"] 20 | name = "GDK" 21 | description = "The GTK windowing system abstraction" 22 | docs_url = "https://docs.gtk.org/gdk3/" 23 | 24 | [dependencies."Gtk-3.0"] 25 | name = "GTK" 26 | description = "The GTK toolkit" 27 | docs_url = "https://docs.gtk.org/gtk3/" 28 | 29 | [theme] 30 | name = "basic" 31 | show_index_summary = true 32 | show_class_hierarchy = true 33 | 34 | [source-location] 35 | base_url = "https://gitlab.gnome.org/GNOME/mutter/-/blob/@vcs_tag@/" 36 | 37 | [extra] 38 | # The same order will be used when generating the index 39 | content_files = [ 40 | ] 41 | content_images = [ 42 | ] 43 | urlmap_file = "urlmap.js" 44 | 45 | -------------------------------------------------------------------------------- /doc/reference/meta/urlmap.js: -------------------------------------------------------------------------------- 1 | // SPDX-FileCopyrightText: 2021 GNOME Foundation 2 | // SPDX-License-Identifier: LGPL-2.1-or-later 3 | 4 | // A map between namespaces and base URLs for their online documentation 5 | baseURLs = [ 6 | [ 'GLib', 'https://docs.gtk.org/glib/' ], 7 | [ 'GObject', 'https://docs.gtk.org/gobject/' ], 8 | [ 'Gio', 'https://docs.gtk.org/gio/' ], 9 | [ 'Atk', 'https://docs.gtk.org/atk/' ], 10 | [ 'Gdk', 'https://docs.gtk.org/gdk3/' ], 11 | [ 'Gtk', 'https://docs.gtk.org/gtk3/' ], 12 | [ 'Pango', 'https://docs.gtk.org/Pango/' ], 13 | [ 'PangoCairo', 'https://docs.gtk.org/PangoCairo/' ], 14 | [ 'GdkPixbuf', 'https://docs.gtk.org/gdk-pixbuf/' ], 15 | ] 16 | -------------------------------------------------------------------------------- /po/LINGUAS: -------------------------------------------------------------------------------- 1 | # please keep this list sorted alphabetically 2 | # 3 | ab 4 | am 5 | ar 6 | as 7 | ast 8 | az 9 | be 10 | be@latin 11 | bg 12 | bn 13 | bn_IN 14 | br 15 | bs 16 | ca 17 | ca@valencia 18 | cs 19 | cy 20 | da 21 | de 22 | dz 23 | el 24 | en_CA 25 | en_GB 26 | eo 27 | es 28 | et 29 | eu 30 | fa 31 | fi 32 | fr 33 | fur 34 | ga 35 | gd 36 | gl 37 | gu 38 | ha 39 | he 40 | hi 41 | hr 42 | hu 43 | hy 44 | id 45 | ig 46 | is 47 | it 48 | ja 49 | ka 50 | kk 51 | kn 52 | ko 53 | ku 54 | la 55 | lt 56 | lv 57 | mai 58 | mg 59 | mk 60 | ml 61 | mn 62 | mr 63 | ms 64 | nb 65 | nds 66 | ne 67 | nl 68 | nn 69 | oc 70 | or 71 | pa 72 | pl 73 | pt 74 | pt_BR 75 | ro 76 | ru 77 | rw 78 | si 79 | sk 80 | sl 81 | sq 82 | sr 83 | sr@latin 84 | sv 85 | ta 86 | te 87 | tg 88 | th 89 | tk 90 | tr 91 | ug 92 | uk 93 | vi 94 | wa 95 | xh 96 | yo 97 | zh_CN 98 | zh_HK 99 | zh_TW 100 | -------------------------------------------------------------------------------- /po/POTFILES.in: -------------------------------------------------------------------------------- 1 | # List of source files containing translatable strings. 2 | # Please keep this file sorted alphabetically. 3 | data/50-mutter-navigation.xml 4 | data/50-mutter-system.xml 5 | data/50-mutter-wayland.xml 6 | data/50-mutter-windows.xml 7 | data/org.gnome.mutter.gschema.xml.in 8 | data/org.gnome.mutter.wayland.gschema.xml.in 9 | src/backends/meta-input-settings.c 10 | src/backends/meta-monitor.c 11 | src/backends/meta-monitor-manager.c 12 | src/backends/x11/meta-clutter-backend-x11.c 13 | src/compositor/compositor.c 14 | src/compositor/meta-background.c 15 | src/core/bell.c 16 | src/core/display.c 17 | src/core/keybindings.c 18 | src/core/meta-context-main.c 19 | src/core/meta-pad-action-mapper.c 20 | src/core/meta-profiler.c 21 | src/core/mutter.c 22 | src/core/prefs.c 23 | src/core/util.c 24 | src/core/window.c 25 | src/core/workspace.c 26 | src/ui/frames.c 27 | src/ui/theme.c 28 | src/wayland/meta-wayland-tablet-pad.c 29 | src/x11/meta-x11-display.c 30 | src/x11/meta-x11-errors.c 31 | src/x11/meta-x11-selection-input-stream.c 32 | src/x11/window-props.c 33 | src/x11/xprops.c 34 | -------------------------------------------------------------------------------- /po/POTFILES.skip: -------------------------------------------------------------------------------- 1 | # List of source files that should NOT be translated. 2 | # Please keep this file sorted alphabetically. 3 | clutter 4 | cogl 5 | -------------------------------------------------------------------------------- /po/meson.build: -------------------------------------------------------------------------------- 1 | i18n.gettext(meson.project_name(), preset: 'glib') 2 | -------------------------------------------------------------------------------- /scripts/mesonPostInstall.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Borrowed from: https://github.com/vinszent/gnome-twitch/blob/master/meson_post_install.sh 4 | # <3 TingPing ^^ 5 | if [ -z $DESTDIR ]; then 6 | PREFIX=${MESON_INSTALL_PREFIX:-/usr} 7 | 8 | echo 'Compiling GSchema' 9 | glib-compile-schemas "$PREFIX/share/glib-2.0/schemas" 10 | echo 'Updating desktop database' 11 | update-desktop-database -q 12 | fi 13 | -------------------------------------------------------------------------------- /scripts/mkRelease.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | git submodule init 5 | git submodule update 6 | 7 | rm -rf build 8 | meson setup build --prefix=/usr 9 | ninja dist -C build 10 | 11 | VERSION=$(grep "version:" meson.build | head -n1 | cut -d"'" -f2) 12 | TAR="magpie-${VERSION}.tar.xz" 13 | VTAR="magpie-v${VERSION}.tar.xz" 14 | 15 | mv build/meson-dist/$TAR $VTAR 16 | 17 | gpg --armor --detach-sign $VTAR 18 | gpg --verify "${VTAR}.asc" 19 | -------------------------------------------------------------------------------- /src/backends/gsm-inhibitor-flag.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- 2 | * 3 | * Copyright (C) 2008 Red Hat, Inc. 4 | * 5 | * This program is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU General Public License as 7 | * published by the Free Software Foundation; either version 2 of the 8 | * License, or (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, but 11 | * WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Lesser General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, see . 17 | */ 18 | 19 | #ifndef __GSM_INHIBITOR_FLAG_H__ 20 | #define __GSM_INHIBITOR_FLAG_H__ 21 | 22 | #include 23 | 24 | G_BEGIN_DECLS 25 | 26 | typedef enum { 27 | GSM_INHIBITOR_FLAG_LOGOUT = 1 << 0, 28 | GSM_INHIBITOR_FLAG_SWITCH_USER = 1 << 1, 29 | GSM_INHIBITOR_FLAG_SUSPEND = 1 << 2, 30 | GSM_INHIBITOR_FLAG_IDLE = 1 << 3, 31 | GSM_INHIBITOR_FLAG_AUTOMOUNT = 1 << 4 32 | } GsmInhibitorFlag; 33 | 34 | G_END_DECLS 35 | 36 | #endif /* __GSM_INHIBITOR_FLAG_H__ */ 37 | -------------------------------------------------------------------------------- /src/backends/meta-gles3-table.h: -------------------------------------------------------------------------------- 1 | /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2 | 3 | /* 4 | * Copyright (C) 2017 Red Hat 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License as 8 | * published by the Free Software Foundation; either version 2 of the 9 | * License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, but 12 | * WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 19 | * 02111-1307, USA. 20 | * 21 | */ 22 | 23 | #ifndef META_GLES3_TABLE_H 24 | #define META_GLES3_TABLE_H 25 | 26 | #include 27 | #include 28 | #include 29 | 30 | typedef struct _MetaGles3Table 31 | { 32 | void (* glEGLImageTargetTexture2DOES) (GLenum target, 33 | GLeglImageOES image); 34 | } MetaGles3Table; 35 | 36 | #endif /* META_GLES3_TABLE */ 37 | -------------------------------------------------------------------------------- /src/backends/meta-input-settings-dummy.h: -------------------------------------------------------------------------------- 1 | /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2 | 3 | /* 4 | * Copyright 2021 Canonical, Ltd. 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License as 8 | * published by the Free Software Foundation; either version 2 of the 9 | * License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, but 12 | * WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, see . 18 | * 19 | * Author: Marco Trevisan 20 | */ 21 | 22 | #pragma once 23 | 24 | #include "backends/meta-input-settings-private.h" 25 | 26 | #define META_TYPE_INPUT_SETTINGS_DUMMY (meta_input_settings_dummy_get_type ()) 27 | 28 | G_DECLARE_DERIVABLE_TYPE (MetaInputSettingsDummy, meta_input_settings_dummy, 29 | META, INPUT_SETTINGS_DUMMY, MetaInputSettings); 30 | 31 | struct _MetaInputSettingsDummyClass 32 | { 33 | MetaInputSettingsClass parent_class; 34 | }; 35 | -------------------------------------------------------------------------------- /src/backends/meta-keymap-utils.h: -------------------------------------------------------------------------------- 1 | /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2 | /* 3 | * Utilities for use with libxkbcommon 4 | * 5 | * Copyright 2020 Red Hat, Inc. 6 | * 7 | * This program is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU General Public License as 9 | * published by the Free Software Foundation; either version 2 of the 10 | * License, or (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, but 13 | * WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | * General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program; if not, see . 19 | */ 20 | 21 | #ifndef META_KEYMAP_UTILS_H 22 | #define META_KEYMAP_UTILS_H 23 | 24 | #include 25 | 26 | struct xkb_context * meta_create_xkb_context (void); 27 | 28 | #endif /* META_KEYMAP_UTILS_H */ 29 | -------------------------------------------------------------------------------- /src/backends/native/dbus-utils.h: -------------------------------------------------------------------------------- 1 | /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2 | 3 | /* 4 | * Copyright (C) 2014 Red Hat 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License as 8 | * published by the Free Software Foundation; either version 2 of the 9 | * License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, but 12 | * WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 19 | * 02111-1307, USA. 20 | * 21 | * Written by: 22 | * Jasper St. Pierre 23 | */ 24 | 25 | #ifndef DBUS_UTILS_H 26 | #define DBUS_UTILS_H 27 | 28 | char * 29 | get_escaped_dbus_path (const char *prefix, 30 | const char *component); 31 | 32 | #endif /* DBUS_UTILS_H */ 33 | -------------------------------------------------------------------------------- /src/backends/native/meta-crtc-virtual.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021 Red Hat 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 17 | * 02111-1307, USA. 18 | */ 19 | 20 | #ifndef META_CRTC_VIRTUAL_H 21 | #define META_CRTC_VIRTUAL_H 22 | 23 | #include "backends/native/meta-crtc-native.h" 24 | 25 | #define META_TYPE_CRTC_VIRTUAL (meta_crtc_virtual_get_type ()) 26 | G_DECLARE_FINAL_TYPE (MetaCrtcVirtual, meta_crtc_virtual, 27 | META, CRTC_VIRTUAL, 28 | MetaCrtcNative) 29 | 30 | MetaCrtcVirtual * meta_crtc_virtual_new (uint64_t id); 31 | 32 | #endif /* META_CRTC_VIRTUAL_H */ 33 | -------------------------------------------------------------------------------- /src/backends/native/meta-input-thread.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2020 Red Hat Inc. 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with this library. If not, see . 16 | * 17 | * Author: Carlos Garnacho 18 | */ 19 | 20 | #ifndef META_INPUT_THREAD_H 21 | #define META_INPUT_THREAD_H 22 | 23 | #define META_INPUT_THREAD_H_INSIDE 24 | 25 | #include "src/backends/native/meta-input-device-native.h" 26 | #include "src/backends/native/meta-input-device-tool-native.h" 27 | #include "src/backends/native/meta-input-settings-native.h" 28 | #include "src/backends/native/meta-keymap-native.h" 29 | #include "src/backends/native/meta-seat-impl.h" 30 | 31 | #undef META_INPUT_THREAD_H_INSIDE 32 | 33 | #endif /* META_INPUT_THREAD_H */ 34 | -------------------------------------------------------------------------------- /src/backends/native/meta-kms-impl-device-atomic.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2019 Red Hat 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 17 | * 02111-1307, USA. 18 | */ 19 | 20 | #ifndef META_KMS_IMPL_DEVICE_ATOMIC_H 21 | #define META_KMS_IMPL_DEVICE_ATOMIC_H 22 | 23 | #include "backends/native/meta-kms-impl-device.h" 24 | 25 | #define META_TYPE_KMS_IMPL_DEVICE_ATOMIC (meta_kms_impl_device_atomic_get_type ()) 26 | META_EXPORT_TEST 27 | G_DECLARE_FINAL_TYPE (MetaKmsImplDeviceAtomic, meta_kms_impl_device_atomic, 28 | META, KMS_IMPL_DEVICE_ATOMIC, MetaKmsImplDevice) 29 | 30 | #endif /* META_KMS_IMPL_DEVICE_ATOMIC_H */ 31 | -------------------------------------------------------------------------------- /src/backends/native/meta-kms-impl-device-dummy.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021 Red Hat 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 17 | * 02111-1307, USA. 18 | */ 19 | 20 | #ifndef META_KMS_IMPL_DEVICE_DUMMY_H 21 | #define META_KMS_IMPL_DEVICE_DUMMY_H 22 | 23 | #include "backends/native/meta-kms-impl-device.h" 24 | 25 | #define META_TYPE_KMS_IMPL_DEVICE_DUMMY (meta_kms_impl_device_dummy_get_type ()) 26 | G_DECLARE_FINAL_TYPE (MetaKmsImplDeviceDummy, meta_kms_impl_device_dummy, 27 | META, KMS_IMPL_DEVICE_DUMMY, 28 | MetaKmsImplDevice) 29 | 30 | #endif /* META_KMS_IMPL_DEVICE_DUMMY_H */ 31 | -------------------------------------------------------------------------------- /src/backends/native/meta-kms-impl-device-simple.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018-2020 Red Hat 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 17 | * 02111-1307, USA. 18 | */ 19 | 20 | #ifndef META_KMS_IMPL_DEVICE_SIMPLE_H 21 | #define META_KMS_IMPL_DEVICE_SIMPLE_H 22 | 23 | #include "backends/native/meta-kms-impl-device.h" 24 | 25 | #define META_TYPE_KMS_IMPL_DEVICE_SIMPLE (meta_kms_impl_device_simple_get_type ()) 26 | META_EXPORT_TEST 27 | G_DECLARE_FINAL_TYPE (MetaKmsImplDeviceSimple, meta_kms_impl_device_simple, 28 | META, KMS_IMPL_DEVICE_SIMPLE, MetaKmsImplDevice) 29 | 30 | #endif /* META_KMS_IMPL_DEVICE_SIMPLE_H */ 31 | -------------------------------------------------------------------------------- /src/backends/x11/cm/meta-backend-x11-cm.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 Red Hat 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 17 | * 02111-1307, USA. 18 | */ 19 | 20 | #ifndef META_BACKEND_X11_CM_H 21 | #define META_BACKEND_X11_CM_H 22 | 23 | #include 24 | 25 | #include "backends/x11/meta-backend-x11.h" 26 | 27 | #define META_TYPE_BACKEND_X11_CM (meta_backend_x11_cm_get_type ()) 28 | G_DECLARE_FINAL_TYPE (MetaBackendX11Cm, meta_backend_x11_cm, 29 | META, BACKEND_X11_CM, MetaBackendX11) 30 | 31 | #endif /* META_BACKEND_X11_CM_H */ 32 | -------------------------------------------------------------------------------- /src/backends/x11/meta-backend-x11-types.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Red Hat 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 17 | * 02111-1307, USA. 18 | * 19 | */ 20 | 21 | #ifndef META_BACKEND_X11_TYPES_H 22 | #define META_BACKEND_X11_TYPES_H 23 | 24 | typedef struct _MetaBackendX11 MetaBackendX11; 25 | 26 | typedef struct _MetaX11Barriers MetaX11Barriers; 27 | 28 | #endif /* META_BACKEND_X11_TYPES_H */ 29 | -------------------------------------------------------------------------------- /src/backends/x11/meta-color-manager-x11.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021 Red Hat Inc 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, see . 16 | */ 17 | 18 | #ifndef META_COLOR_MANAGER_X11_H 19 | #define META_COLOR_MANAGER_X11_H 20 | 21 | #include 22 | 23 | #include "backends/meta-color-manager-private.h" 24 | 25 | #define META_TYPE_COLOR_MANAGER_X11 (meta_color_manager_x11_get_type ()) 26 | G_DECLARE_FINAL_TYPE (MetaColorManagerX11, meta_color_manager_x11, 27 | META, COLOR_MANAGER_X11, 28 | MetaColorManager) 29 | 30 | #endif /* META_COLOR_MANAGER_X11_H */ 31 | -------------------------------------------------------------------------------- /src/backends/x11/meta-event-x11.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2006, 2007, 2008 OpenedHand Ltd 2 | * Copyright (C) 2009, 2010 Intel Corp. 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with this library. If not, see . 16 | * 17 | * 18 | * 19 | * Authored by: 20 | * Matthew Allum 21 | * Emmanuele Bassi 22 | */ 23 | 24 | #ifndef META_EVENT_X11_H 25 | #define META_EVENT_X11_H 26 | 27 | #include 28 | 29 | #include "backends/x11/meta-clutter-backend-x11.h" 30 | 31 | MetaX11FilterReturn meta_x11_handle_event (MetaBackend *backend, 32 | XEvent *xevent); 33 | 34 | #endif /* META_EVENT_X11_H */ 35 | -------------------------------------------------------------------------------- /src/backends/x11/meta-virtual-input-device-x11.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Red Hat Inc. 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Lesser General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Lesser General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Lesser General Public 15 | * License along with this library. If not, see . 16 | * 17 | * Author: Jonas Ådahl 18 | */ 19 | 20 | #ifndef META_VIRTUAL_INPUT_DEVICE_X11_H 21 | #define META_VIRTUAL_INPUT_DEVICE_X11_H 22 | 23 | #include "clutter/clutter.h" 24 | 25 | #define META_TYPE_VIRTUAL_INPUT_DEVICE_X11 (meta_virtual_input_device_x11_get_type ()) 26 | G_DECLARE_FINAL_TYPE (MetaVirtualInputDeviceX11, 27 | meta_virtual_input_device_x11, 28 | META, VIRTUAL_INPUT_DEVICE_X11, 29 | ClutterVirtualInputDevice) 30 | 31 | #endif /* META_VIRTUAL_INPUT_DEVICE_X11_H */ 32 | -------------------------------------------------------------------------------- /src/compositor/meta-background-actor-private.h: -------------------------------------------------------------------------------- 1 | /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2 | 3 | #ifndef META_BACKGROUND_ACTOR_PRIVATE_H 4 | #define META_BACKGROUND_ACTOR_PRIVATE_H 5 | 6 | #include "meta/meta-background-actor.h" 7 | 8 | cairo_region_t *meta_background_actor_get_clip_region (MetaBackgroundActor *self); 9 | 10 | #endif /* META_BACKGROUND_ACTOR_PRIVATE_H */ 11 | -------------------------------------------------------------------------------- /src/compositor/meta-background-content-private.h: -------------------------------------------------------------------------------- 1 | /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2 | 3 | #ifndef META_BACKGROUND_CONTENT_PRIVATE_H 4 | #define META_BACKGROUND_CONTENT_PRIVATE_H 5 | 6 | #include "meta/meta-background-content.h" 7 | 8 | cairo_region_t *meta_background_content_get_clip_region (MetaBackgroundContent *self); 9 | 10 | void meta_background_content_cull_out (MetaBackgroundContent *self, 11 | cairo_region_t *unobscured_region, 12 | cairo_region_t *clip_region); 13 | 14 | void meta_background_content_reset_culling (MetaBackgroundContent *self); 15 | 16 | #endif /* META_BACKGROUND_CONTENT_PRIVATE_H */ 17 | -------------------------------------------------------------------------------- /src/compositor/meta-background-private.h: -------------------------------------------------------------------------------- 1 | /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2 | 3 | #ifndef META_BACKGROUND_PRIVATE_H 4 | #define META_BACKGROUND_PRIVATE_H 5 | 6 | #include "cogl/cogl.h" 7 | #include "meta/meta-background.h" 8 | 9 | CoglTexture *meta_background_get_texture (MetaBackground *self, 10 | int monitor_index, 11 | cairo_rectangle_int_t *texture_area, 12 | CoglPipelineWrapMode *wrap_mode); 13 | 14 | #endif /* META_BACKGROUND_PRIVATE_H */ 15 | -------------------------------------------------------------------------------- /src/compositor/meta-later-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2020 Red Hat Inc. 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, see . 16 | */ 17 | 18 | #ifndef META_LATER_PRIVATE_H 19 | #define META_LATER_PRIVATE_H 20 | 21 | #include 22 | 23 | MetaLaters * meta_laters_new (MetaCompositor *compositor); 24 | 25 | void meta_laters_free (MetaLaters *laters); 26 | 27 | #endif /* META_LATER_PRIVATE_H */ 28 | -------------------------------------------------------------------------------- /src/compositor/meta-sync-ring.h: -------------------------------------------------------------------------------- 1 | #ifndef _META_SYNC_RING_H_ 2 | #define _META_SYNC_RING_H_ 3 | 4 | #include 5 | #include 6 | 7 | gboolean meta_sync_ring_init (Display *dpy); 8 | void meta_sync_ring_destroy (void); 9 | gboolean meta_sync_ring_after_frame (void); 10 | gboolean meta_sync_ring_insert_wait (void); 11 | void meta_sync_ring_handle_event (XEvent *event); 12 | 13 | #endif /* _META_SYNC_RING_H_ */ 14 | -------------------------------------------------------------------------------- /src/compositor/meta-window-group-private.h: -------------------------------------------------------------------------------- 1 | /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2 | 3 | #ifndef META_WINDOW_GROUP_PRIVATE_H 4 | #define META_WINDOW_GROUP_PRIVATE_H 5 | 6 | #include "meta/display.h" 7 | #include "meta/meta-window-group.h" 8 | 9 | /** 10 | * MetaWindowGroup: 11 | * 12 | * This class is a subclass of ClutterActor with special handling for 13 | * #MetaCullable when painting children. It uses code similar to 14 | * meta_cullable_cull_out_children(), but also has additional special 15 | * cases for the undirected window, and similar. 16 | */ 17 | 18 | 19 | typedef struct _MetaWindowGroupPrivate MetaWindowGroupPrivate; 20 | 21 | ClutterActor *meta_window_group_new (MetaDisplay *display); 22 | 23 | #endif /* META_WINDOW_GROUP_PRIVATE_H */ 24 | -------------------------------------------------------------------------------- /src/compositor/plugins/meson.build: -------------------------------------------------------------------------------- 1 | default_plugin_c_args = [ 2 | '-fPIC', 3 | '-DG_LOG_DOMAIN="magpie"', 4 | '-DGETTEXT_PACKAGE="@0@"'.format(meson.project_name()), 5 | ] 6 | 7 | default_plugin = shared_module('default', 8 | sources: ['default.c'], 9 | include_directories: mutter_includes, 10 | c_args: default_plugin_c_args, 11 | dependencies: [ 12 | glib_dep, 13 | gtk3_dep, 14 | json_glib_dep, 15 | gsettings_desktop_schemas_dep, 16 | libmutter_clutter_dep, 17 | ], 18 | install_dir: join_paths(pkglibdir, 'plugins'), 19 | install: true, 20 | ) 21 | -------------------------------------------------------------------------------- /src/core/events.h: -------------------------------------------------------------------------------- 1 | /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2 | 3 | /* 4 | * Copyright (C) 2001 Havoc Pennington 5 | * Copyright (C) 2002, 2003, 2004 Red Hat, Inc. 6 | * Copyright (C) 2003, 2004 Rob Adams 7 | * Copyright (C) 2004-2006 Elijah Newren 8 | * 9 | * This program is free software; you can redistribute it and/or 10 | * modify it under the terms of the GNU General Public License as 11 | * published by the Free Software Foundation; either version 2 of the 12 | * License, or (at your option) any later version. 13 | * 14 | * This program is distributed in the hope that it will be useful, but 15 | * WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 | * General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU General Public License 20 | * along with this program; if not, see . 21 | */ 22 | 23 | #ifndef META_EVENTS_H 24 | #define META_EVENTS_H 25 | 26 | #include "meta/display.h" 27 | 28 | void meta_display_init_events (MetaDisplay *display); 29 | void meta_display_free_events (MetaDisplay *display); 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /src/core/meta-clipboard-manager.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Red Hat 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 17 | * 02111-1307, USA. 18 | * 19 | * Author: Carlos Garnacho 20 | */ 21 | 22 | #ifndef META_CLIPBOARD_MANAGER_H 23 | #define META_CLIPBOARD_MANAGER_H 24 | 25 | #include "core/display-private.h" 26 | 27 | void meta_clipboard_manager_init (MetaDisplay *display); 28 | void meta_clipboard_manager_shutdown (MetaDisplay *display); 29 | 30 | #endif /* META_CLIPBOARD_MANAGER_H */ 31 | -------------------------------------------------------------------------------- /src/core/meta-context-main.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021 Red Hat Inc. 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 17 | * 02111-1307, USA. 18 | * 19 | */ 20 | 21 | #ifndef META_CONTEXT_MAIN_H 22 | #define META_CONTEXT_MAIN_H 23 | 24 | #include "core/meta-context-private.h" 25 | 26 | #define META_TYPE_CONTEXT_MAIN (meta_context_main_get_type ()) 27 | G_DECLARE_FINAL_TYPE (MetaContextMain, meta_context_main, 28 | META, CONTEXT_MAIN, 29 | MetaContext) 30 | 31 | #endif /* META_CONTEXT_MAIN_H */ 32 | -------------------------------------------------------------------------------- /src/core/meta-fraction.h: -------------------------------------------------------------------------------- 1 | /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2 | 3 | /* 4 | * Copyright (C) 2017 Red Hat, Inc. 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License as 8 | * published by the Free Software Foundation; either version 2 of the 9 | * License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, but 12 | * WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, see . 18 | */ 19 | 20 | #ifndef META_FRACTION_H 21 | #define META_FRACTION_H 22 | 23 | typedef struct _MetaFraction 24 | { 25 | int num; 26 | int denom; 27 | } MetaFraction; 28 | 29 | MetaFraction meta_fraction_from_double (double src); 30 | 31 | #endif /* META_FRACTION_H */ 32 | -------------------------------------------------------------------------------- /src/core/meta-private-enums.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2019-2021 Red Hat Inc. 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 17 | * 02111-1307, USA. 18 | * 19 | */ 20 | 21 | #ifndef META_PRIVATE_ENUMS_H 22 | #define META_PRIVATE_ENUMS_H 23 | 24 | typedef enum _MetaX11DisplayPolicy 25 | { 26 | META_X11_DISPLAY_POLICY_MANDATORY, 27 | META_X11_DISPLAY_POLICY_ON_DEMAND, 28 | META_X11_DISPLAY_POLICY_DISABLED, 29 | } MetaX11DisplayPolicy; 30 | 31 | typedef enum 32 | { 33 | META_QUEUE_CALC_SHOWING = 1 << 0, 34 | META_QUEUE_MOVE_RESIZE = 1 << 1, 35 | } MetaQueueType; 36 | 37 | #endif /* META_PRIVATE_ENUMS_H */ 38 | -------------------------------------------------------------------------------- /src/core/meta-selection-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2020 Red Hat 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 17 | * 02111-1307, USA. 18 | * 19 | * Written by: 20 | * Carlos Garnacho 21 | */ 22 | 23 | #ifndef META_SELECTION_PRIVATE_H 24 | #define META_SELECTION_PRIVATE_H 25 | 26 | #include "meta/meta-selection.h" 27 | 28 | MetaSelectionSource * 29 | meta_selection_get_current_owner (MetaSelection *selection, 30 | MetaSelectionType selection_type); 31 | 32 | #endif /* META_SELECTION_PRIVATE_H */ 33 | -------------------------------------------------------------------------------- /src/core/prefs-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021 Red Hat Inc. 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 17 | * 02111-1307, USA. 18 | * 19 | */ 20 | 21 | #ifndef PREFS_PRIVATE_H 22 | #define PREFS_PRIVATE_H 23 | 24 | void meta_prefs_init (void); 25 | 26 | #endif /* PREFS_PRIVATE_H */ 27 | -------------------------------------------------------------------------------- /src/libmutter.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | includedir=@includedir@ 5 | apiversion=@LIBMUTTER_API_VERSION@ 6 | girdir=@libdir@/mutter-${apiversion} 7 | typelibdir=@libdir@/mutter-${apiversion} 8 | 9 | Name: libmutter 10 | Description: Mutter window manager library 11 | Requires: gsettings-desktop-schemas gtk+-3.0 mutter-clutter-${apiversion} x11 12 | Version: @VERSION@ 13 | Libs: -L${libdir} -lmutter-${apiversion} 14 | Cflags: -I${includedir}/mutter-${apiversion} 15 | -------------------------------------------------------------------------------- /src/meta-private-enum-types.c.in: -------------------------------------------------------------------------------- 1 | /*** BEGIN file-header ***/ 2 | #include "config.h" 3 | #include "meta-private-enum-types.h" 4 | /*** END file-header ***/ 5 | 6 | /*** BEGIN file-production ***/ 7 | 8 | /* enumerations from "@filename@" */ 9 | #include "@filename@" 10 | 11 | /*** END file-production ***/ 12 | 13 | /*** BEGIN value-header ***/ 14 | GType 15 | @enum_name@_get_type (void) 16 | { 17 | static size_t g_enum_type_id = 0; 18 | 19 | if (g_once_init_enter (&g_enum_type_id)) 20 | { 21 | static const G@Type@Value values[] = { 22 | /*** END value-header ***/ 23 | 24 | /*** BEGIN value-production ***/ 25 | { @VALUENAME@, "@VALUENAME@", "@valuenick@" }, 26 | /*** END value-production ***/ 27 | 28 | /*** BEGIN value-tail ***/ 29 | { 0, NULL, NULL } 30 | }; 31 | GType id; 32 | 33 | id = g_@type@_register_static (g_intern_static_string ("@EnumName@"), values); 34 | 35 | g_once_init_leave (&g_enum_type_id, id); 36 | } 37 | 38 | return g_enum_type_id; 39 | } 40 | /*** END value-tail ***/ 41 | -------------------------------------------------------------------------------- /src/meta-private-enum-types.h.in: -------------------------------------------------------------------------------- 1 | /*** BEGIN file-header ***/ 2 | #ifndef META_PRIVATE_ENUM_TYPES_H 3 | #define META_PRIVATE_ENUM_TYPES_H 4 | 5 | #include 6 | 7 | G_BEGIN_DECLS 8 | 9 | /*** END file-header ***/ 10 | 11 | /*** BEGIN file-production ***/ 12 | /* enumerations from "@basename@" */ 13 | /*** END file-production ***/ 14 | 15 | /*** BEGIN file-tail ***/ 16 | G_END_DECLS 17 | 18 | #endif /* !__MUTTER_ENUM_TYPES_H__ */ 19 | /*** END file-tail ***/ 20 | 21 | /*** BEGIN value-header ***/ 22 | GType @enum_name@_get_type (void) G_GNUC_CONST; 23 | #define META_TYPE_@ENUMSHORT@ (@enum_name@_get_type()) 24 | 25 | /*** END value-header ***/ 26 | -------------------------------------------------------------------------------- /src/meta/meta-background-group.h: -------------------------------------------------------------------------------- 1 | /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2 | 3 | #ifndef META_BACKGROUND_GROUP_H 4 | #define META_BACKGROUND_GROUP_H 5 | 6 | #include "clutter/clutter.h" 7 | 8 | #include 9 | 10 | #define META_TYPE_BACKGROUND_GROUP (meta_background_group_get_type ()) 11 | 12 | META_EXPORT 13 | G_DECLARE_DERIVABLE_TYPE (MetaBackgroundGroup, 14 | meta_background_group, 15 | META, BACKGROUND_GROUP, 16 | ClutterActor) 17 | 18 | struct _MetaBackgroundGroupClass 19 | { 20 | ClutterActorClass parent_class; 21 | }; 22 | 23 | META_EXPORT 24 | ClutterActor *meta_background_group_new (void); 25 | 26 | #endif /* META_BACKGROUND_GROUP_H */ 27 | -------------------------------------------------------------------------------- /src/meta/meta-dnd.h: -------------------------------------------------------------------------------- 1 | /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2 | 3 | /* 4 | * Copyright (C) 2016 Hyungwon Hwang 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License as 8 | * published by the Free Software Foundation; either version 2 of the 9 | * License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, but 12 | * WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, see . 18 | */ 19 | 20 | #ifndef META_DND_H 21 | #define META_DND_H 22 | 23 | #include 24 | #include 25 | 26 | #include 27 | #include 28 | 29 | #define META_TYPE_DND (meta_dnd_get_type ()) 30 | 31 | META_EXPORT 32 | G_DECLARE_FINAL_TYPE (MetaDnd, meta_dnd, META, DND, GObject) 33 | 34 | #endif /* META_DND_H */ 35 | -------------------------------------------------------------------------------- /src/meta/meta-enum-types.c.in: -------------------------------------------------------------------------------- 1 | /*** BEGIN file-header ***/ 2 | #include 3 | /*** END file-header ***/ 4 | 5 | /*** BEGIN file-production ***/ 6 | 7 | /* enumerations from "@filename@" */ 8 | #include "@filename@" 9 | 10 | /*** END file-production ***/ 11 | 12 | /*** BEGIN value-header ***/ 13 | GType 14 | @enum_name@_get_type (void) 15 | { 16 | static size_t g_enum_type_id = 0; 17 | 18 | if (g_once_init_enter (&g_enum_type_id)) 19 | { 20 | static const G@Type@Value values[] = { 21 | /*** END value-header ***/ 22 | 23 | /*** BEGIN value-production ***/ 24 | { @VALUENAME@, "@VALUENAME@", "@valuenick@" }, 25 | /*** END value-production ***/ 26 | 27 | /*** BEGIN value-tail ***/ 28 | { 0, NULL, NULL } 29 | }; 30 | GType id; 31 | 32 | id = g_@type@_register_static (g_intern_static_string ("@EnumName@"), values); 33 | 34 | g_once_init_leave (&g_enum_type_id, id); 35 | } 36 | 37 | return g_enum_type_id; 38 | } 39 | /*** END value-tail ***/ 40 | -------------------------------------------------------------------------------- /src/meta/meta-enum-types.h.in: -------------------------------------------------------------------------------- 1 | /*** BEGIN file-header ***/ 2 | #ifndef __META_ENUM_TYPES_H__ 3 | #define __META_ENUM_TYPES_H__ 4 | 5 | #include 6 | #include 7 | 8 | G_BEGIN_DECLS 9 | 10 | /*** END file-header ***/ 11 | 12 | /*** BEGIN file-production ***/ 13 | /* enumerations from "@basename@" */ 14 | /*** END file-production ***/ 15 | 16 | /*** BEGIN file-tail ***/ 17 | G_END_DECLS 18 | 19 | #endif /* !__MUTTER_ENUM_TYPES_H__ */ 20 | /*** END file-tail ***/ 21 | 22 | /*** BEGIN value-header ***/ 23 | META_EXPORT GType @enum_name@_get_type (void) G_GNUC_CONST; 24 | #define META_TYPE_@ENUMSHORT@ (@enum_name@_get_type()) 25 | 26 | /*** END value-header ***/ 27 | 28 | -------------------------------------------------------------------------------- /src/meta/meta-settings.h: -------------------------------------------------------------------------------- 1 | /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2 | 3 | /* 4 | * Copyright (C) 2017 Red Hat 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License as 8 | * published by the Free Software Foundation; either version 2 of the 9 | * License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, but 12 | * WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 19 | * 02111-1307, USA. 20 | */ 21 | 22 | #ifndef META_SETTINGS_H 23 | #define META_SETTINGS_H 24 | 25 | #include 26 | #include 27 | 28 | META_EXPORT 29 | int meta_settings_get_ui_scaling_factor (MetaSettings *settings); 30 | 31 | META_EXPORT 32 | int meta_settings_get_font_dpi (MetaSettings *settings); 33 | 34 | #endif /* META_SETTINGS_H */ 35 | -------------------------------------------------------------------------------- /src/meta/meta-stage.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Intel Corporation 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 17 | * 02111-1307, USA. 18 | */ 19 | 20 | #ifndef META_STAGE_H 21 | #define META_STAGE_H 22 | 23 | #include "clutter/clutter.h" 24 | 25 | G_BEGIN_DECLS 26 | 27 | #define META_TYPE_STAGE (meta_stage_get_type ()) 28 | 29 | META_EXPORT 30 | G_DECLARE_FINAL_TYPE (MetaStage, meta_stage, META, STAGE, ClutterStage) 31 | 32 | G_END_DECLS 33 | 34 | #endif /* META_STAGE_H */ 35 | -------------------------------------------------------------------------------- /src/meta/meta-window-group.h: -------------------------------------------------------------------------------- 1 | /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2 | 3 | #ifndef META_WINDOW_GROUP_H 4 | #define META_WINDOW_GROUP_H 5 | 6 | #include "clutter/clutter.h" 7 | 8 | #define META_TYPE_WINDOW_GROUP (meta_window_group_get_type()) 9 | 10 | META_EXPORT 11 | G_DECLARE_FINAL_TYPE (MetaWindowGroup, 12 | meta_window_group, 13 | META, WINDOW_GROUP, 14 | ClutterActor) 15 | 16 | #endif /* META_WINDOW_GROUP_H */ 17 | -------------------------------------------------------------------------------- /src/meta/theme.h: -------------------------------------------------------------------------------- 1 | /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2 | 3 | /* Metacity Theme Rendering */ 4 | 5 | /* 6 | * Copyright (C) 2001 Havoc Pennington 7 | * 8 | * This program is free software; you can redistribute it and/or 9 | * modify it under the terms of the GNU General Public License as 10 | * published by the Free Software Foundation; either version 2 of the 11 | * License, or (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, but 14 | * WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | * General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, see . 20 | */ 21 | 22 | #ifndef META_THEME_H 23 | #define META_THEME_H 24 | 25 | #include 26 | 27 | /** 28 | * MetaTheme: 29 | * 30 | */ 31 | typedef struct _MetaTheme MetaTheme; 32 | 33 | META_EXPORT 34 | MetaTheme* meta_theme_get_default (void); 35 | 36 | META_EXPORT 37 | MetaTheme* meta_theme_new (void); 38 | 39 | META_EXPORT 40 | void meta_theme_free (MetaTheme *theme); 41 | #endif 42 | -------------------------------------------------------------------------------- /src/tests/boxes-tests.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Red Hat, Inc. 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, see . 16 | */ 17 | 18 | #ifndef BOXES_TESTS_H 19 | #define BOXES_TESTS_H 20 | 21 | void init_boxes_tests (void); 22 | 23 | #endif /* BOXES_TESTS_H */ 24 | -------------------------------------------------------------------------------- /src/tests/clutter/accessibility/cally-examples-util.h: -------------------------------------------------------------------------------- 1 | /* CALLY - The Clutter Accessibility Implementation Library 2 | * 3 | * Copyright (C) 2009 Igalia, S.L. 4 | * 5 | * Author: Alejandro Piñeiro Iglesias 6 | * 7 | * This library is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU Lesser General Public 9 | * License as published by the Free Software Foundation; either 10 | * version 2 of the License, or (at your option) any later version. 11 | * 12 | * This library is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | * Lesser General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public 18 | * License along with this library; if not, write to the 19 | * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 20 | * Boston, MA 02111-1307, USA. 21 | */ 22 | 23 | #include "tests/clutter-test-utils.h" 24 | 25 | gboolean 26 | cally_util_a11y_init (int *argc, char ***argv); 27 | -------------------------------------------------------------------------------- /src/tests/clutter/accessibility/meson.build: -------------------------------------------------------------------------------- 1 | clutter_test_accessibility_common_sources = [ 2 | 'cally-examples-util.c', 3 | 'cally-examples-util.h', 4 | ] 5 | 6 | clutter_test_accessibility_c_args = [ 7 | '-DPREFIXDIR="@0@"'.format(libdir), 8 | '-DCLUTTER_DISABLE_DEPRECATION_WARNINGS', 9 | '-DGLIB_DISABLE_DEPRECATION_WARNINGS', 10 | '-DGETTEXT_PACKAGE="@0@"'.format(meson.project_name()), 11 | ] 12 | 13 | clutter_test_accessibility_c_args += clutter_debug_c_args 14 | 15 | clutter_accessibility_tests_dependencies = [ 16 | libmutter_test_dep, 17 | ] 18 | 19 | clutter_accessibility_tests = [ 20 | 'cally-atkcomponent-example', 21 | 'cally-atktext-example', 22 | 'cally-atkevents-example', 23 | 'cally-atkeditabletext-example', 24 | 'cally-clone-example', 25 | ] 26 | 27 | foreach test : clutter_accessibility_tests 28 | executable(test, 29 | sources: [ 30 | clutter_test_accessibility_common_sources, 31 | test + '.c', 32 | clutter_test_utils, 33 | ], 34 | include_directories: clutter_includes, 35 | c_args: clutter_test_accessibility_c_args, 36 | dependencies: [clutter_accessibility_tests_dependencies], 37 | install: false, 38 | ) 39 | endforeach 40 | -------------------------------------------------------------------------------- /src/tests/clutter/conform/actor-meta.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #include 5 | 6 | #include "tests/clutter-test-utils.h" 7 | 8 | static void 9 | actor_meta_clear (void) 10 | { 11 | ClutterActor *actor, *stage; 12 | 13 | stage = clutter_test_get_stage (); 14 | 15 | actor = clutter_actor_new (); 16 | g_object_ref_sink (actor); 17 | g_object_add_weak_pointer (G_OBJECT (actor), (gpointer *) &actor); 18 | 19 | clutter_actor_add_action (actor, clutter_click_action_new ()); 20 | clutter_actor_add_constraint (actor, clutter_bind_constraint_new (stage, CLUTTER_BIND_ALL, 0)); 21 | clutter_actor_add_effect (actor, clutter_blur_effect_new ()); 22 | 23 | g_assert (clutter_actor_has_actions (actor)); 24 | g_assert (clutter_actor_has_constraints (actor)); 25 | g_assert (clutter_actor_has_effects (actor)); 26 | 27 | clutter_actor_clear_actions (actor); 28 | g_assert (!clutter_actor_has_actions (actor)); 29 | 30 | clutter_actor_clear_constraints (actor); 31 | g_assert (!clutter_actor_has_constraints (actor)); 32 | 33 | clutter_actor_clear_effects (actor); 34 | g_assert (!clutter_actor_has_effects (actor)); 35 | 36 | clutter_actor_destroy (actor); 37 | g_assert (actor == NULL); 38 | } 39 | 40 | CLUTTER_TEST_SUITE ( 41 | CLUTTER_TEST_UNIT ("/actor/meta/clear", actor_meta_clear) 42 | ) 43 | -------------------------------------------------------------------------------- /src/tests/clutter/conform/scripts/test-script-child.json: -------------------------------------------------------------------------------- 1 | { 2 | "type" : "TestGroup", 3 | "id" : "test-group", 4 | "children" : [ 5 | { 6 | "type" : "ClutterActor", 7 | "id" : "test-rect-1", 8 | "width" : 100.0, 9 | "height" : 100.0, 10 | "background-color" : [ 255, 0, 0, 255 ], 11 | "child::focus" : true 12 | }, 13 | { 14 | "type" : "ClutterActor", 15 | "id" : "test-rect-2", 16 | "width" : 100.0, 17 | "height" : 100.0, 18 | "background-color" : [ 0, 255, 0, 255 ] 19 | } 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /src/tests/clutter/conform/scripts/test-script-interval.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id" : "int-1", 4 | "type" : "ClutterInterval", 5 | "value-type" : "gfloat", 6 | "initial" : 23.3, 7 | "final" : 42.2 8 | }, 9 | { 10 | "id" : "int-2", 11 | "type" : "ClutterInterval", 12 | "value-type" : "ClutterColor", 13 | "initial" : "red", 14 | "final" : "blue" 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /src/tests/clutter/conform/scripts/test-script-margin.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id" : "actor-1", 4 | "type" : "ClutterActor", 5 | "margin" : [ 10 ] 6 | }, 7 | { 8 | "id" : "actor-2", 9 | "type" : "ClutterActor", 10 | "margin" : [ 10, 20 ] 11 | }, 12 | { 13 | "id" : "actor-3", 14 | "type" : "ClutterActor", 15 | "margin" : [ 10, 20, 30 ] 16 | }, 17 | { 18 | "id" : "actor-4", 19 | "type" : "ClutterActor", 20 | "margin" : [ 10, 20, 30, 40] 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /src/tests/clutter/conform/scripts/test-script-model.json: -------------------------------------------------------------------------------- 1 | { 2 | "id" : "test-model", 3 | "type" : "ClutterListModel", 4 | "columns" : [ 5 | [ "text-column", "gchararray" ], 6 | [ "int-column", "gint" ], 7 | [ "actor-column", "ClutterActor" ] 8 | ], 9 | "rows" : [ 10 | [ "text-row-1", 1, null ], 11 | [ "text-row-2", 2, { "type" : "ClutterActor", "background-color" : "blue" } ], 12 | { 13 | "int-column" : 3, 14 | "actor-column" : { "type" : "ClutterActor", "name" : "actor-row-3" } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /src/tests/clutter/conform/scripts/test-script-named-object.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id" : "layout", 4 | "type" : "ClutterBoxLayout", 5 | "orientation" : "vertical", 6 | "spacing" : 12, 7 | "pack-start" : false 8 | }, 9 | { 10 | "type" : "ClutterStage", 11 | "id" : "main-stage", 12 | "children" : [ 13 | { 14 | "id" : "test", 15 | "type" : "ClutterActor", 16 | "layout-manager" : "layout", 17 | "children" : [ 18 | { 19 | "id" : "child-1", 20 | "type" : "ClutterActor", 21 | "width" : "3 em", 22 | "height" : "3 em" 23 | } 24 | ], 25 | "constraints" : [ 26 | { 27 | "type" : "ClutterAlignConstraint", 28 | "name" : "x-align", 29 | "factor" : 0.5, 30 | "align-axis" : "x-axis", 31 | "source" : "main-stage" 32 | }, 33 | { 34 | "type" : "ClutterAlignConstraint", 35 | "name" : "y-align", 36 | "factor" : 0.5, 37 | "align-axis" : "y-axis", 38 | "source" : "main-stage" 39 | } 40 | ] 41 | } 42 | ] 43 | } 44 | ] 45 | -------------------------------------------------------------------------------- /src/tests/clutter/conform/scripts/test-script-object-property.json: -------------------------------------------------------------------------------- 1 | { 2 | "id" : "test", 3 | "type" : "ClutterActor", 4 | "layout-manager" : { "id" : "layout", "type" : "ClutterBinLayout" }, 5 | "children" : [ 6 | { 7 | "id" : "child-1", 8 | "type" : "ClutterActor", 9 | "width" : "3 em", 10 | "height" : "3 em" 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /src/tests/clutter/conform/scripts/test-script-single.json: -------------------------------------------------------------------------------- 1 | { 2 | "type" : "ClutterActor", 3 | "id" : "test", 4 | "width" : 50.0, 5 | "height" : 100.0, 6 | "x" : 100.0, 7 | "y" : 100.0, 8 | "background-color" : "#ffccdd", 9 | "name" : "Test Rectangle" 10 | } 11 | -------------------------------------------------------------------------------- /src/tests/clutter/conform/scripts/test-script-timeline-markers.json: -------------------------------------------------------------------------------- 1 | [ 2 | { "id" : "actor0", "type" : "ClutterActor" }, 3 | { 4 | "id" : "timeline0", 5 | "type" : "ClutterTimeline", 6 | "duration" : 1000, 7 | "actor" : "actor0", 8 | 9 | "markers" : [ 10 | { "name" : "marker0", "time" : 250 }, 11 | { "name" : "marker1", "time" : 500 }, 12 | { "name" : "marker2", "time" : 750 }, 13 | { "name" : "marker3", "progress" : 0.5 } 14 | ] 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /src/tests/clutter/interactive/light0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/clutter/interactive/light0.png -------------------------------------------------------------------------------- /src/tests/clutter/interactive/meson/gen-test-unit-names.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | outputfile=$1 4 | shift 5 | 6 | echo '/* ** This file is autogenerated. Do not edit. ** */' > "$outputfile" 7 | echo '' >> "$outputfile" 8 | echo 'const char *test_unit_names[] = {' >> "$outputfile" 9 | 10 | for test_source_file in "$@"; do 11 | echo " \"$(echo "$test_source_file" | sed 's/.*\(test-[a-z0-9\-]\+\)\.c/\1/')\"," >> "$outputfile" 12 | done 13 | 14 | echo '};' >> "$outputfile" 15 | -------------------------------------------------------------------------------- /src/tests/clutter/interactive/redhand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/clutter/interactive/redhand.png -------------------------------------------------------------------------------- /src/tests/clutter/interactive/redhand_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/clutter/interactive/redhand_alpha.png -------------------------------------------------------------------------------- /src/tests/clutter/interactive/wrapper.sh.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | UNIT_TEST=$1 4 | 5 | shift 6 | 7 | echo "Running ./test-interactive $UNIT_TEST $@" 8 | echo "" 9 | echo "NOTE: For debugging purposes, you can run this single test as follows:" 10 | echo "$ libtool --mode=execute \\" 11 | echo " gdb --eval-command=\"b `echo $UNIT_TEST|tr '-' '_'`_main\" \\" 12 | echo " --args ./test-interactive $UNIT_TEST" 13 | 14 | @abs_builddir@/test-interactive $UNIT_TEST "$@" 15 | 16 | -------------------------------------------------------------------------------- /src/tests/clutter/meson.build: -------------------------------------------------------------------------------- 1 | clutter_tests_includepath = include_directories('.') 2 | clutter_tests_includes = [ 3 | tests_includepath, 4 | clutter_tests_includepath, 5 | ] 6 | 7 | subdir('accessibility') 8 | subdir('conform') 9 | subdir('interactive') 10 | subdir('micro-bench') 11 | subdir('performance') 12 | -------------------------------------------------------------------------------- /src/tests/clutter/micro-bench/meson.build: -------------------------------------------------------------------------------- 1 | clutter_tests_micro_bench_c_args = [ 2 | '-DG_DISABLE_SINGLE_INCLUDES', 3 | '-DGLIB_DISABLE_DEPRECATION_WARNINGS', 4 | '-DCOGL_DISABLE_DEPRECATION_WARNINGS', 5 | '-DCLUTTER_DISABLE_DEPRECATION_WARNINGS', 6 | '-DGETTEXT_PACKAGE="@0@"'.format(meson.project_name()), 7 | ] 8 | clutter_tests_micro_bench_c_args += clutter_debug_c_args 9 | 10 | clutter_tests_micro_bench_tests = [ 11 | 'test-text', 12 | 'test-picking', 13 | 'test-text-perf', 14 | 'test-random-text', 15 | 'test-cogl-perf', 16 | ] 17 | 18 | foreach test : clutter_tests_micro_bench_tests 19 | executable(test, 20 | sources: [ 21 | '@0@.c'.format(test), 22 | clutter_test_utils, 23 | ], 24 | include_directories: clutter_includes, 25 | c_args: clutter_tests_micro_bench_c_args, 26 | dependencies: [ 27 | libmutter_test_dep, 28 | ], 29 | install: false, 30 | ) 31 | endforeach 32 | -------------------------------------------------------------------------------- /src/tests/clutter/performance/joblist: -------------------------------------------------------------------------------- 1 | # This file lists the commits that we want to do retrospective testing 2 | # of, aborting the retrospective testing and adjusting this file will 3 | # add the commit range to be tested without having to redo the initial one 4 | # thus allowing a sparse distributed range to first be tested, with 5 | # detailed ranges added in later. 6 | 7 | master~500..master % 32 # every 32th commit, to provide context 8 | 9 | # various spans of commits around which "interesting things happen" 10 | 11 | #eeac7~1..985a4 12 | #6c6e93d~1..3142b15 13 | #0486c56..88b026 14 | #732eecf..8cfb158 15 | #b499696..b77d9a6 16 | #ba09e9c..7bdbbe6 17 | #b424bd7..c1878 18 | #bc58de4..d03c3a6 19 | #5640a6..a29623e 20 | #6fd2663..6ec9c32 21 | # 012e4ab..1a8d577 # 22 | #120d759~4..2235e70 23 | 24 | # ef8be9e25ebe77fc63055191cc48af53d731c108 - actor: Use paint volumes to always queue clipped redraws 25 | 26 | # 5d16000 going up, and 3b78949 going down,. was a case of clipped redraws being broken 27 | 28 | -------------------------------------------------------------------------------- /src/tests/clutter/performance/makejobs.rb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | # this ruby script generates a chronologically sorted 4 | 5 | res = "" 6 | input = File.read(ARGV[0]) 7 | input = input.gsub(/#.*/, "") 8 | input.split("\n").each {|a| 9 | if a =~ /([^ ]*)\.\.([^ ]*) %(.*)/ 10 | res += `git log #{$1}..#{$2} | grep '^commit' | sed 's/commit //' | sed -n '0~#{$3}p'` 11 | elsif a =~ /([^ ]*)\.\.([^ ]*)/ 12 | res += `git log #{$1}..#{$2} | grep '^commit' | sed 's/commit //'` 13 | else 14 | res += `echo #{a}` 15 | end 16 | } 17 | 18 | all = `git log | grep '^commit' | sed 's/commit//' ` 19 | all.split("\n").reverse.each {|a| 20 | if res.match(a.strip) != nil 21 | puts "#{a.strip}" 22 | end 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/tests/clutter/performance/meson.build: -------------------------------------------------------------------------------- 1 | clutter_tests_performance_c_args = [ 2 | '-DTESTS_DATA_DIR="@0@"'.format(clutter_tests_interactive_srcdir), 3 | '-DG_DISABLE_SINGLE_INCLUDES', 4 | '-DGLIB_DISABLE_DEPRECATION_WARNINGS', 5 | '-DCOGL_DISABLE_DEPRECATION_WARNINGS', 6 | '-DCLUTTER_DISABLE_DEPRECATION_WARNINGS', 7 | '-DGETTEXT_PACKAGE="@0@"'.format(meson.project_name()), 8 | ] 9 | 10 | clutter_tests_performance_c_args += clutter_debug_c_args 11 | 12 | clutter_tests_performance_tests = [ 13 | 'test-picking', 14 | 'test-text-perf', 15 | ] 16 | 17 | foreach test : clutter_tests_performance_tests 18 | executable(test, 19 | sources: [ 20 | '@0@.c'.format(test), 21 | 'test-common.h', 22 | clutter_test_utils, 23 | ], 24 | include_directories: [ 25 | clutter_includes, 26 | clutter_tests_includes, 27 | ], 28 | c_args: clutter_tests_performance_c_args, 29 | dependencies: [ 30 | libmutter_test_dep, 31 | ], 32 | install: false, 33 | ) 34 | endforeach 35 | -------------------------------------------------------------------------------- /src/tests/clutter/test-utils.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | static inline ClutterActor * 5 | clutter_test_utils_create_texture_from_file (const char *filename, 6 | GError **error) 7 | { 8 | g_autoptr (ClutterContent) image = NULL; 9 | g_autoptr (GdkPixbuf) pixbuf = NULL; 10 | 11 | pixbuf = gdk_pixbuf_new_from_file (filename, error); 12 | if (!pixbuf) 13 | return NULL; 14 | 15 | image = clutter_image_new (); 16 | if (!clutter_image_set_data (CLUTTER_IMAGE (image), 17 | gdk_pixbuf_get_pixels (pixbuf), 18 | gdk_pixbuf_get_has_alpha (pixbuf) 19 | ? COGL_PIXEL_FORMAT_RGBA_8888 20 | : COGL_PIXEL_FORMAT_RGB_888, 21 | gdk_pixbuf_get_width (pixbuf), 22 | gdk_pixbuf_get_height (pixbuf), 23 | gdk_pixbuf_get_rowstride (pixbuf), 24 | error)) 25 | return NULL; 26 | 27 | return g_object_new (CLUTTER_TYPE_ACTOR, 28 | "content", image, 29 | NULL); 30 | } 31 | -------------------------------------------------------------------------------- /src/tests/cogl/conform/test-no-gl-header.c: -------------------------------------------------------------------------------- 1 | #undef COGL_COMPILATION 2 | #include 3 | 4 | /* If you just include cogl/cogl.h, you shouldn't end up including any 5 | GL headers */ 6 | #ifdef GL_TRUE 7 | #error "Including cogl.h shouldn't be including any GL headers" 8 | #endif 9 | 10 | int 11 | main (int argc, 12 | char **argv) 13 | { 14 | return EXIT_SUCCESS; 15 | } 16 | -------------------------------------------------------------------------------- /src/tests/cogl/meson.build: -------------------------------------------------------------------------------- 1 | subdir('conform') 2 | subdir('unit') 3 | -------------------------------------------------------------------------------- /src/tests/cogl/unit/test-pipeline-state-known-failure.c: -------------------------------------------------------------------------------- 1 | #include "cogl-config.h" 2 | 3 | #include "cogl/cogl.h" 4 | #include "cogl/cogl-pipeline-state.h" 5 | #include "tests/cogl-test-utils.h" 6 | 7 | static void 8 | test_pipeline_state_uniform_ancestry (void) 9 | { 10 | CoglPipeline *pipeline; 11 | CoglNode *node; 12 | int pipeline_length = 0; 13 | int i; 14 | 15 | pipeline = cogl_pipeline_new (test_ctx); 16 | 17 | /* Repeatedly making a copy of a pipeline and changing a uniform 18 | * shouldn't cause a long chain of pipelines to be created */ 19 | 20 | for (i = 0; i < 20; i++) 21 | { 22 | CoglPipeline *tmp_pipeline; 23 | int uniform_location; 24 | 25 | tmp_pipeline = cogl_pipeline_copy (pipeline); 26 | cogl_object_unref (pipeline); 27 | pipeline = tmp_pipeline; 28 | 29 | uniform_location = 30 | cogl_pipeline_get_uniform_location (pipeline, "a_uniform"); 31 | 32 | cogl_pipeline_set_uniform_1i (pipeline, uniform_location, i); 33 | } 34 | 35 | for (node = (CoglNode *) pipeline; node; node = node->parent) 36 | pipeline_length++; 37 | 38 | g_assert_cmpint (pipeline_length, <=, 2); 39 | 40 | cogl_object_unref (pipeline); 41 | } 42 | 43 | COGL_TEST_SUITE ( 44 | g_test_add_func ("/pipeline-state/uniform-ancestry", test_pipeline_state_uniform_ancestry); 45 | ) 46 | -------------------------------------------------------------------------------- /src/tests/icc-profiles/sRGB.icc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/icc-profiles/sRGB.icc -------------------------------------------------------------------------------- /src/tests/icc-profiles/vx239-calibrated.icc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/icc-profiles/vx239-calibrated.icc -------------------------------------------------------------------------------- /src/tests/kvm/README.md: -------------------------------------------------------------------------------- 1 | ## High level description of the files in this directory. 2 | 3 | ### build-linux.sh 4 | 5 | Builds a Linux kernel image meant to be launched using qemu. Doesn't make any 6 | assumptions about configuration other than that. It uses the drm kernel tree. 7 | It's used from meson.build. 8 | 9 | ### kernel-version.txt 10 | 11 | Describes the version of the Linux kernel to use; usually a tag. It's a 12 | separate file so that changing the version will make meson build a new kernel 13 | image. 14 | 15 | ### virtme-run.sh 16 | 17 | A helper script that uses 'virtme' to launch a qemu virtual machine with the 18 | host filesystem exposed inside the virtual machine. 19 | 20 | ### run-kvm-test.sh 21 | 22 | Runs the passed test executable in a mocked environment using 23 | 'meta-dbus-runner.py' (which uses python-dbusmock to create a mocked system 24 | environment. 25 | 26 | ### meson.build 27 | 28 | Contains one rule for building the Linux kernel image, and meson test cases 29 | that launches tests inside virtual machines. 30 | -------------------------------------------------------------------------------- /src/tests/kvm/kernel-version.txt: -------------------------------------------------------------------------------- 1 | drm-next-2021-11-12 2 | -------------------------------------------------------------------------------- /src/tests/kvm/run-kvm-test.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | 3 | set -e 4 | 5 | WRAPPER="$1" 6 | WRAPPER_ARGS="$2" 7 | TEST_RESULT="$3" 8 | 9 | export XDG_RUNTIME_DIR="/tmp/sub-runtime-dir-$UID" 10 | export GSETTINGS_SCHEMA_DIR="$PWD/build/data" 11 | export G_SLICE="always-malloc" 12 | export MALLOC_CHECK_="3" 13 | export NO_AT_BRIDGE="1" 14 | export MALLOC_PERTURB_="123" 15 | 16 | mkdir -p -m 700 $XDG_RUNTIME_DIR 17 | 18 | glib-compile-schemas $GSETTINGS_SCHEMA_DIR 19 | 20 | "$WRAPPER" $WRAPPER_ARGS "${@:4}" 21 | 22 | echo $? > $TEST_RESULT 23 | -------------------------------------------------------------------------------- /src/tests/meta-dbus-runner.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import sys 4 | 5 | from mutter_dbusrunner import MutterDBusRunner, meta_run 6 | 7 | if __name__ == '__main__': 8 | result = meta_run(MutterDBusRunner) 9 | sys.exit(result) 10 | -------------------------------------------------------------------------------- /src/tests/meta-gpu-test.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016-2018 Red Hat, Inc. 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, see . 16 | */ 17 | 18 | #ifndef META_GPU_TEST_H 19 | #define META_GPU_TEST_H 20 | 21 | #include "backends/meta-gpu.h" 22 | 23 | #define META_TYPE_GPU_TEST (meta_gpu_test_get_type ()) 24 | G_DECLARE_FINAL_TYPE (MetaGpuTest, meta_gpu_test, META, GPU_TEST, MetaGpu) 25 | 26 | #endif /* META_GPU_TEST_H */ 27 | -------------------------------------------------------------------------------- /src/tests/meta-test-utils-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017-2021 Red Hat, Inc. 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, see . 16 | */ 17 | 18 | #ifndef META_TEST_UTILS_PRIVATE_H 19 | #define META_TEST_UTILS_PRIVATE_H 20 | 21 | #include "tests/meta-test-utils.h" 22 | 23 | void meta_ensure_test_client_path (int argc, 24 | char **argv); 25 | 26 | #endif /* META_TEST_UTILS_PRIVATE_H */ 27 | -------------------------------------------------------------------------------- /src/tests/meta-test/meson.build: -------------------------------------------------------------------------------- 1 | mutter_test_includesubdir = join_paths(pkgname, 'meta-test') 2 | 3 | mutter_test_public_headers = [ 4 | 'meta-context-test.h', 5 | ] 6 | 7 | install_headers(mutter_test_public_headers, 8 | subdir: mutter_test_includesubdir 9 | ) 10 | -------------------------------------------------------------------------------- /src/tests/meta-wayland-test-utils.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021-2022 Red Hat, Inc. 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, see . 16 | */ 17 | 18 | #ifndef META_WAYLAND_TEST_UTILS_H 19 | #define META_WAYLAND_TEST_UTILS_H 20 | 21 | typedef struct _MetaWaylandTestClient MetaWaylandTestClient; 22 | 23 | MetaWaylandTestClient * meta_wayland_test_client_new (const char *test_client_name); 24 | 25 | void meta_wayland_test_client_finish (MetaWaylandTestClient *wayland_test_client); 26 | 27 | #endif /* META_WAYLAND_TEST_UTILS_H */ 28 | -------------------------------------------------------------------------------- /src/tests/migration/first-rotated-new.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 0 6 | 0 7 | 8 | left 9 | no 10 | 11 | 12 | 13 | HDMI-1 14 | DEL 15 | DELL P2415Q 16 | GTTPW67P0WFB 17 | 18 | 19 | 3840 20 | 2160 21 | 29.981 22 | 23 | 24 | 25 | 26 | 2160 27 | 0 28 | yes 29 | 30 | 31 | eDP-1 32 | AUO 33 | 0x123d 34 | 0x00000000 35 | 36 | 37 | 1920 38 | 1080 39 | 60.050 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /src/tests/migration/first-rotated-old.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | no 4 | 5 | DEL 6 | DELL P2415Q 7 | GTTPW67P0WFB 8 | 2160 9 | 3840 10 | 29.981103897094727 11 | 0 12 | 0 13 | left 14 | no 15 | no 16 | no 17 | no 18 | no 19 | 20 | 21 | AUO 22 | 0x123d 23 | 0x00000000 24 | 1920 25 | 1080 26 | 60.049972534179688 27 | 2160 28 | 0 29 | normal 30 | no 31 | no 32 | yes 33 | no 34 | no 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /src/tests/migration/oneoff-new-finished.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 0 6 | 1 7 | yes 8 | 9 | 10 | DP-1 11 | MetaProduct's Inc. 12 | MetaMonitor 13 | 0x123456 14 | 15 | 16 | 800 17 | 600 18 | 60 19 | 20 | 21 | 22 | 23 | 24 | DP-2 25 | MetaProduct's Inc. 26 | MetaMonitor 27 | 0x654321 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/tests/migration/oneoff-new.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 0 6 | 0 7 | yes 8 | 9 | 10 | DP-1 11 | MetaProduct's Inc. 12 | MetaMonitor 13 | 0x123456 14 | 15 | 16 | 800 17 | 600 18 | 60.000 19 | 20 | 21 | 22 | 23 | 24 | DP-2 25 | MetaProduct's Inc. 26 | MetaMonitor 27 | 0x654321 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/tests/migration/oneoff-old.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | no 4 | 5 | MetaProduct's Inc. 6 | MetaMonitor 7 | 0x123456 8 | 800 9 | 600 10 | 60 11 | 0 12 | 0 13 | normal 14 | no 15 | no 16 | yes 17 | no 18 | no 19 | 20 | 21 | MetaProduct's Inc. 22 | MetaMonitor 23 | 0x654321 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/tests/migration/rotated-new-finished.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 0 6 | 1 7 | yes 8 | 9 | right 10 | no 11 | 12 | 13 | 14 | DP-1 15 | MetaProduct's Inc. 16 | MetaMonitor 17 | 0x123456 18 | 19 | 20 | 800 21 | 600 22 | 60.000 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/tests/migration/rotated-new.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 0 6 | 0 7 | yes 8 | 9 | right 10 | no 11 | 12 | 13 | 14 | DP-1 15 | MetaProduct's Inc. 16 | MetaMonitor 17 | 0x123456 18 | 19 | 20 | 800 21 | 600 22 | 60.000 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/tests/migration/rotated-old.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | no 4 | 5 | MetaProduct's Inc. 6 | MetaMonitor 7 | 0x123456 8 | 600 9 | 800 10 | 60 11 | 0 12 | 0 13 | right 14 | no 15 | no 16 | yes 17 | no 18 | no 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/tests/migration/tiled-new.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 0 6 | 0 7 | yes 8 | 9 | 10 | DP-1 11 | DEL 12 | DELL P2415Q 13 | GTTPW67P0WFB 14 | 15 | 16 | 3840 17 | 2160 18 | 60.000 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/tests/migration/tiled-old.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | no 4 | 5 | DEL 6 | DELL P2415Q 7 | GTTPW67P0WFB 8 | 1920 9 | 2160 10 | 60 11 | 0 12 | 0 13 | normal 14 | no 15 | no 16 | yes 17 | no 18 | no 19 | 20 | 21 | DEL 22 | DELL P2415Q 23 | GTTPW67P0WFB 24 | 1920 25 | 2160 26 | 60 27 | 1920 28 | 0 29 | normal 30 | no 31 | no 32 | yes 33 | no 34 | no 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /src/tests/migration/wiggle-new-discarded.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/tests/migration/wiggle-new-finished.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 0 6 | 1 7 | yes 8 | 9 | left 10 | no 11 | 12 | 13 | 14 | DP-1 15 | MetaProduct's Inc. 16 | MetaMonitor 17 | 0x123456 18 | 19 | 20 | 800 21 | 600 22 | 60.001 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/tests/migration/wiggle-new.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 0 6 | 0 7 | yes 8 | 9 | left 10 | no 11 | 12 | 13 | 14 | DP-1 15 | MetaProduct's Inc. 16 | MetaMonitor 17 | 0x123456 18 | 19 | 20 | 800 21 | 600 22 | 60.001 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/tests/migration/wiggle-old.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | no 4 | 5 | MetaProduct's Inc. 6 | MetaMonitor 7 | 0x123456 8 | 600 9 | 800 10 | 60.000801086425781 11 | 0 12 | 0 13 | left 14 | no 15 | no 16 | yes 17 | no 18 | no 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/tests/monitor-config-migration-unit-tests.h: -------------------------------------------------------------------------------- 1 | /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2 | 3 | /* 4 | * Copyright (C) 2017 Red Hat, Inc. 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License as 8 | * published by the Free Software Foundation; either version 2 of the 9 | * License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, but 12 | * WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, see . 18 | */ 19 | 20 | #ifndef MONITOR_CONFIG_MIGRATION_UNIT_TESTS_H 21 | #define MONITOR_CONFIG_MIGRATION_UNIT_TESTS_H 22 | 23 | void init_monitor_config_migration_tests (void); 24 | 25 | #endif /* MONITOR_CONFIG_MIGRATION_UNIT_TESTS_H */ 26 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/first-rotated.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 0 6 | yes 7 | 8 | right 9 | no 10 | 11 | 12 | 13 | DP-1 14 | MetaProduct's Inc. 15 | MetaMonitor 16 | 0x123456a 17 | 18 | 19 | 1024 20 | 768 21 | 60.000495910644531 22 | 23 | 24 | 25 | 26 | 768 27 | 0 28 | 29 | normal 30 | no 31 | 32 | 33 | 34 | DP-2 35 | MetaProduct's Inc. 36 | MetaMonitor 37 | 0x123456b 38 | 39 | 40 | 1024 41 | 768 42 | 60.000495910644531 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/fractional-scale.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 0 6 | yes 7 | 1.5 8 | 9 | 10 | DP-1 11 | MetaProduct's Inc. 12 | MetaMonitor 13 | 0x123456 14 | 15 | 16 | 1200 17 | 900 18 | 60.000495910644531 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/high-precision-fractional-scale.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 0 6 | yes 7 | 1.3763440847396851 8 | 9 | 10 | DP-1 11 | MetaProduct's Inc. 12 | MetaMonitor 13 | 0x123456 14 | 15 | 16 | 1024 17 | 768 18 | 60.000495910644531 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/interlaced.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 0 6 | yes 7 | 8 | 9 | DP-1 10 | MetaProduct's Inc. 11 | MetaMonitor 12 | 0x123456 13 | 14 | 15 | 1024 16 | 768 17 | 60.000495910644531 18 | interlace 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/kms-cursor-hotplug-off.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 0 6 | yes 7 | 8 | 9 | Meta-0 10 | MetaTestVendor 11 | MetaVirtualMonitor 12 | 0x1234 13 | 14 | 15 | 100 16 | 100 17 | 60 18 | 19 | 20 | 21 | 22 | 23 | Virtual-1 24 | unknown 25 | unknown 26 | unknown 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/kms-cursor-hotplug-on.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 0 6 | yes 7 | 8 | 9 | Virtual-1 10 | unknown 11 | unknown 12 | unknown 13 | 14 | 15 | 1024 16 | 768 17 | 60.003841 18 | 19 | 20 | 21 | 22 | 1024 23 | 0 24 | no 25 | 26 | 27 | Meta-0 28 | MetaTestVendor 29 | MetaVirtualMonitor 30 | 0x1234 31 | 32 | 33 | 100 34 | 100 35 | 60 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/lid-scale.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 0 6 | yes 7 | 2 8 | 9 | 10 | eDP-1 11 | MetaProduct's Inc. 12 | MetaMonitor 13 | 0x123456 14 | 15 | 16 | 1920 17 | 1080 18 | 60.000495910644531 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/max-bpc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 0 6 | yes 7 | 8 | 9 | DP-1 10 | MetaProduct's Inc. 11 | MetaMonitor 12 | 0x123456 13 | 14 | 15 | 1024 16 | 768 17 | 60.000495910644531 18 | 19 | 12 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/mirrored.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 0 6 | yes 7 | 8 | 9 | DP-1 10 | MetaProduct's Inc. 11 | MetaMonitor 12 | 0x123456a 13 | 14 | 15 | 800 16 | 600 17 | 60.000495910644531 18 | 19 | 20 | 21 | 22 | DP-2 23 | MetaProduct's Inc. 24 | MetaMonitor 25 | 0x123456b 26 | 27 | 28 | 800 29 | 600 30 | 60.000495910644531 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/non-preferred-tiled-custom-resolution.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 0 6 | yes 7 | 8 | 9 | DP-2 10 | MetaProduct's Inc. 11 | MetaMonitor 12 | 0x123456 13 | 14 | 15 | 800 16 | 600 17 | 60 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/oneoff.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 0 6 | 1 7 | yes 8 | 9 | 10 | DP-1 11 | MetaProduct's Inc. 12 | MetaMonitor 13 | 0x123456 14 | 15 | 16 | 800 17 | 600 18 | 60 19 | 20 | 21 | 22 | 23 | 24 | DP-2 25 | MetaProduct's Inc. 26 | MetaMonitor 27 | 0x654321 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/policy-dbus-invalid.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | no 4 | yes 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/policy-dbus.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | no 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/policy-duplicate.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | user 5 | user 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/policy-empty.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/policy-invalid.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | user 5 | not-a-store 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/policy-multiple.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | user 5 | system 6 | 7 | 8 | system 9 | user 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/policy.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | system 5 | 6 | 7 | 8 | 9 | 0 10 | 0 11 | yes 12 | 13 | 14 | DP-1 15 | MetaProduct's Inc. 16 | MetaMonitor 17 | 0x123456 18 | 19 | 20 | 1920 21 | 1080 22 | 60 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/primary.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 0 6 | no 7 | 8 | 9 | DP-1 10 | MetaProduct's Inc. 11 | MetaMonitor 12 | 0x123456a 13 | 14 | 15 | 1024 16 | 768 17 | 60.000495910644531 18 | 19 | 20 | 21 | 22 | 1024 23 | 0 24 | yes 25 | 26 | 27 | DP-2 28 | MetaProduct's Inc. 29 | MetaMonitor 30 | 0x123456b 31 | 32 | 33 | 800 34 | 600 35 | 60.000495910644531 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/scale.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 0 6 | yes 7 | 2 8 | 9 | 10 | DP-1 11 | MetaProduct's Inc. 12 | MetaMonitor 13 | 0x123456 14 | 15 | 16 | 1920 17 | 1080 18 | 60.000495910644531 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/second-rotated-tiled.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 256 6 | yes 7 | 8 | 9 | DP-1 10 | MetaProduct's Inc. 11 | MetaMonitor 12 | 0x123456a 13 | 14 | 15 | 1024 16 | 768 17 | 60.000495910644531 18 | 19 | 20 | 21 | 22 | 1024 23 | 0 24 | 25 | left 26 | no 27 | 28 | 29 | 30 | DP-2 31 | MetaProduct's Inc. 32 | MetaMonitor 33 | 0x123456b 34 | 35 | 36 | 800 37 | 600 38 | 60.000495910644531 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/second-rotated.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 256 6 | yes 7 | 8 | 9 | DP-1 10 | MetaProduct's Inc. 11 | MetaMonitor 12 | 0x123456a 13 | 14 | 15 | 1024 16 | 768 17 | 60.000495910644531 18 | 19 | 20 | 21 | 22 | 1024 23 | 0 24 | 25 | left 26 | no 27 | 28 | 29 | 30 | DP-2 31 | MetaProduct's Inc. 32 | MetaMonitor 33 | 0x123456b 34 | 35 | 36 | 1024 37 | 768 38 | 60.000495910644531 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/single.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 0 6 | yes 7 | 8 | 9 | DP-1 10 | MetaProduct's Inc. 11 | MetaMonitor 12 | 0x123456 13 | 14 | 15 | 1920 16 | 1080 17 | 60.000495910644531 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/switch-remember-scale.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 0 6 | yes 7 | 2 8 | 9 | 10 | eDP-1 11 | MetaProduct's Inc. 12 | MetaMonitor 13 | 0x1000 14 | 15 | 16 | 1920 17 | 1080 18 | 60.0 19 | 20 | 21 | 22 | 23 | 960 24 | 0 25 | 2 26 | 27 | 28 | DP-1 29 | MetaProduct's Inc. 30 | MetaMonitor 31 | 0x1001 32 | 33 | 34 | 1920 35 | 1080 36 | 60.0 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/system/monitors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | system 5 | 6 | 7 | 8 | 9 | 0 10 | 0 11 | yes 12 | 13 | 14 | DP-1 15 | MetaProduct's Inc. 16 | MetaMonitor 17 | 0x123456 18 | 19 | 20 | 640 21 | 480 22 | 60 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/tiled-custom-resolution.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 0 6 | yes 7 | 2 8 | 9 | 10 | DP-1 11 | MetaProduct's Inc. 12 | MetaMonitor 13 | 0x123456 14 | 15 | 16 | 640 17 | 480 18 | 60.000495910644531 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/tiled.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 0 6 | yes 7 | 2 8 | 9 | 10 | DP-1 11 | MetaProduct's Inc. 12 | MetaMonitor 13 | 0x123456 14 | 15 | 16 | 800 17 | 600 18 | 60.000495910644531 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/underscanning.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 0 6 | yes 7 | 8 | 9 | DP-1 10 | MetaProduct's Inc. 11 | MetaMonitor 12 | 0x123456 13 | 14 | 15 | 1024 16 | 768 17 | 60.000495910644531 18 | 19 | yes 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/unknown-elements.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | text 4 | 5 | 6 | 7 | text 8 | 9 | 10 | 11 | text 12 | 13 | 0 14 | 0 15 | yes 16 | 17 | 18 | DP-1 19 | MetaProduct's Inc. 20 | MetaMonitor 21 | 0x123456 22 | 23 | 24 | 1920 25 | 1080 26 | 60.000495910644531 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/user/monitors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 0 6 | yes 7 | 8 | 9 | DP-1 10 | MetaProduct's Inc. 11 | MetaMonitor 12 | 0x123456 13 | 14 | 15 | 800 16 | 600 17 | 60 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/tests/monitor-configs/vertical.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 0 6 | yes 7 | 8 | 9 | DP-1 10 | MetaProduct's Inc. 11 | MetaMonitor 12 | 0x123456a 13 | 14 | 15 | 1024 16 | 768 17 | 60.000495910644531 18 | 19 | 20 | 21 | 22 | 0 23 | 768 24 | 25 | 26 | DP-2 27 | MetaProduct's Inc. 28 | MetaMonitor 29 | 0x123456b 30 | 31 | 32 | 800 33 | 600 34 | 60.000495910644531 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /src/tests/monitor-store-unit-tests.h: -------------------------------------------------------------------------------- 1 | /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2 | 3 | /* 4 | * Copyright (C) 2017 Red Hat, Inc. 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License as 8 | * published by the Free Software Foundation; either version 2 of the 9 | * License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, but 12 | * WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, see . 18 | */ 19 | 20 | #ifndef MONITOR_STORE_UNIT_TESTS_H 21 | #define MONITOR_STORE_UNIT_TESTS_H 22 | 23 | void init_monitor_store_tests (void); 24 | 25 | #endif /* MONITOR_STORE_UNIT_TESTS_H */ 26 | -------------------------------------------------------------------------------- /src/tests/monitor-transform-tests.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Red Hat, Inc. 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, see . 16 | */ 17 | 18 | #ifndef MONITOR_TRANSFORM_UNIT_TESTS_H 19 | #define MONITOR_TRANSFORM_UNIT_TESTS_H 20 | 21 | void init_monitor_transform_tests (void); 22 | 23 | #endif /* MONITOR_TRANSFORM_TESTS_H */ 24 | -------------------------------------------------------------------------------- /src/tests/mutter-all.test.in: -------------------------------------------------------------------------------- 1 | [Test] 2 | Description=All Mutter tests 3 | # Can't use TestEnvironment for GSETTINGS_BACKEND=memory until there's 4 | # a solution for 5 | # https://gitlab.gnome.org/GNOME/gnome-desktop-testing/-/issues/1, 6 | # and anyway that wouldn't be sufficient to handle XDG_RUNTIME_DIR 7 | Exec=sh -ec 'env GSETTINGS_BACKEND=memory XDG_RUNTIME_DIR="$(mktemp -d -t mutter-@apiversion@-all-tests-XXXXXX)" @libexecdir@/installed-tests/mutter-@apiversion@/mutter-installed-dbus-session.py xvfb-run -a -s "+iglx -noreset" -- @libexecdir@/installed-tests/mutter-@apiversion@/mutter-test-runner --all' 8 | Type=session 9 | Output=TAP 10 | -------------------------------------------------------------------------------- /src/tests/mutter-installed-dbus-session.py.in: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import sys 4 | 5 | sys.path.insert(1, '@tests_datadir@') 6 | 7 | from mutter_dbusrunner import MutterDBusRunner, meta_run 8 | 9 | if __name__ == '__main__': 10 | result = meta_run(MutterDBusRunner) 11 | sys.exit(result) 12 | -------------------------------------------------------------------------------- /src/tests/native-screen-cast.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021 Red Hat Inc. 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 17 | * 02111-1307, USA. 18 | * 19 | */ 20 | 21 | #ifndef NATIVE_SCREEN_CAST_H 22 | #define NATIVE_SCREEN_CAST_H 23 | 24 | void init_screen_cast_tests (void); 25 | 26 | #endif /* NATIVE_SCREEN_CAST_H */ 27 | -------------------------------------------------------------------------------- /src/tests/native-virtual-monitor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021 Red Hat Inc. 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 17 | * 02111-1307, USA. 18 | * 19 | */ 20 | 21 | #ifndef NATIVE_VIRTUAL_MONITOR_H 22 | #define NATIVE_VIRTUAL_MONITOR_H 23 | 24 | void init_virtual_monitor_tests (void); 25 | 26 | #endif /* NATIVE_VIRTUAL_MONITOR_H */ 27 | -------------------------------------------------------------------------------- /src/tests/orientation-manager-unit-tests.h: -------------------------------------------------------------------------------- 1 | /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2 | /* 3 | * Copyright (C) 2020 Canonical, Ltd. 4 | * 5 | * This program is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU General Public License as 7 | * published by the Free Software Foundation; either version 2 of the 8 | * License, or (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, but 11 | * WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, see . 17 | * 18 | * Author: Marco Trevisan 19 | */ 20 | 21 | #ifndef ORIENTATION_MANAGER_UNIT_TESTS_H 22 | #define ORIENTATION_MANAGER_UNIT_TESTS_H 23 | 24 | #include "backends/meta-orientation-manager.h" 25 | 26 | void init_orientation_manager_tests (void); 27 | 28 | #endif /* ORIENTATION_MANAGER_UNIT_TESTS_H */ 29 | -------------------------------------------------------------------------------- /src/tests/ref-tests/backends_native_virtual-monitor_create_0.ref.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/ref-tests/backends_native_virtual-monitor_create_0.ref.png -------------------------------------------------------------------------------- /src/tests/ref-tests/backends_native_virtual-monitor_create_1.ref.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/ref-tests/backends_native_virtual-monitor_create_1.ref.png -------------------------------------------------------------------------------- /src/tests/ref-tests/tests_ref-test_sanity_0.ref.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/ref-tests/tests_ref-test_sanity_0.ref.png -------------------------------------------------------------------------------- /src/tests/ref-tests/tests_ref-test_sanity_1.ref.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/ref-tests/tests_ref-test_sanity_1.ref.png -------------------------------------------------------------------------------- /src/tests/ref-tests/wayland_buffer_single_pixel_buffer_0.ref.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/ref-tests/wayland_buffer_single_pixel_buffer_0.ref.png -------------------------------------------------------------------------------- /src/tests/ref-tests/wayland_buffer_single_pixel_buffer_1.ref.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/ref-tests/wayland_buffer_single_pixel_buffer_1.ref.png -------------------------------------------------------------------------------- /src/tests/ref-tests/wayland_buffer_single_pixel_buffer_2.ref.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/ref-tests/wayland_buffer_single_pixel_buffer_2.ref.png -------------------------------------------------------------------------------- /src/tests/ref-tests/wayland_buffer_single_pixel_buffer_3.ref.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/ref-tests/wayland_buffer_single_pixel_buffer_3.ref.png -------------------------------------------------------------------------------- /src/tests/ref-tests/wayland_buffer_single_pixel_buffer_4.ref.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/ref-tests/wayland_buffer_single_pixel_buffer_4.ref.png -------------------------------------------------------------------------------- /src/tests/ref-tests/wayland_buffer_single_pixel_buffer_5.ref.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/ref-tests/wayland_buffer_single_pixel_buffer_5.ref.png -------------------------------------------------------------------------------- /src/tests/ref-tests/wayland_buffer_single_pixel_buffer_6.ref.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/ref-tests/wayland_buffer_single_pixel_buffer_6.ref.png -------------------------------------------------------------------------------- /src/tests/ref-tests/wayland_buffer_transform_0.ref.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/ref-tests/wayland_buffer_transform_0.ref.png -------------------------------------------------------------------------------- /src/tests/ref-tests/wayland_buffer_transform_1.ref.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/ref-tests/wayland_buffer_transform_1.ref.png -------------------------------------------------------------------------------- /src/tests/ref-tests/wayland_buffer_transform_2.ref.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/ref-tests/wayland_buffer_transform_2.ref.png -------------------------------------------------------------------------------- /src/tests/ref-tests/wayland_buffer_transform_3.ref.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/ref-tests/wayland_buffer_transform_3.ref.png -------------------------------------------------------------------------------- /src/tests/ref-tests/wayland_buffer_transform_4.ref.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/ref-tests/wayland_buffer_transform_4.ref.png -------------------------------------------------------------------------------- /src/tests/ref-tests/wayland_buffer_transform_5.ref.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/ref-tests/wayland_buffer_transform_5.ref.png -------------------------------------------------------------------------------- /src/tests/ref-tests/wayland_buffer_transform_6.ref.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/ref-tests/wayland_buffer_transform_6.ref.png -------------------------------------------------------------------------------- /src/tests/ref-tests/wayland_buffer_transform_7.ref.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/ref-tests/wayland_buffer_transform_7.ref.png -------------------------------------------------------------------------------- /src/tests/ref-tests/wayland_toplevel_fullscreen-ref-test_1.ref.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/ref-tests/wayland_toplevel_fullscreen-ref-test_1.ref.png -------------------------------------------------------------------------------- /src/tests/ref-tests/wayland_toplevel_fullscreen-ref-test_2.ref.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/ref-tests/wayland_toplevel_fullscreen-ref-test_2.ref.png -------------------------------------------------------------------------------- /src/tests/ref-tests/wayland_toplevel_fullscreen-ref-test_3.ref.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/ref-tests/wayland_toplevel_fullscreen-ref-test_3.ref.png -------------------------------------------------------------------------------- /src/tests/share/icc/vx239-calibrated.icc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BuddiesOfBudgie/magpie/08258450d05ff23ed9d572a13e9a12727a8230e8/src/tests/share/icc/vx239-calibrated.icc -------------------------------------------------------------------------------- /src/tests/stacking/always-on-top.metatest: -------------------------------------------------------------------------------- 1 | num_workspaces 2 2 | 3 | new_client 1 wayland 4 | create 1/1 5 | show 1/1 6 | create 1/2 7 | show 1/2 8 | create 1/3 9 | show 1/3 10 | wait 11 | 12 | assert_stacking_workspace 0 1/1 1/2 1/3 13 | assert_stacking_workspace 1 14 | assert_focused 1/3 15 | 16 | local_activate 1/1 17 | 18 | assert_stacking_workspace 0 1/2 1/3 1/1 19 | assert_stacking_workspace 1 20 | assert_focused 1/1 21 | 22 | make_above 1/3 true 23 | 24 | assert_stacking_workspace 0 1/2 1/1 1/3 25 | assert_stacking_workspace 1 26 | assert_focused 1/1 27 | 28 | local_activate 1/2 29 | 30 | assert_stacking_workspace 0 1/1 1/2 1/3 31 | assert_stacking_workspace 1 32 | assert_focused 1/2 33 | 34 | activate_workspace 1 35 | 36 | assert_stacking_workspace 0 1/1 1/2 1/3 37 | assert_stacking_workspace 1 38 | assert_focused none 39 | 40 | activate_workspace 0 41 | 42 | assert_stacking_workspace 0 1/1 1/2 1/3 43 | assert_stacking_workspace 1 44 | assert_focused 1/2 45 | 46 | make_above 1/3 false 47 | local_activate 1/1 48 | 49 | assert_stacking_workspace 0 1/2 1/3 1/1 50 | assert_stacking_workspace 1 51 | assert_focused 1/1 52 | -------------------------------------------------------------------------------- /src/tests/stacking/basic-wayland.metatest: -------------------------------------------------------------------------------- 1 | new_client 1 wayland 2 | create 1/1 3 | show 1/1 4 | create 1/2 5 | show 1/2 6 | wait 7 | assert_stacking 1/1 1/2 8 | 9 | # Currently Wayland clients have no wait to bring themselves to the user's 10 | # attention; gtk_window_present() is a no-op with the X11 backend of GTK+ 11 | 12 | # activate 1/1 13 | # wait 14 | # assert_stacking 1/2 1/1 15 | # activate 1/2 16 | # wait 17 | # assert_stacking 1/1 1/2 18 | 19 | local_activate 1/1 20 | assert_stacking 1/2 1/1 21 | local_activate 1/2 22 | assert_stacking 1/1 1/2 23 | -------------------------------------------------------------------------------- /src/tests/stacking/basic-x11.metatest: -------------------------------------------------------------------------------- 1 | new_client 1 x11 2 | create 1/1 3 | show 1/1 4 | create 1/2 5 | show 1/2 6 | wait 7 | assert_stacking 1/1 1/2 8 | 9 | activate 1/1 10 | wait 11 | assert_stacking 1/2 1/1 12 | activate 1/2 13 | wait 14 | assert_stacking 1/1 1/2 15 | 16 | local_activate 1/1 17 | assert_stacking 1/2 1/1 18 | local_activate 1/2 19 | assert_stacking 1/1 1/2 20 | -------------------------------------------------------------------------------- /src/tests/stacking/client-resize-respect-constraints.metatest: -------------------------------------------------------------------------------- 1 | # Tests that constraints are applied after a client initiated resize 2 | # 1. Create a window that does not extend beyond the screen 3 | # 2. Move it to a known position 4 | # 3. Resize such that the following resize will extend beyond the screen 5 | # 4. Check that the window was moved to the position that would allow it to fit on the screen 6 | 7 | resize_monitor primary 800 600 8 | 9 | new_client w wayland 10 | create w/1 csd 11 | 12 | resize w/1 500 400 13 | show w/1 14 | wait 15 | 16 | assert_size w/1 500 400 17 | 18 | move w/1 300 200 19 | assert_position w/1 300 200 20 | 21 | resize w/1 600 500 22 | wait_reconfigure 23 | assert_position w/1 200 100 24 | 25 | destroy w/1 26 | 27 | 28 | new_client x x11 29 | create x/1 csd 30 | 31 | resize x/1 500 400 32 | show x/1 33 | wait 34 | 35 | assert_size x/1 500 400 36 | 37 | move x/1 300 200 38 | assert_position x/1 300 200 39 | 40 | resize x/1 600 500 41 | wait_reconfigure 42 | assert_position x/1 200 100 43 | 44 | destroy x/1 45 | 46 | -------------------------------------------------------------------------------- /src/tests/stacking/client-side-decorated.metatest: -------------------------------------------------------------------------------- 1 | new_client 1 x11 2 | create 1/1 3 | show 1/1 4 | create 1/2 csd 5 | show 1/2 6 | wait 7 | assert_stacking 1/1 1/2 8 | 9 | destroy 1/2 10 | wait 11 | assert_stacking 1/1 12 | 13 | create 1/2 csd 14 | show 1/2 15 | create 1/3 csd 16 | show 1/3 17 | wait 18 | assert_stacking 1/1 1/2 1/3 19 | 20 | destroy 1/2 21 | wait 22 | assert_stacking 1/1 1/3 23 | -------------------------------------------------------------------------------- /src/tests/stacking/closed-transient-no-default-focus.metatest: -------------------------------------------------------------------------------- 1 | new_client 1 x11 2 | create 1/1 3 | accept_focus 1/1 false 4 | show 1/1 5 | 6 | create 1/2 csd 7 | set_parent 1/2 1 8 | accept_focus 1/2 false 9 | show 1/2 10 | 11 | create 1/3 csd 12 | set_parent 1/3 2 13 | show 1/3 14 | 15 | wait 16 | assert_focused 1/3 17 | assert_stacking 1/1 1/2 1/3 18 | 19 | destroy 1/3 20 | wait 21 | 22 | assert_focused none 23 | assert_stacking 1/1 1/2 24 | 25 | sleep 150 26 | wait 27 | 28 | assert_focused none 29 | assert_stacking 1/1 1/2 30 | -------------------------------------------------------------------------------- /src/tests/stacking/closed-transient-no-input-no-take-focus-parent.metatest: -------------------------------------------------------------------------------- 1 | new_client 1 x11 2 | create 1/1 3 | show 1/1 4 | 5 | create 1/2 csd 6 | set_parent 1/2 1 7 | can_take_focus 1/2 false 8 | accept_focus 1/2 false 9 | show 1/2 10 | 11 | create 1/3 csd 12 | set_parent 1/3 2 13 | show 1/3 14 | 15 | wait 16 | assert_focused 1/3 17 | assert_stacking 1/1 1/2 1/3 18 | 19 | destroy 1/3 20 | 21 | wait 22 | assert_focused 1/1 23 | assert_stacking 1/1 1/2 24 | -------------------------------------------------------------------------------- /src/tests/stacking/closed-transient-no-input-no-take-focus-parents.metatest: -------------------------------------------------------------------------------- 1 | new_client 2 x11 2 | create 2/1 3 | show 2/1 4 | wait 5 | 6 | new_client 1 x11 7 | create 1/1 8 | accept_focus 1/1 false 9 | can_take_focus 1/1 false 10 | show 1/1 11 | 12 | create 1/2 csd 13 | set_parent 1/2 1 14 | can_take_focus 1/2 false 15 | accept_focus 1/2 false 16 | show 1/2 17 | 18 | create 1/3 csd 19 | set_parent 1/3 2 20 | show 1/3 21 | 22 | wait 23 | assert_focused 1/3 24 | assert_stacking 2/1 1/1 1/2 1/3 25 | 26 | destroy 1/3 27 | 28 | wait 29 | assert_stacking 1/1 1/2 2/1 30 | assert_focused 2/1 31 | -------------------------------------------------------------------------------- /src/tests/stacking/closed-transient-no-input-parent-delayed-focus-default-cancelled.metatest: -------------------------------------------------------------------------------- 1 | new_client 2 x11 2 | create 2/1 3 | show 2/1 4 | 5 | new_client 1 x11 6 | create 1/1 7 | show 1/1 8 | 9 | create 1/2 csd 10 | set_parent 1/2 1 11 | accept_focus 1/2 false 12 | show 1/2 13 | 14 | create 1/3 csd 15 | set_parent 1/3 2 16 | show 1/3 17 | 18 | wait 19 | assert_focused 1/3 20 | assert_stacking 2/1 1/1 1/2 1/3 21 | 22 | destroy 1/3 23 | wait 24 | 25 | assert_stacking 2/1 1/1 1/2 26 | 27 | activate 2/1 28 | wait 29 | 30 | assert_focused 2/1 31 | assert_stacking 1/1 1/2 2/1 32 | 33 | sleep 250 34 | wait 35 | 36 | assert_focused 2/1 37 | assert_stacking 1/1 1/2 2/1 38 | -------------------------------------------------------------------------------- /src/tests/stacking/closed-transient-no-input-parent.metatest: -------------------------------------------------------------------------------- 1 | new_client 2 x11 2 | create 2/1 3 | show 2/1 4 | 5 | new_client 1 x11 6 | create 1/1 7 | show 1/1 8 | 9 | create 1/2 csd 10 | set_parent 1/2 1 11 | accept_focus 1/2 false 12 | show 1/2 13 | 14 | create 1/3 csd 15 | set_parent 1/3 2 16 | show 1/3 17 | 18 | wait 19 | assert_focused 1/3 20 | assert_stacking 2/1 1/1 1/2 1/3 21 | 22 | destroy 1/3 23 | wait 24 | 25 | assert_stacking 2/1 1/1 1/2 26 | 27 | sleep 150 28 | wait 29 | 30 | assert_focused 1/1 31 | assert_stacking 2/1 1/1 1/2 32 | -------------------------------------------------------------------------------- /src/tests/stacking/closed-transient-no-input-parents-queued-default-focus-destroyed.metatest: -------------------------------------------------------------------------------- 1 | new_client 0 x11 2 | create 0/1 3 | show 0/1 4 | 5 | new_client 1 x11 6 | create 1/1 7 | show 1/1 8 | 9 | create 1/2 csd 10 | set_parent 1/2 1 11 | accept_focus 1/2 false 12 | show 1/2 13 | 14 | create 1/3 csd 15 | set_parent 1/3 2 16 | accept_focus 1/3 false 17 | show 1/3 18 | 19 | create 1/4 csd 20 | set_parent 1/4 3 21 | accept_focus 1/4 false 22 | show 1/4 23 | 24 | create 1/5 csd 25 | set_parent 1/5 3 26 | show 1/5 27 | 28 | wait 29 | assert_focused 1/5 30 | assert_stacking 0/1 1/1 1/2 1/3 1/4 1/5 31 | 32 | destroy 1/5 33 | wait 34 | 35 | assert_stacking 0/1 1/1 1/2 1/3 1/4 36 | 37 | destroy 1/2 38 | wait 39 | 40 | sleep 450 41 | wait 42 | 43 | assert_focused 1/1 44 | assert_stacking 0/1 1/1 1/3 1/4 45 | -------------------------------------------------------------------------------- /src/tests/stacking/closed-transient-no-input-parents.metatest: -------------------------------------------------------------------------------- 1 | new_client 0 x11 2 | create 0/1 3 | show 0/1 4 | 5 | new_client 1 x11 6 | create 1/1 7 | show 1/1 8 | 9 | create 1/2 csd 10 | set_parent 1/2 1 11 | accept_focus 1/2 false 12 | show 1/2 13 | 14 | create 1/3 csd 15 | set_parent 1/3 2 16 | accept_focus 1/3 false 17 | show 1/3 18 | 19 | create 1/4 csd 20 | set_parent 1/4 3 21 | accept_focus 1/4 false 22 | show 1/4 23 | 24 | create 1/5 csd 25 | set_parent 1/5 3 26 | show 1/5 27 | 28 | wait 29 | assert_focused 1/5 30 | assert_stacking 0/1 1/1 1/2 1/3 1/4 1/5 31 | 32 | destroy 1/5 33 | wait 34 | 35 | assert_stacking 0/1 1/1 1/2 1/3 1/4 36 | 37 | sleep 600 38 | wait 39 | 40 | assert_focused 1/1 41 | assert_stacking 0/1 1/1 1/2 1/3 1/4 42 | 43 | destroy 1/3 44 | wait 45 | 46 | assert_focused 1/1 47 | assert_stacking 0/1 1/1 1/2 1/4 48 | -------------------------------------------------------------------------------- /src/tests/stacking/closed-transient-only-take-focus-parents.metatest: -------------------------------------------------------------------------------- 1 | new_client 0 x11 2 | create 0/1 3 | show 0/1 4 | 5 | new_client 1 x11 6 | create 1/1 7 | accept_focus 1/1 false 8 | can_take_focus 1/1 true 9 | accept_take_focus 1/1 true 10 | show 1/1 11 | 12 | create 1/2 csd 13 | set_parent 1/2 1 14 | accept_focus 1/2 false 15 | can_take_focus 1/2 true 16 | accept_take_focus 1/2 true 17 | show 1/2 18 | 19 | create 1/3 20 | set_parent 1/3 2 21 | show 1/3 22 | 23 | assert_focused 1/3 24 | assert_stacking 0/1 1/1 1/2 1/3 25 | 26 | destroy 1/3 27 | wait 28 | 29 | assert_focused 1/2 30 | assert_stacking 0/1 1/1 1/2 31 | 32 | sleep 150 33 | wait 34 | 35 | assert_focused 1/2 36 | assert_stacking 0/1 1/1 1/2 37 | -------------------------------------------------------------------------------- /src/tests/stacking/closed-transient.metatest: -------------------------------------------------------------------------------- 1 | new_client 1 wayland 2 | create 1/1 3 | show 1/1 4 | 5 | new_client 2 wayland 6 | create 2/1 7 | show 2/1 8 | 9 | create 1/2 10 | show 1/2 11 | set_parent 1/2 1 12 | 13 | wait 14 | assert_stacking 1/1 2/1 1/2 15 | 16 | destroy 1/2 17 | 18 | wait 19 | assert_stacking 2/1 1/1 20 | -------------------------------------------------------------------------------- /src/tests/stacking/default-size.metatest: -------------------------------------------------------------------------------- 1 | new_client x x11 2 | create x/1 csd 3 | 4 | resize x/1 300 400 5 | show x/1 6 | wait 7 | 8 | assert_size x/1 300 400 9 | 10 | resize x/1 200 300 11 | wait_reconfigure 12 | assert_size x/1 200 300 13 | 14 | hide x/1 15 | show x/1 16 | wait 17 | assert_size x/1 200 300 18 | 19 | 20 | new_client w wayland 21 | create w/1 csd 22 | 23 | resize w/1 300 400 24 | show w/1 25 | wait 26 | 27 | assert_size w/1 300 400 28 | 29 | resize w/1 200 300 30 | wait_reconfigure 31 | assert_size w/1 200 300 32 | 33 | hide w/1 34 | show w/1 35 | wait_reconfigure 36 | assert_size w/1 200 300 37 | -------------------------------------------------------------------------------- /src/tests/stacking/focus-default-window-globally-active-input.metatest: -------------------------------------------------------------------------------- 1 | new_client 0 x11 2 | create 0/1 3 | accept_focus 0/1 false 4 | can_take_focus 0/1 true 5 | accept_take_focus 0/1 true 6 | show 0/1 7 | 8 | new_client 1 wayland 9 | create 1/1 10 | show 1/1 11 | 12 | assert_stacking 0/1 1/1 13 | assert_focused 1/1 14 | 15 | local_activate 0/1 16 | focus_default_window 17 | 18 | wait 19 | assert_stacking 1/1 0/1 20 | assert_focused 0/1 21 | -------------------------------------------------------------------------------- /src/tests/stacking/map-fixed-size.metatest: -------------------------------------------------------------------------------- 1 | # Map an initially maximized window 2 | 3 | # Map a Wayland window initially maximized 4 | 5 | new_client w wayland 6 | create w/1 csd 7 | maximize w/1 8 | 9 | wait 10 | 11 | assert_stacking 12 | 13 | show w/1 14 | 15 | wait 16 | 17 | assert_stacking w/1 18 | assert_size w/1 MONITOR_WIDTH MONITOR_HEIGHT 19 | 20 | hide w/1 21 | 22 | # Map a Wayland window initially fullscreen 23 | 24 | create w/2 csd 25 | fullscreen w/2 26 | 27 | wait 28 | 29 | assert_stacking 30 | 31 | show w/2 32 | 33 | wait 34 | 35 | assert_stacking w/2 36 | assert_size w/2 MONITOR_WIDTH MONITOR_HEIGHT 37 | 38 | hide w/2 39 | 40 | # Map a X11 window initially maximized 41 | 42 | new_client x x11 43 | create x/1 csd 44 | maximize x/1 45 | 46 | wait 47 | 48 | assert_stacking 49 | 50 | show x/1 51 | 52 | wait 53 | 54 | assert_stacking x/1 55 | assert_size x/1 MONITOR_WIDTH MONITOR_HEIGHT 56 | 57 | hide x/1 58 | 59 | # Map a X11 window initially fullscreen 60 | 61 | create x/2 csd 62 | fullscreen x/2 63 | 64 | wait 65 | 66 | assert_stacking 67 | 68 | show x/2 69 | 70 | wait 71 | 72 | assert_stacking x/2 73 | assert_size x/2 MONITOR_WIDTH MONITOR_HEIGHT 74 | 75 | hide x/2 76 | -------------------------------------------------------------------------------- /src/tests/stacking/map-on-hotplug.metatest: -------------------------------------------------------------------------------- 1 | # Test that monitor hotplugs with unmapped windows are handled 2 | 3 | new_client w wayland 4 | 5 | create w/1 csd 6 | freeze w/1 7 | resize w/1 100 200 8 | show w/1 async 9 | 10 | resize_monitor primary 1024 768 11 | 12 | wait 13 | 14 | thaw w/1 15 | wait 16 | sync_shown w/1 17 | assert_stacking w/1 18 | assert_size w/1 100 200 19 | 20 | destroy w/1 21 | -------------------------------------------------------------------------------- /src/tests/stacking/minimized.metatest: -------------------------------------------------------------------------------- 1 | new_client 1 x11 2 | create 1/1 3 | show 1/1 4 | create 1/2 5 | show 1/2 6 | wait 7 | assert_stacking 1/1 1/2 8 | 9 | minimize 1/2 10 | wait 11 | assert_stacking 1/2 | 1/1 12 | 13 | # unminimize doesn't work for GTK+ currently, because GTK+ expects 14 | # to be able to de-iconify with MapWindow, but the window is already 15 | # mapped. 16 | activate 1/2 17 | wait 18 | assert_stacking 1/1 1/2 19 | -------------------------------------------------------------------------------- /src/tests/stacking/mixed-windows.metatest: -------------------------------------------------------------------------------- 1 | new_client w wayland 2 | new_client x x11 3 | 4 | create w/1 5 | show w/1 6 | create w/2 7 | show w/2 8 | wait 9 | 10 | create x/1 11 | show x/1 12 | create x/2 13 | show x/2 14 | wait 15 | 16 | assert_stacking w/1 w/2 x/1 x/2 17 | 18 | local_activate w/1 19 | assert_stacking w/2 x/1 x/2 w/1 20 | 21 | local_activate x/1 22 | assert_stacking w/2 x/2 w/1 x/1 23 | 24 | lower x/1 25 | wait 26 | assert_stacking x/1 w/2 x/2 w/1 27 | -------------------------------------------------------------------------------- /src/tests/stacking/modals.metatest: -------------------------------------------------------------------------------- 1 | new_client w wayland 2 | 3 | # Create two Wayland windows, and make the second a transient of the 4 | # first. Then make the parent not actually ever show, but show the 5 | # transient. 6 | 7 | # Then make sure that hiding the transient can hide without causing 8 | # issues. 9 | 10 | # https://gitlab.gnome.org/GNOME/mutter/-/issues/862 11 | 12 | create w/1 csd 13 | create w/2 csd 14 | 15 | set_parent w/2 1 16 | 17 | freeze w/1 18 | 19 | show w/1 async 20 | show w/2 21 | 22 | wait 23 | 24 | assert_stacking w/1 w/2 25 | 26 | hide w/2 27 | wait 28 | 29 | assert_stacking w/1 30 | 31 | hide w/2 32 | wait 33 | -------------------------------------------------------------------------------- /src/tests/stacking/override-redirect.metatest: -------------------------------------------------------------------------------- 1 | new_client 1 x11 2 | create 1/1 3 | show 1/1 4 | create 1/2 override 5 | show 1/2 6 | wait 7 | assert_stacking 1/1 1/2 8 | 9 | activate 1/1 10 | wait 11 | assert_stacking 1/1 1/2 12 | 13 | lower 1/2 14 | wait 15 | assert_stacking 1/2 | 1/1 16 | 17 | raise 1/2 18 | wait 19 | assert_stacking 1/1 1/2 20 | -------------------------------------------------------------------------------- /src/tests/stacking/restore-position.metatest: -------------------------------------------------------------------------------- 1 | # X11 2 | 3 | new_client x x11 4 | create x/1 csd 5 | show x/1 6 | 7 | move x/1 100 100 8 | assert_position x/1 100 100 9 | 10 | maximize x/1 11 | wait_reconfigure 12 | assert_position x/1 0 0 13 | 14 | unmaximize x/1 15 | wait_reconfigure 16 | assert_position x/1 100 100 17 | 18 | tile x/1 left 19 | wait_reconfigure 20 | assert_position x/1 0 0 21 | 22 | untile x/1 23 | wait_reconfigure 24 | assert_position x/1 100 100 25 | 26 | tile x/1 left 27 | wait 28 | assert_position x/1 0 0 29 | 30 | maximize x/1 31 | wait_reconfigure 32 | assert_position x/1 0 0 33 | 34 | unmaximize x/1 35 | wait_reconfigure 36 | assert_position x/1 100 100 37 | 38 | # Wayland 39 | 40 | new_client w wayland 41 | create w/1 csd 42 | show w/1 43 | 44 | move w/1 100 100 45 | assert_position w/1 100 100 46 | 47 | maximize w/1 48 | wait_reconfigure 49 | assert_position w/1 0 0 50 | 51 | unmaximize w/1 52 | wait_reconfigure 53 | assert_position w/1 100 100 54 | 55 | tile w/1 left 56 | wait_reconfigure 57 | assert_position w/1 0 0 58 | 59 | untile w/1 60 | wait_reconfigure 61 | assert_position w/1 100 100 62 | 63 | tile w/1 left 64 | wait_reconfigure 65 | assert_position w/1 0 0 66 | 67 | maximize w/1 68 | wait_reconfigure 69 | assert_position w/1 0 0 70 | 71 | unmaximize w/1 72 | wait_reconfigure 73 | assert_position w/1 100 100 74 | -------------------------------------------------------------------------------- /src/tests/stacking/set-override-redirect-parent.metatest: -------------------------------------------------------------------------------- 1 | new_client 1 x11 2 | create 1/1 override 3 | show 1/1 4 | 5 | create 1/2 6 | set_parent 1/2 1 7 | show 1/2 8 | 9 | create 1/3 10 | set_parent 1/3 2 11 | show 1/3 12 | 13 | 14 | new_client 2 x11 15 | create 2/1 16 | show 2/1 17 | 18 | create 2/2 override 19 | set_parent 2/2 1 20 | show 2/2 21 | 22 | create 2/3 23 | set_parent 2/3 2 24 | show 2/3 25 | 26 | 27 | new_client 3 x11 28 | create 3/1 override 29 | show 3/1 30 | 31 | create 3/2 override 32 | set_parent 3/2 1 33 | show 3/2 34 | 35 | create 3/3 override 36 | set_parent 3/3 2 37 | show 3/3 38 | -------------------------------------------------------------------------------- /src/tests/stacking/set-parent-exported.metatest: -------------------------------------------------------------------------------- 1 | new_client 1 wayland 2 | create 1/1 3 | show 1/1 4 | create 1/2 5 | show 1/2 6 | wait 7 | 8 | set_parent_exported 1/1 2 9 | wait 10 | assert_stacking 1/2 1/1 11 | 12 | local_activate 1/2 13 | assert_stacking 1/2 1/1 14 | 15 | destroy 1/2 16 | -------------------------------------------------------------------------------- /src/tests/stacking/set-parent.metatest: -------------------------------------------------------------------------------- 1 | new_client 1 wayland 2 | create 1/1 3 | show 1/1 4 | create 1/2 5 | show 1/2 6 | wait 7 | assert_stacking 1/1 1/2 8 | 9 | set_parent 1/1 2 10 | wait 11 | assert_stacking 1/2 1/1 12 | 13 | local_activate 1/2 14 | assert_stacking 1/2 1/1 15 | -------------------------------------------------------------------------------- /src/tests/stacking/unfullscreen-strut-change.metatest: -------------------------------------------------------------------------------- 1 | # Tests that the following works, both on Wayland and X11 2 | # 1. Create a window with a known size 3 | # 2. Fullscreen window results in fullscreen size 4 | # 3. Unfullscreen window followed by a strut change returns to known size 5 | 6 | new_client w wayland 7 | create w/1 csd 8 | 9 | resize w/1 500 400 10 | show w/1 11 | wait 12 | 13 | assert_size w/1 500 400 14 | 15 | fullscreen w/1 16 | wait_reconfigure 17 | assert_size w/1 MONITOR_WIDTH MONITOR_HEIGHT 18 | 19 | stop_after_next w 20 | unfullscreen w/1 21 | wait 22 | set_strut 0 0 1 1 top 23 | continue w 24 | wait_reconfigure 25 | assert_size w/1 500 400 26 | 27 | clear_struts 28 | wait 29 | 30 | new_client x x11 31 | create x/1 csd 32 | 33 | resize x/1 500 400 34 | show x/1 35 | wait 36 | 37 | assert_size x/1 500 400 38 | 39 | fullscreen x/1 40 | wait_reconfigure 41 | assert_size x/1 MONITOR_WIDTH MONITOR_HEIGHT 42 | 43 | stop_after_next x 44 | unfullscreen x/1 45 | wait 46 | set_strut 0 0 1 1 top 47 | continue x 48 | wait_reconfigure 49 | assert_size x/1 500 400 50 | -------------------------------------------------------------------------------- /src/tests/stacking/unmaximize-new-size.metatest: -------------------------------------------------------------------------------- 1 | # This is only tested on Wayland since it's broken on X11 2 | 3 | new_client w wayland 4 | create w/1 csd 5 | 6 | resize w/1 500 400 7 | show w/1 8 | wait 9 | 10 | assert_size w/1 500 400 11 | 12 | maximize w/1 13 | wait_reconfigure 14 | assert_size w/1 MONITOR_WIDTH MONITOR_HEIGHT 15 | 16 | resize w/1 300 500 17 | wait_reconfigure 18 | assert_size w/1 MONITOR_WIDTH MONITOR_HEIGHT 19 | 20 | unmaximize w/1 21 | wait_reconfigure 22 | assert_size w/1 300 500 23 | -------------------------------------------------------------------------------- /src/tests/stacking/workspace-basic.metatest: -------------------------------------------------------------------------------- 1 | num_workspaces 2 2 | activate_workspace 1 3 | 4 | new_client 1 wayland 5 | create 1/1 6 | show 1/1 7 | create 1/2 8 | show 1/2 9 | wait 10 | assert_stacking 1/1 1/2 11 | assert_stacking_workspace 1 1/1 1/2 12 | assert_stacking_workspace 0 13 | 14 | activate_workspace 0 15 | wait 16 | assert_stacking 1/1 1/2 17 | assert_stacking_workspace 1 1/1 1/2 18 | assert_stacking_workspace 0 19 | 20 | activate_workspace_with_focus 0 1/1 21 | wait 22 | assert_stacking 1/2 1/1 23 | assert_stacking_workspace 1 1/2 1/1 24 | assert_stacking_workspace 0 25 | 26 | window_to_workspace 1/2 0 27 | wait 28 | assert_stacking 1/2 1/1 29 | assert_stacking_workspace 1 1/1 30 | assert_stacking_workspace 0 1/2 31 | 32 | activate_workspace 0 33 | wait 34 | new_client 2 wayland 35 | create 2/1 36 | show 2/1 37 | wait 38 | 39 | assert_stacking 1/1 1/2 2/1 40 | assert_stacking_workspace 1 1/1 41 | assert_stacking_workspace 0 1/2 2/1 -------------------------------------------------------------------------------- /src/tests/stacking/workspace-test.metatest: -------------------------------------------------------------------------------- 1 | num_workspaces 2 2 | activate_workspace 0 3 | 4 | new_client 1 wayland 5 | create 1/1 6 | show 1/1 7 | create 1/2 8 | show 1/2 9 | wait 10 | assert_stacking_workspace 0 1/1 1/2 11 | assert_stacking_workspace 1 12 | 13 | activate_workspace 1 14 | new_client 2 wayland 15 | create 2/1 16 | show 2/1 17 | wait 18 | assert_stacking_workspace 0 1/1 1/2 19 | assert_stacking_workspace 1 2/1 20 | 21 | create 1/3 22 | show 1/3 23 | wait 24 | assert_stacking_workspace 0 1/1 1/2 25 | assert_stacking_workspace 1 2/1 1/3 26 | 27 | activate_workspace_with_focus 0 1/1 28 | wait 29 | assert_stacking_workspace 0 1/2 1/1 30 | assert_stacking_workspace 1 2/1 1/3 -------------------------------------------------------------------------------- /src/tests/unit-tests.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021 Red Hat, Inc. 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, see . 16 | */ 17 | 18 | #ifndef UNIT_TESTS_H 19 | #define UNIT_TESTS_H 20 | 21 | #include "meta/meta-context.h" 22 | 23 | extern MetaContext *test_context; 24 | 25 | #endif /* UNIT_TESTS_H */ 26 | -------------------------------------------------------------------------------- /src/tests/wayland-test-clients/test-driver.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /src/tests/x11-test.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | 3 | set -e 4 | 5 | MUTTER="$1" 6 | 7 | if [ -z "$MUTTER" ]; then 8 | echo Usage: $0 PATH-TO-MUTTER > /dev/stderr 9 | exit 1 10 | fi 11 | 12 | export GDK_BACKEND=x11 13 | export G_DEBUG=fatal-warnings 14 | 15 | echo \# Launching mutter > /dev/stderr 16 | $MUTTER --x11 --mutter-plugin="$MUTTER_TEST_PLUGIN_PATH" & 17 | MUTTER1_PID=$! 18 | gdbus wait --session org.gnome.Mutter.IdleMonitor 19 | echo \# Launched with pid $MUTTER1_PID 20 | 21 | sleep 2 22 | 23 | echo Launching a couple of X11 clients > /dev/stderr 24 | zenity --warning & 25 | ZENITY1_PID=$! 26 | sleep 2 27 | zenity --info & 28 | ZENITY2_PID=$! 29 | sleep 4 30 | 31 | echo \# Replacing existing mutter with a new instance > /dev/stderr 32 | $MUTTER --x11 --replace --mutter-plugin="$MUTTER_TEST_PLUGIN_PATH" & 33 | echo \# Launched with pid $MUTTER2_PID 34 | MUTTER2_PID=$! 35 | wait $MUTTER1_PID 36 | 37 | sleep 2 38 | 39 | echo \# Terminating clients > /dev/stderr 40 | kill $ZENITY1_PID 41 | sleep 1 42 | kill $ZENITY2_PID 43 | sleep 1 44 | 45 | echo \# Terminating mutter > /dev/stderr 46 | kill $MUTTER2_PID 47 | wait $MUTTER2_PID 48 | -------------------------------------------------------------------------------- /src/wayland/meta-wayland-activation.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Wayland Support 3 | * 4 | * Copyright (C) 2020 Red Hat 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with this library. If not, see . 18 | * 19 | * Author: Carlos Garnacho 20 | */ 21 | 22 | #ifndef META_WAYLAND_ACTIVATION_H 23 | #define META_WAYLAND_ACTIVATION_H 24 | 25 | #include 26 | #include 27 | 28 | #include "wayland/meta-wayland-types.h" 29 | 30 | void meta_wayland_activation_finalize (MetaWaylandCompositor *compositor); 31 | 32 | void meta_wayland_activation_init (MetaWaylandCompositor *compositor); 33 | 34 | #endif /* META_WAYLAND_ACTIVATION_H */ 35 | -------------------------------------------------------------------------------- /src/wayland/meta-wayland-dnd-surface.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015-2019 Red Hat, Inc. 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 17 | * 02111-1307, USA. 18 | */ 19 | 20 | #ifndef META_WAYLAND_DND_SURFACE_H 21 | #define META_WAYLAND_DND_SURFACE_H 22 | 23 | #include "wayland/meta-wayland-actor-surface.h" 24 | 25 | #define META_TYPE_WAYLAND_SURFACE_ROLE_DND (meta_wayland_surface_role_dnd_get_type ()) 26 | G_DECLARE_FINAL_TYPE (MetaWaylandSurfaceRoleDND, 27 | meta_wayland_surface_role_dnd, 28 | META, WAYLAND_SURFACE_ROLE_DND, 29 | MetaWaylandActorSurface) 30 | 31 | #endif /* META_WAYLAND_DND_SURFACE_H */ 32 | -------------------------------------------------------------------------------- /src/wayland/meta-wayland-gtk-shell.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Red Hat, Inc. 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 17 | * 02111-1307, USA. 18 | */ 19 | 20 | #ifndef META_WAYLAND_GTK_SHELL_H 21 | #define META_WAYLAND_GTK_SHELL_H 22 | 23 | #include "wayland/meta-wayland.h" 24 | 25 | #define META_TYPE_WAYLAND_GTK_SHELL (meta_wayland_gtk_shell_get_type ()) 26 | G_DECLARE_FINAL_TYPE (MetaWaylandGtkShell, meta_wayland_gtk_shell, 27 | META, WAYLAND_GTK_SHELL, GObject) 28 | 29 | void meta_wayland_init_gtk_shell (MetaWaylandCompositor *compositor); 30 | 31 | #endif /* META_WAYLAND_GTK_SHELL_H */ 32 | -------------------------------------------------------------------------------- /src/wayland/meta-wayland-inhibit-shortcuts-dialog.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 Red Hat 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, see . 16 | * 17 | */ 18 | 19 | #ifndef META_WAYLAND_INHIBIT_SHORTCUTS_DIALOG_H 20 | #define META_WAYLAND_INHIBIT_SHORTCUTS_DIALOG_H 21 | 22 | #include "wayland/meta-wayland-private.h" 23 | 24 | void meta_wayland_surface_show_inhibit_shortcuts_dialog (MetaWaylandSurface *surface, 25 | MetaWaylandSeat *seat); 26 | 27 | void meta_wayland_surface_cancel_inhibit_shortcuts_dialog (MetaWaylandSurface *surface); 28 | 29 | void meta_wayland_surface_inhibit_shortcuts_dialog_init (void); 30 | 31 | #endif /* META_WAYLAND_INHIBIT_SHORTCUTS_DIALOG_H */ 32 | -------------------------------------------------------------------------------- /src/wayland/meta-wayland-pointer-gestures.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Wayland Support 3 | * 4 | * Copyright (C) 2015 Red Hat 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with this library. If not, see . 18 | * 19 | * Author: Carlos Garnacho 20 | */ 21 | 22 | #ifndef META_WAYLAND_POINTER_GESTURES_H 23 | #define META_WAYLAND_POINTER_GESTURES_H 24 | 25 | #include 26 | #include 27 | 28 | #include "wayland/meta-wayland-types.h" 29 | 30 | void meta_wayland_pointer_gestures_init (MetaWaylandCompositor *compositor); 31 | 32 | #endif /* META_WAYLAND_POINTER_GESTURES_H */ 33 | -------------------------------------------------------------------------------- /src/wayland/meta-wayland-viewporter.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Wayland Support 3 | * 4 | * Copyright (C) 2018-2019 Robert Mader 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License as 8 | * published by the Free Software Foundation; either version 2 of the 9 | * License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, but 12 | * WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 19 | * 02111-1307, USA. 20 | * 21 | */ 22 | 23 | #ifndef META_WAYLAND_VIEWPORTER_H 24 | #define META_WAYLAND_VIEWPORTER_H 25 | 26 | #include "wayland/meta-wayland-types.h" 27 | 28 | void meta_wayland_init_viewporter (MetaWaylandCompositor *compositor); 29 | 30 | #endif /* META_WAYLAND_VIEWPORTER_H */ 31 | -------------------------------------------------------------------------------- /src/wayland/meta-wayland-xdg-foreign.h: -------------------------------------------------------------------------------- 1 | /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2 | 3 | /* 4 | * Copyright (C) 2015 Red Hat 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License as 8 | * published by the Free Software Foundation; either version 2 of the 9 | * License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, but 12 | * WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 19 | * 02111-1307, USA. 20 | * 21 | * Written by: 22 | * Jonas Ådahl 23 | */ 24 | 25 | #ifndef META_WAYLAND_FOREIGN_H 26 | #define META_WAYLAND_FOREIGN_H 27 | 28 | #include 29 | 30 | #include "wayland/meta-wayland-types.h" 31 | 32 | gboolean meta_wayland_xdg_foreign_init (MetaWaylandCompositor *compositor); 33 | 34 | #endif /* META_WAYLAND_FOREIGN_H */ 35 | -------------------------------------------------------------------------------- /src/wayland/meta-window-xwayland.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 Red Hat 3 | * 4 | * This program is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU General Public License as 6 | * published by the Free Software Foundation; either version 2 of the 7 | * License, or (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, but 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, see . 16 | * 17 | */ 18 | 19 | #ifndef META_WINDOW_XWAYLAND_H 20 | #define META_WINDOW_XWAYLAND_H 21 | 22 | #include "meta/window.h" 23 | #include "x11/window-x11.h" 24 | #include "x11/window-x11-private.h" 25 | 26 | G_BEGIN_DECLS 27 | 28 | #define META_TYPE_WINDOW_XWAYLAND (meta_window_xwayland_get_type()) 29 | G_DECLARE_FINAL_TYPE (MetaWindowXwayland, meta_window_xwayland, 30 | META, WINDOW_XWAYLAND, MetaWindowX11) 31 | 32 | G_END_DECLS 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /src/x11/events.h: -------------------------------------------------------------------------------- 1 | /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2 | 3 | /* 4 | * Copyright (C) 2001 Havoc Pennington 5 | * Copyright (C) 2002, 2003, 2004 Red Hat, Inc. 6 | * Copyright (C) 2003, 2004 Rob Adams 7 | * Copyright (C) 2004-2006 Elijah Newren 8 | * 9 | * This program is free software; you can redistribute it and/or 10 | * modify it under the terms of the GNU General Public License as 11 | * published by the Free Software Foundation; either version 2 of the 12 | * License, or (at your option) any later version. 13 | * 14 | * This program is distributed in the hope that it will be useful, but 15 | * WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 | * General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU General Public License 20 | * along with this program; if not, see . 21 | */ 22 | 23 | #include "meta/display.h" 24 | 25 | #ifndef META_EVENTS_X11_H 26 | #define META_EVENTS_X11_H 27 | 28 | void meta_x11_display_init_events (MetaX11Display *x11_display); 29 | void meta_x11_display_free_events (MetaX11Display *x11_display); 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /src/x11/group-private.h: -------------------------------------------------------------------------------- 1 | /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2 | 3 | /* Mutter window group private header */ 4 | 5 | /* 6 | * Copyright (C) 2002 Red Hat Inc. 7 | * 8 | * This program is free software; you can redistribute it and/or 9 | * modify it under the terms of the GNU General Public License as 10 | * published by the Free Software Foundation; either version 2 of the 11 | * License, or (at your option) any later version. 12 | * 13 | * This program is distributed in the hope that it will be useful, but 14 | * WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | * General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU General Public License 19 | * along with this program; if not, see . 20 | */ 21 | 22 | #ifndef META_GROUP_PRIVATE_H 23 | #define META_GROUP_PRIVATE_H 24 | 25 | #include "meta/group.h" 26 | 27 | struct _MetaGroup 28 | { 29 | int refcount; 30 | MetaX11Display *x11_display; 31 | GSList *windows; 32 | Window group_leader; 33 | char *startup_id; 34 | char *wm_client_machine; 35 | }; 36 | 37 | #endif 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /src/x11/meta-x11-stack-private.h: -------------------------------------------------------------------------------- 1 | /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2 | /* 3 | * Copyright (C) 2019 Red Hat, Inc 4 | * 5 | * This program is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU General Public License as 7 | * published by the Free Software Foundation; either version 2 of the 8 | * License, or (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, but 11 | * WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, see . 17 | */ 18 | 19 | #ifndef META_X11_STACK_H 20 | #define META_X11_STACK_H 21 | 22 | #include 23 | 24 | #include "meta/types.h" 25 | 26 | #define META_TYPE_X11_STACK (meta_x11_stack_get_type ()) 27 | G_DECLARE_FINAL_TYPE (MetaX11Stack, meta_x11_stack, META, X11_STACK, GObject) 28 | 29 | typedef struct _MetaX11Stack MetaX11Stack; 30 | 31 | MetaX11Stack * meta_x11_stack_new (MetaX11Display *x11_display); 32 | 33 | #endif /* META_X11_STACK_H */ 34 | -------------------------------------------------------------------------------- /subprojects/sysprof.wrap: -------------------------------------------------------------------------------- 1 | [wrap-git] 2 | directory=sysprof 3 | url=https://gitlab.gnome.org/GNOME/sysprof.git 4 | revision=cae28263ff5dd4a510d82f3dc2e3a3b3d9b386fb 5 | -------------------------------------------------------------------------------- /tools/meson.build: -------------------------------------------------------------------------------- 1 | get_state_tool = find_program('get-state.py') 2 | --------------------------------------------------------------------------------