<feed xmlns='http://www.w3.org/2005/Atom'>
<title>marco/src, 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>window: focus modal dialogs whose ancestor is focused</title>
<updated>2026-05-15T20:19:10+00:00</updated>
<author>
<name>Saverio Miroddi</name>
<email>saverio.pub2@gmail.com</email>
</author>
<published>2026-04-28T17:41:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/marco/commit/?id=2dfcf261932e2524d299d09d658b7ab1c81fc61b'/>
<id>2dfcf261932e2524d299d09d658b7ab1c81fc61b</id>
<content type='text'>
Fixes #784.

Commit 6ea23df ("window: do not unfocus on new window") imported the
Metacity bf17c79 / Mutter 998d921d behavior for GNOME Bugzilla #773210:
when a new transient maps without taking focus, keep focus on the parent
so GTK popup and completion windows and VLC fullscreen controls do not
steal keyboard focus.

That blanket change also affected modal dialogs whose parent already has
focus. Electron and GTK file chooser dialogs can reach
meta_window_show() with takes_focus_on_map false because their
_NET_WM_USER_TIME is missing or stale. Since 6ea23df, such dialogs are
mapped above the parent but keyboard focus stays on the parent, so
typing goes to the wrong window.

Keep the bf17c79-equivalent behavior for non-modal transients, but when
the new window is a META_WINDOW_MODAL_DIALOG whose ancestor is the
current focus window, force takes_focus_on_map so the blocking dialog
receives keyboard focus immediately.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #784.

Commit 6ea23df ("window: do not unfocus on new window") imported the
Metacity bf17c79 / Mutter 998d921d behavior for GNOME Bugzilla #773210:
when a new transient maps without taking focus, keep focus on the parent
so GTK popup and completion windows and VLC fullscreen controls do not
steal keyboard focus.

That blanket change also affected modal dialogs whose parent already has
focus. Electron and GTK file chooser dialogs can reach
meta_window_show() with takes_focus_on_map false because their
_NET_WM_USER_TIME is missing or stale. Since 6ea23df, such dialogs are
mapped above the parent but keyboard focus stays on the parent, so
typing goes to the wrong window.

Keep the bf17c79-equivalent behavior for non-modal transients, but when
the new window is a META_WINDOW_MODAL_DIALOG whose ancestor is the
current focus window, force takes_focus_on_map so the blocking dialog
receives keyboard focus immediately.
</pre>
</div>
</content>
</entry>
<entry>
<title>display: Use global MRU list for switch-windows-all</title>
<updated>2026-03-16T20:05:28+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2026-02-09T20:20:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/marco/commit/?id=4974ffb4b16bed4bd8e98fd52484cb2a2cfb095e'/>
<id>4974ffb4b16bed4bd8e98fd52484cb2a2cfb095e</id>
<content type='text'>
When using switch-windows-all to cycle through windows across all
workspaces, marco was grouping windows by workspace rather than using
a global MRU (most-recently-used) list. This caused several issues:

- Sticky windows appeared multiple times, once per workspace
- Window order was confusing (since they were grouped by workspace number)
- Behavior was different from other window managers

Fixed by collecting all windows, sorting them by recency, then building
the tab list from this global list.

Fixes #286
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When using switch-windows-all to cycle through windows across all
workspaces, marco was grouping windows by workspace rather than using
a global MRU (most-recently-used) list. This caused several issues:

- Sticky windows appeared multiple times, once per workspace
- Window order was confusing (since they were grouped by workspace number)
- Behavior was different from other window managers

Fixed by collecting all windows, sorting them by recency, then building
the tab list from this global list.

Fixes #286
</pre>
</div>
</content>
</entry>
<entry>
<title>fix switch-windows-all hotkey</title>
<updated>2026-02-09T14:40:49+00:00</updated>
<author>
<name>Denis Gorodnichev</name>
<email>denis.gorodnichev@gmail.com</email>
</author>
<published>2023-02-24T20:12:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/marco/commit/?id=7e6aede0af4db55a2db687bae64f5ffdbf05e92f'/>
<id>7e6aede0af4db55a2db687bae64f5ffdbf05e92f</id>
<content type='text'>
pass focus to window if it is on another workspace
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
pass focus to window if it is on another workspace
</pre>
</div>
</content>
</entry>
<entry>
<title>window: Fix corner-tiled windows becoming maximized on reload</title>
<updated>2026-01-21T11:34:52+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2026-01-21T02:21:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/marco/commit/?id=490e2364d28aaedf3c34e3f479d817950ccaf81f'/>
<id>490e2364d28aaedf3c34e3f479d817950ccaf81f</id>
<content type='text'>
Corner-tiled windows were being treated as maximized horizontally, which
is wrong. Instead, we clear all maximized flags to make sure their size
is respected on reload.

Fixes #710
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Corner-tiled windows were being treated as maximized horizontally, which
is wrong. Instead, we clear all maximized flags to make sure their size
is respected on reload.

Fixes #710
</pre>
</div>
</content>
</entry>
<entry>
<title>keybindings: Add area screenshot keyboard shortcut</title>
<updated>2025-11-01T19:22:36+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2025-08-29T17:45:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/marco/commit/?id=7433837df6c936ffaadd6af689a83ba4e9c4f64a'/>
<id>7433837df6c936ffaadd6af689a83ba4e9c4f64a</id>
<content type='text'>
Add Shift+Print keybinding to trigger 'mate-screenshot --area' for
interactive area selection. This gives users a dedicated keybinding for
area screenshots in addition to the existing Print (screen) and
Alt+Print (window) shortcuts.

Fixes mate-desktop/marco#157
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add Shift+Print keybinding to trigger 'mate-screenshot --area' for
interactive area selection. This gives users a dedicated keybinding for
area screenshots in addition to the existing Print (screen) and
Alt+Print (window) shortcuts.

Fixes mate-desktop/marco#157
</pre>
</div>
</content>
</entry>
<entry>
<title>keybindings: Release keyboard grab on screenshot commands</title>
<updated>2025-11-01T19:22:36+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2025-08-29T16:18:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/marco/commit/?id=7e100f3ed4f1279c67d596654b665e3f347ca455'/>
<id>7e100f3ed4f1279c67d596654b665e3f347ca455</id>
<content type='text'>
This prevents race conditions with applications like mate-screenshot
that need to grab input (e.g. for area selection).

Fixes mate-desktop/mate-utils#37
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This prevents race conditions with applications like mate-screenshot
that need to grab input (e.g. for area selection).

Fixes mate-desktop/mate-utils#37
</pre>
</div>
</content>
</entry>
<entry>
<title>keybindings: Fix command spawning to use posix_spawn</title>
<updated>2025-11-01T19:22:36+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2025-08-28T20:08:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/marco/commit/?id=17c0b318817c96013d6967daf4e2d79539d23627'/>
<id>17c0b318817c96013d6967daf4e2d79539d23627</id>
<content type='text'>
Replace putenv-based child setup with glib environment functions. This
enables posix_spawn for keybindings and it fixes an old memory leak with
not being able to free the string we added to putenv.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replace putenv-based child setup with glib environment functions. This
enables posix_spawn for keybindings and it fixes an old memory leak with
not being able to free the string we added to putenv.
</pre>
</div>
</content>
</entry>
<entry>
<title>keybindings: Fix move-to-center calculation</title>
<updated>2025-11-01T18:55:54+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2025-09-09T19:52:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/marco/commit/?id=b403cd0598e236825299050b665390e2aec32775'/>
<id>b403cd0598e236825299050b665390e2aec32775</id>
<content type='text'>
There was a 10px difference in the calculation between the (correct)
center-new-windows placement and the (incorrect) move-to-center
keybinding. By using the same function in both places we can make sure
the calculation is consistent.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There was a 10px difference in the calculation between the (correct)
center-new-windows placement and the (incorrect) move-to-center
keybinding. By using the same function in both places we can make sure
the calculation is consistent.
</pre>
</div>
</content>
</entry>
<entry>
<title>theme: Include shadow and resize borders</title>
<updated>2025-11-01T18:55:54+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2025-09-09T14:34:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/marco/commit/?id=3261bbdce6cc0fa494c257849cb69c640f1aeade'/>
<id>3261bbdce6cc0fa494c257849cb69c640f1aeade</id>
<content type='text'>
Extend MetaFrameBorders to include shadow and resize borders to
calculate invisible border size. Also added border caching to prevent
recalculating borders on every frame operation.

This is a backport of the following commits from Metacity:
- https://gitlab.gnome.org/GNOME/metacity/-/commit/21e664af
- https://gitlab.gnome.org/GNOME/metacity/-/commit/3c6e269b
- https://gitlab.gnome.org/GNOME/metacity/-/commit/700e87ea
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Extend MetaFrameBorders to include shadow and resize borders to
calculate invisible border size. Also added border caching to prevent
recalculating borders on every frame operation.

This is a backport of the following commits from Metacity:
- https://gitlab.gnome.org/GNOME/metacity/-/commit/21e664af
- https://gitlab.gnome.org/GNOME/metacity/-/commit/3c6e269b
- https://gitlab.gnome.org/GNOME/metacity/-/commit/700e87ea
</pre>
</div>
</content>
</entry>
<entry>
<title>Add dynamic workspaces support</title>
<updated>2025-10-06T12:04:32+00:00</updated>
<author>
<name>Victor Kareh</name>
<email>vkareh@redhat.com</email>
</author>
<published>2025-07-30T10:45:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.mate-desktop.org/marco/commit/?id=158e2e64b7fe584ea8fe782e4608df25d6103fc3'/>
<id>158e2e64b7fe584ea8fe782e4608df25d6103fc3</id>
<content type='text'>
Adds GNOME3-style dynamic workspace management. Workspaces are created
when no empty ones exist and removed when multiple empty workspaces are
present, maintaining exactly one empty workspace at the end.

Fixes #406
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Adds GNOME3-style dynamic workspace management. Workspaces are created
when no empty ones exist and removed when multiple empty workspaces are
present, maintaining exactly one empty workspace at the end.

Fixes #406
</pre>
</div>
</content>
</entry>
</feed>
