| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Single XUnmapWindow call can result in multiple UnmapNotify events.
Linked issue has attached python code intended to reproduce original
bug and can be used to reproduce multiple UnmapNotify events for the
same window.
Steps to reproduce problem:
1. Run python3 Untitled.py;
2. Undock one of the application's child windows;
3. Minimize main window;
4. Unminimize main window.
On drag start metacity gets map event - new MetaWindow is created.
This window has override_redirect set to true, metacity selects
StructureNotifyMask events. When child window is dropped outside
main window we get 3 unmap events!
One event was sent because we asked X server to do that by selecting
StructureNotifyMask events. Second event was sent because child
window parent was root window. We have asked for such events on root
window by selecting SubstructureNotifyMask events. Third event seems
to come from XSendEvent.
At this point these multiple events are not problem. MetaWindow is
destroyed when we get first event and rest are ignored.
After that application sends map request and we create new
MetaWindow. This time override_redirect is not set and we choose to
not select StructureNotifyMask events. Unfortunately this mask is
already in your_event_mask as we are not unselecting events when
window is unmanaged.
Now when we minimize main window (step 3) also dock window is
minimized. We are just hiding window so we are adding pending unmap
event so we can ignore it when it will arrive. On first event we
correctly detect that it should be ignored but once second event
arrives we are unmanaging this window.
And here is our problem - trying to unminimize main window only
main window gets restored! Main window does not find child window
because it is destroyed.
Use XCheckIfEvent to remove extra UnmapNotify events that has same
window and serial preventing unnecessary window destruction.
https://gitlab.gnome.org/GNOME/metacity/-/issues/31
|
|
|
|
| |
https://gitlab.gnome.org/GNOME/metacity/-/issues/33
|
|
|
|
|
| |
Based on mutter commit:
https://gitlab.gnome.org/GNOME/mutter/-/commit/eccc791f3b3451216f957e67fec47a73b65ed2b2
|
|
|
|
|
|
| |
Based on mutter commits:
https://gitlab.gnome.org/GNOME/mutter/-/commit/43633d6b2f6f602ba87956d5c20ee336b8b56236
https://gitlab.gnome.org/GNOME/mutter/-/commit/58d2a674c466b607e18e6c8e129a6cf1646fde7f
|
| |
|
|
|
|
|
|
| |
We are calling meta_set_normal_hints from meta_window_new to
initialize size_hints. Claiming that window sets minimum size to
zero or that window did not set gravity is wrong and missleading.
|
|
|
|
| |
Keep flags as they were set on client window.
|
| |
|
| |
|
|
|
|
|
|
| |
To use XResQueryClientIds we need XRes 1.2 or newer!
https://gitlab.gnome.org/GNOME/libwnck/-/issues/154
|
|
|
|
|
|
|
| |
We will use _NET_WM_PID when xserver does not have XRes extension
or its version is too old.
This partially reverts 9135966673e9fd430b9e8252abdb9c946295e25b.
|
|
|
|
| |
We are using XResQueryClientIds that is available in 1.2 version.
|
|
|
|
| |
https://gitlab.gnome.org/GNOME/libgtop/-/merge_requests/34
|
|
|
|
|
|
|
|
| |
Client theoretically can unset / remove icon. We need to reset
origin to make sure we try to load icon from other sources.
Test application that can be used to set/unset icons:
https://gitlab.gnome.org/GNOME/libwnck/-/merge_requests/42
|
| |
|
|
|
|
|
|
| |
XResGetClientPid already checks for XRES_CLIENT_ID_PID_MASK and
does that correctly. We were doing direct comparition that would
fail if mask would include something else.
|
|
|
|
|
| |
According to Debian Code Search only MPlayer sets this property
(together with _NET_WM_ICON).
|
|
|
|
| |
https://gitlab.gnome.org/GNOME/metacity/-/issues/25
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With split build and source directories AND --disable-dependency-tracking
(like the way Yocto builds are done) there's a reproducible make
failure on my Fedora 33 build host:
| Making all in src
| make[2]: Entering directory '.../metacity/1_3.40.0-r0/build/src'
| .../metacity/1_3.40.0-r0/recipe-sysroot-native/usr/bin/glib-mkenums --template ../../metacity-3.40.0/src/core/meta-enum-types.c.in ../../metacity-3.40.0/src/core/window-private.h ../../metacity-3.40.0/src/include/meta-compositor.h > \
| meta-enum-types.c.tmp && mv meta-enum-types.c.tmp core/meta-enum-types.c
| .../metacity/1_3.40.0-r0/recipe-sysroot-native/usr/bin/glib-mkenums --template ../../metacity-3.40.0/src/core/meta-enum-types.h.in ../../metacity-3.40.0/src/core/window-private.h ../../metacity-3.40.0/src/include/meta-compositor.h > \
| meta-enum-types.h.tmp && mv meta-enum-types.h.tmp core/meta-enum-types.h
| mv: cannot move 'meta-enum-types.c.tmp' to 'core/meta-enum-types.c'mv: cannot move 'meta-enum-types.h.tmp' to 'core/meta-enum-types.h': No such file or directory
| : No such file or directory
| make[2]: *** [Makefile:2240: core/meta-enum-types.c] Error 1
https://gitlab.gnome.org/GNOME/metacity/-/merge_requests/24
Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
|
| |
|
|
|
|
| |
https://gitlab.gnome.org/GNOME/metacity/-/issues/21
|
| |
|
|
|
|
|
|
|
|
|
| |
With this metacity will exit cleanly when hitting Ctrl + C.
To preserve existing behaviour with XSMP do not change restart
style hint to IfRunning.
https://gitlab.gnome.org/GNOME/metacity/-/issues/21
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
After commits 0b3f45bb1bf8 and db37deb589ea SmcInteractDone and
SmcSaveYourselfDone is only called if zenity dialog exits with 0
code.
Finish interaction also when dialog is closed by pressing Cancel
indicating that shutdown should be canceled.
https://gitlab.gnome.org/GNOME/metacity/-/issues/20
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before commit c656c658940d override-redirect windows was not
registered with meta_display_register_x_window. This means
that Metacity was treating WM_TRANSIENT_FOR hint as invalid
if it was pointing to override-redirect window.
EWMH specification [1] says that WM_TRANSIENT_FOR property is
defined for managed windows and extends its usage for
override-redirect windows. Client should set WM_TRANSIENT_FOR
on override-redirect window if it is child/popup for another
window.
As specification does not say anyting about using
override-redirect windows as parent for managed windows and
because it causes crashes in Metacity ignore WM_TRANSIENT_FOR
if it is pointing to override-redirect window.
[1] https://specifications.freedesktop.org/wm-spec/wm-spec-latest.html#idm46291029654544
https://gitlab.gnome.org/GNOME/metacity/-/issues/18
|
|
|
|
|
|
| |
Commit 1021494e347da7045c1db834bf9e4f1b5e076f17 removed too much.
https://gitlab.gnome.org/GNOME/metacity/-/issues/19
|
|
|
|
| |
https://gitlab.gnome.org/GNOME/metacity/-/issues/13
|
| |
|
| |
|
| |
|
|
|
|
| |
Use g_assert_cmpfloat_with_epsilon to compare floating points.
|
|
|
|
| |
Coverity CID: #1418268
|
|
|
|
| |
Coverity CID: #1445646
|
|
|
|
|
|
|
| |
Coverity is right that window might be null but does not know that
grab_op is not moving operation.
Coverity CID: #1445663
|
|
|
|
|
|
| |
We assert that at least one of the two directions are set!
Coverity CID: #1418266
|
|
|
|
| |
Coverity CID: #1502679
|
|
|
|
| |
Coverity CID: #1445660
|
|
|
|
| |
Coverity CID: #1445646
|
|
|
|
| |
Coverity CID: #1445650
|
|
|
|
|
|
| |
Both enumeration values are handled outside of switch.
Coverity CID: #1445661
|
|
|
|
| |
Coverity CID: #1502682
|
|
|
|
| |
Coverity CID: #1418331
|
|
|
|
|
|
|
| |
META_GRAB_OP_NONE enumeration value is intentionally added here
to avoid compiler warning about unhandled value.
Coverity CID: #1445650
|
| |
|
| |
|
| |
|
| |
|
| |
|