[libgda] Avoid using deprecated GDK functions
- From: Vivien Malerba <vivien src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgda] Avoid using deprecated GDK functions
- Date: Thu, 16 Aug 2012 20:21:23 +0000 (UTC)
commit a6d614f234bee17814d8fad0ba9547a239056a71
Author: Vivien Malerba <malerba gnome-db org>
Date: Thu Aug 16 22:18:35 2012 +0200
Avoid using deprecated GDK functions
libgda-ui/internal/popup-container.c | 37 +++++++++++++++++++++------------
1 files changed, 23 insertions(+), 14 deletions(-)
---
diff --git a/libgda-ui/internal/popup-container.c b/libgda-ui/internal/popup-container.c
index 71a582e..49cf509 100644
--- a/libgda-ui/internal/popup-container.c
+++ b/libgda-ui/internal/popup-container.c
@@ -152,19 +152,28 @@ default_position_func (G_GNUC_UNUSED PopupContainer *container, gint *out_x, gin
}
static gboolean
-popup_grab_on_window (GdkWindow *window, guint32 activate_time)
+popup_grab_on_window (GtkWidget *widget, guint32 activate_time)
{
- if ((gdk_pointer_grab (window, TRUE,
- GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
- GDK_POINTER_MOTION_MASK,
- NULL, NULL, activate_time) == 0)) {
- if (gdk_keyboard_grab (window, TRUE,
- activate_time) == 0)
- return TRUE;
- else {
- gdk_pointer_ungrab (activate_time);
- return FALSE;
- }
+ GdkDeviceManager *manager;
+ GdkDevice *pointer;
+ GdkWindow *window;
+ window = gtk_widget_get_window (widget);
+ manager = gdk_display_get_device_manager (gtk_widget_get_display (widget));
+ pointer = gdk_device_manager_get_client_pointer (manager);
+ if (gdk_device_grab (pointer, window, GDK_OWNERSHIP_WINDOW, TRUE,
+ GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
+ GDK_POINTER_MOTION_MASK,
+ NULL, activate_time) == GDK_GRAB_SUCCESS) {
+ GdkDevice *keyb;
+ keyb = gdk_device_get_associated_device (pointer);
+ if (gdk_device_grab (keyb, window, GDK_OWNERSHIP_WINDOW, TRUE,
+ GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK, NULL, activate_time) ==
+ GDK_GRAB_SUCCESS)
+ return TRUE;
+ else {
+ gdk_device_ungrab (pointer, activate_time);
+ return FALSE;
+ }
}
return FALSE;
}
@@ -220,7 +229,7 @@ popup_container_show (GtkWidget *widget)
if (do_move)
gtk_window_move (GTK_WINDOW (widget), root_x, root_y);
- popup_grab_on_window (gtk_widget_get_window (widget),
+ popup_grab_on_window (widget,
gtk_get_current_event_time ());
}
@@ -267,7 +276,7 @@ popup_position (PopupContainer *container, gint *out_x, gint *out_y)
gint x, y;
GtkRequisition req;
- gtk_widget_size_request (poswidget, &req);
+ gtk_widget_get_preferred_size (poswidget, NULL, &req);
GtkAllocation alloc;
gdk_window_get_origin (gtk_widget_get_window (poswidget), &x, &y);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]