<feed xmlns='http://www.w3.org/2005/Atom'>
<title>marco/src/ui/frames.h, branch focus-modal-dialogs</title>
<subtitle>MATE default window manager</subtitle>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/marco/'/>
<entry>
<title>ui/frames: check that compositing is not only requested, but also available.</title>
<updated>2023-08-17T19:50:32+00:00</updated>
<author>
<name>Mihai Moldovan</name>
<email>ionic@ionic.de</email>
</author>
<published>2023-07-28T18:24:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/marco/commit/?id=dc4a2863dd402b052edce27e441503751619b024'/>
<id>dc4a2863dd402b052edce27e441503751619b024</id>
<content type='text'>
Enabling code that is supposed to be used in compositing conditions is
harmful if compositing is not actually available. Just checking the
preference is not enough to make sure that compositing is available -
the X server might be missing crucial extensions for compositing to
work, which in turn correctly disables the internal compositor.

The end result is graphical issues like black borders around windows in
such situations.

Make sure that compositing is both requested AND available to fix this
bug.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Enabling code that is supposed to be used in compositing conditions is
harmful if compositing is not actually available. Just checking the
preference is not enough to make sure that compositing is available -
the X server might be missing crucial extensions for compositing to
work, which in turn correctly disables the internal compositor.

The end result is graphical issues like black borders around windows in
such situations.

Make sure that compositing is both requested AND available to fix this
bug.
</pre>
</div>
</content>
</entry>
<entry>
<title>frames: apply modified hack from Mutter/Metacity</title>
<updated>2019-08-10T16:15:27+00:00</updated>
<author>
<name>monsta</name>
<email>monsta@inbox.ru</email>
</author>
<published>2019-07-30T08:50:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/marco/commit/?id=85baeea9b663d4c356313ef1164c8efbf03e2e7e'/>
<id>85baeea9b663d4c356313ef1164c8efbf03e2e7e</id>
<content type='text'>
- 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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- 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
</pre>
</div>
</content>
</entry>
<entry>
<title>frames: Rename layout to text_layout</title>
<updated>2019-06-05T14:49:37+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2019-05-30T12:52:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/marco/commit/?id=c9339a8b67cf8b684947322638da92ed69f86358'/>
<id>c9339a8b67cf8b684947322638da92ed69f86358</id>
<content type='text'>
... to differentiate PangoLayout from MetaFrameLayout.

https://bugzilla.gnome.org/show_bug.cgi?id=741917

upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/8e5781bc
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
... to differentiate PangoLayout from MetaFrameLayout.

https://bugzilla.gnome.org/show_bug.cgi?id=741917

upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/8e5781bc
</pre>
</div>
</content>
</entry>
<entry>
<title>frames: again change meta_frames_applet_shapes</title>
<updated>2019-06-05T14:49:37+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2019-05-30T12:19:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/marco/commit/?id=ebd42d4c0d0e9ca96dd3bc14906c573c99128b35'/>
<id>ebd42d4c0d0e9ca96dd3bc14906c573c99128b35</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>frames: apply shapes in different way</title>
<updated>2019-06-05T14:49:37+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2019-05-23T17:06:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/marco/commit/?id=b52aff0da9140a03159bf8da83e45da3baad7fc1'/>
<id>b52aff0da9140a03159bf8da83e45da3baad7fc1</id>
<content type='text'>
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/cd383e72
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/cd383e72
</pre>
</div>
</content>
</entry>
<entry>
<title>frame: Add "get_corner_radiuses" chain</title>
<updated>2019-06-05T14:49:37+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2019-05-22T15:12:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/marco/commit/?id=b925581e37b2ac2ffdb97469fbfb284aac93feab'/>
<id>b925581e37b2ac2ffdb97469fbfb284aac93feab</id>
<content type='text'>
https://bugzilla.gnome.org/show_bug.cgi?id=628195

upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/3994d7a0
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://bugzilla.gnome.org/show_bug.cgi?id=628195

upstream commit:
https://gitlab.gnome.org/GNOME/metacity/commit/3994d7a0
</pre>
</div>
</content>
</entry>
<entry>
<title>Only shadow ARGB windows with a frame outside the frame</title>
<updated>2019-06-05T14:49:37+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2019-05-22T14:56:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/marco/commit/?id=6f33395c69550e1fad6aa49d52e1284ca89f88c1'/>
<id>6f33395c69550e1fad6aa49d52e1284ca89f88c1</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>ui-frame: Add support for style variants</title>
<updated>2019-06-05T14:49:37+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2019-05-21T17:55:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/marco/commit/?id=b08c0e992141ffb321289fefe88200b2de3c9c72'/>
<id>b08c0e992141ffb321289fefe88200b2de3c9c72</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>ui: Add meta_ui_update_frame_style()</title>
<updated>2019-06-05T14:49:37+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2019-05-21T17:42:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/marco/commit/?id=b59538af6e5c2858fc0d01ac1db42957c303ec48'/>
<id>b59538af6e5c2858fc0d01ac1db42957c303ec48</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace public MetaFrameGeometry with MetaFrameBorders</title>
<updated>2019-06-05T14:49:37+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2019-04-12T11:58:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/marco/commit/?id=c66b32666e48996b97e691ed002f86b6ff18dec5'/>
<id>c66b32666e48996b97e691ed002f86b6ff18dec5</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
</feed>
