diff src/gui_beval.c @ 10390:6c8a4d21b873 v8.0.0089

commit https://github.com/vim/vim/commit/a859f04b4db651860c07db3587f29906517c552b Author: Bram Moolenaar <Bram@vim.org> Date: Thu Nov 17 19:11:55 2016 +0100 patch 8.0.0089 Problem: Various problems with GTK 3.22.2. Solution: Fix the problems, add #ifdefs. (Kazunobu Kuriyama)
author Christian Brabandt <cb@256bit.org>
date Thu, 17 Nov 2016 19:15:04 +0100
parents 66f1b5bf3fa6
children 778c10516955
line wrap: on
line diff
--- a/src/gui_beval.c
+++ b/src/gui_beval.c
@@ -1178,12 +1178,23 @@ drawBalloon(BalloonEval *beval)
 	int		y_offset = EVAL_OFFSET_Y;
 	PangoLayout	*layout;
 # ifdef HAVE_GTK_MULTIHEAD
+#  if GTK_CHECK_VERSION(3,22,2)
+	GdkRectangle rect;
+	GdkMonitor * const mon = gdk_display_get_monitor_at_window(
+		gtk_widget_get_display(beval->balloonShell),
+		gtk_widget_get_window(beval->balloonShell));
+	gdk_monitor_get_geometry(mon, &rect);
+
+	screen_w = rect.width;
+	screen_h = rect.height;
+#  else
 	GdkScreen	*screen;
 
 	screen = gtk_widget_get_screen(beval->target);
 	gtk_window_set_screen(GTK_WINDOW(beval->balloonShell), screen);
 	screen_w = gdk_screen_get_width(screen);
 	screen_h = gdk_screen_get_height(screen);
+#  endif
 # else
 	screen_w = gdk_screen_width();
 	screen_h = gdk_screen_height();