mirror of
https://github.com/vim/vim.git
synced 2025-09-26 04:04:07 -04:00
updated for version 7.2-264
This commit is contained in:
33
src/gui.c
33
src/gui.c
@@ -1386,6 +1386,10 @@ gui_set_shellsize(mustset, fit_to_display, direction)
|
|||||||
int min_height;
|
int min_height;
|
||||||
int screen_w;
|
int screen_w;
|
||||||
int screen_h;
|
int screen_h;
|
||||||
|
#ifdef HAVE_GTK2
|
||||||
|
int un_maximize = mustset;
|
||||||
|
int did_adjust = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!gui.shell_created)
|
if (!gui.shell_created)
|
||||||
return;
|
return;
|
||||||
@@ -1425,22 +1429,47 @@ gui_set_shellsize(mustset, fit_to_display, direction)
|
|||||||
if (Columns < MIN_COLUMNS)
|
if (Columns < MIN_COLUMNS)
|
||||||
Columns = MIN_COLUMNS;
|
Columns = MIN_COLUMNS;
|
||||||
width = Columns * gui.char_width + base_width;
|
width = Columns * gui.char_width + base_width;
|
||||||
|
#ifdef HAVE_GTK2
|
||||||
|
++did_adjust;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
if ((direction & RESIZE_VERT) && height > screen_h)
|
if ((direction & RESIZE_VERT) && height > screen_h)
|
||||||
{
|
{
|
||||||
Rows = (screen_h - base_height) / gui.char_height;
|
Rows = (screen_h - base_height) / gui.char_height;
|
||||||
check_shellsize();
|
check_shellsize();
|
||||||
height = Rows * gui.char_height + base_height;
|
height = Rows * gui.char_height + base_height;
|
||||||
|
#ifdef HAVE_GTK2
|
||||||
|
++did_adjust;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
#ifdef HAVE_GTK2
|
||||||
|
if (did_adjust == 2 || (width + gui.char_width >= screen_w
|
||||||
|
&& height + gui.char_height >= screen_h))
|
||||||
|
/* don't unmaximize if at maximum size */
|
||||||
|
un_maximize = FALSE;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
gui.num_cols = Columns;
|
gui.num_cols = Columns;
|
||||||
gui.num_rows = Rows;
|
gui.num_rows = Rows;
|
||||||
|
|
||||||
min_width = base_width + MIN_COLUMNS * gui.char_width;
|
min_width = base_width + MIN_COLUMNS * gui.char_width;
|
||||||
min_height = base_height + MIN_LINES * gui.char_height;
|
min_height = base_height + MIN_LINES * gui.char_height;
|
||||||
# ifdef FEAT_WINDOWS
|
#ifdef FEAT_WINDOWS
|
||||||
min_height += tabline_height() * gui.char_height;
|
min_height += tabline_height() * gui.char_height;
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_GTK2
|
||||||
|
if (un_maximize)
|
||||||
|
{
|
||||||
|
/* If the window size is smaller than the screen unmaximize the
|
||||||
|
* window, otherwise resizing won't work. */
|
||||||
|
gui_mch_get_screen_dimensions(&screen_w, &screen_h);
|
||||||
|
if ((width + gui.char_width < screen_w
|
||||||
|
|| height + gui.char_height * 2 < screen_h)
|
||||||
|
&& gui_mch_maximized())
|
||||||
|
gui_mch_unmaximize();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
gui_mch_set_shellsize(width, height, min_width, min_height,
|
gui_mch_set_shellsize(width, height, min_width, min_height,
|
||||||
base_width, base_height, direction);
|
base_width, base_height, direction);
|
||||||
|
@@ -4376,6 +4376,29 @@ force_shell_resize_idle(gpointer data)
|
|||||||
#endif
|
#endif
|
||||||
#endif /* HAVE_GTK2 */
|
#endif /* HAVE_GTK2 */
|
||||||
|
|
||||||
|
#if defined(HAVE_GTK2) || defined(PROTO)
|
||||||
|
/*
|
||||||
|
* Return TRUE if the main window is maximized.
|
||||||
|
*/
|
||||||
|
int
|
||||||
|
gui_mch_maximized()
|
||||||
|
{
|
||||||
|
return (gui.mainwin != NULL && gui.mainwin->window != NULL
|
||||||
|
&& (gdk_window_get_state(gui.mainwin->window)
|
||||||
|
& GDK_WINDOW_STATE_MAXIMIZED));
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Unmaximize the main window
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
gui_mch_unmaximize()
|
||||||
|
{
|
||||||
|
if (gui.mainwin != NULL)
|
||||||
|
gtk_window_unmaximize(GTK_WINDOW(gui.mainwin));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set the windows size.
|
* Set the windows size.
|
||||||
*/
|
*/
|
||||||
|
@@ -16,6 +16,8 @@ int gui_mch_open __ARGS((void));
|
|||||||
void gui_mch_exit __ARGS((int rc));
|
void gui_mch_exit __ARGS((int rc));
|
||||||
int gui_mch_get_winpos __ARGS((int *x, int *y));
|
int gui_mch_get_winpos __ARGS((int *x, int *y));
|
||||||
void gui_mch_set_winpos __ARGS((int x, int y));
|
void gui_mch_set_winpos __ARGS((int x, int y));
|
||||||
|
int gui_mch_maximized __ARGS((void));
|
||||||
|
void gui_mch_unmaximize __ARGS((void));
|
||||||
void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height, int direction));
|
void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height, int direction));
|
||||||
void gui_mch_get_screen_dimensions __ARGS((int *screen_w, int *screen_h));
|
void gui_mch_get_screen_dimensions __ARGS((int *screen_w, int *screen_h));
|
||||||
void gui_mch_settitle __ARGS((char_u *title, char_u *icon));
|
void gui_mch_settitle __ARGS((char_u *title, char_u *icon));
|
||||||
|
@@ -676,6 +676,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
264,
|
||||||
/**/
|
/**/
|
||||||
263,
|
263,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user