[Pkg-ocaml-maint-commits] [lablgtk2] 04/09: Imported Upstream version 2.18.3+dfsg
Stéphane Glondu
glondu at moszumanska.debian.org
Wed Jun 17 14:12:36 UTC 2015
This is an automated email from the git hooks/post-receive script.
glondu pushed a commit to branch master
in repository lablgtk2.
commit 7dfe7690b59f4e382e13f820e9b8398ef52b3fec
Author: Stephane Glondu <steph at glondu.net>
Date: Wed Jun 17 14:32:46 2015 +0200
Imported Upstream version 2.18.3+dfsg
---
.gitignore | 10 ++++++++++
CHANGES | 14 ++++++++++++++
README | 4 ++--
src/Makefile | 1 +
src/gWindow.mli | 4 ++--
src/gdk.ml | 21 ++++++++++++++++-----
src/gdk.mli | 5 +++++
src/gdkEvent.ml | 2 +-
src/gtkBase.props | 2 +-
src/gtkWindow.ml | 2 +-
src/ml_gdk.c | 10 ++++++----
src/ml_gdk.h | 8 +++-----
src/ml_gobject.c | 8 ++++----
src/ml_gtk.c | 11 ++++++-----
src/ml_gtkfile.c | 2 +-
src/ml_gtkmenu.c | 12 ++----------
src/ml_gtktext.c | 48 +++++++++---------------------------------------
src/ml_rsvg.c | 1 -
src/wrappers.c | 6 ++++--
src/wrappers.h | 1 +
20 files changed, 89 insertions(+), 83 deletions(-)
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..dfee34b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,10 @@
+config.make
+config.cache
+config.status
+config.log
+configure.lineno
+aclocal.m4
+autom4te.cache
+test_dynlink.*
+*~
+*.sw[po]
diff --git a/CHANGES b/CHANGES
index 4715934..69dd00e 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,19 @@
LablGTK changes log
+In Lablgtk-2.18.3:
+
+2014.10.06 [Jacques]
+ * add Gdk.Window.create_foreign and set_transient_for functions (Tim Cuthbertson)
+
+2014.09.20 [Jacques]
+ * CAMLparam initializes with Val_unit rather than 0 since ocaml 4.02.
+ Fix a related problem in ml_gobject.
+ This caused random crashes with unison (Christopher Zimmermann, PR#1425)
+
+ * Also factorize some code to use Val_option_*
+ * Replace XID by GdkNativeWindow where required.
+ You may need to insert calls to Gdk.Window.native_of_xid in some places.
+
In Lablgtk-2.18.2:
2014.09.17 [Jacques]
diff --git a/README b/README
index 1078304..7e67aa6 100755
--- a/README
+++ b/README
@@ -1,5 +1,5 @@
- LablGTK2 2.18.2 : an interface to the GIMP Tool Kit
+ LablGTK2 2.18.3 : an interface to the GIMP Tool Kit
Needed:
ocaml-3.11 or more (4.02 is preferred)
@@ -312,7 +312,7 @@ GL extension:
You can use lablgtk in combination with LablGL
- * get and install lablGL 1.04 from
+ * get and install lablGL 1.05 from
http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/lablgl.html
* get and install gtkglarea-1.99.0.tar.gz from
ftp://ftp.gnome.org/pub/gnome/sources/gtkglarea/1.99/
diff --git a/src/Makefile b/src/Makefile
index c06dd3d..e4dbe7c 100755
--- a/src/Makefile
+++ b/src/Makefile
@@ -17,6 +17,7 @@ INSTALLDIR = $(LIBDIR)/lablgtk2
DLLDIR = $(LIBDIR)/stublibs
include $(CONFIG)
+#GTKCFLAGS += -Werror -Wno-error=deprecated-declarations
TARGETS = varcc$(XE) lablgtktop$(XE) lablgtk2$(XB) gdk_pixbuf_mlsource$(XE) \
$(THINITOBJS) build.ml
diff --git a/src/gWindow.mli b/src/gWindow.mli
index 4decee6..c826236 100644
--- a/src/gWindow.mli
+++ b/src/gWindow.mli
@@ -585,7 +585,7 @@ class plug : Gtk.plug obj ->
(** @gtkdoc gtk GtkPlug *)
val plug :
- window:Gdk.xid ->
+ window:Gdk.native_window ->
?border_width:int ->
?width:int -> ?height:int -> ?show:bool -> unit -> plug
@@ -607,7 +607,7 @@ class socket : Gtk.socket obj ->
inherit GContainer.container
val obj : Gtk.socket obj
method connect : socket_signals
- method steal : Gdk.xid -> unit
+ method steal : Gdk.native_window -> unit
(** @deprecated "inherently unreliable" *)
method xwindow : Gdk.xid
end
diff --git a/src/gdk.ml b/src/gdk.ml
index cb5759b..d92fb94 100644
--- a/src/gdk.ml
+++ b/src/gdk.ml
@@ -43,6 +43,7 @@ type +'a event
type drag_context = [`dragcontext] Gobject.obj
type cursor
type xid = int32
+type native_window
type device
type display
@@ -295,8 +296,14 @@ module Drawable = struct
= "ml_gdk_drawable_get_size"
end
+module Windowing = struct
+ external get : unit -> [`QUARTZ | `WIN32 | `X11] = "ml_gdk_get_platform"
+ let platform = get ()
+end
+
module Window = struct
let cast w : window = Gobject.try_cast w "GdkWindow"
+ external create_foreign : native_window -> window = "ml_gdk_window_foreign_new"
type background_pixmap = [ `NONE | `PARENT_RELATIVE | `PIXMAP of pixmap]
external get_parent : window -> window = "ml_gdk_window_get_parent"
external get_position : window -> int * int = "ml_gdk_window_get_position"
@@ -323,6 +330,15 @@ module Window = struct
(* for backward compatibility for lablgtk1 programs *)
let get_visual = Drawable.get_visual
+
+ let xid_of_native (w : native_window) : xid =
+ if Windowing.platform = `X11 then Obj.magic w else
+ failwith "Gdk.Window.xid_of_native only allowed for X11"
+ let native_of_xid (id : xid) : native_window =
+ if Windowing.platform = `X11 then Obj.magic id else
+ failwith "Gdk.Window.native_of_xid only allowed for X11"
+
+ external set_transient_for : window -> window -> unit = "ml_gdk_window_set_transient_for"
end
module PointArray = struct
@@ -785,8 +801,3 @@ module Display = struct
(match display with None -> default ()
| Some disp -> disp)
end
-
-module Windowing = struct
- external get : unit -> [`QUARTZ | `WIN32 | `X11] = "ml_gdk_get_platform"
- let platform = get ()
-end
diff --git a/src/gdk.mli b/src/gdk.mli
index f5509cc..2e9c787 100644
--- a/src/gdk.mli
+++ b/src/gdk.mli
@@ -41,6 +41,7 @@ type +'a event
type drag_context = [`dragcontext] Gobject.obj
type cursor
type xid = int32
+type native_window
type device
type display
@@ -218,6 +219,7 @@ end
module Window :
sig
val cast : 'a obj -> window
+ val create_foreign : native_window -> window
val get_parent : window -> window
val get_position : window -> int * int
val get_pointer_location : window -> int * int
@@ -226,9 +228,12 @@ module Window :
val clear_area :
window -> x:int -> y:int -> width:int -> height:int -> unit
val get_xwindow : [>`drawable] obj -> xid
+ val native_of_xid : xid -> native_window
+ val xid_of_native : native_window -> xid
type background_pixmap = [ `NONE|`PARENT_RELATIVE|`PIXMAP of pixmap ]
val set_back_pixmap : window -> background_pixmap -> unit
val set_cursor : window -> cursor -> unit
+ val set_transient_for : window -> window -> unit
(* for backward compatibility for lablgtk1 programs *)
val get_visual : window -> visual
diff --git a/src/gdkEvent.ml b/src/gdkEvent.ml
index d5fdf55..03cbd72 100644
--- a/src/gdkEvent.ml
+++ b/src/gdkEvent.ml
@@ -180,7 +180,7 @@ module Selection = struct
external selection : t -> atom = "ml_GdkEventSelection_selection"
external target : t -> atom = "ml_GdkEventSelection_target"
external property : t -> atom = "ml_GdkEventSelection_property"
- external requestor : t -> xid = "ml_GdkEventSelection_requestor"
+ external requestor : t -> native_window = "ml_GdkEventSelection_requestor"
let time = get_time
end
diff --git a/src/gtkBase.props b/src/gtkBase.props
index 030416c..cc7ca10 100644
--- a/src/gtkBase.props
+++ b/src/gtkBase.props
@@ -272,7 +272,7 @@ class Plug abstract wrapsig : Bin {
}
class Socket wrapsig : Container {
- method steal : "Gdk.xid -> unit"
+ method steal : "Gdk.native_window -> unit"
signal plug_added
signal plug_removed
}
diff --git a/src/gtkWindow.ml b/src/gtkWindow.ml
index 799bef4..05c1b18 100644
--- a/src/gtkWindow.ml
+++ b/src/gtkWindow.ml
@@ -163,7 +163,7 @@ end
module Plug = struct
include Plug
- external create : Gdk.xid -> plug obj = "ml_gtk_plug_new"
+ external create : Gdk.native_window -> plug obj = "ml_gtk_plug_new"
end
module Socket = Socket
diff --git a/src/ml_gdk.c b/src/ml_gdk.c
index f823106..e4ed433 100644
--- a/src/ml_gdk.c
+++ b/src/ml_gdk.c
@@ -270,14 +270,15 @@ ML_5 (gdk_window_clear_area, GdkWindow_val, Int_val, Int_val, Int_val, Int_val,
Unit)
ML_0 (GDK_ROOT_PARENT, Val_GdkWindow)
ML_1 (gdk_window_get_parent, GdkWindow_val, Val_GdkWindow)
+ML_2 (gdk_window_set_transient_for, GdkWindow_val, GdkWindow_val, Unit)
+ML_1 (gdk_window_foreign_new, GdkNativeWindow_val, Val_GdkWindow)
#if defined(_WIN32) || defined(__CYGWIN__) || defined(HAS_GTKQUARTZ)
CAMLprim value ml_GDK_WINDOW_XWINDOW(value v)
{
- ml_raise_gdk ("Not available for Win32");
+ ml_raise_gdk ("ml_GDK_WINDOW_XWINDOW: only for X11");
return Val_unit;
-}
-
+}
#else
ML_1 (GDK_WINDOW_XWINDOW, GdkDrawable_val, Val_XID)
#endif
@@ -878,7 +879,8 @@ Make_Extractor (GdkEventSelection, GdkEvent_arg(Selection), target,
Val_GdkAtom)
Make_Extractor (GdkEventSelection, GdkEvent_arg(Selection), property,
Val_GdkAtom)
-Make_Extractor (GdkEventSelection, GdkEvent_arg(Selection), requestor, Val_XID)
+Make_Extractor (GdkEventSelection, GdkEvent_arg(Selection), requestor,
+ Val_GdkNativeWindow)
Make_Extractor (GdkEventProximity, GdkEvent_arg(Proximity),
device, Val_GdkDevice)
diff --git a/src/ml_gdk.h b/src/ml_gdk.h
index 875555d..75d01d7 100644
--- a/src/ml_gdk.h
+++ b/src/ml_gdk.h
@@ -82,16 +82,14 @@ CAMLexport value Val_GdkEvent (GdkEvent *);
#define GdkDevice_val(val) ((GdkDevice*) val)
#define Val_GdkDevice(device) ((value) device)
-#if 0
// Future replacement for XID?
#ifdef GDK_NATIVE_WINDOW_POINTER
-#define GdkNativeWindow_val (GdkNativeWindow*)
-#define Val_GdkNativeWindow(id) (value)
+#define GdkNativeWindow_val Pointer_val
+#define Val_GdkNativeWindow Val_pointer
#else
-#define Val_GdkNativeWindow(id) copy_int32((long) id)
+#define Val_GdkNativeWindow copy_int32
#define GdkNativeWindow_val Int32_val
#endif
-#endif
#ifdef _WIN32
#define Val_XID(id) copy_int32((long) id)
diff --git a/src/ml_gobject.c b/src/ml_gobject.c
index f28a3f5..4159a28 100644
--- a/src/ml_gobject.c
+++ b/src/ml_gobject.c
@@ -643,8 +643,8 @@ ML_2 (g_signal_handler_is_connected, GObject_val, Long_val, Val_bool)
ML_2 (g_signal_stop_emission_by_name, GObject_val, String_val, Unit)
CAMLprim value ml_g_signal_emit_by_name (value obj, value sig, value params)
{
- CAMLparam3(obj,sig,params);
- CAMLlocal1(ret);
+ value ret = Val_unit;
+ CAMLparam4(obj,sig,params,ret);
GObject *instance = GObject_val(obj);
GValue *iparams = (GValue*)calloc(1 + Wosize_val(params), sizeof(GValue));
GQuark detail = 0;
@@ -671,11 +671,11 @@ CAMLprim value ml_g_signal_emit_by_name (value obj, value sig, value params)
query.param_types[i] & ~G_SIGNAL_TYPE_STATIC_SCOPE);
g_value_set_mlvariant (&iparams[i+1], Field(params,i));
}
- g_signal_emitv (iparams, signal_id, detail, (ret ? GValue_val(ret) : 0));
+ g_signal_emitv (iparams, signal_id, detail,
+ (ret == Val_unit ? 0 : GValue_val(ret)));
for (i = 0; i < query.n_params + 1; i++)
g_value_unset (iparams + i);
free (iparams);
- if (!ret) ret = Val_unit;
CAMLreturn(ret);
}
diff --git a/src/ml_gtk.c b/src/ml_gtk.c
index 3bc8589..23385cd 100644
--- a/src/ml_gtk.c
+++ b/src/ml_gtk.c
@@ -402,7 +402,7 @@ CAMLprim value ml_gtk_widget_style_get_property (value w, value n)
pspec = gtk_widget_class_find_style_property
(GTK_WIDGET_GET_CLASS (widget), name);
if (pspec) {
- value ret = ml_g_value_new ();
+ ret = ml_g_value_new ();
GValue *gv = GValueptr_val (ret);
g_value_init (gv, G_PARAM_SPEC_VALUE_TYPE (pspec));
gtk_widget_style_get_property (widget, name, gv);
@@ -737,8 +737,9 @@ CAMLprim value ml_gtk_file_selection_get_selections (value sel)
gchar** selections =
gtk_file_selection_get_selections(GtkFileSelection_val(sel));
gchar** orig = selections;
- CAMLparam0();
- CAMLlocal3(ret,prev,next);
+ value ret = Val_unit;
+ CAMLparam1(ret);
+ CAMLlocal2(prev,next);
for (prev = (value)((&ret)-1); *selections != NULL; selections++) {
next = alloc(2,0);
Store_field(prev, 1, next);
@@ -967,7 +968,7 @@ Make_Extractor (gtk_font_selection_dialog, GtkFontSelectionDialog_val,
#ifdef _WIN32
Unsupported(gtk_plug_new)
#else
-ML_1 (gtk_plug_new, XID_val, Val_GtkWidget_window)
+ML_1 (gtk_plug_new, GdkNativeWindow_val, Val_GtkWidget_window)
#endif
/* gtksocket.h */
@@ -975,7 +976,7 @@ ML_1 (gtk_plug_new, XID_val, Val_GtkWidget_window)
Unsupported(gtk_socket_steal)
#else
#define GtkSocket_val(val) check_cast(GTK_SOCKET,val)
-ML_2 (gtk_socket_steal, GtkSocket_val, XID_val, Unit)
+ML_2 (gtk_socket_steal, GtkSocket_val, GdkNativeWindow_val, Unit)
#endif
/* gtkmain.h */
diff --git a/src/ml_gtkfile.c b/src/ml_gtkfile.c
index 2f5dbce..7503f4f 100644
--- a/src/ml_gtkfile.c
+++ b/src/ml_gtkfile.c
@@ -99,7 +99,7 @@ static gboolean ml_gtk_file_filter_func (const GtkFileFilterInfo *filter_info,
{
value *cb = data;
CAMLparam0();
- CAMLlocal5(r, l, v, t, s);
+ CAMLlocal4(r, l, v, s);
l = Val_emptylist;
#define CONS_MEMBER(memb, flag) \
if (filter_info->contains & GTK_FILE_FILTER_##flag) { \
diff --git a/src/ml_gtkmenu.c b/src/ml_gtkmenu.c
index 9f6d4ff..197df66 100644
--- a/src/ml_gtkmenu.c
+++ b/src/ml_gtkmenu.c
@@ -62,16 +62,8 @@ ML_0 (gtk_tearoff_menu_item_new, Val_GtkWidget_sink)
ML_1 (gtk_menu_item_new_with_label, String_val, Val_GtkWidget_sink)
ML_1 (gtk_menu_item_new_with_mnemonic, String_val, Val_GtkWidget_sink)
ML_2 (gtk_menu_item_set_submenu, GtkMenuItem_val, GtkWidget_val, Unit)
-
-CAMLprim value ml_gtk_menu_item_get_submenu(value sm)
-{
- CAMLparam1(sm);
- CAMLlocal1(res);
- res = Val_option(gtk_menu_item_get_submenu(GtkMenuItem_val(sm)),
- Val_GtkWidget);
- CAMLreturn(res);
-}
-
+Make_Val_option(GtkWidget)
+ML_1 (gtk_menu_item_get_submenu, GtkMenuItem_val, Val_option_GtkWidget)
ML_1 (gtk_menu_item_remove_submenu, GtkMenuItem_val, Unit)
ML_2 (gtk_menu_item_set_accel_path, GtkMenuItem_val, String_val, Unit)
ML_1 (gtk_menu_item_activate, GtkMenuItem_val, Unit)
diff --git a/src/ml_gtktext.c b/src/ml_gtktext.c
index 83690ad..4fbc4db 100644
--- a/src/ml_gtktext.c
+++ b/src/ml_gtktext.c
@@ -121,25 +121,9 @@ CAMLprim value ml_gtk_text_iter_assign (value it1, value it2) {
ML_2(gtk_text_mark_set_visible, GtkTextMark_val, Bool_val, Unit)
ML_1(gtk_text_mark_get_visible, GtkTextMark_val, Val_bool)
ML_1(gtk_text_mark_get_deleted, GtkTextMark_val, Val_bool)
-CAMLprim value ml_gtk_text_mark_get_name (value tm)
-{
- CAMLparam1(tm);
- CAMLlocal1(res);
- const gchar* tmp;
- tmp = gtk_text_mark_get_name(GtkTextMark_val(tm));
- res = Val_option(tmp,Val_string);
- CAMLreturn(res);
-}
-CAMLprim value ml_gtk_text_mark_get_buffer (value tm)
-{
- CAMLparam1(tm);
- CAMLlocal1(res);
- GtkTextBuffer* tmp;
- tmp = gtk_text_mark_get_buffer(GtkTextMark_val(tm));
- res = Val_option(tmp,Val_GtkTextBuffer);
- CAMLreturn(res);
-}
-
+ML_1(gtk_text_mark_get_name, GtkTextMark_val, Val_option_string)
+Make_Val_option(GtkTextBuffer)
+ML_1(gtk_text_mark_get_buffer, GtkTextMark_val, Val_option_GtkTextBuffer)
ML_1(gtk_text_mark_get_left_gravity, GtkTextMark_val, Val_bool)
/* gtktexttag */
@@ -157,17 +141,9 @@ ML_1(Wrap_mode_val, (value), Val_int)
ML_0(gtk_text_tag_table_new, Val_GtkTextTagTable_new)
ML_2(gtk_text_tag_table_add, GtkTextTagTable_val, GtkTextTag_val,Unit)
ML_2(gtk_text_tag_table_remove, GtkTextTagTable_val, GtkTextTag_val,Unit)
-
-CAMLprim value ml_gtk_text_tag_table_lookup (value tv, value s)
-{
- CAMLparam2(tv,s);
- CAMLlocal1(res);
- GtkTextTag* tmp;
- tmp = gtk_text_tag_table_lookup(GtkTextTagTable_val(tv), String_val(s));
- res = Val_option(tmp,Val_GtkTextTag);
- CAMLreturn(res);
-}
-
+Make_Val_option(GtkTextTag)
+ML_2(gtk_text_tag_table_lookup, GtkTextTagTable_val, String_val,
+ Val_option_GtkTextTag)
ML_1(gtk_text_tag_table_get_size, GtkTextTagTable_val, Val_int)
static void tag_foreach_func (GtkTextTag* t, gpointer user_data)
@@ -625,15 +601,9 @@ CAMLprim value ml_gtk_text_view_window_to_buffer_coords (value tv,
CAMLreturn(res);
}
-CAMLprim value ml_gtk_text_view_get_window (value tv, value tt)
-{
- CAMLparam2(tv,tt);
- CAMLlocal1(res);
- GdkWindow* tmp;
- tmp = gtk_text_view_get_window(GtkTextView_val(tv), Text_window_type_val(tt));
- res = Val_option(tmp,Val_GdkWindow);
- CAMLreturn(res);
-}
+Make_Val_option(GdkWindow)
+ML_2(gtk_text_view_get_window, GtkTextView_val, Text_window_type_val,
+ Val_option_GdkWindow)
ML_2(gtk_text_view_get_window_type,GtkTextView_val,GdkWindow_val,
Val_text_window_type)
diff --git a/src/ml_rsvg.c b/src/ml_rsvg.c
index b670c5f..a89327f 100644
--- a/src/ml_rsvg.c
+++ b/src/ml_rsvg.c
@@ -25,7 +25,6 @@
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <librsvg/rsvg.h>
-#include <librsvg/librsvg-features.h>
#include <caml/mlvalues.h>
#include <caml/alloc.h>
#include <caml/memory.h>
diff --git a/src/wrappers.c b/src/wrappers.c
index 0236f1c..0a5d8b9 100644
--- a/src/wrappers.c
+++ b/src/wrappers.c
@@ -61,8 +61,7 @@ CAMLprim value ml_some (value v)
value ml_cons (value v, value l)
{
CAMLparam2(v, l);
- CAMLlocal1(cell);
- cell = alloc_small(2, Tag_cons);
+ value cell = alloc_small(2, Tag_cons);
Field(cell, 0) = v;
Field(cell, 1) = l;
CAMLreturn(cell);
@@ -95,6 +94,9 @@ value copy_string_or_null (const char*str)
return copy_string (str ? (char*) str : "");
}
+value Val_option_string (const char *s)
+{ return Val_option (s, Val_string); }
+
CAMLprim value *ml_global_root_new (value v)
{
value *p = stat_alloc(sizeof(value));
diff --git a/src/wrappers.h b/src/wrappers.h
index 7a87c83..f7fb02d 100644
--- a/src/wrappers.h
+++ b/src/wrappers.h
@@ -43,6 +43,7 @@ CAMLexport void ml_raise_null_pointer (void) Noreturn;
CAMLexport value Val_pointer (void *);
CAMLprim value copy_string_check (const char*);
value copy_string_or_null (const char *);
+value Val_option_string (const char *s);
value string_list_of_strv (const char * const *v);
value string_list_of_strv2 (char **v);
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ocaml-maint/packages/lablgtk2.git
More information about the Pkg-ocaml-maint-commits
mailing list