Age | Commit message (Collapse) | Author | Files | Lines |
|
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
|
|
Commit https://gitlab.gnome.org/GNOME/metacity/commit/c3a04bf
unintentionally broke XShape handling. By studying the code
extremely carefully, I found this inconsistency with the code that was
there before.
https://bugzilla.gnome.org/show_bug.cgi?id=635268
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/2b1c6443
|
|
The style context of the widget is rarely what we want. We won't
fix this to be a MetaFrames style context yet; this just changes
the internal API.
https://bugzilla.gnome.org/show_bug.cgi?id=690317
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/76aa0704
|
|
We were relying on GTK+ emitting GtkWidget::style-updated during
widget initialization to create the GtkStyleContexts used for
window decorations. A recent GTK+ update broke this assumption,
so do the necessary initialization ourselves.
https://bugzilla.gnome.org/show_bug.cgi?id=671796
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/e4fde7b0
|
|
meta_frames_destroy() was not safe to be called multiple times, which
was causing a crash on exit due to something else changing somewhere
that makes it get called multiple times.
https://bugzilla.gnome.org/show_bug.cgi?id=654489
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/e35be641
|
|
Rather than sharing a single style context between all frames, use
a default style and one style per encountered variant. The value of
the _GTK_THEME_VARIANT property should determine which style is
attached to a particular frame, though for the time being the default
style is used for every frame, as the window property cannot be
accessed at the time the style is attached. This will be fixed in
a later commit.
https://bugzilla.gnome.org/show_bug.cgi?id=645355
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/04d8135f
|
|
Like the setting of new frames' background is delayed until the
frame is associated with its window, delay attaching the initial
style, so that the correct style variant is picked.
https://bugzilla.gnome.org/show_bug.cgi?id=645355
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/ee056853
|
|
This method allows forcing a style update of a particular frame
from the core, so that it can pick up style variants.
https://bugzilla.gnome.org/show_bug.cgi?id=645355
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/97554dc4
|
|
Just a quick little commit to help clean things up for when we add invisible
borders. Additionally, do a little housekeeping in preview-widget as well.
https://bugzilla.gnome.org/show_bug.cgi?id=644930
NOTE: Patch copied from metacity and adapted for marco.
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/7d519b3f
|
|
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.
|
|
based in the mutter commits:
https://gitlab.gnome.org/GNOME/mutter/commit/b8b0dc5c78008647f5833f63d88456025f17bd08
https://gitlab.gnome.org/GNOME/mutter/commit/669c9da2a48d9a5573edee09065b8558c1d07035
|
|
This way the xserver never paints the frame background, even if
the client window is destroyed. This allows us to have clean
destroy window animation.
There is no problem with interactive resizing because applications
are using the XSync protocol, so we're not painting unless the
client has redrawn.
https://bugzilla.gnome.org/show_bug.cgi?id=734054
origin commit:
https://gitlab.gnome.org/GNOME/metacity/commit/78c283c
|
|
upstream commits:
https://gitlab.gnome.org/GNOME/metacity/commit/71d5decc
https://gitlab.gnome.org/GNOME/metacity/commit/127638ca
https://gitlab.gnome.org/GNOME/metacity/commit/fc1a21ea
https://gitlab.gnome.org/GNOME/metacity/commit/431e0418
|
|
upstream commits:
https://gitlab.gnome.org/GNOME/metacity/commit/3932dca0
https://gitlab.gnome.org/GNOME/metacity/commit/10240013
https://gitlab.gnome.org/GNOME/metacity/commit/3fa97193
|
|
Since xinerama already contains information on the monitor and its rectangle, there is no need to go through Gdk to get this information again.
|
|
Alt+Tab and Workspace popups should be sized relative to the monitor size.
This way they look nice and large regardless of the display resolution.
Also, given much larger modern resolutions, icon sizes should be larger by default.
|
|
|
|
Shadow and padding was never part of theme. This format was created by
mutter, and it is an incompatible change.
|
|
It's useful to get frame shapes and manipulate them within Mutter, for
example so that the compositor can use them to clip drawing.
For this, we'll need the regions as cairo regions not X regions, so
convert frame shaping code to work in terms of cairo_region_t.
https://bugzilla.gnome.org/show_bug.cgi?id=635268
|
|
This adds 'invisible_border' to metacity theme. This invisible
border will be used for resize cursor area.
|
|
Add app-menu button support in themes. This is done only to support
metacity theme format 3.5 version. Marco will not show this
button!
Based on metacity commit:
https://gitlab.gnome.org/GNOME/metacity/commit/6a2cc159
|
|
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=662962
|
|
* Fix missing white border on outline window.
* Do not create outline_window if we are not going to use it.
Adapted from https://gitlab.gnome.org/GNOME/metacity/commit/a7dd0727
|
|
gtk:custom() requires a fallback color in case the GTK+ theme in use
does not define the desired color. As in general the fallback color
will approximate the intended color, there is the risk of typos going
unnoticed. To make catching these kind of errors easier, allow to ignore
the fallback color specified (and fall back to a nice shade of pink
instead) by setting an environment variable.
https://bugzilla.gnome.org/show_bug.cgi?id=656112
|
|
Add an additional color type to pick up colors defined with
@define-color in the GTK+ theme's CSS:
gtk:custom(name,fallback)
(where "name" refers to the name defined in GTK+'s CSS, and fallback
refers to an alternative color spec which is used when the color
referenced by "name" is not found)
The main intent of the change is to allow designers to improve
Adwaita's dark theme variant without having to compromise on colors
which work in the light variant as well.
https://bugzilla.gnome.org/show_bug.cgi?id=648709
NOTE: Patch copied from mutter and adapted for metacity.
|
|
With the existing background functions, single buttons can not be
styled separately - on the left side, the style of the left button
is picked, and the right button's style on the right side.
As theme authors may want to add rounded corners to button groups
as a whole, it makes sense to treat the case of a single button in
a group differently.
https://bugzilla.gnome.org/show_bug.cgi?id=635683
NOTE: Patch copied from mutter and adapted for metacity.
|
|
When validating button functions and frame styles, the required
format version of the features used in the theme was compared to
the major version number of the supported format, limiting additions
to major theme format bumps.
Use peek_required_version() instead, so the minor version number
of the supported theme format is taken into account.
https://bugzilla.gnome.org/show_bug.cgi?id=635683
|
|
Add a new frame type META_FRAME_TYPE_ATTACHED which is used for
attached modal dialogs.
The theme format version is bumped to 3.2, and attached windows
can have borders defined in a metacity-theme-3.xml as:
<window version=">= 3.2" type="attached" style_set="[name]"/>
If no style is defined for "attached", drawing will fall back
to the "border" type.
https://bugzilla.gnome.org/show_bug.cgi?id=592382
NOTE: Patch copied from mutter and adapted for metacity.
|
|
It's nice to indicate when a title is truncated with an ellipsis.
Because themes may draw a title multiple times to draw a shadow, or
may include the window icon within the title area, we can't determine
the proper ellipsization width automatically, so add an optional
attribute to the <title/> element "ellipsize_width" which, if set,
is the width to ellipsize at.
This is only enabled if a theme version of 3.1 is required.
When it's not set, we keep the old behavior of just letting the
title be clipped with a hard edge.
https://bugzilla.gnome.org/show_bug.cgi?id=591842
NOTE: Patch copied from mutter and adapted for metacity.
|
|
Sometimes you want to position something (usually the title) to be centered
with respect to the entire frame instead of centered with respect to the
individual piece currently being drawn.
This patch adds frame_x_center and frame_y_center variables that represent
the X/Y centers of the frame in the coordinate system of the piece being
drawn.
The theme version is bumped from 3.0 to 3.1 (3.0 is just the new version
system, 3.1 will have all the features we add for Mutter-2.28.)
position expressions
https://bugzilla.gnome.org/show_bug.cgi?id=591842
NOTE: Patch is copied from mutter and is adapted for metacity.
|
|
The current mechanism of metacity-theme-1.xml and metacity-theme-2.xml
is not flexible for allowing small-scale additions. With this patch
we bump the major version version once more to metacity-theme-3.xml
and add a single feature:
Any element in the DTD can have an attribute:
version="[<|<=|=>|>] MAJOR.MINOR"
And it will be ignored unless the predicate is met. (< and > should
be to be entity escaped as < and >)
This allows having alternate sections of the theme file for older and
newer version.
* Required GLib version is bumped to 2.14 so we can parse versions
with a regular expression.
* We switch internal version numbers to be "1000 * major + minor"
* We keep a stack of the maximum required version for the current portion
the XML tree so that the "cannot use versions you don't require" stricture
of the old code can be made local to a subpart of the tree.
* A version on the top metacity_theme element causes the entire file to
be ignored; this allows having one metacity-theme-3.xml for version 3.2
and newer (say) and a metacity-1.xml for everything old.
Actual new features will be added starting with 3.1 - 3.0 is just the
version="" feature.
http://bugzilla.gnome.org/show_bug.cgi?id=592503
NOTE: Patch is copied from mutter and adapted for metacity.
origin commit: https://gitlab.gnome.org/GNOME/metacity/commit/114a2048
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This commit reverts:
https://github.com/mate-desktop/marco/commit/f0541e3dfda29c26fe14c9c9117f95c49006c75c
https://github.com/mate-desktop/marco/commit/d18c2fb4acb58c408c01700682b9922de86e8b2f
And it applies an alternative to fix the deprecated functions:
gdk_screen_get_width
gdk_screen_width
gdk_screen_height
|
|
avoid deprecated:
gdk_screen_get_monitor_geometry
gdk_screen_get_monitor_at_point
|
|
|
|
|
|
default or user configured scale. Closes #335 (#336)
|
|
|
|
|
|
This legacy construct was carried over from the gtk2/gtk3 port, and
attempts to initialise MetaFrames with a GtkWindow `type` property.
This property doesn't actually exist, and will cause marco to completely
crash when running with `MARCO_DEBUG=1` for local build testing.
Signed-off-by: Ikey Doherty <[email protected]>
|
|
taken from:
https://git.gnome.org/browse/metacity/commit/?id=7ec9a6f
|
|
Taken from:
https://git.gnome.org/browse/metacity/commit/?id=3380502
|