From 0cbf28917254366b08ef66a032687a2498e157ef Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Sun, 26 Mar 2023 18:55:16 +0800 Subject: [PATCH] build: Support mutter 44 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Corentin Noël Co-authored-by: David Hewitt --- vapi/Clutter-12-custom.vala | 53 +++++++ vapi/Clutter-12.metadata | 191 ++++++++++++++++++++++++ vapi/Cogl-12-custom.vala | 161 +++++++++++++++++++++ vapi/Cogl-12.metadata | 73 ++++++++++ vapi/Meta-12.metadata | 199 ++++++++++++++++++++++++++ vapi/libmutter-12.deps | 1 + vapi/libmutter-12.vapi | 1 + vapi/libmutter.vapi | 111 +++++++++++++- vapi/meson.build | 72 ++++++++++ vapi/mutter-clutter-12.deps | 6 + vapi/mutter-clutter-12.vapi | 1 + vapi/mutter-clutter.vapi | 83 ++++++++++- vapi/mutter-cogl-12.deps | 1 + vapi/mutter-cogl-12.vapi | 1 + vapi/mutter-cogl-pango-12.vapi | 1 + vapi/mutter-cogl.vapi | 6 + wingpanel-interface/FocusManager.vala | 4 + wingpanel-interface/meson.build | 11 ++ 18 files changed, 971 insertions(+), 5 deletions(-) create mode 100644 vapi/Clutter-12-custom.vala create mode 100644 vapi/Clutter-12.metadata create mode 100644 vapi/Cogl-12-custom.vala create mode 100644 vapi/Cogl-12.metadata create mode 100644 vapi/Meta-12.metadata create mode 120000 vapi/libmutter-12.deps create mode 120000 vapi/libmutter-12.vapi create mode 100644 vapi/mutter-clutter-12.deps create mode 120000 vapi/mutter-clutter-12.vapi create mode 120000 vapi/mutter-cogl-12.deps create mode 120000 vapi/mutter-cogl-12.vapi create mode 120000 vapi/mutter-cogl-pango-12.vapi diff --git a/vapi/Clutter-12-custom.vala b/vapi/Clutter-12-custom.vala new file mode 100644 index 00000000..e5c71c2d --- /dev/null +++ b/vapi/Clutter-12-custom.vala @@ -0,0 +1,53 @@ +namespace Clutter { + public struct Color { + [CCode (cname = "_vala_clutter_color_from_hls")] + public static Clutter.Color? from_hls (float hue, float luminance, float saturation) { + var color = Clutter.Color.alloc (); + color.init_from_hls (hue, luminance, saturation); + return color; + } + [CCode (cname = "_vala_clutter_color_from_pixel")] + public static Clutter.Color? from_pixel (uint32 pixel) { + var color = Clutter.Color.alloc (); + color.init_from_pixel (pixel); + return color; + } + [CCode (cname = "_vala_clutter_color_from_string")] + public static Clutter.Color? from_string (string str) { + var color = Clutter.Color.alloc (); + color.init_from_string (str); + return color; + } + [CCode (cname = "clutter_color_from_string")] + public bool parse_string (string str); + } + + public interface Container : GLib.Object { + public void add (params Clutter.Actor[] actors); + [CCode (cname = "clutter_container_class_find_child_property")] + public class unowned GLib.ParamSpec find_child_property (string property_name); + [CCode (cname = "clutter_container_class_list_child_properties")] + public class unowned GLib.ParamSpec[] list_child_properties (); + } + + public struct Units { + [CCode (cname = "clutter_units_from_cm")] + public Units.from_cm (float cm); + [CCode (cname = "clutter_units_from_em")] + public Units.from_em (float em); + [CCode (cname = "clutter_units_from_em_for_font")] + public Units.from_em_for_font (string font_name, float em); + [CCode (cname = "clutter_units_from_mm")] + public Units.from_mm (float mm); + [CCode (cname = "clutter_units_from_pixels")] + public Units.from_pixels (int px); + [CCode (cname = "clutter_units_from_pt")] + public Units.from_pt (float pt); + [CCode (cname = "clutter_units_from_string")] + public Units.from_string (string str); + } + + [CCode (cheader_filename = "clutter/clutter.h", has_copy_function = false, has_destroy_function = false, has_type_id = false)] + public struct Capture { + } +} diff --git a/vapi/Clutter-12.metadata b/vapi/Clutter-12.metadata new file mode 100644 index 00000000..f5395787 --- /dev/null +++ b/vapi/Clutter-12.metadata @@ -0,0 +1,191 @@ +// Non mini-object +ActorBox struct +Color struct +Knot struct +Margin struct +PaintVolume struct +PathNode struct +Perspective struct +Units struct + +*.ref unowned + +Actor + .apply_transform.matrix ref + .get_abs_allocation_vertices.verts out=false +Canvas + .new symbol_type="constructor" +Event.type#method name="get_type" +Image + .new symbol_type="constructor" + +// ??? +Actor.has_pointer#method name="get_has_pointer" +ScriptError errordomain + +// Not all backing symbols are deprecated +Actor.pick deprecated=false + +// Nullable return values +Actor + .get_parent nullable +value_get_color nullable + +// method/virtual-method/signal don't match +Actor + .event#method name="emit_event" + .get_paint_volume#virtual_method name="get_paint_volume_vfunc" + .get_paint_volume#virtual_method.volume out +Container + .add_actor skip=false + .class_* skip +Text + .activate#method name="try_activate" + .insert_text#signal skip +TextBuffer.get_text#virtual_method name="get_text_with_length" + +// virtual/abstract distinction +Container + .*_child_meta#virtual_method virtual + +// Default values +Stage.read_pixels + .width default=-1 + .height default=-1 +Stage.paint_to_buffer + .data type="uint8[]" +Text + .position_to_coords.line_height default=null + +// Skipped by g-i for unknown reasons +LayoutManager + .create_child_meta skip=false + +// Variadic arguments +Backend + .get_cogl_context skip=false +Container + .child_get skip=false + .child_set skip=false + .remove skip=false +Interval + .new skip=false + .get_interval skip=false + .set_final skip=false + .set_initial skip=false + .set_interval skip=false +LayoutManager + .child_get skip=false + .child_set skip=false +Script + .get_objects skip=false + +// Skipped upstream for unknown reasons +Interval.register_progress_func skip=false +threads_add_idle skip=false +threads_add_idle_full skip=false +threads_add_timeout skip=false +threads_add_timeout_full skip=false + +// struct/class confusion +ActorBox + .new skip + .from_vertices skip +Units.from_* skip +Margin + .new skip + +// Class methods +container_class_find_child_property skip +container_class_list_child_properties skip + +// Move symbols +units_from_* skip + +// Struct return values +color_get_static nullable + +// Upstream +Event + .get_position.position out + +FrameListenerIface skip +FrameClock.new skip + +// Remove for clutter-2.0 +///////////////////////// + +StageView.layout skip + +Stage + .paint_view.redraw_clip type="Cairo.Region" + +Capture + .image type="Cairo.ImageSurface" + +// *Event should be compact classes derived from Clutter.Event +Event.type skip=false +AnyEvent struct=false base_type="Clutter.Event" +ButtonEvent struct=false base_type="Clutter.Event" +CrossingEvent struct=false base_type="Clutter.Event" +DeviceEvent struct=false base_type="Clutter.Event" +IMEvent struct=false base_type="Clutter.Event" +KeyEvent struct=false base_type="Clutter.Event" +MotionEvent struct=false base_type="Clutter.Event" +PadButtonEvent struct=false base_type="Clutter.Event" +PadRingEvent struct=false base_type="Clutter.Event" +PadStripEvent struct=false base_type="Clutter.Event" +ProximityEvent struct=false base_type="Clutter.Event" +ScrollEvent struct=false base_type="Clutter.Event" +TouchEvent struct=false base_type="Clutter.Event" +TouchpadHoldEvent struct=false base_type="Clutter.Event" +TouchpadPinchEvent struct=false base_type="Clutter.Event" +TouchpadSwipeEvent struct=false base_type="Clutter.Event" + +// Keysyms used to be CLUTTER_X instead of CLUTTER_KEY_X +*#constant skip +COGL skip=false +CURRENT_TIME skip=false +FLAVOUR skip=false +PATH_RELATIVE skip=false +PRIORITY_REDRAW skip=false + +// Clutter devs don't like us creating nested namespaces +value_* name="value_(.+)" parent="Clutter.Value" +threads_* name="threads_(.+)" parent="Clutter.Threads" +threads_add_idle name="add" parent="Clutter.Threads.Idle" +threads_add_idle_full name="add_full" parent="Clutter.Threads.Idle" +threads_add_timeout name="add" parent="Clutter.Threads.Timeout" +threads_add_timeout_full name="add_full" parent="Clutter.Threads.Timeout" + +// There is no way to know sealed classes before GLib 2.70 +ColorState sealed +FrameClock sealed +TextureContent sealed + +// Backwards compatibility +Color.alloc symbol_type="function" + +Color.from_hls name="init_from_hls" +Color.from_pixel name="init_from_pixel" +Color.from_string name="init_from_string" + +Color.new name="from_rgba" symbol_type="function" + .alpha default=0 + .blue default=0 + .green default=0 + .red default=0 + +Color.init + .alpha default=0 + .blue default=0 + .green default=0 + .red default=0 + +BinAlignment deprecated=false deprecated_since=null +BinAlignment.* deprecated +BinAlignment.start deprecated=false +BinLayout.new.*_align default=Clutter.BinAlignment.START + +// Possibly keep +KEY_* skip=false name="KEY_(.+)" type="uint" parent="Clutter.Key" diff --git a/vapi/Cogl-12-custom.vala b/vapi/Cogl-12-custom.vala new file mode 100644 index 00000000..f6034717 --- /dev/null +++ b/vapi/Cogl-12-custom.vala @@ -0,0 +1,161 @@ +namespace Cogl { + public struct Color { + [Version (since = "1.4")] + [CCode (cname="cogl_color_init_from_4f")] + public Color.from_4f (float red, float green, float blue, float alpha); + [Version (since = "1.4")] + [CCode (cname="cogl_color_init_from_4fv")] + public Color.from_4fv (float color_array); + [Version (since = "1.4")] + [CCode (cname="cogl_color_init_from_4ub")] + public Color.from_4ub (uint8 red, uint8 green, uint8 blue, uint8 alpha); + [Version (since = "1.16")] + [CCode (cname="cogl_color_init_from_hsl")] + public Color.from_hsl (float hue, float saturation, float luminance); + } + + [Compact] + [CCode (cname = "CoglHandle", cheader_filename = "cogl/cogl.h", type_id = "cogl_handle_get_gtype ()", ref_function = "cogl_object_ref", unref_function = "cogl_object_unref")] + public class Shader : Cogl.Handle { + } + + [CCode (cheader_filename = "cogl/cogl.h", type_id = "cogl_primitive_get_gtype ()")] + public class Primitive : Cogl.Object { + [CCode (has_construct_function = false)] + protected Primitive (); + [Version (since = "1.10")] + public Cogl.Primitive copy (); + [Version (since = "1.16")] + public void draw (Cogl.Framebuffer framebuffer, Cogl.Pipeline pipeline); + public int get_first_vertex (); + public Cogl.VerticesMode get_mode (); + [Version (since = "1.8")] + public int get_n_vertices (); + [CCode (has_construct_function = false)] + [Version (since = "1.6")] + public Primitive.p2 (Cogl.Context context, Cogl.VerticesMode mode, [CCode (array_length_cname = "n_vertices", array_length_pos = 2.5)] Cogl.VertexP2[] data); + [CCode (has_construct_function = false)] + [Version (since = "1.6")] + public Primitive.p2c4 (Cogl.Context context, Cogl.VerticesMode mode, [CCode (array_length_cname = "n_vertices", array_length_pos = 2.5)] Cogl.VertexP2C4[] data); + [CCode (has_construct_function = false)] + [Version (since = "1.6")] + public Primitive.p2t2 (Cogl.Context context, Cogl.VerticesMode mode, [CCode (array_length_cname = "n_vertices", array_length_pos = 2.5)] Cogl.VertexP2T2[] data); + [CCode (has_construct_function = false)] + [Version (since = "1.6")] + public Primitive.p2t2c4 (Cogl.Context context, Cogl.VerticesMode mode, [CCode (array_length_cname = "n_vertices", array_length_pos = 2.5)] Cogl.VertexP2T2C4[] data); + [CCode (has_construct_function = false)] + [Version (since = "1.6")] + public Primitive.p3 (Cogl.Context context, Cogl.VerticesMode mode, [CCode (array_length_cname = "n_vertices", array_length_pos = 2.5)] Cogl.VertexP3[] data); + [CCode (has_construct_function = false)] + [Version (since = "1.6")] + public Primitive.p3c4 (Cogl.Context context, Cogl.VerticesMode mode, [CCode (array_length_cname = "n_vertices", array_length_pos = 2.5)] Cogl.VertexP3C4[] data); + [CCode (has_construct_function = false)] + [Version (since = "1.6")] + public Primitive.p3t2 (Cogl.Context context, Cogl.VerticesMode mode, [CCode (array_length_cname = "n_vertices", array_length_pos = 2.5)] Cogl.VertexP3T2[] data); + [CCode (has_construct_function = false)] + [Version (since = "1.6")] + public Primitive.p3t2c4 (Cogl.Context context, Cogl.VerticesMode mode, [CCode (array_length_cname = "n_vertices", array_length_pos = 2.5)] Cogl.VertexP3T2C4[] data); + public void set_first_vertex (int first_vertex); + public void set_mode (Cogl.VerticesMode mode); + [Version (since = "1.8")] + public void set_n_vertices (int n_vertices); + } + + [Compact] + [CCode (cname = "CoglHandle", cheader_filename = "cogl/cogl.h", type_id = "cogl_handle_get_gtype ()", ref_function = "cogl_object_ref", unref_function = "cogl_object_unref")] + public class Program : Cogl.Handle { + } + + [Compact] + [CCode (cheader_filename = "cogl/cogl.h", type_id = "cogl_handle_get_gtype ()", ref_function = "cogl_object_ref", unref_function = "cogl_object_unref")] + public class Handle { + [CCode (cheader_filename = "cogl/cogl.h", cname="cogl_is_material")] + [Version (deprecated = true, deprecated_since = "1.16")] + public bool is_material (); + [CCode (cheader_filename = "cogl/cogl.h", cname="cogl_is_program")] + [Version (deprecated = true, deprecated_since = "1.16")] + public bool is_program (Cogl.Handle handle); + [CCode (cheader_filename = "cogl/cogl.h", cname="cogl_is_shader")] + [Version (deprecated = true, deprecated_since = "1.16")] + public bool is_shader (); + [CCode (cheader_filename = "cogl/cogl.h", cname="cogl_is_texture")] + public bool is_texture (); + } + + [CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)] + [Version (since = "1.6")] + public struct VertexP2 { + public float x; + public float y; + } + [CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)] + [Version (since = "1.6")] + public struct VertexP2C4 { + public float x; + public float y; + public uint8 r; + public uint8 g; + public uint8 b; + public uint8 a; + } + [CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)] + [Version (since = "1.6")] + public struct VertexP2T2 { + public float x; + public float y; + public float s; + public float t; + } + [CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)] + [Version (since = "1.6")] + public struct VertexP2T2C4 { + public float x; + public float y; + public float s; + public float t; + public uint8 r; + public uint8 g; + public uint8 b; + public uint8 a; + } + [CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)] + [Version (since = "1.6")] + public struct VertexP3 { + public float x; + public float y; + public float z; + } + [CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)] + [Version (since = "1.6")] + public struct VertexP3C4 { + public float x; + public float y; + public float z; + public uint8 r; + public uint8 g; + public uint8 b; + public uint8 a; + } + [CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)] + [Version (since = "1.6")] + public struct VertexP3T2 { + public float x; + public float y; + public float z; + public float s; + public float t; + } + [CCode (cheader_filename = "cogl/cogl.h", has_type_id = false)] + [Version (since = "1.6")] + public struct VertexP3T2C4 { + public float x; + public float y; + public float z; + public float s; + public float t; + public uint8 r; + public uint8 g; + public uint8 b; + public uint8 a; + } +} diff --git a/vapi/Cogl-12.metadata b/vapi/Cogl-12.metadata new file mode 100644 index 00000000..828aa5b5 --- /dev/null +++ b/vapi/Cogl-12.metadata @@ -0,0 +1,73 @@ +* cheader_filename="cogl/cogl.h" + +Color struct + +_ColorSizeCheck skip +_TextureVertexSizeCheck skip + +Color.equal.v1 type="Cogl.Color" +Color.equal.v2 type="Cogl.Color" +color_equal skip + +Context.free_timestamp_query.query owned + +Texture + .get_data.data type="uint8[]" + .set_data.data type="uint8[]" + .set_region.data type="uint8[]" + +Texture2D + .new_from_data skip=false + .new_from_data.data array=true + +shader_* name="shader_(.+)" parent="Cogl.Shader" +shader_* symbol_type="method" instance_idx=0 + +Pipeline.get_layer_filters + .min_filter out + .mag_filter out + +program_* name="program_(.+)" parent="Cogl.Program" +program_attach_shader symbol_type="method" instance_idx=0 +program_get_uniform_location symbol_type="method" instance_idx=0 +program_link symbol_type="method" instance_idx=0 +program_set_uniform_1f symbol_type="method" instance_idx=0 +program_set_uniform_1i symbol_type="method" instance_idx=0 +program_set_uniform_float symbol_type="method" instance_idx=0 +program_set_uniform_int symbol_type="method" instance_idx=0 +program_set_uniform_matrix symbol_type="method" instance_idx=0 + +is_bitmap parent="Cogl.Object" symbol_type="method" instance_idx=0 +is_program parent="Cogl.Handle" +is_shader parent="Cogl.Handle" +is_texture parent="Cogl.Object" symbol_type="method" instance_idx=0 +is_context parent="Cogl.Object" symbol_type="method" instance_idx=0 +is_framebuffer parent="Cogl.Object" symbol_type="method" instance_idx=0 +is_frame_info parent="Cogl.Object" symbol_type="method" instance_idx=0 +is_pipeline parent="Cogl.Object" symbol_type="method" instance_idx=0 +is_texture_2d parent="Cogl.Object" symbol_type="method" instance_idx=0 +is_texture_2d_sliced parent="Cogl.Object" symbol_type="method" instance_idx=0 +is_snippet parent="Cogl.Object" symbol_type="method" instance_idx=0 + +create_program type="unowned Cogl.Program" name="create" parent="Cogl.Program" +create_shader type="unowned Cogl.Shader" name="create" parent="Cogl.Shader" + +foreach_feature parent="Cogl.Context" symbol_type="method" instance_idx=0 +get_graphics_reset_status parent="Cogl.Context" symbol_type="method" instance_idx=0 +has_feature parent="Cogl.Context" symbol_type="method" instance_idx=0 + +Bitmap.error_quark parent="Cogl.BitmapError" name="quark" +Texture.error_quark parent="Cogl.TextureError" name="quark" +texture_error_quark skip +Scanout.error_quark parent="Cogl.ScanoutError" name="quark" +scanout_error_quark skip + +BitmapError errordomain +BlendStringError errordomain +RendererError errordomain +SystemError errordomain +TextureError errordomain +FramebufferError errordomain +ScanoutError errordomain + +Offscreen sealed diff --git a/vapi/Meta-12.metadata b/vapi/Meta-12.metadata new file mode 100644 index 00000000..ce2a5dee --- /dev/null +++ b/vapi/Meta-12.metadata @@ -0,0 +1,199 @@ +* skip=false +*.* skip=false +* cheader_filename="meta/main.h" + +Backend cheader_filename="meta/meta-backend.h" +Backend.gpu_added skip +Background cheader_filename="meta/meta-background.h" +Background.set_file.file nullable +BackgroundContent.new symbol_type="constructor" +BackgroundActor cheader_filename="meta/meta-background-actor.h" +BackgroundContent cheader_filename="meta/meta-background-content.h" +BackgroundGroup cheader_filename="meta/meta-background-group.h" +BackgroundImage cheader_filename="meta/meta-background-image.h" +BackgroundImageCache cheader_filename="meta/meta-background-image.h" +Barrier cheader_filename="meta/barrier.h" +BarrierDirection cheader_filename="meta/barrier.h" +BarrierEvent cheader_filename="meta/barrier.h" +ButtonFunction cheader_filename="meta/common.h" +ButtonLayout cheader_filename="meta/common.h" +Compositor cheader_filename="meta/compositor.h" +get_feedback_group_for_display parent="Meta.Display" symbol_type="method" name="get_feedback_group" instance_idx=0 cheader_filename="meta/compositor-mutter.h" +get_stage_for_display parent="Meta.Display" symbol_type="method" name="get_stage" instance_idx=0 cheader_filename="meta/compositor-mutter.h" +get_top_window_group_for_display parent="Meta.Display" symbol_type="method" name="get_top_window_group" instance_idx=0 cheader_filename="meta/compositor-mutter.h" +get_window_group_for_display parent="Meta.Display" symbol_type="method" name="get_window_group" instance_idx=0 cheader_filename="meta/compositor-mutter.h" +disable_unredirect_for_display parent="Meta.Display" symbol_type="method" name="disable_unredirect" instance_idx=0 cheader_filename="meta/compositor-mutter.h" +enable_unredirect_for_display parent="Meta.Display" symbol_type="method" name="enable_unredirect" instance_idx=0 cheader_filename="meta/compositor-mutter.h" + +get_window_actors parent="Meta.Display" symbol_type="method" instance_idx=0 cheader_filename="meta/compositor-mutter.h" type_arguments="Meta.WindowActor" +focus_stage_window parent="Meta.Display" symbol_type="method" instance_idx=0 cheader_filename="meta/compositor-mutter.h" + +CompEffect cheader_filename="meta/compositor.h" +CloseDialog cheader_filename="meta/meta-close-dialog.h" +CloseDialogResponse cheader_filename="meta/meta-close-dialog.h" +Context cheader_filename="meta/meta-context.h" +CompositorType cheader_filename="meta/meta-enums.h" +Cursor cheader_filename="meta/common.h" +CursorTracker cheader_filename="meta/meta-cursor-tracker.h" +CursorTracker.get_for_display parent="Meta.Display" symbol_type="method" instance_idx=0 name="get_cursor_tracker" +CursorTracker.get_pointer.mods out +DebugTopic cheader_filename="meta/util.h" +DebugPaintFlag cheader_filename="meta/util.h" +Direction cheader_filename="meta/common.h" +Display cheader_filename="meta/display.h" +DisplayCorner cheader_filename="meta/display.h" +DisplayDirection cheader_filename="meta/display.h" +Dnd cheader_filename="meta/meta-dnd.h" +EdgeType cheader_filename="meta/boxes.h" +Edge cheader_filename="meta/boxes.h" +Frame cheader_filename="meta/types.h" +FrameBorders cheader_filename="meta/common.h" +FrameFlags cheader_filename="meta/common.h" +FrameType cheader_filename="meta/common.h" +GrabOp cheader_filename="meta/common.h" +Gravity cheader_filename="meta/common.h" +Group cheader_filename="meta/group.h" +Group.property_notify.event type="X.Event" ref +IdleMonitor cheader_filename="meta/meta-idle-monitor.h" +IdleMonitorWatchFunc cheader_filename="meta/meta-idle-monitor.h" +InhibitShortcutsDialog cheader_filename="meta/meta-inhibit-shortcuts-dialog.h" +InhibitShortcutsDialogResponse cheader_filename="meta/meta-inhibit-shortcuts-dialog.h" +KeyboardA11yFlags cheader_filename="meta/meta-enums.h" +KeyBinding cheader_filename="meta/keybindings.h" +keybindings_set_custom_handler parent="Meta.KeyBinding" name="set_custom_handler" cheader_filename="meta/keybindings.h" +KeyBindingAction cheader_filename="meta/prefs.h" +KeyBindingFlags cheader_filename="meta/prefs.h" +KeyHandlerFunc cheader_filename="meta/prefs.h" +KeyHandlerFunc.event type="Clutter.KeyEvent?" +KeyHandlerFunc.window nullable +LaunchContext cheader_filename="meta/meta-launch-context.h" +Laters cheader_filename="meta/types.h" +LaterType cheader_filename="meta/util.h" +LocaleDirection cheader_filename="meta/util.h" +MaximizeFlags cheader_filename="meta/window.h" +MonitorManager cheader_filename="meta/meta-monitor-manager.h" +MonitorSwitchConfigType cheader_filename="meta/meta-monitor-manager.h" +MotionDirection cheader_filename="meta/common.h" +PadActionType cheader_filename="meta/display.h" +Plugin cheader_filename="meta/meta-plugin.h" +Plugin.xevent_filter.event type="X.Event" ref +PluginInfo cheader_filename="meta/meta-plugin.h" +Preference cheader_filename="meta/prefs.h" +PrefsChangedFunc cheader_filename="meta/prefs.h" +Rectangle cheader_filename="meta/boxes.h" struct +RemoteAccessController cheader_filename="meta/meta-remote-access-controller.h" +RemoteAccessHandle cheader_filename="meta/meta-remote-access-controller.h" +Selection cheader_filename="meta/meta-selection.h" +SelectionSource cheader_filename="meta/meta-selection-source.h" +SelectionSourceMemory cheader_filename="meta/meta-selection-source-memory.h" +SelectionType cheader_filename="meta/meta-selection-source.h" +Settings cheader_filename="meta/meta-settings.h" +Shadow cheader_filename="meta/meta-shadow-factory.h" +ShadowFactory cheader_filename="meta/meta-shadow-factory.h" +ShadowMode cheader_filename="meta/meta-window-actor.h" +ShadowParams cheader_filename="meta/meta-shadow-factory.h" +ShapedTexture cheader_filename="meta/meta-shaped-texture.h" +Side cheader_filename="meta/common.h" +SizeChange cheader_filename="meta/compositor.h" +SoundPlayer cheader_filename="meta/meta-sound-player.h" +StartupNotification cheader_filename="meta/meta-startup-notification.h" +StartupNotification.changed.object type="Meta.StartupSequence" +StartupNotification.get_sequences type_arguments="Meta.StartupSequence" +StartupSequence cheader_filename="meta/meta-startup-notification.h" +StackLayer cheader_filename="meta/common.h" +Stage cheader_filename="meta/meta-stage.h" +Stage.is_focused parent="Meta.Display" symbol_type="method" name="stage_is_focused" instance_idx=0 cheader_filename="meta/compositor-mutter.h" +Strut cheader_filename="meta/boxes.h" +TabList cheader_filename="meta/display.h" +TabShowType cheader_filename="meta/display.h" +VirtualModifier cheader_filename="meta/common.h" +WaylandClient cheader_filename="meta/meta-wayland-client.h" +Workspace cheader_filename="meta/workspace.h" +WorkspaceManager cheader_filename="meta/meta-workspace-manager.h" +Window cheader_filename="meta/window.h" +Window.focus#signal name="focused" +Window.icon type="Cairo.Surface" +Window.mini_icon type="Cairo.Surface" +WindowActor cheader_filename="meta/meta-window-actor.h" +WindowClientType cheader_filename="meta/window.h" +WindowForeachFunc cheader_filename="meta/window.h" +WindowGroup cheader_filename="meta/meta-window-group.h" +WindowMenuType cheader_filename="meta/compositor.h" +WindowShape cheader_filename="meta/meta-window-shape.h" +WindowType cheader_filename="meta/window.h" +X11Display cheader_filename="meta/meta-x11-display.h" +X11Display.add_event_func skip +X11DisplayEventFunc skip + +// As per https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2287 +MonitorManager.monitor_privacy_screen_changed skip + +rect skip +prefs_* parent="Meta.Prefs" name="prefs_(.+)" cheader_filename="meta/prefs.h" + +g_utf8_strndup skip + +preference_to_string cheader_filename="meta/prefs.h" +frame_type_to_string cheader_filename="meta/util.h" +topic_to_string parent="Meta.DebugTopic" name="to_string" cheader_filename="meta/util.h" + +CURRENT_TIME cheader_filename="meta/common.h" +ICON_WIDTH cheader_filename="meta/common.h" +ICON_HEIGHT cheader_filename="meta/common.h" +MINI_ICON_WIDTH cheader_filename="meta/common.h" +MINI_ICON_HEIGHT cheader_filename="meta/common.h" +DEFAULT_ICON_NAME cheader_filename="meta/common.h" +PRIORITY_RESIZE cheader_filename="meta/common.h" +PRIORITY_BEFORE_REDRAW cheader_filename="meta/common.h" +PRIORITY_REDRAW cheader_filename="meta/common.h" +PRIORITY_PREFS_NOTIFY cheader_filename="meta/common.h" +VIRTUAL_CORE_POINTER_ID cheader_filename="meta/common.h" +VIRTUAL_CORE_KEYBOARD_ID cheader_filename="meta/common.h" + +Display.window_visibility_updated + .object name="unplaced" type="GLib.List" + .p0 name="should_show" type="GLib.List" + .p1 name="should_hide" type="GLib.List" + +add_verbose_topic parent="Meta.Util" cheader_filename="meta/util.h" +bug parent="Meta.Util" cheader_filename="meta/util.h" +external_binding_name_for_action parent="Meta.Util" cheader_filename="meta/util.h" +fatal parent="Meta.Util" cheader_filename="meta/util.h" +get_locale_direction parent="Meta.Util" cheader_filename="meta/util.h" +is_verbose parent="Meta.Util" cheader_filename="meta/util.h" +is_wayland_compositor parent="Meta.Util" cheader_filename="meta/util.h" +pop_no_msg_prefix parent="Meta.Util" cheader_filename="meta/util.h" +push_no_msg_prefix parent="Meta.Util" cheader_filename="meta/util.h" +remove_verbose_topic parent="Meta.Util" cheader_filename="meta/util.h" +unsigned_long_equal parent="Meta.Util" name="ulong_equal" cheader_filename="meta/util.h" +unsigned_long_equal.v1 type="ulong?" +unsigned_long_equal.v2 type="ulong?" +unsigned_long_hash parent="Meta.Util" name="ulong_hash" cheader_filename="meta/util.h" +unsigned_long_hash.v type="ulong?" +warning parent="Meta.Util" cheader_filename="meta/util.h" +create_context parent="Meta.Context" name="new" symbol_type="constructor" cheader_filename="meta/meta-context.h" + +x11_error_trap_pop parent="Meta.X11Display" symbol_type="method" name="error_trap_pop" instance_idx=0 cheader_filename="meta/meta-x11-errors.h" +x11_error_trap_pop_with_return parent="Meta.X11Display" symbol_type="method" name="error_trap_pop_with_return" instance_idx=0 cheader_filename="meta/meta-x11-errors.h" +x11_error_trap_push parent="Meta.X11Display" symbol_type="method" name="error_trap_push" instance_idx=0 cheader_filename="meta/meta-x11-errors.h" + +BackgroundActor sealed +BackgroundContent sealed +BackgroundImage sealed +BackgroundImageCache sealed +Background sealed +Dnd sealed +IdleMonitor sealed +LaunchContext sealed +RemoteAccessController sealed +SelectionSourceMemory sealed +Selection sealed +ShadowFactory sealed +ShapedTexture sealed +SoundPlayer sealed +Stage sealed +StartupNotification sealed +WaylandClient sealed +WindowGroup sealed +WorkspaceManager sealed +X11Display sealed diff --git a/vapi/libmutter-12.deps b/vapi/libmutter-12.deps new file mode 120000 index 00000000..46916957 --- /dev/null +++ b/vapi/libmutter-12.deps @@ -0,0 +1 @@ +libmutter-11.deps \ No newline at end of file diff --git a/vapi/libmutter-12.vapi b/vapi/libmutter-12.vapi new file mode 120000 index 00000000..67dff025 --- /dev/null +++ b/vapi/libmutter-12.vapi @@ -0,0 +1 @@ +libmutter-11.vapi \ No newline at end of file diff --git a/vapi/libmutter.vapi b/vapi/libmutter.vapi index 1dd07b04..93c00105 100644 --- a/vapi/libmutter.vapi +++ b/vapi/libmutter.vapi @@ -62,7 +62,11 @@ namespace Meta { [CCode (cheader_filename = "meta/prefs.h")] public static int get_mouse_button_menu (); [CCode (cheader_filename = "meta/prefs.h")] +#if HAS_MUTTER44 + public static Clutter.ModifierType get_mouse_button_mods (); +#else public static Meta.VirtualModifier get_mouse_button_mods (); +#endif [CCode (cheader_filename = "meta/prefs.h")] public static int get_mouse_button_resize (); [CCode (cheader_filename = "meta/prefs.h")] @@ -109,10 +113,12 @@ namespace Meta { public static bool is_verbose (); [CCode (cheader_filename = "meta/util.h", cname = "meta_is_wayland_compositor")] public static bool is_wayland_compositor (); +#if !HAS_MUTTER44 [CCode (cheader_filename = "meta/util.h", cname = "meta_later_add")] public static uint later_add (Meta.LaterType when, owned GLib.SourceFunc func); [CCode (cheader_filename = "meta/util.h", cname = "meta_later_remove")] public static void later_remove (uint later_id); +#endif [CCode (cheader_filename = "meta/util.h", cname = "meta_pop_no_msg_prefix")] public static void pop_no_msg_prefix (); [CCode (cheader_filename = "meta/util.h", cname = "meta_push_no_msg_prefix")] @@ -134,8 +140,10 @@ namespace Meta { public abstract class Backend : GLib.Object, GLib.Initable { [CCode (has_construct_function = false)] protected Backend (); +#if !HAS_MUTTER44 [CCode (cheader_filename = "meta/meta-backend.h", cname = "meta_get_backend")] public static unowned Meta.Backend get_backend (); +#endif #if HAS_MUTTER43 public Meta.BackendCapabilities get_capabilities (); #endif @@ -284,11 +292,16 @@ namespace Meta { public abstract class Compositor : GLib.Object { [CCode (has_construct_function = false)] protected Compositor (); +#if HAS_MUTTER44 + public unowned Clutter.Actor get_feedback_group (); +#else public void add_window (Meta.Window window); public void destroy (); public bool filter_keybinding (Meta.KeyBinding binding); public void flash_display (Meta.Display display); +#endif public unowned Meta.Laters get_laters (); +#if !HAS_MUTTER44 public void hide_tile_preview (); public void hide_window (Meta.Window window, Meta.CompEffect effect); public void manage (); @@ -306,6 +319,7 @@ namespace Meta { public void unmanage (); public void window_opacity_changed (Meta.Window window); public void window_shape_changed (Meta.Window window); +#endif [NoAccessorMethod] public Meta.Backend backend { owned get; construct; } [NoAccessorMethod] @@ -338,6 +352,10 @@ namespace Meta { public string name { owned get; construct; } [NoAccessorMethod] public bool unsafe_mode { get; set; } +#if HAS_MUTTER44 + public signal void prepare_shutdown (); + public signal void started (); +#endif } [CCode (cheader_filename = "meta/meta-cursor-tracker.h", type_id = "meta_cursor_tracker_get_type ()")] public class CursorTracker : GLib.Object { @@ -359,16 +377,22 @@ namespace Meta { public class Display : GLib.Object { [CCode (has_construct_function = false)] protected Display (); +#if !HAS_MUTTER44 public void add_ignored_crossing_serial (ulong serial); +#endif public uint add_keybinding (string name, GLib.Settings settings, Meta.KeyBindingFlags flags, owned Meta.KeyHandlerFunc handler); +#if !HAS_MUTTER44 public bool begin_grab_op (Meta.Window window, Meta.GrabOp op, bool pointer_already_grabbed, bool frame_action, int button, ulong modmask, uint32 timestamp, int root_x, int root_y); +#endif public void clear_mouse_mode (); public void close (uint32 timestamp); [CCode (cheader_filename = "meta/compositor-mutter.h", cname = "meta_disable_unredirect_for_display")] public void disable_unredirect (); [CCode (cheader_filename = "meta/compositor-mutter.h", cname = "meta_enable_unredirect_for_display")] public void enable_unredirect (); +#if !HAS_MUTTER44 public void end_grab_op (uint32 timestamp); +#endif public void focus_default_window (uint32 timestamp); [CCode (cheader_filename = "meta/compositor-mutter.h", cname = "meta_focus_stage_window")] public void focus_stage_window (uint32 timestamp); @@ -384,7 +408,9 @@ namespace Meta { [CCode (cheader_filename = "meta/compositor-mutter.h", cname = "meta_get_feedback_group_for_display")] public unowned Clutter.Actor get_feedback_group (); public unowned Meta.Window get_focus_window (); +#if !HAS_MUTTER44 public Meta.GrabOp get_grab_op (); +#endif public uint get_keybinding_action (uint keycode, ulong mask); public uint32 get_last_user_time (); public Meta.Rectangle get_monitor_geometry (int monitor); @@ -413,6 +439,9 @@ namespace Meta { public unowned Meta.WorkspaceManager get_workspace_manager (); public unowned Meta.X11Display get_x11_display (); public uint grab_accelerator (string accelerator, Meta.KeyBindingFlags flags); +#if HAS_MUTTER44 + public bool is_grabbed (); +#endif public bool is_pointer_emulating_sequence (Clutter.EventSequence? sequence); public GLib.List list_all_windows (); public bool remove_keybinding (string name); @@ -495,16 +524,27 @@ namespace Meta { [Compact] public class KeyBinding { public uint get_mask (); +#if HAS_MUTTER44 + public Clutter.ModifierType get_modifiers (); +#else public Meta.VirtualModifier get_modifiers (); +#endif public unowned string get_name (); public bool is_builtin (); public bool is_reversed (); [CCode (cheader_filename = "meta/keybindings.h", cname = "meta_keybindings_set_custom_handler")] public static bool set_custom_handler (string name, owned Meta.KeyHandlerFunc? handler); } +#if HAS_MUTTER44 + [CCode (cheader_filename = "meta/types.h", type_id = "meta_laters_get_type ()")] + public class Laters : GLib.Object { + [CCode (has_construct_function = false)] + protected Laters (); +#else [CCode (cheader_filename = "meta/types.h", has_type_id = false)] [Compact] public class Laters { +#endif public uint add (Meta.LaterType when, owned GLib.SourceFunc func); public void remove (uint later_id); } @@ -526,8 +566,12 @@ namespace Meta { [CCode (has_construct_function = false)] protected MonitorManager (); public bool can_switch_config (); +#if HAS_MUTTER44 + public int get_display_configuration_timeout (); +#else public static unowned Meta.MonitorManager @get (); public static int get_display_configuration_timeout (); +#endif public bool get_is_builtin_display_on (); public int get_monitor_for_connector (string connector); public bool get_panel_orientation_managed (); @@ -717,6 +761,10 @@ namespace Meta { public unowned string? get_wmclass (); public int get_workspace (); public string application_id { get; construct; } +#if HAS_MUTTER44 + [NoAccessorMethod] + public Meta.Display display { owned get; construct; } +#endif public string icon_name { get; construct; } public string id { get; construct; } public string name { get; construct; } @@ -739,22 +787,37 @@ namespace Meta { [CCode (cheader_filename = "meta/meta-wayland-client.h", type_id = "meta_wayland_client_get_type ()")] public sealed class WaylandClient : GLib.Object { [CCode (has_construct_function = false)] +#if HAS_MUTTER44 + public WaylandClient (Meta.Context context, GLib.SubprocessLauncher launcher) throws GLib.Error; +#else public WaylandClient (GLib.SubprocessLauncher launcher) throws GLib.Error; +#endif public void hide_from_window_list (Meta.Window window); public bool owns_window (Meta.Window window); public void show_in_window_list (Meta.Window window); public GLib.Subprocess spawn (Meta.Display display, GLib.Error? error, string argv0, ...); public GLib.Subprocess spawnv (Meta.Display display, [CCode (array_length = false, array_null_terminated = true)] string[] argv) throws GLib.Error; +#if HAS_MUTTER44 + public signal void client_destroyed (); +#endif } [CCode (cheader_filename = "meta/window.h", type_id = "meta_window_get_type ()")] +#if HAS_MUTTER44 + public abstract class Window : GLib.Object, GLib.Initable { +#else public abstract class Window : GLib.Object { +#endif [CCode (has_construct_function = false)] protected Window (); public void activate (uint32 current_time); public void activate_with_workspace (uint32 current_time, Meta.Workspace workspace); public bool allows_move (); public bool allows_resize (); +#if HAS_MUTTER44 + public bool begin_grab_op (Meta.GrabOp op, Clutter.InputDevice? device, Clutter.EventSequence? sequence, uint32 timestamp); +#else public void begin_grab_op (Meta.GrabOp op, bool frame_action, uint32 timestamp); +#endif public bool can_close (); public bool can_maximize (); public bool can_minimize (); @@ -865,6 +928,11 @@ namespace Meta { public bool decorated { get; } [NoAccessorMethod] public bool demands_attention { get; } +#if HAS_MUTTER44 + public Meta.Display display { get; construct; } + [NoAccessorMethod] + public int effect { get; construct; } +#endif [NoAccessorMethod] public bool fullscreen { get; } public string gtk_app_menu_object_path { get; } @@ -898,6 +966,9 @@ namespace Meta { public uint user_time { get; } public Meta.WindowType window_type { get; } public string wm_class { get; } +#if HAS_MUTTER44 + public ulong xwindow { get; construct; } +#endif [CCode (cname = "focus")] public signal void focused (); public signal void position_changed (); @@ -914,8 +985,8 @@ namespace Meta { protected WindowActor (); public void freeze (); public Cairo.Surface? get_image (Cairo.RectangleInt? clip); - public unowned Meta.Window get_meta_window (); - public unowned Meta.ShapedTexture get_texture (); + public unowned Meta.Window? get_meta_window (); + public unowned Meta.ShapedTexture? get_texture (); public bool is_destroyed (); public Clutter.Content? paint_to_content (Meta.Rectangle? clip) throws GLib.Error; public void sync_visibility (); @@ -994,7 +1065,9 @@ namespace Meta { public sealed class X11Display : GLib.Object { [CCode (has_construct_function = false)] protected X11Display (); +#if !HAS_MUTTER44 public void clear_stage_input_region (); +#endif [CCode (cheader_filename = "meta/meta-x11-errors.h", cname = "meta_x11_error_trap_pop")] public void error_trap_pop (); [CCode (cheader_filename = "meta/meta-x11-errors.h", cname = "meta_x11_error_trap_pop_with_return")] @@ -1011,8 +1084,10 @@ namespace Meta { public unowned Meta.Group lookup_group (X.Window group_leader); public void set_cm_selection (); public void set_stage_input_region (X.XserverRegion region); +#if !HAS_MUTTER44 [CCode (cheader_filename = "meta/meta-x11-display.h", cname = "meta_x11_init_gdk_display")] public static bool x11_init_gdk_display () throws GLib.Error; +#endif public bool xwindow_is_a_no_focus_window (X.Window xwindow); } [CCode (cheader_filename = "meta/meta-close-dialog.h", type_cname = "MetaCloseDialogInterface", type_id = "meta_close_dialog_get_type ()")] @@ -1052,11 +1127,26 @@ namespace Meta { public Meta.Side side_type; public Meta.EdgeType edge_type; } +#if HAS_MUTTER44 + [CCode (cheader_filename = "meta/main.h", has_type_id = false)] + public struct FrameBorder { + public int16 left; + public int16 right; + public int16 top; + public int16 bottom; + } +#endif [CCode (cheader_filename = "meta/common.h", has_type_id = false)] public struct FrameBorders { +#if HAS_MUTTER44 + public Meta.FrameBorder visible; + public Meta.FrameBorder invisible; + public Meta.FrameBorder total; +#else public Gtk.Border visible; public Gtk.Border invisible; public Gtk.Border total; +#endif public void clear (); } [CCode (cheader_filename = "meta/meta-plugin.h", has_type_id = false)] @@ -1280,9 +1370,14 @@ namespace Meta { public enum GrabOp { NONE, WINDOW_BASE, +#if !HAS_MUTTER44 WAYLAND_POPUP, FRAME_BUTTON, +#endif MOVING, +#if HAS_MUTTER44 + MOVING_UNCONSTRAINED, +#endif RESIZING_NW, RESIZING_N, RESIZING_NE, @@ -1662,6 +1757,10 @@ namespace Meta { public const int VIRTUAL_CORE_KEYBOARD_ID; [CCode (cheader_filename = "meta/common.h", cname = "META_VIRTUAL_CORE_POINTER_ID")] public const int VIRTUAL_CORE_POINTER_ID; +#if HAS_MUTTER44 + [CCode (cheader_filename = "meta/main.h")] + public static string accelerator_name (Clutter.ModifierType accelerator_mods, uint accelerator_key); +#endif [CCode (cheader_filename = "meta/main.h")] public static void add_clutter_debug_flags (Clutter.DebugFlag debug_flags, Clutter.DrawDebugFlag draw_flags, Clutter.PickDebugFlag pick_flags); [CCode (cheader_filename = "meta/main.h")] @@ -1670,12 +1769,20 @@ namespace Meta { public static void clutter_init (); [CCode (cheader_filename = "meta/main.h")] public static void exit (Meta.ExitCode code); +#if HAS_MUTTER44 + [CCode (cheader_filename = "meta/main.h")] + public static void get_clutter_debug_flags (out Clutter.DebugFlag debug_flags, out Clutter.DrawDebugFlag draw_flags, out Clutter.PickDebugFlag pick_flags); +#endif [CCode (cheader_filename = "meta/main.h")] public static Meta.DebugPaintFlag get_debug_paint_flags (); [CCode (cheader_filename = "meta/main.h")] public static bool is_restart (); [CCode (cheader_filename = "meta/main.h")] public static bool is_topic_enabled (Meta.DebugTopic topic); +#if HAS_MUTTER44 + [CCode (cheader_filename = "meta/main.h")] + public static void log (string format, ...); +#endif [CCode (cheader_filename = "meta/main.h")] public static void remove_clutter_debug_flags (Clutter.DebugFlag debug_flags, Clutter.DrawDebugFlag draw_flags, Clutter.PickDebugFlag pick_flags); [CCode (cheader_filename = "meta/main.h")] diff --git a/vapi/meson.build b/vapi/meson.build index 7a4f5b1e..058b3044 100644 --- a/vapi/meson.build +++ b/vapi/meson.build @@ -147,3 +147,75 @@ if mutter43_dep.found() output: 'libmutter-11.vapi' ) endif +if mutter44_dep.found() + cogl_target = custom_target('mutter-cogl-12', + command: [ + vapigen, + mutter_typelib_dir / 'Cogl-12.gir', + '--library=mutter-cogl-12', + '--pkg=gobject-2.0', + '--pkg=gio-2.0', + '--pkg=cairo', + '--pkg=graphene-gobject-1.0', + vapigen_args, + files('Cogl-12-custom.vala') + ], + output: 'mutter-cogl-12.vapi' + ) + + cogl_pango_target = custom_target('mutter-cogl-pango-12', + command: [ + vapigen, + mutter_typelib_dir / 'CoglPango-12.gir', + '--library=mutter-cogl-pango-12', + '--pkg=mutter-cogl-12', + '--pkg=pangocairo', + '--pkg=gio-2.0', + '--pkg=glib-2.0', + vapigen_args + ], + depends: cogl_target, + output: 'mutter-cogl-pango-12.vapi' + ) + + clutter_target = custom_target('mutter-clutter-12', + command: [ + vapigen, + mutter_typelib_dir / 'Clutter-12.gir', + '--library=mutter-clutter-12', + '--pkg=graphene-gobject-1.0', + '--pkg=mutter-cogl-12', + '--pkg=mutter-cogl-pango-12', + '--pkg=atk', + '--pkg=gio-2.0', + '--pkg=json-glib-1.0', + '--pkg=pangocairo', + vapigen_args, + files('Clutter-12-custom.vala') + ], + depends: [ cogl_target, cogl_pango_target ], + output: 'mutter-clutter-12.vapi' + ) + + libmutter_target = custom_target('libmutter-12', + command: [ + vapigen, + mutter_typelib_dir / 'Meta-12.gir', + '--library=libmutter-12', + '--pkg=graphene-gobject-1.0', + '--pkg=mutter-cogl-12', + '--pkg=mutter-cogl-pango-12', + '--pkg=mutter-clutter-12', + '--pkg=atk', + '--pkg=gio-2.0', + '--pkg=json-glib-1.0', + '--pkg=pangocairo', + '--pkg=gtk+-3.0', + '--pkg=x11', + '--pkg=xfixes-4.0', + vapigen_args + ], + depends: [ cogl_target, cogl_pango_target, clutter_target ], + output: 'libmutter-12.vapi' + ) +endif diff --git a/vapi/mutter-clutter-12.deps b/vapi/mutter-clutter-12.deps new file mode 100644 index 00000000..e4781714 --- /dev/null +++ b/vapi/mutter-clutter-12.deps @@ -0,0 +1,6 @@ +atk +cairo +pango +json-glib-1.0 +mutter-cogl-12 +graphene-gobject-1.0 diff --git a/vapi/mutter-clutter-12.vapi b/vapi/mutter-clutter-12.vapi new file mode 120000 index 00000000..9859a4a2 --- /dev/null +++ b/vapi/mutter-clutter-12.vapi @@ -0,0 +1 @@ +mutter-clutter-11.vapi \ No newline at end of file diff --git a/vapi/mutter-clutter.vapi b/vapi/mutter-clutter.vapi index 6091b874..3cea79c0 100644 --- a/vapi/mutter-clutter.vapi +++ b/vapi/mutter-clutter.vapi @@ -4631,6 +4631,10 @@ namespace Clutter { public Clutter.EventPhase get_phase (); [NoWrapper] public virtual bool handle_event (Clutter.Event event); +#if HAS_MUTTER44 + [NoWrapper] + public virtual void sequence_cancelled (Clutter.InputDevice device, Clutter.EventSequence sequence); +#endif } [CCode (cheader_filename = "clutter/clutter.h", type_id = "clutter_actor_get_type ()")] public class Actor : GLib.InitiallyUnowned, Atk.Implementor, Clutter.Animatable, Clutter.Container, Clutter.Scriptable { @@ -4731,8 +4735,10 @@ namespace Clutter { public Clutter.ContentRepeat get_content_repeat (); [Version (since = "1.10")] public void get_content_scaling_filters (out Clutter.ScalingFilter min_filter, out Clutter.ScalingFilter mag_filter); +#if !HAS_MUTTER44 [Version (since = "1.10")] public unowned Clutter.PaintVolume? get_default_paint_volume (); +#endif [Version (since = "1.10")] public uint get_easing_delay (); [Version (since = "1.10")] @@ -5807,11 +5813,25 @@ namespace Clutter { [Version (since = "1.16")] public bool snap_to_grid { get; set; } } +#if HAS_MUTTER44 + [CCode (cheader_filename = "clutter/clutter.h", ref_function = "clutter_frame_ref", type_id = "clutter_frame_get_type ()", unref_function = "clutter_frame_unref")] +#else [CCode (cheader_filename = "clutter/clutter.h", has_type_id = false)] +#endif [Compact] public class Frame { +#if HAS_MUTTER44 + public int64 get_count (); + public bool get_target_presentation_time (int64 target_presentation_time_us); +#endif public bool has_result (); +#if HAS_MUTTER44 + public unowned Clutter.Frame @ref (); +#endif public void set_result (Clutter.FrameResult result); +#if HAS_MUTTER44 + public void unref (); +#endif } [CCode (cheader_filename = "clutter/clutter.h", type_id = "clutter_frame_clock_get_type ()")] public sealed class FrameClock : GLib.Object { @@ -5921,6 +5941,9 @@ namespace Clutter { [CCode (cheader_filename = "clutter/clutter.h", has_type_id = false)] [Compact] public class IMEvent : Clutter.Event { +#if HAS_MUTTER44 + public int32 anchor; +#endif public Clutter.EventFlags flags; public uint32 len; public Clutter.PreeditResetMode mode; @@ -5958,6 +5981,9 @@ namespace Clutter { public unowned string get_device_node (); [Version (since = "1.0")] public Clutter.InputDeviceType get_device_type (); +#if HAS_MUTTER44 + public virtual bool get_dimensions (out uint width, out uint height); +#endif public virtual int get_group_n_modes (int group); [Version (since = "1.6")] public bool get_has_cursor (); @@ -5973,13 +5999,17 @@ namespace Clutter { public unowned Clutter.Seat get_seat (); [Version (since = "1.22")] public unowned string get_vendor_id (); +#if !HAS_MUTTER44 [Version (since = "1.10")] public void grab (Clutter.Actor actor); +#endif public virtual bool is_grouped (Clutter.InputDevice other_device); public virtual bool is_mode_switch_button (uint group, uint button); +#if !HAS_MUTTER44 [NoAccessorMethod] [Version (since = "1.6")] public Clutter.Backend backend { owned get; construct; } +#endif #if HAS_MUTTER43 public Clutter.InputCapabilities capabilities { get; construct; } #endif @@ -6041,7 +6071,11 @@ namespace Clutter { public void set_cursor_location (Graphene.Rect rect); public void set_input_panel_state (Clutter.InputPanelState state); [NoWrapper] +#if HAS_MUTTER44 + public virtual void set_preedit_text (string preedit, uint cursor, uint anchor); +#else public virtual void set_preedit_text (string preedit, uint cursor); +#endif public void set_surrounding (string text, uint cursor, uint anchor); } [CCode (cheader_filename = "clutter/clutter.h", type_id = "clutter_input_method_get_type ()")] @@ -6059,7 +6093,11 @@ namespace Clutter { [NoWrapper] public virtual void set_cursor_location (Graphene.Rect rect); public void set_input_panel_state (Clutter.InputPanelState state); +#if HAS_MUTTER44 + public void set_preedit_text (string? preedit, uint cursor, uint anchor, Clutter.PreeditResetMode mode); +#else public void set_preedit_text (string? preedit, uint cursor, Clutter.PreeditResetMode mode); +#endif [NoWrapper] public virtual void set_surrounding (string text, uint cursor, uint anchor); [NoWrapper] @@ -6273,7 +6311,9 @@ namespace Clutter { public Clutter.EventFlags flags; public uint32 group; public uint32 mode; +#if !HAS_MUTTER44 public weak Clutter.Actor source; +#endif public weak Clutter.Stage stage; public uint32 strip_number; public Clutter.InputDevicePadSource strip_source; @@ -6662,17 +6702,19 @@ namespace Clutter { public void ensure_viewport (); public unowned Clutter.Actor get_actor_at_pos (Clutter.PickMode pick_mode, float x, float y); public bool get_capture_final_size (Cairo.RectangleInt rect, out int out_width, out int out_height, out float out_scale); - public unowned Clutter.Actor get_device_actor (Clutter.InputDevice device, Clutter.EventSequence? sequence); + public unowned Clutter.Actor? get_device_actor (Clutter.InputDevice device, Clutter.EventSequence? sequence); #if HAS_MUTTER43 - public unowned Clutter.Actor get_event_actor (Clutter.Event event); + public unowned Clutter.Actor? get_event_actor (Clutter.Event event); #endif public int64 get_frame_counter (); - public unowned Clutter.Actor get_grab_actor (); + public unowned Clutter.Actor? get_grab_actor (); [Version (since = "0.6")] public unowned Clutter.Actor get_key_focus (); public Clutter.Perspective get_perspective (); +#if !HAS_MUTTER44 [Version (since = "1.0")] public bool get_throttle_motion_events (); +#endif [Version (since = "0.4")] public unowned string get_title (); public Clutter.Grab grab (Clutter.Actor actor); @@ -6687,11 +6729,17 @@ namespace Clutter { public void set_key_focus (Clutter.Actor? actor); [Version (since = "1.2")] public void set_minimum_size (uint width, uint height); +#if !HAS_MUTTER44 [Version (since = "1.0")] public void set_throttle_motion_events (bool throttle); +#endif [Version (since = "0.4")] public void set_title (string title); +#if HAS_MUTTER44 + public void update_device (Clutter.InputDevice device, Clutter.EventSequence sequence, Clutter.InputDevice source_device, Graphene.Point point, uint32 time, Clutter.Actor new_actor, Cairo.Region region, bool emit_crossing); +#else public void update_device (Clutter.InputDevice device, Clutter.EventSequence sequence, Graphene.Point point, uint32 time, Clutter.Actor new_actor, Cairo.Region region, bool emit_crossing); +#endif [Version (since = "1.2")] public Clutter.Actor key_focus { get; set; } [Version (since = "0.8")] @@ -6700,16 +6748,28 @@ namespace Clutter { public string title { get; set; } [Version (since = "0.6")] public virtual signal void activate (); +#if HAS_MUTTER44 + public signal void after_paint (Clutter.StageView view, Clutter.Frame frame); + public signal void after_update (Clutter.StageView view, Clutter.Frame frame); + public virtual signal void before_paint (Clutter.StageView view, Clutter.Frame frame); + public signal void before_update (Clutter.StageView view, Clutter.Frame frame); +#else [Version (since = "1.20")] public signal void after_paint (Clutter.StageView view); public signal void after_update (Clutter.StageView view); public virtual signal void before_paint (Clutter.StageView view); public signal void before_update (Clutter.StageView view); +#endif +#if HAS_MUTTER44 + public virtual signal void paint_view (Clutter.StageView view, Cairo.Region redraw_clip, Clutter.Frame frame); + public signal void prepare_frame (Clutter.StageView view, Clutter.Frame frame); +#else [Version (since = "0.6")] public virtual signal void deactivate (); public virtual signal void paint_view (Clutter.StageView view, Cairo.Region redraw_clip); #if HAS_MUTTER43 public signal void prepare_frame (Clutter.StageView view); +#endif #endif } [CCode (cheader_filename = "clutter/clutter.h", type_id = "clutter_stage_manager_get_type ()")] @@ -6743,6 +6803,9 @@ namespace Clutter { public unowned Cogl.Framebuffer get_onscreen (); public float get_refresh_rate (); public float get_scale (); +#if HAS_MUTTER44 + public bool has_shadowfb (); +#endif public void invalidate_offscreen_blit_pipeline (); [NoWrapper] public virtual void setup_offscreen_blit_pipeline (Cogl.Pipeline pipeline); @@ -7851,6 +7914,10 @@ namespace Clutter { TOUCHPAD, TOUCH, TABLET_TOOL, +#if HAS_MUTTER44 + TRACKBALL, + TRACKPOINT, +#endif TABLET_PAD } #endif @@ -8382,8 +8449,18 @@ namespace Clutter { [CCode (cheader_filename = "clutter/clutter.h")] [Version (since = "0.6")] public static unowned string get_script_id (GLib.Object gobject); +#if HAS_MUTTER44 + [CCode (cheader_filename = "clutter/clutter.h")] + public static Clutter.TextDirection get_text_direction (); +#endif [CCode (cheader_filename = "clutter/clutter.h")] public static uint32 keysym_to_unicode (uint keyval); +#if HAS_MUTTER44 + [CCode (cheader_filename = "clutter/clutter.h")] + public static void keyval_convert_case (uint symbol, out uint lower, out uint upper); + [CCode (cheader_filename = "clutter/clutter.h")] + public static string? keyval_name (uint keyval); +#endif [CCode (cheader_filename = "clutter/clutter.h")] [Version (since = "1.10")] public static uint unicode_to_keysym (uint32 wc); diff --git a/vapi/mutter-cogl-12.deps b/vapi/mutter-cogl-12.deps new file mode 120000 index 00000000..ce132cda --- /dev/null +++ b/vapi/mutter-cogl-12.deps @@ -0,0 +1 @@ +mutter-cogl-10.deps \ No newline at end of file diff --git a/vapi/mutter-cogl-12.vapi b/vapi/mutter-cogl-12.vapi new file mode 120000 index 00000000..06333dd3 --- /dev/null +++ b/vapi/mutter-cogl-12.vapi @@ -0,0 +1 @@ +mutter-cogl-10.vapi \ No newline at end of file diff --git a/vapi/mutter-cogl-pango-12.vapi b/vapi/mutter-cogl-pango-12.vapi new file mode 120000 index 00000000..1be4af87 --- /dev/null +++ b/vapi/mutter-cogl-pango-12.vapi @@ -0,0 +1 @@ +mutter-cogl-pango-11.vapi \ No newline at end of file diff --git a/vapi/mutter-cogl.vapi b/vapi/mutter-cogl.vapi index 4e276a2b..dd6984f7 100644 --- a/vapi/mutter-cogl.vapi +++ b/vapi/mutter-cogl.vapi @@ -306,10 +306,14 @@ namespace Cogl { public Cogl.PipelineCullFaceMode get_cull_face_mode (); [Version (since = "2.0")] public Cogl.Winding get_front_face_winding (); +#if HAS_MUTTER44 + public void get_layer_filters (int layer_index, out Cogl.PipelineFilter min_filter, out Cogl.PipelineFilter mag_filter); +#else [Version (since = "1.10")] public Cogl.PipelineFilter get_layer_mag_filter (int layer_index); [Version (since = "1.10")] public Cogl.PipelineFilter get_layer_min_filter (int layer_index); +#endif [Version (since = "2.0")] public bool get_layer_point_sprite_coords_enabled (int layer_index); [Version (since = "1.10")] @@ -1115,9 +1119,11 @@ namespace Cogl { [CCode (cheader_filename = "cogl/cogl.h")] [Version (since = "1.0")] public static void flush (); +#if !HAS_MUTTER44 [CCode (cheader_filename = "cogl/cogl.h")] [Version (deprecated = true, deprecated_since = "1.16", since = "1.0")] public static GLib.OptionGroup get_option_group (); +#endif [CCode (cheader_filename = "cogl/cogl.h")] public static void set_tracing_disabled_on_thread (GLib.MainContext main_context); [CCode (cheader_filename = "cogl/cogl.h")] diff --git a/wingpanel-interface/FocusManager.vala b/wingpanel-interface/FocusManager.vala index 511f78d6..7a5efc9a 100644 --- a/wingpanel-interface/FocusManager.vala +++ b/wingpanel-interface/FocusManager.vala @@ -112,7 +112,11 @@ public class WingpanelInterface.FocusManager : Object { } if (window != null) { +#if HAS_MUTTER44 + window.begin_grab_op (Meta.GrabOp.MOVING, null, null, time); +#else display.begin_grab_op (window, Meta.GrabOp.MOVING, false, true, button, state, time, x, y); +#endif return true; } diff --git a/wingpanel-interface/meson.build b/wingpanel-interface/meson.build index 5bec32cf..cd9454f9 100644 --- a/wingpanel-interface/meson.build +++ b/wingpanel-interface/meson.build @@ -27,6 +27,17 @@ if mutter43_dep.found() vala_flags = ['--define', 'HAS_MUTTER43'] endif +mutter44_dep = dependency('libmutter-12', version: ['>= 44', '< 45'], required: false) +if mutter44_dep.found() + libmutter_dep = dependency('libmutter-12', version: '>= 44') + mutter_dep = [ + libmutter_dep, + dependency('mutter-cogl-12'), dependency('mutter-cogl-pango-12'), + dependency('mutter-clutter-12') + ] + vala_flags = ['--define', 'HAS_MUTTER43', '--define', 'HAS_MUTTER44'] +endif + if mutter_dep.length() == 0 error ('No supported mutter library found!') endif