Updating branch refs/heads/stephan/gtk3 to d686611f0f96121033d573cdeca87c3b4cb5b0b1 (commit) from b652daa33f929f14ba2a807ab5847ef72cbaf70e (commit)
commit d686611f0f96121033d573cdeca87c3b4cb5b0b1 Author: Nick Schermer <n...@xfce.org> Date: Fri May 4 21:26:24 2012 +0200 Remove some more gtk3 deprecations. libxfce4kbd-private/xfce-shortcut-dialog.c | 39 +++++++++++++++++++++++----- libxfce4ui/xfce-gdk-extensions.c | 11 +++++--- libxfce4ui/xfce-titled-dialog.c | 4 +- 3 files changed, 41 insertions(+), 13 deletions(-) diff --git a/libxfce4kbd-private/xfce-shortcut-dialog.c b/libxfce4kbd-private/xfce-shortcut-dialog.c index d7c1d59..f395831 100644 --- a/libxfce4kbd-private/xfce-shortcut-dialog.c +++ b/libxfce4kbd-private/xfce-shortcut-dialog.c @@ -270,15 +270,39 @@ gint xfce_shortcut_dialog_run (XfceShortcutDialog *dialog, GtkWidget *parent) { - gint response = GTK_RESPONSE_CANCEL; + GdkDisplay *display; + GdkDevice *device; + GdkDeviceManager *device_manager; + gint response = GTK_RESPONSE_CANCEL; + GList *devices, *li; + gboolean succeed = FALSE; g_return_val_if_fail (XFCE_IS_SHORTCUT_DIALOG (dialog), GTK_RESPONSE_CANCEL); gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (parent)); gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), TRUE); + display = gtk_widget_get_display (GTK_WIDGET (dialog)); + device_manager = gdk_display_get_device_manager (display); + devices = gdk_device_manager_list_devices (device_manager, GDK_DEVICE_TYPE_MASTER); + + for (li = devices; li != NULL; li =li->next) + { + device = li->data; + if (gdk_device_get_source (device) != GDK_SOURCE_KEYBOARD) + continue; + + if (gdk_device_grab (device, gtk_widget_get_root_window (GTK_WIDGET (dialog)), + GDK_OWNERSHIP_WINDOW, TRUE, + GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK, + NULL, GDK_CURRENT_TIME) == GDK_GRAB_SUCCESS) + { + succeed = TRUE; + } + } + /* Take control on the keyboard */ - if (G_LIKELY (gdk_keyboard_grab (gtk_widget_get_root_window (GTK_WIDGET (dialog)), TRUE, GDK_CURRENT_TIME) == GDK_GRAB_SUCCESS)) + if (succeed) { /* Run the dialog and wait for the user to enter a valid shortcut */ response = gtk_dialog_run (GTK_DIALOG (dialog)); @@ -290,8 +314,12 @@ xfce_shortcut_dialog_run (XfceShortcutDialog *dialog, dialog->shortcut = g_strdup (""); } - /* Release keyboard */ - gdk_keyboard_ungrab (GDK_CURRENT_TIME); + for (li = devices; li != NULL; li =li->next) + { + device = li->data; + if (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD) + gdk_device_ungrab (device, GDK_CURRENT_TIME); + } } else g_warning ("%s", _("Could not grab the keyboard.")); @@ -355,9 +383,6 @@ xfce_shortcut_dialog_key_released (XfceShortcutDialog *dialog, /* Check if the shortcut was accepted */ if (G_LIKELY (shortcut_accepted)) { - /* Release keyboard */ - gdk_keyboard_ungrab (GDK_CURRENT_TIME); - /* Exit dialog with positive response */ gtk_dialog_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); } diff --git a/libxfce4ui/xfce-gdk-extensions.c b/libxfce4ui/xfce-gdk-extensions.c index 402da5b..713891b 100644 --- a/libxfce4ui/xfce-gdk-extensions.c +++ b/libxfce4ui/xfce-gdk-extensions.c @@ -49,12 +49,15 @@ GdkScreen * xfce_gdk_screen_get_active (gint *monitor_return) { - GdkDisplay *display; - gint rootx, rooty; - GdkScreen *screen; + GdkDisplay *display; + gint rootx, rooty; + GdkScreen *screen; + GdkDeviceManager *manager; display = gdk_display_get_default (); - gdk_display_get_pointer (display, &screen, &rootx, &rooty, NULL); + manager = gdk_display_get_device_manager (display); + gdk_device_get_position (gdk_device_manager_get_client_pointer (manager), + &screen, &rootx, &rooty); if (G_UNLIKELY (screen == NULL)) { diff --git a/libxfce4ui/xfce-titled-dialog.c b/libxfce4ui/xfce-titled-dialog.c index 7a57196..2572774 100644 --- a/libxfce4ui/xfce-titled-dialog.c +++ b/libxfce4ui/xfce-titled-dialog.c @@ -134,7 +134,7 @@ xfce_titled_dialog_init (XfceTitledDialog *titled_dialog) gtk_container_remove (GTK_CONTAINER (titled_dialog), gtk_dialog_get_content_area (GTK_DIALOG (titled_dialog))); /* add a new vbox w/o border to the main window */ - vbox = gtk_vbox_new (FALSE, 0); + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (titled_dialog), vbox); gtk_widget_show (vbox); @@ -144,7 +144,7 @@ xfce_titled_dialog_init (XfceTitledDialog *titled_dialog) gtk_widget_show (titled_dialog->priv->heading); /* add the separator between header and content */ - line = gtk_hseparator_new (); + line = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (vbox), line, FALSE, FALSE, 0); gtk_widget_show (line); _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits