mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
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:
parent
3f1c2ae26a
commit
5536fb175d
@ -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. */
|
||||
|
Loading…
Reference in New Issue
Block a user