Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
When loading window control buttons and icon as pixbufs, we just set
them as the source for the cairo context used to paint them. Instead, we
now convert them to cairo surfaces and scale them to the correct display
density before painting them.
This allows us to load higher resolution assets (i.e. at twice the size)
and by explicitly setting the intended size in the theme draw_ops, we
can then scale them down to fit lower resolution displays, or render
them at full density for HiDPI displays.
|
|
ui/tabpopup.c:176:7: warning: format not a string literal, argument types not checked [-Wformat-nonliteral]
176 | tmp = g_markup_printf_escaped (formatter, str);
| ^~~
|
|
finally, apps that prefer dark theme variant (gtk-application-prefer-dark-theme
in GtkSettings) should also have dark window decorations
taken from:
https://github.com/GNOME/metacity/commit/6b0d325442b995a78b8783384f7ec370db1369a4
|
|
- this will be needed for proper window decoration color updates on theme change
when theme variants fixes are applied
- realize/unrealize functions are dropped instead of map/unmap ones, because
we didn't change these during GTK+3 porting
- MetaFrames now has GtkWindow as parent instead of GtkInvisible, otherwise
the hack doesn't work (revert part of 96c7256d638b8c76c8abf786ba307e82a595dd67)
adapted from:
https://github.com/GNOME/metacity/commit/ba8500663457ad9f18ebfdf405162c2cb5caf88f
|
|
and make variable names less similar
taken from:
https://github.com/linuxmint/muffin/commit/6120bddefd709d3f1
|
|
guess it was overlooked when porting to GTK+3
|
|
|
|
|
|
GTK+ theme might use this area to paint box-shadow. Also use
CAIRO_CONTENT_COLOR_ALPHA for cairo surfaces.
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/13137b1d
|
|
... to differentiate PangoLayout from MetaFrameLayout.
https://bugzilla.gnome.org/show_bug.cgi?id=741917
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/8e5781bc
|
|
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/3a3c47e3
|
|
With compositing manager:
1. Apply only client shape.
Without compositing manager:
1. Apply client shape.
2. Apply shape around visible frame.
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/3913dcf1
|
|
|
|
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/cd383e72
|
|
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/94c8d620
|
|
The condition got removed in eeb2efe01001fef7655b2ba95ca1456f7fe9214b but that
had a side effect of adding a couple of rows of dead pixels so add it back.
https://bugzilla.gnome.org/show_bug.cgi?id=658069
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/37e1fa8c
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=662895
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/6836a621
|
|
Invisible borders are all about resizing -- in the case that a window
cannot be resized, it makes no sense to add them.
https://bugzilla.gnome.org/show_bug.cgi?id=659854
Based on mutter commit:
https://git.gnome.org/browse/mutter/commit/?id=be9f7d77292c1dfd868640fe95f7223fbbfd4273
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/64615667
|
|
Shaded windows are assumed to be reduced to the titlebar: the
current code enforces a visible bottom border of 0 and only takes
the size of the title bar (+ invisible top border) into account
when resizing the frame. However, we still add an invisible border
at the bottom, which is than subtracted from the title bar, resulting
in shaded windows being cut off.
Fix by forcing both visible and invisible bottom borders to 0.
https://bugzilla.gnome.org/show_bug.cgi?id=659266
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/7a80fcfd
|
|
... and start compensating for invisible borders in all of the math.
https://bugzilla.gnome.org/show_bug.cgi?id=644930
NOTE: Updated for marco...
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/daf6bc08
|
|
This just adds the invisible border field and populates it with
data but doesn't use it in any way.
Based on mutter commit:
https://git.gnome.org/browse/mutter/commit/?id=a1a2527c75ab0c135f89396ea036336fb67ac538
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/bf02c7c3
|
|
This adds 'invisible_border' to be used for resize cursor area.
|
|
This makes it a bit simpler for other functions on a MetaUIFrame to
get this information.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=697758
Reviewed-by: Jasper St. Pierre <[email protected]>
Signed-off-by: Simon McVittie <[email protected]>
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/79384de0
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=628195
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/3994d7a0
|
|
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.
|
|
|
|
|
|
|
|
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
|
|
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
|
|
origin commit by:
https://gitlab.gnome.org/GNOME/metacity/commit/542a2b4
|
|
|
|
|
|
Fixes double free of menu_data introduced in b0df98a
|
|
|
|
Bump glib-2 required version to 2.58:
G_SOURCE_FUNC
https://gitlab.gnome.org/GNOME/glib/commit/039fa6897bb4c5cd30caec8ee3add1a4ef612f76
Build & install:i
export CC=gcci
export CFLAGS=-Werror=cast-function-type
./autogen.sh --prefix=/usr
make clean
make
sudo make install
|
|
|
|
based in the mutter commits:
https://gitlab.gnome.org/GNOME/mutter/commit/b8b0dc5c78008647f5833f63d88456025f17bd08
https://gitlab.gnome.org/GNOME/mutter/commit/669c9da2a48d9a5573edee09065b8558c1d07035
|
|
Since xinerama already contains information on the monitor and its rectangle, there is no need to go through Gdk to get this information again.
|