[Xfce4-commits] <parole:bluesabre/gtk3> Initial GTK+3 port. Configure with --enable-gtk3=yes
Sean Davis
noreply at xfce.org
Sun Feb 17 07:44:01 CET 2013
Updating branch refs/heads/bluesabre/gtk3
to 8060b259e08aea7a45653f39332719c78b5ee904 (commit)
from c6429490cb5a519be718f7f78798b7fd7c428ff4 (commit)
commit 8060b259e08aea7a45653f39332719c78b5ee904
Author: Sean Davis <smd.seandavis at gmail.com>
Date: Sun Feb 17 01:42:10 2013 -0500
Initial GTK+3 port. Configure with --enable-gtk3=yes
configure.ac.in | 40 +++++++++++++----
src/common/parole-common.c | 31 +++++++++++--
src/common/parole-screensaver.c | 14 +++++-
src/gst/parole-gst.c | 81 +++++++++++++++++++++++++++++++++--
src/parole-button.c | 18 +++++++-
src/parole-conf-dialog.c | 14 ++++++
src/parole-disc.c | 2 +-
src/parole-medialist.c | 4 ++
src/parole-player.c | 89 +++++++++++++++++++++++++++++++++-----
9 files changed, 257 insertions(+), 36 deletions(-)
diff --git a/configure.ac.in b/configure.ac.in
index ae8daf4..f00dadb 100644
--- a/configure.ac.in
+++ b/configure.ac.in
@@ -110,18 +110,39 @@ AC_DEFINE_UNQUOTED(GSTREAMER_API_VERSION, $gstreamer_api_version, [Define the GS
m4_define([dbus_minimum_version], [0.60])
m4_define([dbus_glib_minimum_version], [0.70])
-m4_define([libxfce4ui_minimum_version],[4.8.0])
-m4_define([libxfce4util_minimum_version],[4.8.0])
+m4_define([libxfce4ui_minimum_version],[4.10.0])
+m4_define([libxfce4util_minimum_version],[4.10.0])
m4_define([libnotify_minimum_version], [0.4.1])
-XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [gtk_minimum_version])
XDT_CHECK_PACKAGE([GLIB], [glib-2.0], [glib_minimum_version])
XDT_CHECK_PACKAGE([GOBJECT], [gobject-2.0], [glib_minimum_version])
XDT_CHECK_PACKAGE([GTHREAD], [gthread-2.0], [glib_minimum_version])
XDT_CHECK_PACKAGE([GMODULE], [gmodule-2.0], [glib_minimum_version])
XDT_CHECK_PACKAGE([GIO], [gio-2.0], [glib_minimum_version])
+XDT_CHECK_PACKAGE([DBUS], [dbus-1], [dbus_minimum_version])
+XDT_CHECK_PACKAGE([DBUS_GLIB], [dbus-glib-1], [dbus_glib_minimum_version])
+
+XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0],[libxfce4util_minimum_version])
+XDT_CHECK_PACKAGE([XFCONF], [libxfconf-0], [4.10.0])
+
+dnl ************************************
+dnl *** Compile against GTK3 or GTK2 ***
+dnl ************************************
+AC_ARG_ENABLE([gtk3],
+ [AC_HELP_STRING([--enable-gtk3],
+ [Compile against GTK+-3.0 (default=disabled)])],
+ [enable_gtk3=$enableval], [enable_gtk3=no])
+if test "x$enable_gtk3" = "xyes"; then
+ XDT_CHECK_PACKAGE([LIBXFCE4UI], [libxfce4ui-2], [4.10.0])
+ XDT_CHECK_PACKAGE([GTK], [gtk+-3.0], [3.2.0])
+else
+ XDT_CHECK_PACKAGE([LIBXFCE4UI], [libxfce4ui-1], [4.10.0])
+ XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [2.24.0])
+fi
+AM_CONDITIONAL([ENABLE_GTK3], [test "x$enable_gtk3" = "xyes"])
+
XDT_CHECK_PACKAGE([GST], [gstreamer-${gstreamer_api_version}], [gstreamer_minimum_version])
XDT_CHECK_PACKAGE([GST_BASE], [gstreamer-base-${gstreamer_api_version}], [gstreamer_minimum_version])
XDT_CHECK_PACKAGE([GST_VIDEO], [gstreamer-video-${gstreamer_api_version}], [gstreamer_minimum_version])
@@ -134,13 +155,7 @@ else
GST_LIBS="$GST_LIBS -lgstbase-$GST_API_VERSION -lgstvideo-$GST_API_VERSION -lgstaudio-$GST_API_VERSION -lgstpbutils-$GST_API_VERSION -lgsttag-$GST_API_VERSION"
fi
-XDT_CHECK_PACKAGE([DBUS], [dbus-1], [dbus_minimum_version])
-XDT_CHECK_PACKAGE([DBUS_GLIB], [dbus-glib-1], [dbus_glib_minimum_version])
-
-XDT_CHECK_PACKAGE([LIBXFCE4UI], [libxfce4ui-1],[libxfce4ui_minimum_version])
-XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0],[libxfce4util_minimum_version])
-XDT_CHECK_PACKAGE([XFCONF], [libxfconf-0], [4.10.0])
XDT_CHECK_LIBX11()
@@ -268,6 +283,12 @@ docs/plugin-api/Makefile
po/Makefile.in
])
+if test x"$enable_gtk3" = x"yes"; then
+gtk_toolkit_version="GTK+-3"
+else
+gtk_toolkit_version="GTK+-2"
+fi
+
echo "
------------------------------------------------------
Parole Media Player $VERSION
@@ -280,6 +301,7 @@ echo "
Debug: $enable_debug
Building plugin api docs: ${enable_gtk_doc}
GStreamer API version: ${gstreamer_api_version}
+ GTK+ version: $gtk_toolkit_version
Optional dependencies:
======================
diff --git a/src/common/parole-common.c b/src/common/parole-common.c
index 59c3317..404bda5 100644
--- a/src/common/parole-common.c
+++ b/src/common/parole-common.c
@@ -82,22 +82,38 @@ void parole_window_busy_cursor (GdkWindow *window)
cursor = gdk_cursor_new (GDK_WATCH);
gdk_window_set_cursor (window, cursor);
+
+#if GTK_CHECK_VERSION(3, 0, 0)
+ g_object_unref (cursor);
+#else
gdk_cursor_unref (cursor);
+#endif
gdk_flush ();
}
void parole_window_invisible_cursor (GdkWindow *window)
{
- GdkBitmap *empty_bitmap;
GdkCursor *cursor;
+#if GTK_CHECK_VERSION(3, 0, 0)
+ cairo_surface_t *s;
+ GdkPixbuf *cursor_pixbuf;
+#else
+ GdkBitmap *empty_bitmap;
GdkColor color;
-
char cursor_bits[] = { 0x0 };
-
+#endif
+
if ( G_UNLIKELY (window == NULL) )
return;
+#if GTK_CHECK_VERSION(3, 0, 0)
+ s = cairo_image_surface_create(CAIRO_FORMAT_A1, 1, 1);
+ cursor_pixbuf = gdk_pixbuf_get_from_surface(s, 0, 0, 1, 1);
+ cairo_surface_destroy(s);
+ cursor = gdk_cursor_new_from_pixbuf(gdk_display_get_default(), cursor_pixbuf, 0, 0);
+ g_object_unref(cursor_pixbuf);
+#else
color.red = color.green = color.blue = 0;
color.pixel = 0;
@@ -109,10 +125,15 @@ void parole_window_invisible_cursor (GdkWindow *window)
empty_bitmap,
&color,
&color, 0, 0);
+
+ g_object_unref (empty_bitmap);
+#endif
gdk_window_set_cursor (window, cursor);
+#if GTK_CHECK_VERSION(3, 0, 0)
+ g_object_unref (cursor);
+#else
gdk_cursor_unref (cursor);
-
- g_object_unref (empty_bitmap);
+#endif
}
diff --git a/src/common/parole-screensaver.c b/src/common/parole-screensaver.c
index edfe455..447af52 100644
--- a/src/common/parole-screensaver.c
+++ b/src/common/parole-screensaver.c
@@ -72,11 +72,16 @@ parole_screen_saver_new (void)
void parole_screen_saver_inhibit (ParoleScreenSaver *saver, GtkWindow *window)
{
gchar *cmd;
+ gint ret_val;
g_return_if_fail (PAROLE_IS_SCREENSAVER (saver));
+#if GTK_CHECK_VERSION(3, 0, 0)
+ cmd = g_strdup_printf("xdg-screensaver suspend %i", GDK_WINDOW_XID (gtk_widget_get_window (GTK_WIDGET (window))));
+#else
cmd = g_strdup_printf("xdg-screensaver suspend %lu", GDK_DRAWABLE_XID (gtk_widget_get_window (GTK_WIDGET (window))));
- system(cmd);
+#endif
+ ret_val = system(cmd);
g_free(cmd);
}
@@ -84,11 +89,16 @@ void parole_screen_saver_inhibit (ParoleScreenSaver *saver, GtkWindow *window)
void parole_screen_saver_uninhibit (ParoleScreenSaver *saver, GtkWindow *window)
{
gchar *cmd;
+ gint ret_val;
g_return_if_fail (PAROLE_IS_SCREENSAVER (saver));
+#if GTK_CHECK_VERSION(3, 0, 0)
+ cmd = g_strdup_printf("xdg-screensaver resume %i", GDK_WINDOW_XID (gtk_widget_get_window (GTK_WIDGET (window))));
+#else
cmd = g_strdup_printf("xdg-screensaver resume %lu", GDK_DRAWABLE_XID (gtk_widget_get_window (GTK_WIDGET (window))));
- system(cmd);
+#endif
+ ret_val = system(cmd);
g_free(cmd);
}
diff --git a/src/gst/parole-gst.c b/src/gst/parole-gst.c
index 671e55f..626cf04 100644
--- a/src/gst/parole-gst.c
+++ b/src/gst/parole-gst.c
@@ -240,7 +240,11 @@ parole_gst_realize (GtkWidget *widget)
ParoleGst *gst;
GtkAllocation *allocation = g_new0 (GtkAllocation, 1);
GdkWindowAttr attr;
+#if GTK_CHECK_VERSION(3, 0, 0)
+ GdkRGBA color;
+#else
GdkColor color;
+#endif
gint mask;
gtk_widget_set_realized (widget, TRUE);
@@ -253,7 +257,10 @@ parole_gst_realize (GtkWidget *widget)
attr.width = allocation->width;
attr.height = allocation->height;
attr.visual = gtk_widget_get_visual (widget);
+#if GTK_CHECK_VERSION(3, 0, 0)
+#else
attr.colormap = gtk_widget_get_colormap (widget);
+#endif
attr.wclass = GDK_INPUT_OUTPUT;
attr.window_type = GDK_WINDOW_CHILD;
attr.event_mask = gtk_widget_get_events (widget) |
@@ -263,23 +270,38 @@ parole_gst_realize (GtkWidget *widget)
GDK_POINTER_MOTION_MASK |
GDK_KEY_PRESS_MASK;
+#if GTK_CHECK_VERSION(3, 0, 0)
+ mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
+#else
mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
+#endif
gtk_widget_set_window(widget, gdk_window_new (gtk_widget_get_parent_window (widget),
&attr, mask) );
gdk_window_set_user_data (gtk_widget_get_window(widget), widget);
+
+#if GTK_CHECK_VERSION(3, 0, 0)
+ gdk_rgba_parse (&color, "black");
+ gdk_window_set_background_rgba (gtk_widget_get_window(widget), &color);
+#else
gdk_color_parse ("black", &color);
gdk_colormap_alloc_color (gtk_widget_get_colormap (widget), &color,
TRUE, TRUE);
-
+
gdk_window_set_background (gtk_widget_get_window(widget), &color);
+
gtk_widget_set_style(widget, gtk_style_attach (gtk_widget_get_style(widget), gtk_widget_get_window(widget)));
+#endif
g_signal_connect (gtk_widget_get_toplevel (widget), "configure_event",
G_CALLBACK (parole_gst_configure_event_cb), gst);
+#if GTK_CHECK_VERSION(3, 0, 0)
+ g_signal_connect (gtk_widget_get_parent (widget), "draw",
+#else
g_signal_connect (gtk_widget_get_parent (widget), "expose_event",
+#endif
G_CALLBACK (parole_gst_parent_expose_event), gst);
g_free(allocation);
@@ -424,7 +446,13 @@ static void
parole_gst_draw_logo (ParoleGst *gst)
{
static GdkPixbuf *pix = NULL;
+#if GTK_CHECK_VERSION(3, 0, 0)
+ cairo_region_t *region;
+ GdkRGBA *color;
+ cairo_t *cr;
+#else
GdkRegion *region;
+#endif
GdkRectangle rect;
GtkWidget *widget;
GtkAllocation *allocation = g_new0 (GtkAllocation, 1);
@@ -441,18 +469,46 @@ parole_gst_draw_logo (ParoleGst *gst)
rect.width = allocation->width;
rect.height = allocation->height;
+#if GTK_CHECK_VERSION(3, 0, 0)
+ region = cairo_region_create_rectangle(&rect);
+#else
region = gdk_region_rectangle (&rect);
+#endif
gdk_window_begin_paint_region (gtk_widget_get_window(widget),
region);
- gdk_region_destroy (region);
+#if GTK_CHECK_VERSION(3, 0, 0)
+ cairo_region_destroy (region);
+
+ GdkWindow *window;
+ cairo_surface_t *target;
+
+ window = gtk_widget_get_window (widget);
+ target = cairo_get_group_target (cr);
+
+ /* Clear to parent-relative pixmap
+ * We need to use direct X access here because GDK doesn't know about
+ * the parent relative pixmap. */
+ cairo_surface_flush (target);
+ XClearArea (GDK_WINDOW_XDISPLAY (window),
+ GDK_WINDOW_XID (window),
+ 0, 0,
+ allocation->width, allocation->height,
+ False);
+ cairo_surface_mark_dirty_rectangle (target,
+ 0, 0,
+ allocation->width, allocation->height);
+#else
+ gdk_region_destroy (region);
+
gdk_window_clear_area (gtk_widget_get_window(widget),
0, 0,
allocation->width,
allocation->height);
-
+#endif
+
if (gst->priv->scale_logo)
{
if (pix)
@@ -464,6 +520,12 @@ parole_gst_draw_logo (ParoleGst *gst)
gst->priv->scale_logo = FALSE;
}
+#if GTK_CHECK_VERSION(3, 0, 0)
+ cr = gdk_cairo_create (gtk_widget_get_window(widget));
+ gdk_cairo_set_source_pixbuf (cr, pix, 0, 0);
+ cairo_paint (cr);
+ cairo_destroy (cr);
+#else
gdk_draw_pixbuf (GDK_DRAWABLE (gtk_widget_get_window(widget)),
gtk_widget_get_style(widget)->fg_gc[0],
pix,
@@ -472,6 +534,7 @@ parole_gst_draw_logo (ParoleGst *gst)
allocation->height,
GDK_RGB_DITHER_NONE,
0, 0);
+#endif
gdk_window_end_paint (gtk_widget_get_window(GTK_WIDGET (gst)));
@@ -536,7 +599,7 @@ parole_gst_set_video_overlay (ParoleGst *gst)
GDK_WINDOW_XWINDOW ( gtk_widget_get_window(GTK_WIDGET (gst)) ));
#else
gst_x_overlay_set_xwindow_id (GST_X_OVERLAY (video_sink),
- GDK_WINDOW_XWINDOW ( gtk_widget_get_window(GTK_WIDGET (gst)) ));
+ GDK_WINDOW_XID ( gtk_widget_get_window(GTK_WIDGET (gst)) ));
#endif
gst_object_unref (video_sink);
@@ -1725,7 +1788,11 @@ parole_gst_bus_event (GstBus *bus, GstMessage *msg, gpointer data)
gtk_widget_get_realized (GTK_WIDGET (gst)))
{
gst_install_plugins_context_set_xid (ctx,
- GDK_WINDOW_XID (gtk_widget_get_window(GTK_WIDGET (gst))));
+#if GTK_CHECK_VERSION(3, 0, 0)
+ gdk_x11_window_get_xid (gtk_widget_get_window(GTK_WIDGET (gst))));
+#else
+ gdk_x11_drawable_get_xid (gtk_widget_get_window(GTK_WIDGET (gst))));
+#endif
}
#endif /* GDK_WINDOWING_X11 */
@@ -2312,7 +2379,11 @@ parole_gst_class_init (ParoleGstClass *klass)
widget_class->realize = parole_gst_realize;
widget_class->show = parole_gst_show;
widget_class->size_allocate = parole_gst_size_allocate;
+#if GTK_CHECK_VERSION(3, 0, 0)
+ widget_class->draw = parole_gst_expose_event;
+#else
widget_class->expose_event = parole_gst_expose_event;
+#endif
widget_class->motion_notify_event = parole_gst_motion_notify_event;
widget_class->button_press_event = parole_gst_button_press_event;
widget_class->button_release_event = parole_gst_button_release_event;
diff --git a/src/parole-button.c b/src/parole-button.c
index 8a281a1..91290b5 100644
--- a/src/parole-button.c
+++ b/src/parole-button.c
@@ -155,9 +155,15 @@ parole_button_grab_keystring (ParoleButton *button, guint keycode)
gdk_error_trap_push ();
+#if GTK_CHECK_VERSION(3, 0, 0)
ret = XGrabKey (GDK_DISPLAY_XDISPLAY(display), keycode, modmask,
- GDK_WINDOW_XID (button->priv->window), True,
+ gdk_x11_window_get_xid (button->priv->window), True,
GrabModeAsync, GrabModeAsync);
+#else
+ ret = XGrabKey (GDK_DISPLAY_XDISPLAY(display), keycode, modmask,
+ gdk_x11_drawable_get_xid (button->priv->window), True,
+ GrabModeAsync, GrabModeAsync);
+#endif
if ( ret == BadAccess )
{
@@ -167,7 +173,11 @@ parole_button_grab_keystring (ParoleButton *button, guint keycode)
}
ret = XGrabKey (GDK_DISPLAY_XDISPLAY(display), keycode, LockMask | modmask,
- GDK_WINDOW_XID (button->priv->window), True,
+#if GTK_CHECK_VERSION(3, 0, 0)
+ gdk_x11_window_get_xid (button->priv->window), True,
+#else
+ gdk_x11_drawable_get_xid (button->priv->window), True,
+#endif
GrabModeAsync, GrabModeAsync);
if (ret == BadAccess)
@@ -178,7 +188,11 @@ parole_button_grab_keystring (ParoleButton *button, guint keycode)
}
gdk_flush ();
+#if GTK_CHECK_VERSION(3, 0, 0)
+ gdk_error_trap_pop_ignored ();
+#else
gdk_error_trap_pop ();
+#endif
return TRUE;
}
diff --git a/src/parole-conf-dialog.c b/src/parole-conf-dialog.c
index 38e27f0..6ac2ab1 100644
--- a/src/parole-conf-dialog.c
+++ b/src/parole-conf-dialog.c
@@ -249,7 +249,17 @@ void parole_conf_dialog_vis_plugin_changed_cb (GtkComboBox *widget, ParoleConfD
gchar *active;
GstElementFactory *f;
+#if GTK_CHECK_VERSION(3, 0, 0)
+ GtkTreeIter iter;
+ gchar *text = NULL;
+
+ GtkTreeModel *model = gtk_combo_box_get_model(widget);
+
+ if (gtk_combo_box_get_active_iter (widget, &iter))
+ gtk_tree_model_get (model, &iter, 0, &active, -1);
+#else
active = gtk_combo_box_get_active_text (widget);
+#endif
f = g_hash_table_lookup (self->priv->vis_plugins, active);
@@ -329,7 +339,11 @@ parole_conf_dialog_init (ParoleConfDialog *self)
static void
parole_conf_dialog_add_vis_plugins (gpointer key, gpointer value, GtkWidget *combox)
{
+#if GTK_CHECK_VERSION(3, 0, 0)
+ gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combox), (const gchar *) key);
+#else
gtk_combo_box_append_text (GTK_COMBO_BOX (combox), (const gchar *) key);
+#endif
}
/* Set the combobox to the default visualisation plugin */
diff --git a/src/parole-disc.c b/src/parole-disc.c
index 04420b9..2a40e6a 100644
--- a/src/parole-disc.c
+++ b/src/parole-disc.c
@@ -479,7 +479,7 @@ parole_disc_get_drives (ParoleDisc *disc)
* needed, perform it when the menu item is activated.
**/
static void
-parole_disc_select_cb (GtkItem *item, ParoleDisc *disc)
+parole_disc_select_cb (GtkMenuItem *item, ParoleDisc *disc)
{
if ( disc->priv->needs_update )
parole_disc_get_drives (disc);
diff --git a/src/parole-medialist.c b/src/parole-medialist.c
index 4b282dc..0925572 100644
--- a/src/parole-medialist.c
+++ b/src/parole-medialist.c
@@ -504,7 +504,11 @@ void parole_media_list_drag_data_received_cb (GtkWidget *widget,
gboolean parole_media_list_key_press (GtkWidget *widget, GdkEventKey *ev, ParoleMediaList *list)
{
+#if GTK_CHECK_VERSION(3, 0, 0)
+ if ( ev->keyval == GDK_KEY_Delete )
+#else
if ( ev->keyval == GDK_Delete )
+#endif
{
parole_media_list_remove_clicked_cb (NULL, list);
return TRUE;
diff --git a/src/parole-player.c b/src/parole-player.c
index b1c9520..40af00b 100644
--- a/src/parole-player.c
+++ b/src/parole-player.c
@@ -155,7 +155,7 @@ gboolean parole_player_window_state_event (GtkWidget *widget,
GdkEventWindowState *event,
ParolePlayer *player);
-void parole_player_destroy_cb (GtkObject *window,
+void parole_player_destroy_cb (GObject *window,
ParolePlayer *player);
gboolean parole_player_delete_event_cb (GtkWidget *widget,
@@ -894,7 +894,7 @@ parole_player_show_audiobox (ParolePlayer *player)
!gst_get_has_vis ( PAROLE_GST(player->priv->gst) ) )
{
gtk_widget_show(player->priv->audiobox);
- gtk_widget_hide_all(player->priv->eventbox_output);
+ gtk_widget_hide(player->priv->eventbox_output);
}
else
{
@@ -1843,7 +1843,7 @@ gboolean parole_player_delete_event_cb (GtkWidget *widget, GdkEvent *ev, ParoleP
}
void
-parole_player_destroy_cb (GtkObject *window, ParolePlayer *player)
+parole_player_destroy_cb (GObject *window, ParolePlayer *player)
{
}
@@ -2112,6 +2112,11 @@ static gboolean parole_player_hide_fs_window (gpointer data)
GdkWindow *gdkwindow;
gint x, y, w, h;
+#if GTK_CHECK_VERSION (3, 0, 0)
+ GdkDevice *dev;
+ GdkDeviceManager *devmgr;
+#endif
+
player = PAROLE_PLAYER (data);
if ( gtk_widget_get_visible (player->priv->fs_window) )
@@ -2122,7 +2127,14 @@ static gboolean parole_player_hide_fs_window (gpointer data)
h = allocation->height;
g_free(allocation);
+#if GTK_CHECK_VERSION (3, 0, 0)
+ devmgr = gdk_display_get_device_manager(gtk_widget_get_display(GTK_WIDGET(player->priv->fs_window)));
+ dev = gdk_device_manager_get_client_pointer(devmgr);
+ gdk_window_get_device_position( gtk_widget_get_window(GTK_WIDGET(player->priv->fs_window)),
+ dev, &x, &y, NULL);
+#else
gtk_widget_get_pointer (player->priv->fs_window, &x, &y);
+#endif
if ((x >= 0) && (x <= w) && (y >= 0) && (y <= h))
return TRUE;
@@ -2475,18 +2487,33 @@ parole_player_handle_key_press (GdkEventKey *ev, ParolePlayer *player)
switch (ev->keyval)
{
- case GDK_f:
+#if GTK_CHECK_VERSION(3, 0, 0)
+ case GDK_KEY_f:
+ case GDK_KEY_F:
+#else
+ case GDK_f:
case GDK_F:
+#endif
if ( player->priv->embedded != TRUE ) parole_player_full_screen_menu_item_activate (player);
ret_val = TRUE;
break;
- case GDK_space:
+#if GTK_CHECK_VERSION(3, 0, 0)
+ case GDK_KEY_space:
+ case GDK_KEY_p:
+ case GDK_KEY_P:
+#else
+ case GDK_space:
case GDK_p:
case GDK_P:
+#endif
parole_player_play_pause_clicked (NULL, player);
ret_val = TRUE;
break;
+#if GTK_CHECK_VERSION(3, 0, 0)
+ case GDK_KEY_Right:
+#else
case GDK_Right:
+#endif
/* Media seekable ?*/
if ( gtk_widget_get_sensitive (player->priv->range) )
{
@@ -2495,7 +2522,11 @@ parole_player_handle_key_press (GdkEventKey *ev, ParolePlayer *player)
}
ret_val = TRUE;
break;
- case GDK_Left:
+#if GTK_CHECK_VERSION(3, 0, 0)
+ case GDK_KEY_Left:
+#else
+ case GDK_Left:
+#endif
if ( gtk_widget_get_sensitive (player->priv->range) )
{
if (ev->state & GDK_CONTROL_MASK) parole_player_seekb_cb (NULL, player, seek_medium);
@@ -2503,22 +2534,39 @@ parole_player_handle_key_press (GdkEventKey *ev, ParolePlayer *player)
}
ret_val = TRUE;
break;
- case GDK_Page_Down:
+#if GTK_CHECK_VERSION(3, 0, 0)
+ case GDK_KEY_Page_Down:
+#else
+ case GDK_Page_Down:
+#endif
if ( gtk_widget_get_sensitive (player->priv->range) )
parole_player_seekb_cb (NULL, player, seek_long);
ret_val = TRUE;
break;
- case GDK_Page_Up:
+#if GTK_CHECK_VERSION(3, 0, 0)
+ case GDK_KEY_Page_Up:
+#else
+ case GDK_Page_Up:
+#endif
if ( gtk_widget_get_sensitive (player->priv->range) )
parole_player_seekf_cb (NULL, player, seek_long);
ret_val = TRUE;
break;
+#if GTK_CHECK_VERSION(3, 0, 0)
+ case GDK_KEY_s:
+ case GDK_KEY_S:
+#else
case GDK_s:
case GDK_S:
+#endif
parole_player_stop_clicked (NULL, player);
ret_val = TRUE;
break;
- case GDK_Escape:
+#if GTK_CHECK_VERSION(3, 0, 0)
+ case GDK_KEY_Escape:
+#else
+ case GDK_Escape:
+#endif
parole_player_full_screen (player, FALSE);
break;
#ifdef HAVE_XF86_KEYSYM
@@ -2532,8 +2580,13 @@ parole_player_handle_key_press (GdkEventKey *ev, ParolePlayer *player)
* Pass these to the media list and tell it to
* grab the focus
*/
- case GDK_Up:
+#if GTK_CHECK_VERSION(3, 0, 0)
+ case GDK_KEY_Up:
+ case GDK_KEY_Down:
+#else
+ case GDK_Up:
case GDK_Down:
+#endif
if (!player->priv->full_screen && gtk_widget_get_visible(player->priv->playlist_nt))
parole_media_list_grab_focus (player->priv->list);
break;
@@ -2555,7 +2608,11 @@ parole_player_key_press (GtkWidget *widget, GdkEventKey *ev, ParolePlayer *playe
switch (ev->keyval)
{
- case GDK_F11:
+#if GTK_CHECK_VERSION(3, 0, 0)
+ case GDK_KEY_F11:
+#else
+ case GDK_F11:
+#endif
if ( player->priv->embedded != TRUE ) parole_player_full_screen_menu_item_activate (player);
return TRUE;
#ifdef HAVE_XF86_KEYSYM
@@ -2788,7 +2845,11 @@ parole_player_set_wm_opacity_hint (GtkWidget *widget)
gdkwindow = gtk_widget_get_window (widget);
- XChangeProperty (xdisplay, GDK_WINDOW_XID (gdkwindow),
+#if GTK_CHECK_VERSION(3, 0, 0)
+ XChangeProperty (xdisplay, gdk_x11_window_get_xid (gdkwindow),
+#else
+ XChangeProperty (xdisplay, gdk_x11_drawable_get_xid (gdkwindow),
+#endif
atom, XA_CARDINAL,
32, PropModeAppend,
(guchar *) &mode,
@@ -3005,7 +3066,11 @@ parole_player_init (ParolePlayer *player)
/* Audio box */
hbox_audiobox = GTK_WIDGET (gtk_builder_get_object (builder, "hbox_audiobox"));
+#if GTK_CHECK_VERSION(3, 0, 0)
+ g_signal_connect(hbox_audiobox, "draw",
+#else
g_signal_connect(hbox_audiobox, "expose-event",
+#endif
G_CALLBACK(parole_audiobox_expose_event), player);
gdk_color_parse("black", &background);
More information about the Xfce4-commits
mailing list