Replace Gtk3.20 deprecated functions in gnc-cell-renderer-popup.c

This still needs a couple of changes but it still works
This commit is contained in:
Robert Fewell 2017-07-09 09:40:31 +01:00 committed by Geert Janssens
parent 3f1c2ae26a
commit 5536fb175d

View File

@ -216,20 +216,45 @@ gcrp_grab_on_window (GdkWindow *window,
guint32 activate_time)
{
GdkDisplay *display = gdk_display_get_default ();
GdkDeviceManager *dm = gdk_display_get_device_manager (display);
GdkDevice *device = gdk_device_manager_get_client_pointer (dm);
#if GTK_CHECK_VERSION(3,20,0)
GdkSeat *seat;
#else
GdkDeviceManager *device_manager;
#endif
GdkDevice *device;
GdkEvent *event = gtk_get_current_event ();
#if GTK_CHECK_VERSION(3,20,0)
seat = gdk_display_get_default_seat (display);
device = gdk_seat_get_pointer (seat);
#else
device_manager = gdk_display_get_device_manager (display);
device = gdk_device_manager_get_client_pointer (device_manager);
#endif
#if GTK_CHECK_VERSION(3,22,0)
if ((gdk_seat_grab (seat, window, GDK_SEAT_CAPABILITY_POINTER, TRUE, NULL,
event, NULL, NULL) == GDK_GRAB_SUCCESS )) {
if (gdk_seat_grab (seat, window, GDK_SEAT_CAPABILITY_KEYBOARD, TRUE, NULL,
event, NULL, NULL) == GDK_GRAB_SUCCESS )
#else
if ((gdk_device_grab (device, window, GDK_OWNERSHIP_WINDOW, TRUE,
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
GDK_POINTER_MOTION_MASK,
NULL, activate_time) == 0)) {
NULL, activate_time) == GDK_GRAB_SUCCESS)) {
if (gdk_device_grab (device, window, GDK_OWNERSHIP_WINDOW, TRUE,
GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK,
NULL, activate_time) == 0)
NULL, activate_time) == GDK_GRAB_SUCCESS)
#endif
return TRUE;
else {
#if GTK_CHECK_VERSION(3,22,0)
gdk_seat_ungrab (seat);
#else
gdk_device_ungrab (device, activate_time);
#endif
return FALSE;
}
}
@ -244,6 +269,11 @@ gcrp_show_popup (GncCellRendererPopup *cell,
gint x2,
gint y2)
{
#if GTK_CHECK_VERSION(3,22,0)
GdkWindow *win;
GdkMonitor *mon;
GdkRectangle monitor_size;
#endif
GtkAllocation alloc;
gint x, y;
gint screen_height, screen_width;
@ -265,10 +295,19 @@ gcrp_show_popup (GncCellRendererPopup *cell,
y = y2;
button_height = y2 - y1;
screen_height = gdk_screen_height () - y;
screen_width = gdk_screen_width ();
#if GTK_CHECK_VERSION(3,22,0)
win = gdk_screen_get_root_window (gtk_window_get_screen (GTK_WINDOW (cell->popup_window)));
mon = gdk_display_get_monitor_at_window (gtk_widget_get_display (GTK_WIDGET(cell->popup_window)), win);
gdk_monitor_get_geometry (mon, &monitor_size);
screen_width = monitor_size.width;
screen_height = monitor_size.height - y;
#else
screen_width = gdk_screen_width();
screen_height = gdk_screen_height() - y;
#endif
/* Check if it fits in the available height. */
if (alloc.height > screen_height) {
/* It doesn't fit, so we see if we have the minimum space needed. */