Age | Commit message (Collapse) | Author | Files | Lines |
|
Adding a new option to allow tile size cycling. When enabled, using the
keyboard shortcut for tiling multiple times in a row cycles the window
through different sizes (1/2 -> 1/3 -> 1/4 -> 3/4 -> 2/3 -> Untiled).
|
|
|
|
|
|
|
|
When changing window state, we want to change the allowed action hints
so that other applications, mainly the taskbar, can disable menu entries
that do not make much visual sense. For example, unmaximizing
a minimized window: even though this operation is possible, it causes
user confusion as there is no visibility until the user unminimizes it.
|
|
Since the frame window size that meta_window_move_resize() uses depends
on whether the window has horizontal/vertical resize functionality, we
need to update this flag before we resize the window.
https://bugzilla.gnome.org/show_bug.cgi?id=659854
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/c66d83a7
|
|
We should still correct the coordinates for withdrawn windows.
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/9da3004e
|
|
_NET_FRAME_EXTENTS should contain the difference between where a window asked
to be placed, and where it is. Ideally, this should be the same as the visible
extents.
https://bugzilla.gnome.org/show_bug.cgi?id=659848
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/a3630d7c
|
|
A window can specify geometry that it is placed at. We need to exclude invisible
borders when calculating where to place the window, otherwise the window will have
a strange offset.
https://bugzilla.gnome.org/show_bug.cgi?id=659848
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/95373187
|
|
get_outer_rect now returns the visible region, and a new get_input_rect
method returns the boundaries of the full frame, including the possible
invisible regions. When undecorated, both do the samething.
https://bugzilla.gnome.org/show_bug.cgi?id=644930
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/dfedc7df
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=644930
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/85e15225
|
|
An ARGB window with a frame is likely something like a transparent
terminal. It looks awful (and breaks transparency) to draw a big
opaque black shadow under the window, so clip out the region under
the terminal from the shadow we draw.
Add meta_window_get_frame_bounds() to get a cairo region for the
outer bounds of the frame of a window, and modify the frame handling
code to notice changes to the frame shape and discard a cached
region. meta_frames_apply_shapes() is refactored so we can extract
meta_frames_get_frame_bounds() from it.
https://bugzilla.gnome.org/show_bug.cgi?id=635268
NOTE: Applied only partially, compositor part is still missing...
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/0f2e32d1
|
|
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/5b880ff3
|
|
Since version 3.0, GTK+ has support for style variants. At the moment,
themes may provide a dark variant, which can be requested by
applications via GtkSettings. The requested variant is exported to
X11 via the _GTK_THEME_VARIANT property - support this property, in
order to pick up the correct style variant in the future.
https://bugzilla.gnome.org/show_bug.cgi?id=645355
NOTE: Patch is adapted for marco.
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/341d0945
|
|
There were actually *two* MetaFrameGeometry structs: one in theme-private.h,
one in frame.h. The latter public struct was populated by a mix of (void*)
casting and int pointers, usually pulling directly from the data in the private
struct.
Remove the public struct, replace it with MetaFrameBorders and scrap all
the pointer hacks to populate it, instead relying on both structs being used
in common code.
This commit should be relatively straightforward, and it should not do any
tricky logic at all, just a sophisticated find and replace.
https://bugzilla.gnome.org/show_bug.cgi?id=644930
upstream commit: https://gitlab.gnome.org/GNOME/metacity/commit/72224a165
NOTE: Patch copied from metacity and adapted for marco.
|
|
|
|
Set the NET_WM_STATE_FOCUSED property on windows of type dock or
spashscreen so that they don't get the state GTK_STATE_FLAG_BACKDROP
set by default.
Based on:
https://gitlab.gnome.org/GNOME/metacity/commit/b3ef887
origin xfwm4 commit:
https://git.xfce.org/xfce/xfwm4/commit/?id=0feb29e78bb3
|
|
|
|
Use g_slist_free_full
|
|
|
|
avoid Clang static analyzer warning:
core/window.c:3580:34: warning: The right operand of '+' is a garbage value
new_w = window->rect.width + fgeom.left_width + fgeom.right_width;
^ ~~~~~~~~~~~~~~~~
|
|
Since xinerama already contains information on the monitor and its rectangle, there is no need to go through Gdk to get this information again.
|
|
both functions have the same code
|
|
|
|
Add a preference /apps/mutter/general/attach_modal_dialogs. When
true, instead of having independent titlebars, modal dialogs appear
attached to the titlebar of the parent window and are moved
together with the parent window.
https://bugzilla.gnome.org/show_bug.cgi?id=612726
NOTE: Patch copied from mutter and adapted for metacity.
|
|
NOTE: Patch copied from mutter and adapted for metacity.
|
|
|
|
ported from:
https://github.com/GNOME/metacity/commit/4ccb99a50c54f345c4c7d9ac77f1ea76bc6c7c74
|
|
|
|
|
|
frame
|
|
|
|
|
|
After resizing a tiled window, tile_resized gets set to true. Since it
never got set back to false when fullscreening, it lead to weird
behavior when unfullscreening the window.
|
|
|
|
|
|
|
|
Use that flag to retain the correct window size when performing other
operations. Reset when re-tiling.
|
|
|
|
line is taken from
https://github.com/GNOME/metacity/commit/632d3983fbc402432c6ceae05bea8903ad2f11c0
was forgotten in
https://github.com/mate-desktop/marco/commit/ad9db61aabc2cbf743a1157ddc42ff76127f3fab
|
|
This reverts commit 567890a8a1884247de29e9f97cf9cd8110247c04, reversing
changes made to a65a66d49bd0d6ec6c94b8e3ecd551cb570cec95.
|
|
This fix random bug when applications without reason opens in
fullscreen mode.
|
|
|
|
This adds a window placement preference: the existing behavior is now
called "automatic" and is the default. Two new modes are being
introduced: "pointer", which means that windows are placed according to
the mouse pointer position; and "manual" which means that the user must
manually place the new window with the mouse or keyboard.
This is a straight port from muffin, commit 3257671.
|
|
On subsequent changes, if there is a NET_WM_USER_TIME_WINDOW, then
read the property from that rather than from the main window.
(Fix an accidental regression: the right Window was being computed
but no longer passed in.)
Original patch author - Owen Taylor:
https://bugzilla.gnome.org/show_bug.cgi?id=585979
|
|
be minimized (e.g. delete confirmation dialog, logout dialog...)
|
|
This fixes switching out of fullscreen Direct3D applications running in
Wine. See issue 166 for more details.
|
|
Add tile keybinds (Fix #104, #127)
|
|
If this field is left uninitialized, a client may mistake Marco to support more than the single update request counter described in EWMH 1.5.
|
|
has_maximize_func implies
window->has_resize_func
!window->fullscreen
window->has_resize_func implies
(window->size_hints.min_width < window->size_hints.max_width) ||
(window->size_hints.min_height < window->size_hints.max_height)
A tiled window implies that it could be tiled.
A maximized window implies that it could be tiled.
.
Therefore simplify the if and add window->shaded to make it equivalent to the
macro but allowing to tile already maximized/tiled windows.
.
If this commit causes a regression it probably means that a call to
meta_window_recalc_features is missing.
.
This bug already existed but can only be triggered by the new keybindings.
|