From eed221bf3a3b49685f77ab15ce9233d716a347a9 Mon Sep 17 00:00:00 2001 From: Jim Nelson Date: Fri, 15 Nov 2013 16:53:18 -0800 Subject: [PATCH] Can't bld w/ Vala 0.22.1 WebKitGTK 2.2.2: Closes #7694, Closes #7695 Two problems: (a) Vala 0.22.1 fixes a binding change in libnotify that has to be fixed but causes Geary to be unable to build on prior versions of Vala. libnotify.vapi added to solve this problem. (b) New version of Vala appears to be more sensitive to detecting problems in .gir files. Using our .metadata file to paper over these issues in WebKit-3.0.gir. --- .../webkitgtk-2.0/WebKit-3.0.metadata | 5 ++ .../webkitgtk-2.2/WebKit-3.0.metadata | 11 +++ bindings/vapi/libnotify.vapi | 73 +++++++++++++++++++ src/client/notification/libnotify.vala | 2 +- 4 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 bindings/vapi/libnotify.vapi diff --git a/bindings/metadata/webkitgtk-2.0/WebKit-3.0.metadata b/bindings/metadata/webkitgtk-2.0/WebKit-3.0.metadata index 91a72e92..27ca48d6 100644 --- a/bindings/metadata/webkitgtk-2.0/WebKit-3.0.metadata +++ b/bindings/metadata/webkitgtk-2.0/WebKit-3.0.metadata @@ -9,3 +9,8 @@ WebView.leaving_fullscreen#signal name="leaving_fullscreen_signal" WebView.move_cursor#virtual_method name="leaving_fullscreen_method" WebSettings.enable_default_context_menu#property deprecated=false +DOMNode.dispatch_event type="void" +DOMWebKitNamedFlow.dispatch_event type="void" +DOMDOMApplicationCache.dispatch_event type="void" +DOMDOMWindow.dispatch_event type="void" + diff --git a/bindings/metadata/webkitgtk-2.2/WebKit-3.0.metadata b/bindings/metadata/webkitgtk-2.2/WebKit-3.0.metadata index f85f867a..c19e0c5c 100644 --- a/bindings/metadata/webkitgtk-2.2/WebKit-3.0.metadata +++ b/bindings/metadata/webkitgtk-2.2/WebKit-3.0.metadata @@ -11,3 +11,14 @@ WebView.leaving_fullscreen#signal name="leaving_fullscreen_signal" WebView.move_cursor#virtual_method name="leaving_fullscreen_method" WebSettings.enable_default_context_menu#property deprecated=false +DOMBatteryManager.dispatch_event type="void" +DOMAudioTrackList.dispatch_event type="void" +DOMTextTrackCue.dispatch_event type="void" +DOMTextTrack.dispatch_event type="void" +DOMTextTrackList.dispatch_event type="void" +DOMVideoTrackList.dispatch_event type="void" +DOMNode.dispatch_event type="void" +DOMWebKitNamedFlow.dispatch_event type="void" +DOMDOMApplicationCache.dispatch_event type="void" +DOMDOMWindow.dispatch_event type="void" + diff --git a/bindings/vapi/libnotify.vapi b/bindings/vapi/libnotify.vapi new file mode 100644 index 00000000..c5a67511 --- /dev/null +++ b/bindings/vapi/libnotify.vapi @@ -0,0 +1,73 @@ +/* libnotify.vapi generated by vapigen, do not modify. */ + +namespace Notify { + [CCode (cheader_filename = "libnotify/notify.h")] + public class Notification : GLib.Object { + [CCode (has_construct_function = false)] + public Notification (string summary, string? body, string? icon); + public void add_action (string action, string label, owned Notify.ActionCallback callback); + public void clear_actions (); + public void clear_hints (); + public bool close () throws GLib.Error; + public int get_closed_reason (); + public void set_app_name (string app_name); + public void set_category (string category); + public void set_hint (string key, GLib.Variant value); + public void set_hint_byte (string key, uchar value); + public void set_hint_byte_array (string key, uchar[] value, size_t len); + public void set_hint_double (string key, double value); + public void set_hint_int32 (string key, int value); + public void set_hint_string (string key, string value); + public void set_hint_uint32 (string key, uint value); + public void set_icon_from_pixbuf (Gdk.Pixbuf icon); + public void set_image_from_pixbuf (Gdk.Pixbuf pixbuf); + public void set_timeout (int timeout); + public void set_urgency (Notify.Urgency urgency); + public bool show () throws GLib.Error; + public bool update (string summary, string body, string icon); + [NoAccessorMethod] + public string app_name { owned get; set; } + [NoAccessorMethod] + public string body { owned get; set construct; } + public int closed_reason { get; } + [NoAccessorMethod] + public string icon_name { owned get; set construct; } + [NoAccessorMethod] + public int id { get; set construct; } + [NoAccessorMethod] + public string summary { owned get; set construct; } + public virtual signal void closed (); + } + [CCode (cheader_filename = "libnotify/notify.h", cprefix = "NOTIFY_URGENCY_")] + public enum Urgency { + LOW, + NORMAL, + CRITICAL + } + [CCode (cheader_filename = "libnotify/notify.h")] + public delegate void ActionCallback (Notify.Notification notification, string action); + [CCode (cheader_filename = "libnotify/notify.h")] + public const int EXPIRES_DEFAULT; + [CCode (cheader_filename = "libnotify/notify.h")] + public const int EXPIRES_NEVER; + [CCode (cheader_filename = "libnotify/notify.h")] + public const int VERSION_MAJOR; + [CCode (cheader_filename = "libnotify/notify.h")] + public const int VERSION_MICRO; + [CCode (cheader_filename = "libnotify/notify.h")] + public const int VERSION_MINOR; + [CCode (cheader_filename = "libnotify/notify.h")] + public static unowned string get_app_name (); + [CCode (cheader_filename = "libnotify/notify.h")] + public static GLib.List get_server_caps (); + [CCode (cheader_filename = "libnotify/notify.h")] + public static bool get_server_info (out unowned string ret_name, out unowned string ret_vendor, out unowned string ret_version, out unowned string ret_spec_version); + [CCode (cheader_filename = "libnotify/notify.h")] + public static bool init (string app_name); + [CCode (cheader_filename = "libnotify/notify.h")] + public static bool is_initted (); + [CCode (cheader_filename = "libnotify/notify.h")] + public static void set_app_name (string app_name); + [CCode (cheader_filename = "libnotify/notify.h")] + public static void uninit (); +} diff --git a/src/client/notification/libnotify.vala b/src/client/notification/libnotify.vala index 51e25292..4da8a5a0 100644 --- a/src/client/notification/libnotify.vala +++ b/src/client/notification/libnotify.vala @@ -16,7 +16,7 @@ public class Libnotify : Geary.BaseObject { private Notify.Notification? error_notification = null; private Geary.Folder? folder = null; private Geary.Email? email = null; - private unowned List caps; + private List caps; public signal void invoked(Geary.Folder? folder, Geary.Email? email);