mirror of
https://github.com/brl/mutter.git
synced 2024-12-25 20:32:16 +00:00
Add a switch to disable autofullscreen'ing maximized windows without decorations
This commit is contained in:
parent
f5313268d7
commit
b625ec30d9
@ -27,6 +27,7 @@
|
|||||||
#include "constraints.h"
|
#include "constraints.h"
|
||||||
#include "workspace.h"
|
#include "workspace.h"
|
||||||
#include "place.h"
|
#include "place.h"
|
||||||
|
#include "prefs.h"
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
@ -424,7 +425,8 @@ setup_constraint_info (ConstraintInfo *info,
|
|||||||
/* Workaround braindead legacy apps that don't know how to
|
/* Workaround braindead legacy apps that don't know how to
|
||||||
* fullscreen themselves properly.
|
* fullscreen themselves properly.
|
||||||
*/
|
*/
|
||||||
if (meta_rectangle_equal (new, &xinerama_info->rect) &&
|
if (meta_prefs_get_force_fullscreen() &&
|
||||||
|
meta_rectangle_equal (new, &xinerama_info->rect) &&
|
||||||
window->has_fullscreen_func &&
|
window->has_fullscreen_func &&
|
||||||
!window->fullscreen)
|
!window->fullscreen)
|
||||||
{
|
{
|
||||||
|
@ -233,6 +233,7 @@ typedef struct
|
|||||||
gboolean sync;
|
gboolean sync;
|
||||||
gboolean composite;
|
gboolean composite;
|
||||||
gboolean no_composite;
|
gboolean no_composite;
|
||||||
|
gboolean no_force_fullscreen;
|
||||||
} MetaArguments;
|
} MetaArguments;
|
||||||
|
|
||||||
#ifdef HAVE_COMPOSITE_EXTENSIONS
|
#ifdef HAVE_COMPOSITE_EXTENSIONS
|
||||||
@ -314,6 +315,12 @@ meta_parse_options (int *argc, char ***argv,
|
|||||||
N_("Turn compositing off"),
|
N_("Turn compositing off"),
|
||||||
NULL
|
NULL
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"no-force-fullscreen", 0, COMPOSITE_OPTS_FLAGS, G_OPTION_ARG_NONE,
|
||||||
|
&my_args.no_force_fullscreen,
|
||||||
|
N_("Don't make fullscreen windows that are maximized and have no decorations"),
|
||||||
|
NULL
|
||||||
|
},
|
||||||
{NULL}
|
{NULL}
|
||||||
};
|
};
|
||||||
GOptionContext *ctx;
|
GOptionContext *ctx;
|
||||||
@ -584,6 +591,9 @@ main (int argc, char **argv)
|
|||||||
if (meta_args.composite || meta_args.no_composite)
|
if (meta_args.composite || meta_args.no_composite)
|
||||||
meta_prefs_set_compositing_manager (meta_args.composite);
|
meta_prefs_set_compositing_manager (meta_args.composite);
|
||||||
|
|
||||||
|
if (meta_args.no_force_fullscreen)
|
||||||
|
meta_prefs_set_force_fullscreen (FALSE);
|
||||||
|
|
||||||
if (!meta_display_open ())
|
if (!meta_display_open ())
|
||||||
meta_exit (META_EXIT_ERROR);
|
meta_exit (META_EXIT_ERROR);
|
||||||
|
|
||||||
|
@ -95,6 +95,7 @@ static char *cursor_theme = NULL;
|
|||||||
static int cursor_size = 24;
|
static int cursor_size = 24;
|
||||||
static gboolean compositing_manager = FALSE;
|
static gboolean compositing_manager = FALSE;
|
||||||
static gboolean resize_with_right_button = FALSE;
|
static gboolean resize_with_right_button = FALSE;
|
||||||
|
static gboolean force_fullscreen = TRUE;
|
||||||
|
|
||||||
static MetaVisualBellType visual_bell_type = META_VISUAL_BELL_FULLSCREEN_FLASH;
|
static MetaVisualBellType visual_bell_type = META_VISUAL_BELL_FULLSCREEN_FLASH;
|
||||||
static MetaButtonLayout button_layout;
|
static MetaButtonLayout button_layout;
|
||||||
@ -1751,6 +1752,9 @@ meta_preference_to_string (MetaPreference pref)
|
|||||||
|
|
||||||
case META_PREF_RESIZE_WITH_RIGHT_BUTTON:
|
case META_PREF_RESIZE_WITH_RIGHT_BUTTON:
|
||||||
return "RESIZE_WITH_RIGHT_BUTTON";
|
return "RESIZE_WITH_RIGHT_BUTTON";
|
||||||
|
|
||||||
|
case META_PREF_FORCE_FULLSCREEN:
|
||||||
|
return "FORCE_FULLSCREEN";
|
||||||
}
|
}
|
||||||
|
|
||||||
return "(unknown)";
|
return "(unknown)";
|
||||||
@ -2737,6 +2741,12 @@ meta_prefs_get_mouse_button_menu (void)
|
|||||||
return resize_with_right_button ? 2: 3;
|
return resize_with_right_button ? 2: 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
meta_prefs_get_force_fullscreen (void)
|
||||||
|
{
|
||||||
|
return force_fullscreen;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
meta_prefs_set_compositing_manager (gboolean whether)
|
meta_prefs_set_compositing_manager (gboolean whether)
|
||||||
{
|
{
|
||||||
@ -2797,3 +2807,10 @@ init_button_layout(void)
|
|||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
void
|
||||||
|
meta_prefs_set_force_fullscreen (gboolean whether)
|
||||||
|
{
|
||||||
|
force_fullscreen = whether;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -59,7 +59,8 @@ typedef enum
|
|||||||
META_PREF_CURSOR_THEME,
|
META_PREF_CURSOR_THEME,
|
||||||
META_PREF_CURSOR_SIZE,
|
META_PREF_CURSOR_SIZE,
|
||||||
META_PREF_COMPOSITING_MANAGER,
|
META_PREF_COMPOSITING_MANAGER,
|
||||||
META_PREF_RESIZE_WITH_RIGHT_BUTTON
|
META_PREF_RESIZE_WITH_RIGHT_BUTTON,
|
||||||
|
META_PREF_FORCE_FULLSCREEN
|
||||||
} MetaPreference;
|
} MetaPreference;
|
||||||
|
|
||||||
typedef void (* MetaPrefsChangedFunc) (MetaPreference pref,
|
typedef void (* MetaPrefsChangedFunc) (MetaPreference pref,
|
||||||
@ -114,6 +115,7 @@ void meta_prefs_change_workspace_name (int i,
|
|||||||
const char* meta_prefs_get_cursor_theme (void);
|
const char* meta_prefs_get_cursor_theme (void);
|
||||||
int meta_prefs_get_cursor_size (void);
|
int meta_prefs_get_cursor_size (void);
|
||||||
gboolean meta_prefs_get_compositing_manager (void);
|
gboolean meta_prefs_get_compositing_manager (void);
|
||||||
|
gboolean meta_prefs_get_force_fullscreen (void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets whether the compositor is turned on.
|
* Sets whether the compositor is turned on.
|
||||||
@ -122,6 +124,8 @@ gboolean meta_prefs_get_compositing_manager (void);
|
|||||||
*/
|
*/
|
||||||
void meta_prefs_set_compositing_manager (gboolean whether);
|
void meta_prefs_set_compositing_manager (gboolean whether);
|
||||||
|
|
||||||
|
void meta_prefs_set_force_fullscreen (gboolean whether);
|
||||||
|
|
||||||
/* XXX FIXME This should be x-macroed, but isn't yet because it would be
|
/* XXX FIXME This should be x-macroed, but isn't yet because it would be
|
||||||
* difficult (or perhaps impossible) to add the suffixes using the current
|
* difficult (or perhaps impossible) to add the suffixes using the current
|
||||||
* system. It needs some more thought, perhaps after the current system
|
* system. It needs some more thought, perhaps after the current system
|
||||||
|
Loading…
Reference in New Issue
Block a user