Re: Patch 8.0.1084
Kazunobu Kuriyama wrote: > 2017-09-10 1:45 GMT+09:00 Bram Moolenaar : > > > > > Patch 8.0.1084 > > Problem:GTK build has compiler warnings. (Christian Brabandt) > > Solution: Get screen size with a different function. (Ken Takata, > > Yasuhiro > > Matsumoto) > > Files: src/mbyte.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro, > > src/gui_beval.c > > > > Hi Bram, > > The GTK+ 3 GUI won't compile with this patch since the first parameter of > the function gui_gtk_get_screen_size_of_win() butts a local variable of the > same name. I hope the attached patch will fix it. Thanks! -- >From "know your smileys": [:-) Frankenstein's monster /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net \\\ ///sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org/// \\\help me help AIDS victims -- http://ICCF-Holland.org/// -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Patch 8.0.1084
2017-09-10 1:45 GMT+09:00 Bram Moolenaar : > > Patch 8.0.1084 > Problem:GTK build has compiler warnings. (Christian Brabandt) > Solution: Get screen size with a different function. (Ken Takata, > Yasuhiro > Matsumoto) > Files: src/mbyte.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro, > src/gui_beval.c > Hi Bram, The GTK+ 3 GUI won't compile with this patch since the first parameter of the function gui_gtk_get_screen_size_of_win() butts a local variable of the same name. I hope the attached patch will fix it. Regards, Kazunobu > -- > The primary purpose of the DATA statement is to give names to constants; > instead of referring to pi as 3.141592653589793 at every appearance, the > variable PI can be given that value with a DATA statement and used instead > of the longer form of the constant. This also simplifies modifying the > program, should the value of pi change. > -- FORTRAN manual for Xerox Computers > > /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net > \\\ > ///sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ > \\\ > \\\ an exciting new programming language -- http://www.Zimbu.org > /// > \\\help me help AIDS victims -- http://ICCF-Holland.org > /// > > -- > -- > You received this message from the "vim_dev" maillist. > Do not top-post! Type your reply below the text you are replying to. > For more information, visit http://www.vim.org/maillist.php > > --- > You received this message because you are subscribed to the Google Groups > "vim_dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to vim_dev+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c index 510986549..9225375a1 100644 --- a/src/gui_gtk_x11.c +++ b/src/gui_gtk_x11.c @@ -4942,11 +4942,11 @@ gui_mch_set_shellsize(int width, int height, } void -gui_gtk_get_screen_size_of_win(GtkWidget *win, int *width, int *height) +gui_gtk_get_screen_size_of_win(GtkWidget *wid, int *width, int *height) { #if GTK_CHECK_VERSION(3,22,0) -GdkDisplay *dpy = gtk_widget_get_display(win); -GdkWindow *win = gtk_widget_get_window(win); +GdkDisplay *dpy = gtk_widget_get_display(wid); +GdkWindow *win = gtk_widget_get_window(wid); GdkMonitor *monitor = gdk_display_get_monitor_at_window(dpy, win); GdkRectangle geometry; @@ -4956,8 +4956,8 @@ gui_gtk_get_screen_size_of_win(GtkWidget *win, int *width, int *height) #else GdkScreen* screen; -if (win != NULL && gtk_widget_has_screen(win)) - screen = gtk_widget_get_screen(win); +if (wid != NULL && gtk_widget_has_screen(wid)) + screen = gtk_widget_get_screen(wid); else screen = gdk_screen_get_default(); *width = gdk_screen_get_width(screen);
Patch 8.0.1084
Patch 8.0.1084 Problem:GTK build has compiler warnings. (Christian Brabandt) Solution: Get screen size with a different function. (Ken Takata, Yasuhiro Matsumoto) Files: src/mbyte.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro, src/gui_beval.c *** ../vim-8.0.1083/src/mbyte.c 2017-09-05 22:20:42.624382868 +0200 --- src/mbyte.c 2017-09-09 18:40:32.928136185 +0200 *** *** 4871,4878 if (preedit_window == NULL) return; ! sw = gdk_screen_get_width(gtk_widget_get_screen(preedit_window)); ! sh = gdk_screen_get_height(gtk_widget_get_screen(preedit_window)); #if GTK_CHECK_VERSION(3,0,0) gdk_window_get_origin(gtk_widget_get_window(gui.drawarea), &x, &y); #else --- 4871,4877 if (preedit_window == NULL) return; ! gui_gtk_get_screen_size_of_win(preedit_window, &sw, &sh); #if GTK_CHECK_VERSION(3,0,0) gdk_window_get_origin(gtk_widget_get_window(gui.drawarea), &x, &y); #else *** ../vim-8.0.1083/src/gui_gtk_x11.c 2017-09-02 18:33:52.449554495 +0200 --- src/gui_gtk_x11.c 2017-09-09 18:36:59.113559497 +0200 *** *** 4941,4946 --- 4941,4969 gui_mch_update(); } + void + gui_gtk_get_screen_size_of_win(GtkWidget *win, int *width, int *height) + { + #if GTK_CHECK_VERSION(3,22,0) + GdkDisplay *dpy = gtk_widget_get_display(win); + GdkWindow *win = gtk_widget_get_window(win); + GdkMonitor *monitor = gdk_display_get_monitor_at_window(dpy, win); + GdkRectangle geometry; + + gdk_monitor_get_geometry(monitor, &geometry); + *width = geometry.width; + *height = geometry.height; + #else + GdkScreen* screen; + + if (win != NULL && gtk_widget_has_screen(win)) + screen = gtk_widget_get_screen(win); + else + screen = gdk_screen_get_default(); + *width = gdk_screen_get_width(screen); + *height = gdk_screen_get_height(screen); + #endif + } /* * The screen size is used to make sure the initial window doesn't get bigger *** *** 4950,4979 void gui_mch_get_screen_dimensions(int *screen_w, int *screen_h) { ! #if GTK_CHECK_VERSION(3,22,2) ! GdkRectangle rect; ! GdkMonitor * const mon = gdk_display_get_monitor_at_window( ! gtk_widget_get_display(gui.mainwin), ! gtk_widget_get_window(gui.mainwin)); ! gdk_monitor_get_geometry(mon, &rect); - *screen_w = rect.width; /* Subtract 'guiheadroom' from the height to allow some room for the * window manager (task list and window title bar). */ ! *screen_h = rect.height - p_ghr; ! #else ! GdkScreen* screen; ! ! if (gui.mainwin != NULL && gtk_widget_has_screen(gui.mainwin)) ! screen = gtk_widget_get_screen(gui.mainwin); ! else ! screen = gdk_screen_get_default(); ! ! *screen_w = gdk_screen_get_width(screen); ! /* Subtract 'guiheadroom' from the height to allow some room for the ! * window manager (task list and window title bar). */ ! *screen_h = gdk_screen_get_height(screen) - p_ghr; ! #endif /* * FIXME: dirty trick: Because the gui_get_base_height() doesn't include --- 4973,4983 void gui_mch_get_screen_dimensions(int *screen_w, int *screen_h) { ! gui_gtk_get_screen_size_of_win(gui.mainwin, screen_w, screen_h); /* Subtract 'guiheadroom' from the height to allow some room for the * window manager (task list and window title bar). */ ! *screen_h -= p_ghr; /* * FIXME: dirty trick: Because the gui_get_base_height() doesn't include *** ../vim-8.0.1083/src/proto/gui_gtk_x11.pro 2017-07-23 16:45:05.669761183 +0200 --- src/proto/gui_gtk_x11.pro 2017-09-09 18:40:29.664157884 +0200 *** *** 25,30 --- 25,31 void gui_mch_unmaximize(void); void gui_mch_newfont(void); void gui_mch_set_shellsize(int width, int height, int min_width, int min_height, int base_width, int base_height, int direction); + void gui_gtk_get_screen_size_of_win(GtkWidget *win, int *width, int *height); void gui_mch_get_screen_dimensions(int *screen_w, int *screen_h); void gui_mch_settitle(char_u *title, char_u *icon); void gui_mch_enable_menu(int showit); *** ../vim-8.0.1083/src/gui_beval.c 2017-06-05 15:07:04.944381581 +0200 --- src/gui_beval.c 2017-09-09 18:40:41.348080207 +0200 *** *** 1177,1199 int x_offset = EVAL_OFFSET_X; int y_offset = EVAL_OFFSET_Y; PangoLayout *layout; - # 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; ! scre