|
Karsten Hopp |
5f528d |
To: vim-dev@vim.org
|
|
Karsten Hopp |
5f528d |
Subject: Patch 7.2.264
|
|
Karsten Hopp |
5f528d |
Fcc: outbox
|
|
Karsten Hopp |
5f528d |
From: Bram Moolenaar <Bram@moolenaar.net>
|
|
Karsten Hopp |
5f528d |
Mime-Version: 1.0
|
|
Karsten Hopp |
5f528d |
Content-Type: text/plain; charset=UTF-8
|
|
Karsten Hopp |
5f528d |
Content-Transfer-Encoding: 8bit
|
|
Karsten Hopp |
5f528d |
------------
|
|
Karsten Hopp |
5f528d |
|
|
Karsten Hopp |
5f528d |
Patch 7.2.264
|
|
Karsten Hopp |
5f528d |
Problem: GTK2: When the Vim window is maximized setting 'columns' or
|
|
Karsten Hopp |
5f528d |
'lines' doesn't work.
|
|
Karsten Hopp |
5f528d |
Solution: Unmaximize the window before setting the size. (Vitaly Minko)
|
|
Karsten Hopp |
5f528d |
Files: src/gui.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro
|
|
Karsten Hopp |
5f528d |
|
|
Karsten Hopp |
5f528d |
|
|
Karsten Hopp |
5f528d |
*** ../vim-7.2.263/src/gui.c 2009-07-29 11:10:31.000000000 +0200
|
|
Karsten Hopp |
5f528d |
--- src/gui.c 2009-09-23 16:28:09.000000000 +0200
|
|
Karsten Hopp |
5f528d |
***************
|
|
Karsten Hopp |
5f528d |
*** 1386,1391 ****
|
|
Karsten Hopp |
5f528d |
--- 1386,1395 ----
|
|
Karsten Hopp |
5f528d |
int min_height;
|
|
Karsten Hopp |
5f528d |
int screen_w;
|
|
Karsten Hopp |
5f528d |
int screen_h;
|
|
Karsten Hopp |
5f528d |
+ #ifdef HAVE_GTK2
|
|
Karsten Hopp |
5f528d |
+ int un_maximize = mustset;
|
|
Karsten Hopp |
5f528d |
+ int did_adjust = 0;
|
|
Karsten Hopp |
5f528d |
+ #endif
|
|
Karsten Hopp |
5f528d |
|
|
Karsten Hopp |
5f528d |
if (!gui.shell_created)
|
|
Karsten Hopp |
5f528d |
return;
|
|
Karsten Hopp |
5f528d |
***************
|
|
Karsten Hopp |
5f528d |
*** 1425,1446 ****
|
|
Karsten Hopp |
5f528d |
if (Columns < MIN_COLUMNS)
|
|
Karsten Hopp |
5f528d |
Columns = MIN_COLUMNS;
|
|
Karsten Hopp |
5f528d |
width = Columns * gui.char_width + base_width;
|
|
Karsten Hopp |
5f528d |
}
|
|
Karsten Hopp |
5f528d |
if ((direction & RESIZE_VERT) && height > screen_h)
|
|
Karsten Hopp |
5f528d |
{
|
|
Karsten Hopp |
5f528d |
Rows = (screen_h - base_height) / gui.char_height;
|
|
Karsten Hopp |
5f528d |
check_shellsize();
|
|
Karsten Hopp |
5f528d |
height = Rows * gui.char_height + base_height;
|
|
Karsten Hopp |
5f528d |
}
|
|
Karsten Hopp |
5f528d |
}
|
|
Karsten Hopp |
5f528d |
gui.num_cols = Columns;
|
|
Karsten Hopp |
5f528d |
gui.num_rows = Rows;
|
|
Karsten Hopp |
5f528d |
|
|
Karsten Hopp |
5f528d |
min_width = base_width + MIN_COLUMNS * gui.char_width;
|
|
Karsten Hopp |
5f528d |
min_height = base_height + MIN_LINES * gui.char_height;
|
|
Karsten Hopp |
5f528d |
! # ifdef FEAT_WINDOWS
|
|
Karsten Hopp |
5f528d |
min_height += tabline_height() * gui.char_height;
|
|
Karsten Hopp |
5f528d |
! # endif
|
|
Karsten Hopp |
5f528d |
|
|
Karsten Hopp |
5f528d |
gui_mch_set_shellsize(width, height, min_width, min_height,
|
|
Karsten Hopp |
5f528d |
base_width, base_height, direction);
|
|
Karsten Hopp |
5f528d |
--- 1429,1475 ----
|
|
Karsten Hopp |
5f528d |
if (Columns < MIN_COLUMNS)
|
|
Karsten Hopp |
5f528d |
Columns = MIN_COLUMNS;
|
|
Karsten Hopp |
5f528d |
width = Columns * gui.char_width + base_width;
|
|
Karsten Hopp |
5f528d |
+ #ifdef HAVE_GTK2
|
|
Karsten Hopp |
5f528d |
+ ++did_adjust;
|
|
Karsten Hopp |
5f528d |
+ #endif
|
|
Karsten Hopp |
5f528d |
}
|
|
Karsten Hopp |
5f528d |
if ((direction & RESIZE_VERT) && height > screen_h)
|
|
Karsten Hopp |
5f528d |
{
|
|
Karsten Hopp |
5f528d |
Rows = (screen_h - base_height) / gui.char_height;
|
|
Karsten Hopp |
5f528d |
check_shellsize();
|
|
Karsten Hopp |
5f528d |
height = Rows * gui.char_height + base_height;
|
|
Karsten Hopp |
5f528d |
+ #ifdef HAVE_GTK2
|
|
Karsten Hopp |
5f528d |
+ ++did_adjust;
|
|
Karsten Hopp |
5f528d |
+ #endif
|
|
Karsten Hopp |
5f528d |
}
|
|
Karsten Hopp |
5f528d |
+ #ifdef HAVE_GTK2
|
|
Karsten Hopp |
5f528d |
+ if (did_adjust == 2 || (width + gui.char_width >= screen_w
|
|
Karsten Hopp |
5f528d |
+ && height + gui.char_height >= screen_h))
|
|
Karsten Hopp |
5f528d |
+ /* don't unmaximize if at maximum size */
|
|
Karsten Hopp |
5f528d |
+ un_maximize = FALSE;
|
|
Karsten Hopp |
5f528d |
+ #endif
|
|
Karsten Hopp |
5f528d |
}
|
|
Karsten Hopp |
5f528d |
gui.num_cols = Columns;
|
|
Karsten Hopp |
5f528d |
gui.num_rows = Rows;
|
|
Karsten Hopp |
5f528d |
|
|
Karsten Hopp |
5f528d |
min_width = base_width + MIN_COLUMNS * gui.char_width;
|
|
Karsten Hopp |
5f528d |
min_height = base_height + MIN_LINES * gui.char_height;
|
|
Karsten Hopp |
5f528d |
! #ifdef FEAT_WINDOWS
|
|
Karsten Hopp |
5f528d |
min_height += tabline_height() * gui.char_height;
|
|
Karsten Hopp |
5f528d |
! #endif
|
|
Karsten Hopp |
5f528d |
!
|
|
Karsten Hopp |
5f528d |
! #ifdef HAVE_GTK2
|
|
Karsten Hopp |
5f528d |
! if (un_maximize)
|
|
Karsten Hopp |
5f528d |
! {
|
|
Karsten Hopp |
5f528d |
! /* If the window size is smaller than the screen unmaximize the
|
|
Karsten Hopp |
5f528d |
! * window, otherwise resizing won't work. */
|
|
Karsten Hopp |
5f528d |
! gui_mch_get_screen_dimensions(&screen_w, &screen_h);
|
|
Karsten Hopp |
5f528d |
! if ((width + gui.char_width < screen_w
|
|
Karsten Hopp |
5f528d |
! || height + gui.char_height * 2 < screen_h)
|
|
Karsten Hopp |
5f528d |
! && gui_mch_maximized())
|
|
Karsten Hopp |
5f528d |
! gui_mch_unmaximize();
|
|
Karsten Hopp |
5f528d |
! }
|
|
Karsten Hopp |
5f528d |
! #endif
|
|
Karsten Hopp |
5f528d |
|
|
Karsten Hopp |
5f528d |
gui_mch_set_shellsize(width, height, min_width, min_height,
|
|
Karsten Hopp |
5f528d |
base_width, base_height, direction);
|
|
Karsten Hopp |
5f528d |
*** ../vim-7.2.263/src/gui_gtk_x11.c 2009-09-23 17:35:17.000000000 +0200
|
|
Karsten Hopp |
5f528d |
--- src/gui_gtk_x11.c 2009-09-23 15:43:52.000000000 +0200
|
|
Karsten Hopp |
5f528d |
***************
|
|
Karsten Hopp |
5f528d |
*** 4376,4381 ****
|
|
Karsten Hopp |
5f528d |
--- 4376,4404 ----
|
|
Karsten Hopp |
5f528d |
#endif
|
|
Karsten Hopp |
5f528d |
#endif /* HAVE_GTK2 */
|
|
Karsten Hopp |
5f528d |
|
|
Karsten Hopp |
5f528d |
+ #if defined(HAVE_GTK2) || defined(PROTO)
|
|
Karsten Hopp |
5f528d |
+ /*
|
|
Karsten Hopp |
5f528d |
+ * Return TRUE if the main window is maximized.
|
|
Karsten Hopp |
5f528d |
+ */
|
|
Karsten Hopp |
5f528d |
+ int
|
|
Karsten Hopp |
5f528d |
+ gui_mch_maximized()
|
|
Karsten Hopp |
5f528d |
+ {
|
|
Karsten Hopp |
5f528d |
+ return (gui.mainwin != NULL && gui.mainwin->window != NULL
|
|
Karsten Hopp |
5f528d |
+ && (gdk_window_get_state(gui.mainwin->window)
|
|
Karsten Hopp |
5f528d |
+ & GDK_WINDOW_STATE_MAXIMIZED));
|
|
Karsten Hopp |
5f528d |
+ }
|
|
Karsten Hopp |
5f528d |
+
|
|
Karsten Hopp |
5f528d |
+ /*
|
|
Karsten Hopp |
5f528d |
+ * Unmaximize the main window
|
|
Karsten Hopp |
5f528d |
+ */
|
|
Karsten Hopp |
5f528d |
+ void
|
|
Karsten Hopp |
5f528d |
+ gui_mch_unmaximize()
|
|
Karsten Hopp |
5f528d |
+ {
|
|
Karsten Hopp |
5f528d |
+ if (gui.mainwin != NULL)
|
|
Karsten Hopp |
5f528d |
+ gtk_window_unmaximize(GTK_WINDOW(gui.mainwin));
|
|
Karsten Hopp |
5f528d |
+ }
|
|
Karsten Hopp |
5f528d |
+ #endif
|
|
Karsten Hopp |
5f528d |
+
|
|
Karsten Hopp |
5f528d |
/*
|
|
Karsten Hopp |
5f528d |
* Set the windows size.
|
|
Karsten Hopp |
5f528d |
*/
|
|
Karsten Hopp |
5f528d |
*** ../vim-7.2.263/src/proto/gui_gtk_x11.pro 2007-05-05 19:18:54.000000000 +0200
|
|
Karsten Hopp |
5f528d |
--- src/proto/gui_gtk_x11.pro 2009-09-23 15:43:45.000000000 +0200
|
|
Karsten Hopp |
5f528d |
***************
|
|
Karsten Hopp |
5f528d |
*** 16,21 ****
|
|
Karsten Hopp |
5f528d |
--- 16,23 ----
|
|
Karsten Hopp |
5f528d |
void gui_mch_exit __ARGS((int rc));
|
|
Karsten Hopp |
5f528d |
int gui_mch_get_winpos __ARGS((int *x, int *y));
|
|
Karsten Hopp |
5f528d |
void gui_mch_set_winpos __ARGS((int x, int y));
|
|
Karsten Hopp |
5f528d |
+ int gui_mch_maximized __ARGS((void));
|
|
Karsten Hopp |
5f528d |
+ void gui_mch_unmaximize __ARGS((void));
|
|
Karsten Hopp |
5f528d |
void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height, int direction));
|
|
Karsten Hopp |
5f528d |
void gui_mch_get_screen_dimensions __ARGS((int *screen_w, int *screen_h));
|
|
Karsten Hopp |
5f528d |
void gui_mch_settitle __ARGS((char_u *title, char_u *icon));
|
|
Karsten Hopp |
5f528d |
*** ../vim-7.2.263/src/version.c 2009-09-23 17:35:17.000000000 +0200
|
|
Karsten Hopp |
5f528d |
--- src/version.c 2009-09-23 18:12:21.000000000 +0200
|
|
Karsten Hopp |
5f528d |
***************
|
|
Karsten Hopp |
5f528d |
*** 678,679 ****
|
|
Karsten Hopp |
5f528d |
--- 678,681 ----
|
|
Karsten Hopp |
5f528d |
{ /* Add new patch number below this line */
|
|
Karsten Hopp |
5f528d |
+ /**/
|
|
Karsten Hopp |
5f528d |
+ 264,
|
|
Karsten Hopp |
5f528d |
/**/
|
|
Karsten Hopp |
5f528d |
|
|
Karsten Hopp |
5f528d |
--
|
|
Karsten Hopp |
5f528d |
hundred-and-one symptoms of being an internet addict:
|
|
Karsten Hopp |
5f528d |
268. You get up in the morning and go online before getting your coffee.
|
|
Karsten Hopp |
5f528d |
|
|
Karsten Hopp |
5f528d |
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
|
Karsten Hopp |
5f528d |
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
|
Karsten Hopp |
5f528d |
\\\ download, build and distribute -- http://www.A-A-P.org ///
|
|
Karsten Hopp |
5f528d |
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|