1From 87d285a9e186e7745d4f3a2b2e6a489b1b803b94 Mon Sep 17 00:00:00 2001 2From: Michael Natterer <mitch@gimp.org> 3Date: Fri, 22 Feb 2013 11:06:26 +0100 4Subject: [PATCH 42/68] gtk: connect GtkNSView to "move-native-children" and 5 reposition 6 7--- 8 gtk/gtknsview.c | 32 ++++++++++++++++++++++++++------ 9 1 file changed, 26 insertions(+), 6 deletions(-) 10 11diff --git a/gtk/gtknsview.c b/gtk/gtknsview.c 12index 40c6a9b..a19a94e 100644 13--- a/gtk/gtknsview.c 14+++ b/gtk/gtknsview.c 15@@ -77,12 +77,14 @@ static gboolean gtk_ns_view_key_press (GtkWidget *widget, 16 static gboolean gtk_ns_view_key_release (GtkWidget *widget, 17 GdkEventKey *event); 18 19-static void gtk_ns_view_native_child_event (GdkWindow *window, 20- NSView *view, 21- NSEvent *event, 22- GtkNSView *ns_view); 23-static gboolean gtk_ns_view_forward_event (GtkWidget *widget, 24- GdkEventKey *event); 25+static void gtk_ns_view_native_child_event (GdkWindow *window, 26+ NSView *view, 27+ NSEvent *event, 28+ GtkNSView *ns_view); 29+static void gtk_ns_view_move_native_children (GdkWindow *window, 30+ GtkNSView *ns_view); 31+static gboolean gtk_ns_view_forward_event (GtkWidget *widget, 32+ GdkEventKey *event); 33 34 35 G_DEFINE_TYPE (GtkNSView, gtk_ns_view, GTK_TYPE_WIDGET) 36@@ -287,6 +289,10 @@ gtk_ns_view_map (GtkWidget *widget) 37 G_CALLBACK (gtk_ns_view_native_child_event), 38 G_OBJECT (widget), 0); 39 40+ g_signal_connect_object (gtk_widget_get_window (widget), "move-native-children", 41+ G_CALLBACK (gtk_ns_view_move_native_children), 42+ G_OBJECT (widget), 0); 43+ 44 GTK_WIDGET_CLASS (gtk_ns_view_parent_class)->map (widget); 45 } 46 47@@ -296,6 +302,10 @@ gtk_ns_view_unmap (GtkWidget *widget) 48 GtkNSView *ns_view = GTK_NS_VIEW (widget); 49 GtkWidget *toplevel = gtk_widget_get_toplevel (widget); 50 51+ g_signal_handlers_disconnect_by_func (gtk_widget_get_window (widget), 52+ gtk_ns_view_move_native_children, 53+ widget); 54+ 55 g_signal_handlers_disconnect_by_func (gtk_widget_get_window (toplevel), 56 gtk_ns_view_native_child_event, 57 widget); 58@@ -412,6 +422,16 @@ gtk_ns_view_native_child_event (GdkWindow *window, 59 } 60 } 61 62+static void 63+gtk_ns_view_move_native_children (GdkWindow *window, 64+ GtkNSView *ns_view) 65+{ 66+ GtkAllocation allocation; 67+ 68+ gtk_widget_get_allocation (GTK_WIDGET (ns_view), &allocation); 69+ gtk_ns_view_position_view (ns_view, &allocation); 70+} 71+ 72 static gboolean 73 gtk_ns_view_forward_event (GtkWidget *widget, 74 GdkEventKey *event) 75-- 761.7.10.2 (Apple Git-33) 77