[Xfce4-commits] <libxfce4ui:stephan/gtk3> Remove some more gtk3 deprecations.
Nick Schermer
noreply at xfce.org
Fri May 4 21:28:01 CEST 2012
Updating branch refs/heads/stephan/gtk3
to d686611f0f96121033d573cdeca87c3b4cb5b0b1 (commit)
from b652daa33f929f14ba2a807ab5847ef72cbaf70e (commit)
commit d686611f0f96121033d573cdeca87c3b4cb5b0b1
Author: Nick Schermer <nick at 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);
More information about the Xfce4-commits
mailing list